// Output file
File outfile = new File(args.length>0 ? args[0] : "ISOTest.iso");
// Directory hierarchy, starting from the root
ISO9660RootDirectory.MOVED_DIRECTORIES_STORE_NAME = "rr_moved";
ISO9660RootDirectory root = new ISO9660RootDirectory();
if (args.length>1) {
// Record specified files and directories
for (int i=1; i<args.length; i++) {
if (args[i].startsWith("--")) {
handleOption(args[i].substring(2, args[i].length()));
} else {
// Add file or directory contents recursively
File file = new File(args[i]);
if (file.exists()) {
if (file.isDirectory()) {
root.addContentsRecursively(file);
} else {
root.addFile(file);
}
}
}
}
} else {
// Record test cases
// Very long filename: a...z
root.addDirectory("a1234567890b1234567890c1234567890d1234567890e1234567890f1234567890g1234567890h1234567890i1234567890j1234567890k1234567890l1234567890m1234567890n1234567890o1234567890p1234567890q1234567890r1234567890s1234567890t1234567890u1234567890v1234567890w1234567890x1234567890y1234567890z");
// German Umlauts
root.addDirectory("äöüÄÖÜß");
// Filenames that will have to be renamed (count test)
ISO9660Directory dir_1 = root.addDirectory("1");
dir_1.addDirectory("1");
dir_1.addDirectory("1");
ISO9660Directory dir_a = root.addDirectory("a");
dir_a.addDirectory("a");
dir_a.addDirectory("a");
ISO9660Directory dir_abcdefg = root.addDirectory("abcdefg");
dir_abcdefg.addDirectory("abcdefg");
dir_abcdefg.addDirectory("abcdefg");
ISO9660Directory dir_abcdefgh = root.addDirectory("abcdefgh");
dir_abcdefgh.addDirectory("abcdefgh");
dir_abcdefgh.addDirectory("abcdefgh");
ISO9660Directory dir_abcde321 = root.addDirectory("abcde321");
dir_abcde321.addDirectory("abcde321");
dir_abcde321.addDirectory("abcde321");
// Additional test cases
// (file without extension, tar.gz, deeply nested directory;
// sort order tests, renaming tests: filename + extension,
// directory with many files: sector end test)
root.addRecursively(new File("test"));
// Dirs to appear in order A, B, Aeins, Azwei, Cubase, Beins, Bzwei
ISO9660Directory subdirA = root.addDirectory("A");
subdirA.addDirectory("Aeins");
subdirA.addDirectory("Azwei");
ISO9660Directory subdirB = root.addDirectory("B");
subdirB.addDirectory("Bzwei");
subdirB.addDirectory("Beins");
// Files with different versions
// (to appear in descending order, pointing to same LSN)
ISO9660File file1 = new ISO9660File("test/tux.gif", 1);
root.addFile(file1);
ISO9660File file10 = new ISO9660File("test/tux.gif", 10);
root.addFile(file10);
ISO9660File file12 = new ISO9660File("test/tux.gif", 12);
root.addFile(file12);
}
// ISO9660 support
ISO9660Config iso9660Config = new ISO9660Config();
iso9660Config.allowASCII(false);