#!/ns/tools/bin/perl5 # mkhtml.pl cruises through your $MOZ_SRC/mozilla/js/tests/ subdirectories, # and for any .js file it finds, creates an HTML file that includes: # $MOZ_SRC/mozilla/js/tests/$suite/shell.js, $ # MOZ_SRC/mozilla/js/tests/$suite/browser.js, # and the test.js file. # # $moz_src = $ENV{"MOZ_SRC"} || die ("You need to set your MOZ_SRC environment variable.\n"); $test_home = $moz_src ."/js/tests/"; opendir (TEST_HOME, $test_home); @__suites = readdir (TEST_HOME); closedir TEST_HOME; foreach (@__suites ) { if ( -d $_ && $_ !~ /\./ && $_ !~ 'CVS' ) { $suites[$#suites+1] = $_; } } if ( ! $ARGV[0] ) { die ( "Specify a directory: ". join(" ", @suites) ."\n" ); } $js_test_dir = $moz_src . "/js/tests/" . $ARGV[0] ."/"; print "Generating html files for the tests in $js_test_dir\n"; $shell_js = $js_test_dir . "shell.js"; $browser_js = $js_test_dir . "browser.js"; # cd to the test directory chdir $js_test_dir || die "Couldn't chdir to js_test_dir, which is $js_test_dir\n"; print ( "js_test_dir is $js_test_dir\n" ); # read the test directory opendir ( JS_TEST_DIR, $js_test_dir ); # || die "Couldn't open js_test_dir, which is $js_test_dir\n"; @js_test_dir_items = readdir( JS_TEST_DIR ); # || die "Couldn't read js_test_dir, which is $js_test_dir\n"; closedir( JS_TEST_DIR ); print ("The js_test_dir_items are: " . join( ",", @js_test_dir_items ) . "\n"); # figure out which of the items are directories foreach $js_test_subdir ( @js_test_dir_items ) { if ( -d $js_test_subdir ) { $js_test_subdir = $js_test_dir ."/" . $js_test_subdir; chdir $js_test_subdir || die "Couldn't chdir to js_test_subdir $js_test_subdir\n"; print "Just chdir'd to $js_test_subdir \n"; opendir( JS_TEST_SUBDIR, $js_test_subdir ); @subdir_tests = readdir( JS_TEST_SUBDIR ); closedir( JS_TEST_SUBDIR ); foreach ( @subdir_tests ) { $js_test = $_; if ( $_ =~ /\.js$/ ) { s/\.js$/\.html/; print $_ ."\n"; open( HTML_TEST, "> $_") || die "Can't open html file $test_html\n"; print HTML_TEST ''; print HTML_TEST ''; print HTML_TEST ''; close HTML_TEST; } } } chdir $js_test_dir; }