1 #!/ns/tools/bin/perl5 2 3 # mkhtml.pl cruises through your $MOZ_SRC/mozilla/js/tests/ subdirectories, 4 # and for any .js file it finds, creates an HTML file that includes: 5 # $MOZ_SRC/mozilla/js/tests/$suite/shell.js, $ 6 # MOZ_SRC/mozilla/js/tests/$suite/browser.js, 7 # and the test.js file. 8 # 9 # 10 11 $moz_src = $ENV{"MOZ_SRC"} || 12 die ("You need to set your MOZ_SRC environment variable.\n"); 13 14 $test_home = $moz_src ."/js/tests/"; 15 16 opendir (TEST_HOME, $test_home); 17 @__suites = readdir (TEST_HOME); 18 closedir TEST_HOME; 19 20 foreach (@__suites ) { 21 if ( -d $_ && $_ !~ /\./ && $_ !~ 'CVS' ) { 22 $suites[$#suites+1] = $_; 23 } 24 } 25 if ( ! $ARGV[0] ) { 26 die ( "Specify a directory: ". join(" ", @suites) ."\n" ); 27 } 28 29 $js_test_dir = $moz_src . "/js/tests/" . $ARGV[0] ."/"; 30 31 print "Generating html files for the tests in $js_test_dir\n"; 32 33 $shell_js = $js_test_dir . "shell.js"; 34 $browser_js = $js_test_dir . "browser.js"; 35 36 # cd to the test directory 37 chdir $js_test_dir || 38 die "Couldn't chdir to js_test_dir, which is $js_test_dir\n"; 39 40 print ( "js_test_dir is $js_test_dir\n" ); 41 42 # read the test directory 43 opendir ( JS_TEST_DIR, $js_test_dir ); 44 # || die "Couldn't open js_test_dir, which is $js_test_dir\n"; 45 @js_test_dir_items = readdir( JS_TEST_DIR ); 46 # || die "Couldn't read js_test_dir, which is $js_test_dir\n"; 47 closedir( JS_TEST_DIR ); 48 49 print ("The js_test_dir_items are: " . join( ",", @js_test_dir_items ) . "\n"); 50 51 # figure out which of the items are directories 52 foreach $js_test_subdir ( @js_test_dir_items ) { 53 if ( -d $js_test_subdir ) { 54 55 $js_test_subdir = $js_test_dir ."/" . $js_test_subdir; 56 chdir $js_test_subdir 57 || die "Couldn't chdir to js_test_subdir $js_test_subdir\n"; 58 print "Just chdir'd to $js_test_subdir \n"; 59 60 opendir( JS_TEST_SUBDIR, $js_test_subdir ); 61 @subdir_tests = readdir( JS_TEST_SUBDIR ); 62 closedir( JS_TEST_SUBDIR ); 63 64 foreach ( @subdir_tests ) { 65 $js_test = $_; 66 67 if ( $_ =~ /\.js$/ ) { 68 s/\.js$/\.html/; 69 print $_ ."\n"; 70 open( HTML_TEST, "> $_") 71 || die "Can't open html file $test_html\n"; 72 print HTML_TEST 73 '<script src=./../shell.js></script>'; 74 print HTML_TEST 75 '<script src=./../browser.js></script>'; 76 print HTML_TEST 77 '<script src=./' . $js_test. '></script>'; 78 close HTML_TEST; 79 } 80 } 81 } 82 chdir $js_test_dir; 83 } 84 85