gecko-dev/js/tests/mkhtml.pl

85 строки
2.5 KiB
Perl

#!/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
'<script src=./../shell.js></script>';
print HTML_TEST
'<script src=./../browser.js></script>';
print HTML_TEST
'<script src=./' . $js_test. '></script>';
close HTML_TEST;
}
}
}
chdir $js_test_dir;
}