Home | History | Annotate | Download | only in mozilla
      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