481 final FileStats stats = new FileStats(project_root_ext+
"/file_01.txt");
482 PrintUtil.fprintf_td(System.err,
"test05_file_stat: 01: %s\n", stats);
483 PrintUtil.fprintf_td(System.err,
"test05_file_stat: 01: fields %s\n", stats.fields());
484 if( stats.exists() ) {
485 Assert.assertTrue( stats.has_access() );
486 Assert.assertTrue( !stats.is_dir() );
487 Assert.assertTrue( stats.is_file() );
488 Assert.assertTrue( !stats.is_link() );
489 Assert.assertTrue( 15 == stats.size() );
493 final FileStats proot_stats = getTestDataDirStats();
496 Assert.assertTrue(
true == proot_stats.
exists() );
497 Assert.assertTrue(
true == proot_stats.
is_dir() );
503 Assert.assertTrue( stats.
exists() );
505 Assert.assertTrue( !stats.
is_dir() );
506 Assert.assertTrue( stats.
is_file() );
507 Assert.assertTrue( !stats.
is_link() );
508 Assert.assertTrue( 15 == stats.
size() );
510 final long link_count[] = { 0 };
511 final FileStats final_target = stats.
final_target(link_count);
512 PrintUtil.fprintf_td(System.err,
"test05_file_stat: 12: final_target (%d link count): %s\n", link_count[0], final_target);
513 Assert.assertTrue( 0 == link_count[0] );
514 Assert.assertTrue( final_target.equals( stats ) );
517 final FileStats stats2 =
new FileStats(proot_stats.
path()+
"/file_01.txt");
518 Assert.assertTrue( stats2.exists() );
519 Assert.assertTrue( stats2.has_access() );
520 Assert.assertTrue( !stats2.is_dir() );
521 Assert.assertTrue( stats2.is_file() );
522 Assert.assertTrue( !stats2.is_link() );
523 Assert.assertTrue( 15 == stats2.size() );
524 Assert.assertEquals( stats, stats2 );
527 final FileStats stats2 =
new FileStats(proot_stats.
path()+
"/dir_01/file_02.txt");
528 Assert.assertTrue( stats2.exists() );
529 Assert.assertTrue( stats2.has_access() );
530 Assert.assertTrue( !stats2.is_dir() );
531 Assert.assertTrue( stats2.is_file() );
532 Assert.assertTrue( !stats2.is_link() );
533 Assert.assertNotEquals( stats, stats2 );
540 Assert.assertTrue( stats.exists() );
541 Assert.assertTrue( stats.has_access() );
542 Assert.assertTrue( stats.is_dir() );
543 Assert.assertTrue( !stats.is_file() );
544 Assert.assertTrue( !stats.is_link() );
545 Assert.assertTrue( 0 == stats.size() );
547 final long link_count[] = { 0 };
549 PrintUtil.
fprintf_td(System.err,
"test05_file_stat: 13: final_target (%d link count): %s\n", link_count[0], final_target);
550 Assert.assertTrue( 0 == link_count[0] );
551 Assert.assertTrue( final_target.equals( stats ) );
557 Assert.assertTrue( !stats.exists() );
558 Assert.assertTrue( stats.has_access() );
559 Assert.assertTrue( !stats.is_dir() );
560 Assert.assertTrue( !stats.is_file() );
561 Assert.assertTrue( !stats.is_link() );
562 Assert.assertTrue( 0 == stats.size() );
564 final long link_count[] = { 0 };
566 PrintUtil.
fprintf_td(System.err,
"test05_file_stat: 14: final_target (%d link count): %s\n", link_count[0], final_target);
567 Assert.assertTrue( 0 == link_count[0] );
568 Assert.assertTrue( final_target.equals( stats ) );
578 Assert.assertTrue(
true == proot_stats.
exists() );
579 Assert.assertTrue(
true == proot_stats.
is_dir() );
582 final FileStats stats = new FileStats(proot_stats.path()+
"/file_01_slink01.txt");
583 PrintUtil.fprintf_td(System.err,
"test06_file_stat_symlinks: 13: %s\n", stats);
584 PrintUtil.fprintf_td(System.err,
"test06_file_stat_symlinks: 13: fields %s\n", stats.fields());
585 Assert.assertTrue( stats.exists() );
586 Assert.assertTrue( stats.has_access() );
587 Assert.assertTrue( !stats.is_dir() );
588 Assert.assertTrue( stats.is_file() );
589 Assert.assertTrue( stats.is_link() );
590 Assert.assertTrue( 15 == stats.size() );
591 Assert.assertTrue( null != stats.link_target_path() );
592 Assert.assertTrue(
"file_01.txt".equals( stats.link_target_path() ) );
594 final long link_count[] = { 0 };
596 PrintUtil.
fprintf_td(System.err,
"- final_target (%d link count): %s\n", link_count[0], final_target);
597 Assert.assertTrue( 1 == link_count[0] );
598 Assert.assertTrue( final_target != stats );
599 Assert.assertTrue( (proot_stats.
path()+
"/file_01.txt").equals( final_target.path() ) );
601 Assert.assertTrue(
null != stats.link_target() );
603 Assert.assertTrue(
null != link_target );
605 Assert.assertTrue( final_target.equals( link_target ) );
606 Assert.assertTrue( !link_target.is_dir() );
607 Assert.assertTrue( link_target.is_file() );
608 Assert.assertTrue( !link_target.is_link() );
609 Assert.assertTrue(
null == link_target.link_target_path() );
610 Assert.assertTrue(
null == link_target.link_target() );
616 Assert.assertTrue( stats.
exists() );
618 Assert.assertTrue( !stats.
is_dir() );
619 Assert.assertTrue( stats.
is_file() );
620 Assert.assertTrue( stats.
is_link() );
621 Assert.assertTrue( 20 < stats.
size() );
625 final long link_count[] = { 0 };
626 final FileStats final_target = stats.
final_target(link_count);
627 PrintUtil.fprintf_td(System.err,
"- final_target (%d link count): %s\n", link_count[0], final_target);
628 Assert.assertTrue( 1 == link_count[0] );
629 Assert.assertTrue( final_target != stats );
630 Assert.assertTrue(
"/etc/fstab".equals( final_target.path() ) );
634 Assert.assertTrue(
null != link_target );
635 PrintUtil.fprintf_td(System.err,
"- link_target %s\n", link_target);
636 Assert.assertTrue( final_target.equals( link_target ) );
637 Assert.assertTrue( !link_target.is_dir() );
638 Assert.assertTrue( link_target.is_file() );
639 Assert.assertTrue( !link_target.is_link() );
640 Assert.assertTrue(
null == link_target.link_target_path() );
641 Assert.assertTrue(
null == link_target.link_target() );
644 final FileStats stats =
new FileStats(proot_stats.
path()+
"/file_01_slink10R2.txt");
645 PrintUtil.fprintf_td(System.err,
"test06_file_stat_symlinks: 20: %s\n", stats);
646 PrintUtil.fprintf_td(System.err,
"test06_file_stat_symlinks: 20: fields %s\n", stats.fields());
647 Assert.assertTrue( stats.exists() );
648 Assert.assertTrue( stats.has_access() );
649 Assert.assertTrue( !stats.is_dir() );
650 Assert.assertTrue( stats.is_file() );
651 Assert.assertTrue( stats.is_link() );
652 Assert.assertTrue( 15 == stats.size() );
653 Assert.assertTrue(
null != stats.link_target_path() );
654 Assert.assertTrue(
"file_01_slink09R1.txt".equals( stats.link_target_path() ) );
656 final long link_count[] = { 0 };
657 final FileStats final_target = stats.final_target(link_count);
658 PrintUtil.fprintf_td(System.err,
"- final_target (%d link count): %s\n", link_count[0], final_target);
659 Assert.assertTrue( 3 == link_count[0] );
660 Assert.assertTrue( final_target != stats );
661 Assert.assertTrue( (proot_stats.
path()+
"/file_01.txt").equals( final_target.path() ) );
663 Assert.assertTrue(
null != stats.link_target() );
664 final FileStats link_target1 = stats.link_target();
665 PrintUtil.fprintf_td(System.err,
"- link_target1 %s\n", link_target1);
666 Assert.assertTrue( final_target != link_target1 );
667 Assert.assertTrue( (proot_stats.
path()+
"/file_01_slink09R1.txt").equals( link_target1.path() ) );
668 Assert.assertTrue( 15 == link_target1.size() );
669 Assert.assertTrue( !link_target1.is_dir() );
670 Assert.assertTrue( link_target1.is_file() );
671 Assert.assertTrue( link_target1.is_link() );
672 Assert.assertTrue(
null != link_target1.link_target_path() );
673 Assert.assertTrue(
"file_01_slink01.txt".equals( link_target1.link_target_path() ) );
675 final FileStats link_target2 = link_target1.link_target();
676 Assert.assertTrue(
null != link_target2 );
677 PrintUtil.fprintf_td(System.err,
" - link_target2 %s\n", link_target2);
678 Assert.assertTrue( final_target != link_target2 );
679 Assert.assertTrue( link_target1 != link_target2 );
680 Assert.assertTrue( (proot_stats.
path()+
"/file_01_slink01.txt").equals( link_target2.path() ) );
681 Assert.assertTrue( 15 == link_target2.size() );
682 Assert.assertTrue( !link_target2.is_dir() );
683 Assert.assertTrue( link_target2.is_file() );
684 Assert.assertTrue( link_target2.is_link() );
685 Assert.assertTrue(
null != link_target2.link_target_path() );
686 Assert.assertTrue(
"file_01.txt".equals( link_target2.link_target_path() ) );
688 final FileStats link_target3 = link_target2.link_target();
689 Assert.assertTrue(
null != link_target3 );
690 PrintUtil.fprintf_td(System.err,
" - link_target3 %s\n", link_target3);
691 Assert.assertTrue( final_target.equals( link_target3 ) );
692 Assert.assertTrue( link_target1 != link_target3 );
693 Assert.assertTrue( link_target2 != link_target3 );
694 Assert.assertTrue( 15 == link_target3.size() );
695 Assert.assertTrue( !link_target3.is_dir() );
696 Assert.assertTrue( link_target3.is_file() );
697 Assert.assertTrue( !link_target3.is_link() );
698 Assert.assertTrue(
null == link_target3.link_target_path() );
699 Assert.assertTrue(
null == link_target3.link_target() );
705 PrintUtil.
fprintf_td(System.err,
"test06_file_stat_symlinks: 30: fields %s\n", stats.fields());
706 Assert.assertTrue( !stats.exists() );
707 Assert.assertTrue( stats.has_access() );
708 Assert.assertTrue( !stats.is_dir() );
709 Assert.assertTrue( !stats.is_file() );
710 Assert.assertTrue( stats.is_link() );
711 Assert.assertTrue( 0 == stats.size() );
712 Assert.assertTrue(
null != stats.link_target_path() );
713 Assert.assertTrue(
"not_existing_file".equals( stats.link_target_path() ) );
714 Assert.assertTrue(
null == stats.link_target() );
716 final long link_count[] = { 0 };
718 PrintUtil.
fprintf_td(System.err,
"- final_target (%d link count): %s\n", link_count[0], final_target);
719 Assert.assertTrue( 0 == link_count[0] );
720 Assert.assertTrue( final_target.equals( stats ) );
725 PrintUtil.
fprintf_td(System.err,
"test06_file_stat_symlinks: 31: fields %s\n", stats.fields());
726 Assert.assertTrue( !stats.exists() );
727 Assert.assertTrue( stats.has_access() );
728 Assert.assertTrue( !stats.is_dir() );
729 Assert.assertTrue( !stats.is_file() );
730 Assert.assertTrue( stats.is_link() );
731 Assert.assertTrue( 0 == stats.size() );
732 Assert.assertTrue(
null != stats.link_target_path() );
733 Assert.assertTrue(
"dead_link21".equals( stats.link_target_path() ) );
734 Assert.assertTrue(
null == stats.link_target() );
736 final long link_count[] = { 0 };
738 PrintUtil.
fprintf_td(System.err,
"- final_target (%d link count): %s\n", link_count[0], final_target);
739 Assert.assertTrue( 0 == link_count[0] );
740 Assert.assertTrue( final_target.equals( stats ) );
869 final String file_01 =
root+
"/data01.txt";
870 final String file_02 =
root+
"/data02.txt";
873 final FileStats root_stats = new FileStats(root);
874 PrintUtil.println(System.err,
"root_stats1.post: "+root_stats);
875 Assert.assertTrue( root_stats.exists() );
876 Assert.assertTrue( root_stats.has_access() );
877 Assert.assertTrue( root_stats.is_dir() );
878 Assert.assertTrue( !root_stats.is_file() );
879 Assert.assertTrue( !root_stats.is_link() );
884 final Instant now = Instant.now();
885 final FileStats file_stats = new FileStats(file_01);
886 PrintUtil.println(System.err,
"file_stats2.post: "+file_stats);
887 final Instant btime = file_stats.btime();
888 final Instant atime = file_stats.atime();
889 final long atime_td_ms = atime.until(now, ChronoUnit.MILLIS);
890 final Instant mtime = file_stats.mtime();
891 final long mtime_td_ms = mtime.until(now, ChronoUnit.MILLIS);
892 PrintUtil.println(System.err,
"now: "+now.atZone(ZoneOffset.UTC));
893 PrintUtil.println(System.err,
"btime: "+btime.atZone(ZoneOffset.UTC));
894 PrintUtil.println(System.err,
"atime: "+atime.atZone(ZoneOffset.UTC)+
", td_now "+atime_td_ms+
"ms");
895 PrintUtil.println(System.err,
"mtime: "+mtime.atZone(ZoneOffset.UTC)+
", td_now "+mtime_td_ms+
"ms");
896 Assert.assertTrue( file_stats.exists() );
897 Assert.assertTrue( file_stats.has_access() );
898 Assert.assertTrue( !file_stats.is_dir() );
899 Assert.assertTrue( file_stats.is_file() );
900 Assert.assertTrue( !file_stats.is_link() );
901 if( file_stats.has( FileStats.Field.Type.atime ) ) {
902 Assert.assertTrue( 1000 >= atime_td_ms );
905 Assert.assertTrue( 1000 >= mtime_td_ms );
911 final Instant now = Instant.now();
912 final FileStats file_stats_pre = new FileStats(file_02);
913 final Instant btime_pre = file_stats_pre.btime();
914 final Instant atime_pre = file_stats_pre.atime();
915 final long atime_td_ms = atime_pre.until(now, ChronoUnit.MILLIS);
916 final Instant mtime_pre = file_stats_pre.mtime();
917 final long mtime_td_ms = mtime_pre.until(now, ChronoUnit.MILLIS);
918 PrintUtil.println(System.err,
"now : "+now.atZone(ZoneOffset.UTC));
919 PrintUtil.println(System.err,
"btime.pre: "+btime_pre.atZone(ZoneOffset.UTC));
920 PrintUtil.println(System.err,
"atime.pre: "+atime_pre.atZone(ZoneOffset.UTC)+
", td_now "+atime_td_ms+
"ms");
921 PrintUtil.println(System.err,
"mtime.pre: "+mtime_pre.atZone(ZoneOffset.UTC)+
", td_now "+mtime_td_ms+
"ms");
922 if( file_stats_pre.has( FileStats.Field.Type.atime ) ) {
923 Assert.assertTrue( 1000 >= atime_td_ms );
926 Assert.assertTrue( 1000 >= mtime_td_ms );
930 final Instant ts_20200101 = Instant.ofEpochSecond(1577836800);
931 final Instant atime_set = ts_20200101.plus( 1, ChronoUnit.DAYS).plus(10, ChronoUnit.HOURS);
932 final Instant mtime_set = ts_20200101.plus( 31, ChronoUnit.DAYS).plus(10, ChronoUnit.HOURS);
933 PrintUtil.
println(System.err,
"atime.set: "+atime_set.atZone(ZoneOffset.UTC)+
", "+atime_set.atZone(ZoneOffset.UTC));
934 PrintUtil.
println(System.err,
"mtime.set: "+mtime_set.atZone(ZoneOffset.UTC)+
", "+mtime_set.atZone(ZoneOffset.UTC));
938 final Instant atime_post = file_stats_post.
atime();
939 final Instant mtime_post = file_stats_post.mtime();
940 PrintUtil.
println(System.err,
"atime.post: "+atime_post.atZone(ZoneOffset.UTC)+
", "+atime_post.atZone(ZoneOffset.UTC));
941 PrintUtil.
println(System.err,
"mtime.post: "+mtime_post.atZone(ZoneOffset.UTC)+
", "+mtime_post.atZone(ZoneOffset.UTC));
944 Assert.assertTrue( file_stats_post.exists() );
945 Assert.assertTrue( file_stats_post.has_access() );
946 Assert.assertTrue( !file_stats_post.is_dir() );
947 Assert.assertTrue( file_stats_post.is_file() );
948 Assert.assertTrue( !file_stats_post.is_link() );
949 if( file_stats_post.has( FileStats.Field.Type.atime ) ) {
950 Assert.assertTrue( atime_set.equals( file_stats_post.atime() ) );
953 Assert.assertTrue( mtime_set.equals( file_stats_post.mtime() ) );
958 Assert.assertTrue(
true == FileUtil.remove(root, TraverseOptions.recursive) );
1023 Assert.assertTrue(
true == proot_stats.
exists() );
1024 Assert.assertTrue(
true == proot_stats.
is_dir() );
1028 final TraverseOptions topts = new TraverseOptions();
1029 topts.set(TraverseOptions.Bit.recursive);
1030 topts.set(TraverseOptions.Bit.dir_exit);
1031 final VisitorStats stats = new VisitorStats(topts);
1033 final PathStatsVisitor pv = new PathStatsVisitor(stats);
1034 Assert.assertTrue( true == FileUtil.visit(proot_stats, topts, pv) );
1035 PrintUtil.fprintf_td(System.err,
"test22_visit[R]: %s\n%s\n", topts, stats);
1036 Assert.assertTrue( 7 == stats.total_real );
1037 Assert.assertTrue( 10 == stats.total_sym_links_existing );
1038 Assert.assertTrue( 4 == stats.total_sym_links_not_existing );
1039 Assert.assertTrue( 0 == stats.total_no_access );
1040 Assert.assertTrue( 4 == stats.total_not_existing );
1041 Assert.assertTrue( 60 == stats.total_file_bytes );
1042 Assert.assertTrue( 4 == stats.files_real );
1043 Assert.assertTrue( 9 == stats.files_sym_link );
1044 Assert.assertTrue( 3 == stats.dirs_real );
1045 Assert.assertTrue( 1 == stats.dirs_sym_link );
1050 final TraverseOptions topts = new TraverseOptions();
1051 topts.set(TraverseOptions.Bit.recursive);
1052 topts.set(TraverseOptions.Bit.dir_entry);
1053 topts.set(TraverseOptions.Bit.follow_symlinks);
1054 final VisitorStats stats = new VisitorStats(topts);
1056 final PathStatsVisitor pv = new PathStatsVisitor(stats);
1057 Assert.assertTrue( true == FileUtil.visit(proot_stats, topts, pv) );
1058 PrintUtil.fprintf_td(System.err,
"test22_visit[R, FSL]: %s\n%s\n", topts, stats);
1059 Assert.assertTrue( 9 == stats.total_real );
1060 Assert.assertTrue( 11 == stats.total_sym_links_existing );
1061 Assert.assertTrue( 4 == stats.total_sym_links_not_existing );
1062 Assert.assertTrue( 0 == stats.total_no_access );
1063 Assert.assertTrue( 4 == stats.total_not_existing );
1064 Assert.assertTrue( 60 < stats.total_file_bytes );
1065 Assert.assertTrue( 6 == stats.files_real );
1066 Assert.assertTrue( 10 == stats.files_sym_link );
1067 Assert.assertTrue( 3 == stats.dirs_real );
1068 Assert.assertTrue( 1 == stats.dirs_sym_link );
1072 final TraverseOptions topts = new TraverseOptions();
1073 topts.set(TraverseOptions.Bit.recursive);
1074 topts.set(TraverseOptions.Bit.dir_check_entry);
1075 topts.set(TraverseOptions.Bit.dir_entry);
1076 topts.set(TraverseOptions.Bit.follow_symlinks);
1077 final VisitorStats stats = new VisitorStats(topts);
1079 final PathStatsVisitor pv_flat = new PathStatsVisitor(stats) {
1081 public boolean visit(final TraverseEvent tevt, final FileStats item_stats, final long depth) {
1083 if( TraverseEvent.dir_check_entry == tevt && depth > 1 ) {
1086 stats.add(item_stats);
1091 Assert.assertTrue(
true ==
FileUtil.
visit(proot_stats, topts, pv_flat) );
1093 Assert.assertTrue( 3 == stats.total_real );
1094 Assert.assertTrue( 5 == stats.total_sym_links_existing );
1095 Assert.assertTrue( 4 == stats.total_sym_links_not_existing );
1096 Assert.assertTrue( 0 == stats.total_no_access );
1097 Assert.assertTrue( 4 == stats.total_not_existing );
1098 Assert.assertTrue( 60 < stats.total_file_bytes );
1099 Assert.assertTrue( 1 == stats.files_real );
1100 Assert.assertTrue( 5 == stats.files_sym_link );
1101 Assert.assertTrue( 2 == stats.dirs_real );
1102 Assert.assertTrue( 0 == stats.dirs_sym_link );
1112 Assert.assertTrue(
true == root_orig_stats.exists() );
1113 Assert.assertTrue(
true == root_orig_stats.is_dir() );
1115 final String root_copy =
root+
"_copy_test30";
1118 FileUtil.remove(root_copy, TraverseOptions.recursive);
1120 Assert.assertTrue( true == FileUtil.mkdir(root_copy, FMode.def_dir) );
1122 final FileStats stats = new FileStats(root_copy);
1123 Assert.assertTrue( true == stats.exists() );
1124 Assert.assertTrue( true == stats.ok() );
1125 Assert.assertTrue( true == stats.is_dir() );
1128 final FileStats source1_stats =
new FileStats(root_orig_stats.path()+
"/file_01.txt");
1131 Assert.assertTrue(
true == source1_stats.
exists() );
1132 Assert.assertTrue(
true == source1_stats.
ok() );
1133 Assert.assertTrue(
true == source1_stats.
is_file() );
1137 final CopyOptions copts =
new CopyOptions();
1138 copts.set(CopyOptions.Bit.preserve_all);
1139 copts.set(CopyOptions.Bit.verbose);
1141 final FileStats dest_stats =
new FileStats(root_copy+
"/file_01.txt");
1142 PrintUtil.fprintf_td(System.err,
"test30_copy_file2dir: 01: dest.pre: %s\n", dest_stats);
1143 Assert.assertTrue(
false == dest_stats.exists() );
1145 Assert.assertTrue(
true == FileUtil.copy(source1_stats.
path(), root_copy, copts) );
1147 final FileStats dest_stats =
new FileStats(root_copy+
"/file_01.txt");
1148 PrintUtil.fprintf_td(System.err,
"test30_copy_file2dir: 01: dest.post: %s\n", dest_stats);
1149 Assert.assertTrue(
true == dest_stats.exists() );
1150 Assert.assertTrue(
true == dest_stats.ok() );
1151 Assert.assertTrue(
true == dest_stats.is_file() );
1152 Assert.assertTrue( source1_stats.
size() == dest_stats.size() );
1153 Assert.assertTrue( source1_stats.
mode().
equals( dest_stats.mode() ) );
1158 final CopyOptions copts =
new CopyOptions();
1159 copts.set(CopyOptions.Bit.preserve_all);
1160 copts.set(CopyOptions.Bit.verbose);
1162 final FileStats dest_stats =
new FileStats(root_copy+
"/file_01.txt");
1163 PrintUtil.fprintf_td(System.err,
"test30_copy_file2dir: 02: dest.pre: %s\n", dest_stats);
1164 Assert.assertTrue(
true == dest_stats.exists() );
1165 Assert.assertTrue(
true == dest_stats.ok() );
1166 Assert.assertTrue(
true == dest_stats.is_file() );
1168 Assert.assertTrue(
false == FileUtil.copy(source1_stats.
path(), root_copy, copts) );
1172 final CopyOptions copts =
new CopyOptions();
1173 copts.set(CopyOptions.Bit.preserve_all);
1174 copts.set(CopyOptions.Bit.overwrite);
1175 copts.set(CopyOptions.Bit.verbose);
1177 PrintUtil.fprintf_td(System.err,
"test30_copy_file2dir: 03: source: %s\n", source1_stats);
1179 final FileStats dest_stats =
new FileStats(root_copy+
"/file_01.txt");
1180 PrintUtil.fprintf_td(System.err,
"test30_copy_file2dir: 03: dest.pre: %s\n", dest_stats);
1181 Assert.assertTrue(
true == dest_stats.exists() );
1182 Assert.assertTrue(
true == dest_stats.ok() );
1183 Assert.assertTrue(
true == dest_stats.is_file() );
1184 Assert.assertTrue( source1_stats.
size() == dest_stats.size() );
1185 Assert.assertTrue( source1_stats.
mode().
equals( dest_stats.mode() ) );
1187 Assert.assertTrue(
true == FileUtil.copy(source1_stats.
path(), root_copy, copts) );
1189 final FileStats dest_stats =
new FileStats(root_copy+
"/file_01.txt");
1190 PrintUtil.fprintf_td(System.err,
"test30_copy_file2dir: 03: dest.post: %s\n", dest_stats);
1191 Assert.assertTrue(
true == dest_stats.exists() );
1192 Assert.assertTrue(
true == dest_stats.ok() );
1193 Assert.assertTrue(
true == dest_stats.is_file() );
1194 Assert.assertTrue( source1_stats.
size() == dest_stats.size() );
1195 Assert.assertTrue( source1_stats.
mode().
equals( dest_stats.mode() ) );
1198 Assert.assertTrue(
true == FileUtil.remove(root_copy, TraverseOptions.recursive) );
1207 Assert.assertTrue(
true == root_orig_stats.exists() );
1208 Assert.assertTrue(
true == root_orig_stats.is_dir() );
1210 final String root_copy =
root+
"_copy_test31";
1213 FileUtil.remove(root_copy, TraverseOptions.recursive);
1215 Assert.assertTrue( true == FileUtil.mkdir(root_copy, FMode.def_dir) );
1217 final FileStats stats = new FileStats(root_copy);
1218 Assert.assertTrue( true == stats.exists() );
1219 Assert.assertTrue( true == stats.ok() );
1220 Assert.assertTrue( true == stats.is_dir() );
1223 final FileStats source1_stats =
new FileStats(root_orig_stats.path()+
"/file_01.txt");
1226 Assert.assertTrue(
true == source1_stats.
exists() );
1227 Assert.assertTrue(
true == source1_stats.
ok() );
1228 Assert.assertTrue(
true == source1_stats.
is_file() );
1230 final FileStats source2_stats =
new FileStats(root_orig_stats.path()+
"/README_slink08_relext.txt");
1231 PrintUtil.fprintf_td(System.err,
"test31_copy_file2file: source2: %s\n", source2_stats);
1233 Assert.assertTrue(
true == source2_stats.exists() );
1234 Assert.assertTrue(
true == source2_stats.ok() );
1235 Assert.assertTrue(
true == source2_stats.is_file() );
1236 Assert.assertTrue(
true == source2_stats.is_link() );
1240 final CopyOptions copts =
new CopyOptions();
1241 copts.set(CopyOptions.Bit.preserve_all)
1242 .set(CopyOptions.Bit.verbose);
1244 final FileStats dest_stats =
new FileStats(root_copy+
"/file_10.txt");
1245 PrintUtil.fprintf_td(System.err,
"test31_copy_file2file: 10: dest.pre: %s\n", dest_stats);
1246 Assert.assertTrue(
false == dest_stats.exists() );
1248 Assert.assertTrue(
true == FileUtil.copy(source1_stats.
path(), root_copy+
"/file_10.txt", copts) );
1251 final FileStats dest_stats =
new FileStats(root_copy+
"/file_10.txt");
1252 PrintUtil.fprintf_td(System.err,
"test31_copy_file2file: 10: dest.post: %s\n", dest_stats);
1253 Assert.assertTrue(
true == dest_stats.exists() );
1254 Assert.assertTrue(
true == dest_stats.ok() );
1255 Assert.assertTrue(
true == dest_stats.is_file() );
1256 Assert.assertTrue( source1_stats.
size() == dest_stats.size() );
1257 Assert.assertTrue( source1_stats.
mode().
equals( dest_stats.mode() ) );
1262 final CopyOptions copts =
new CopyOptions();
1263 copts.set(CopyOptions.Bit.preserve_all)
1264 .set(CopyOptions.Bit.verbose);
1266 final FileStats dest_stats =
new FileStats(root_copy+
"/file_10.txt");
1267 PrintUtil.fprintf_td(System.err,
"test31_copy_file2file: 11: dest.pre: %s\n", dest_stats);
1268 Assert.assertTrue(
true == dest_stats.exists() );
1269 Assert.assertTrue(
true == dest_stats.ok() );
1270 Assert.assertTrue(
true == dest_stats.is_file() );
1272 Assert.assertTrue(
false == FileUtil.copy(source1_stats.
path(), root_copy+
"/file_10.txt", copts) );
1277 final CopyOptions copts =
new CopyOptions();
1278 copts.set(CopyOptions.Bit.preserve_all)
1279 .set(CopyOptions.Bit.overwrite)
1280 .set(CopyOptions.Bit.follow_symlinks)
1281 .set(CopyOptions.Bit.verbose);
1283 final FileStats dest_stats =
new FileStats(root_copy+
"/file_10.txt");
1284 PrintUtil.fprintf_td(System.err,
"test31_copy_file2file: 12: dest.pre: %s\n", dest_stats);
1285 Assert.assertTrue(
true == dest_stats.exists() );
1286 Assert.assertTrue(
true == dest_stats.ok() );
1287 Assert.assertTrue(
true == dest_stats.is_file() );
1288 Assert.assertTrue( source1_stats.
size() == dest_stats.size() );
1289 Assert.assertTrue( source1_stats.
mode().
equals( dest_stats.mode() ) );
1291 Assert.assertTrue(
true == FileUtil.copy(source2_stats.path(), root_copy+
"/file_10.txt", copts) );
1294 final FileStats dest_stats =
new FileStats(root_copy+
"/file_10.txt");
1295 PrintUtil.fprintf_td(System.err,
"test31_copy_file2file: 12: dest.post: %s\n", dest_stats);
1296 Assert.assertTrue(
true == dest_stats.exists() );
1297 Assert.assertTrue(
true == dest_stats.ok() );
1298 Assert.assertTrue(
true == dest_stats.is_file() );
1299 Assert.assertTrue(
false == dest_stats.is_link() );
1300 Assert.assertTrue( source2_stats.size() == dest_stats.size() );
1301 Assert.assertTrue( source2_stats.link_target().prot_mode().equals( dest_stats.prot_mode() ) );
1304 Assert.assertTrue(
true == FileUtil.remove(root_copy, TraverseOptions.recursive) );
1438 Assert.assertTrue(
true == root_orig_stats.exists() );
1439 Assert.assertTrue(
true == root_orig_stats.is_dir() );
1441 final String root_copy =
root+
"_copy_test50";
1449 FileUtil.remove(root_copy, TraverseOptions.recursive);
1451 Assert.assertTrue( true == FileUtil.copy(root_orig_stats.path(), root_copy, copts) );
1454 Assert.assertTrue(
true == root_copy_stats.exists() );
1455 Assert.assertTrue(
true == root_copy_stats.ok() );
1456 Assert.assertTrue(
true == root_copy_stats.is_dir() );
1459 final TraverseOptions topts_orig = new TraverseOptions();
1460 topts_orig.set(TraverseOptions.Bit.recursive);
1461 topts_orig.set(TraverseOptions.Bit.dir_entry);
1462 topts_orig.set(TraverseOptions.Bit.follow_symlinks);
1464 final TraverseOptions topts_copy = new TraverseOptions();
1465 topts_copy.set(TraverseOptions.Bit.recursive);
1466 topts_copy.set(TraverseOptions.Bit.dir_entry);
1468 final VisitorStats stats = new VisitorStats(topts_orig);
1469 final VisitorStats stats_copy = new VisitorStats(topts_copy);
1471 final PathStatsVisitor pv_orig = new PathStatsVisitor(stats);
1472 final PathStatsVisitor pv_copy = new PathStatsVisitor(stats_copy);
1474 Assert.assertTrue( true == FileUtil.visit(root_orig_stats, topts_orig, pv_orig) );
1475 Assert.assertTrue( true == FileUtil.visit(root_copy_stats, topts_copy, pv_copy) );
1477 PrintUtil.fprintf_td(System.err,
"test50_copy_ext_r_p_fsl: copy %s, traverse_orig %s, traverse_copy %s\n", copts, topts_orig, topts_copy);
1479 PrintUtil.fprintf_td(System.err,
"test50_copy_ext_r_p_fsl: source visitor stats\n%s\n", stats);
1480 PrintUtil.fprintf_td(System.err,
"test50_copy_ext_r_p_fsl: destination visitor stats\n%s\n", stats_copy);
1482 Assert.assertTrue( 9 == stats.total_real );
1483 Assert.assertTrue( 11 == stats.total_sym_links_existing );
1484 Assert.assertTrue( 4 == stats.total_sym_links_not_existing );
1485 Assert.assertTrue( 0 == stats.total_no_access );
1486 Assert.assertTrue( 4 == stats.total_not_existing );
1487 Assert.assertTrue( 60 < stats.total_file_bytes );
1488 Assert.assertTrue( 6 == stats.files_real );
1489 Assert.assertTrue( 10 == stats.files_sym_link );
1490 Assert.assertTrue( 3 == stats.dirs_real );
1491 Assert.assertTrue( 1 == stats.dirs_sym_link );
1493 Assert.assertTrue( 20 == stats_copy.total_real );
1494 Assert.assertTrue( 0 == stats_copy.total_sym_links_existing );
1495 Assert.assertTrue( 0 == stats_copy.total_sym_links_not_existing );
1496 Assert.assertTrue( 0 == stats_copy.total_no_access );
1497 Assert.assertTrue( 0 == stats_copy.total_not_existing );
1498 Assert.assertTrue( 60 < stats_copy.total_file_bytes );
1499 Assert.assertTrue( 16 == stats_copy.files_real );
1500 Assert.assertTrue( 0 == stats_copy.files_sym_link );
1501 Assert.assertTrue( 4 == stats_copy.dirs_real );
1502 Assert.assertTrue( 0 == stats_copy.dirs_sym_link );
1505 final String root_copy_renamed =
root+
"_copy_test50_renamed";
1507 Assert.assertTrue( true == FileUtil.rename(root_copy, root_copy_renamed) );
1510 Assert.assertTrue(
false == root_copy_stats2.exists() );
1513 Assert.assertTrue(
true == root_copy_renamed_stats.exists() );
1514 Assert.assertTrue(
true == root_copy_renamed_stats.ok() );
1515 Assert.assertTrue(
true == root_copy_renamed_stats.is_dir() );
1517 final TraverseOptions topts_copy = new TraverseOptions();
1518 topts_copy.set(TraverseOptions.Bit.recursive);
1519 topts_copy.set(TraverseOptions.Bit.dir_entry);
1521 final VisitorStats stats_copy = new VisitorStats(topts_copy);
1523 final PathStatsVisitor pv_copy = new PathStatsVisitor(stats_copy);
1525 Assert.assertTrue( true == FileUtil.visit(root_copy_renamed_stats, topts_copy, pv_copy) );
1527 PrintUtil.fprintf_td(System.err,
"test50_copy_ext_r_p_fsl: renamed: traverse_copy %s\n", topts_copy);
1529 PrintUtil.fprintf_td(System.err,
"test50_copy_ext_r_p_fsl: renamed: visitor stats\n%s\n", stats_copy);
1531 Assert.assertTrue( 20 == stats_copy.total_real );
1532 Assert.assertTrue( 0 == stats_copy.total_sym_links_existing );
1533 Assert.assertTrue( 0 == stats_copy.total_sym_links_not_existing );
1534 Assert.assertTrue( 0 == stats_copy.total_no_access );
1535 Assert.assertTrue( 0 == stats_copy.total_not_existing );
1536 Assert.assertTrue( 60 < stats_copy.total_file_bytes );
1537 Assert.assertTrue( 16 == stats_copy.files_real );
1538 Assert.assertTrue( 0 == stats_copy.files_sym_link );
1539 Assert.assertTrue( 4 == stats_copy.dirs_real );
1540 Assert.assertTrue( 0 == stats_copy.dirs_sym_link );