Property changes on: . ___________________________________________________________________ Name: svn:ignore - *.patch *.tmp *.vcproj* *.sln *.ncb *.suo CFLAGS MANIFEST.configure.generated Makefile TAGS all_cstring.str blib config_lib.pasm install_config.fpmc libparrot.def libparrot.dll miniparrot myconfig parrot parrot_config parrot_config.c parrot_config.pbc parrot.ilk parrot.pdb parrot.pc parrot_test_run.tar.gz pbc_disassemble pbc_info pbc_merge pdump smoke.html tags temp.file test test.c test.cco test.err test.ilk test.ldo test.o test.out test.pdb vc60.pdb vc70.pdb vtable.dump installable* *.exe *.core *.pdb *.ilk *.def *.lib *.obj *.exp *.manifest parrot.iss cover_db pbc_to_exe pbc_to_exe.* perl6 .parrot_current_rev .git parrot_debugger + *.patch *.tmp *.vcproj* *.sln *.ncb *.suo CFLAGS MANIFEST.configure.generated Makefile TAGS all_cstring.str blib config_lib.pasm install_config.fpmc libparrot.def libparrot.dll miniparrot myconfig parrot parrot_config parrot_config.c parrot_config.pbc parrot.ilk parrot.pdb parrot.pc parrot_test_run.tar.gz pbc_disassemble pbc_info pbc_merge pdump tags temp.file test test.c test.cco test.err test.ilk test.ldo test.o test.out test.pdb vc60.pdb vc70.pdb vtable.dump installable* *.exe *.core *.pdb *.ilk *.def *.lib *.obj *.exp *.manifest parrot.iss cover_db pbc_to_exe pbc_to_exe.* perl6 .parrot_current_rev .git parrot_debugger Index: DEPRECATED.pod =================================================================== --- DEPRECATED.pod (revision 34094) +++ DEPRECATED.pod (working copy) @@ -165,17 +165,4 @@ =back -=head1 Misc. - -=over 4 - -=item 'make smoke' [post 0.8.2] - -The functionality currently provided by "make smoke" will be changing to -be an alias for "make smolder_test". We're moving towards smolder as our -single point of online test reporting, and will keep the make target to -simplify the switch for anyone currently smoking parrot. See RT #49276. - -=back - =cut Index: docs/tests.pod =================================================================== --- docs/tests.pod (revision 34094) +++ docs/tests.pod (working copy) @@ -24,21 +24,15 @@ C runs the test suite for most language implementations in the languages directory. -=head2 Submitting smoke test results +=head2 Submitting smolder test results -Parrot has a status page with smoke test results -L. You can supply new tests -results by just running C. It will run the same tests as -C would, but will additionally create a HTML table with the test -results. At the end, it will try to upload the test results to the -smoke server. +Parrot has a status page with smoke test results at +L. -It is also possible to run a smoke test on JIT. For that, try running -C. +You can supply new tests results by just running C. +It will run the same tests as C would, but will upload +the test results to the website. -C does smoke testing for most language implementations -in the languages directory. - =head1 Location of the test files The parrot test files, the F<*.t> files, can be found in the F directory. Index: tools/util/smokeserv-client.pl =================================================================== --- tools/util/smokeserv-client.pl (revision 34094) +++ tools/util/smokeserv-client.pl (working copy) @@ -1,112 +0,0 @@ -#! perl - -# Copyright (C) 2005-2007, The Perl Foundation. -# $Id$ - -use strict; -use warnings; - -use Getopt::Long; -use LWP::UserAgent; - -use constant VERSION => 0.4; -sub debug; - -our $compress = sub { return }; - -GetOptions( - "smokeserv=s" => \( my $smokeserv = "http://smoke.parrotcode.org/smoke/" ), - "help" => \&usage, - "compress|c!" => \( my $compression_wanted = 1 ), - "version" => sub { print "smokeserv-client.pl v" . VERSION . "\n"; exit }, -) or usage(); -@ARGV == 1 or usage(); - -debug "smokeserv-client v" . VERSION . " started.\n"; - -setup_compression() if $compression_wanted; - -my %request = ( upload => 1, version => VERSION, smokes => [] ); - -{ - my $file = shift @ARGV; - debug "Reading smoke \"$file\" to upload... "; - - open my $fh, "<", $file or die "Couldn't open \"$file\" for reading: $!\n"; - local $/; - my $smoke = <$fh>; - - unless ( $smoke =~ /^($smoke) || $smoke; - debug "ok.\n"; -} - -{ - debug "Sending data to smokeserver \"$smokeserv\"... "; - my $ua = LWP::UserAgent->new; - $ua->agent( "parrot-smokeserv-client/" . VERSION ); - $ua->env_proxy; - - my $resp = $ua->post( $smokeserv => \%request ); - if ( $resp->is_success ) { - if ( $resp->content =~ /^ok/ ) { - debug "success!\n"; - exit 0; - } - else { - debug "error: " . $resp->content . "\n"; - exit 1; - } - } - else { - debug "error: " . $resp->status_line . "\n"; - exit 1; - } -} - -sub usage { - print STDERR < is a Perl 5 program which submits smokes as generated by -the C make targets (C, C, C) to a public -smokeserver. - -C is the smokeserver which accepts the smokes submitted -by C. - -=head1 USAGE - -=head2 Client - -Using the client is easy. In the first place, you have to generate a -C. You can achieve this by running C: - - $ make smoke # or - $ make smoke-js # or - $ make smoke-perl5 # or - $ make smoke-pir - -Then you can upload the resulting smoke: - - $ ./tools/util/smokeserv-client.pl ./smoke.html - -You don't need to be careful to only submit a smoke only once, etc. -- the -smokeserver takes care of this. - -=head2 Server - -Setting up a server is easy, too, all you have to do is to install several CPAN -modules (C, C, C, C, C, -C, C, C, C, -and C) and change the constants at the top of -C. - -=head1 LICENSE - -This program is free software; you can redistribute it and/or modify it under -the same terms as Perl itself. See L and L for details. - -=cut Index: tools/util/smokeserv-server.pl =================================================================== --- tools/util/smokeserv-server.pl (revision 34094) +++ tools/util/smokeserv-server.pl (working copy) @@ -1,516 +0,0 @@ -#! perl -# Copyright (C) 2005-2008, The Perl Foundation. -# $Id$ -use strict; -use warnings; - -use CGI; -use CGI::Carp qw; -use Fcntl qw<:DEFAULT :flock>; -use Storable qw; -use Digest::MD5 qw; -use HTML::Template; -use Algorithm::TokenBucket; -use Time::Piece; -use Time::Seconds; - -require_compression_modules(); - -use constant { - VERSION => 0.4, - MAX_SIZE => 2**20 * 3.0, # MiB limit - BASEDIR => "/tmp/parrot_smokes/", - BASEHTTPDIR => "/", - BUCKET => "bucket.dat", - MAX_RATE => 1 / 30, # Allow a new smoke all 30s - BURST => 5, # Set max burst to 5 - MAX_SMOKES_OF_SAME_CATEGORY => 5, -}; -$CGI::POST_MAX = MAX_SIZE; -chdir BASEDIR or die "Couldn't chdir into \"@{[ BASEDIR ]}\": $!\n"; - -$SIG{PIPE} = "IGNORE"; - -my $t = do { local $/; }; - -my $CGI = new CGI; - -if ( $CGI->url( -path => 1 ) =~ /html$/ ) { - print $CGI->header; - my $file = $CGI->url( -absolute => 1, -path => 1 ); - my $basehttpdir = BASEHTTPDIR; - $file =~ s!^$basehttpdir!!; - die "Invalid File" - if $file =~ m!/|\.\.!; - if ( -e BASEDIR . "/" . $file ) { - open my $f, "<", BASEDIR . "/" . $file or die $!; - print do { local $/; <$f> }; - } -} -else { - if ( $CGI->param("upload") ) { - eval { process_upload($CGI) }; - } - else { - eval { process_list($CGI) }; - } -} - -exit; - -sub process_upload { - my $CGI = shift; - - print $CGI->header; - - limit_rate(); - validate_params($CGI); - add_smoke($CGI); - clean_obsolete_smokes(); - - print "ok"; -} - -sub validate_params { - my $CGI = shift; - - if ( not $CGI->param("version") or $CGI->param("version") != VERSION ) { - print "Versions do not match!"; - exit; - } - - if ( not $CGI->param("smoke") ) { - print "No smoke given!"; - exit; - } - - uncompress_smoke($CGI); - unless ( $CGI->param("smoke") =~ /^param( "smoke", - Compress::Zlib::memGunzip( $CGI->param("smoke") ) - || Compress::Bzip2::memBunzip( $CGI->param("smoke") ) - || $CGI->param("smoke") ); -} - -sub require_compression_modules { - no strict 'refs'; - eval { require Compress::Zlib } - or *Compress::Zlib::memGunzip = sub { return }; - eval { require Compress::Bzip2 } - or *Compress::Bzip2::memBunzip = sub { return }; -} - -sub add_smoke { - my $CGI = shift; - my $html = $CGI->param("smoke"); - - my $id = md5_hex $html; - if ( glob "parrot-smoke-*-$id.html" ) { - print "The submitted smoke was already submitted!"; - exit; - } - - my %smoke; - $html =~ /revision: (\d+)/ and $smoke{revision} = $1; - $html =~ /duration: (\d+)/ and $smoke{duration} = $1; - $html =~ /VERSION: ([\d\.]+)/ and $smoke{VERSION} = $1; - $html =~ /branch: ([\w\-]+)/ and $smoke{branch} = $1; - $html =~ /cpuarch: ([\w\d]+)/ and $smoke{cpuarch} = $1; - $html =~ /osname: ([\w\d]+)/ and $smoke{osname} = $1; - $html =~ /cc: ([\w\d]+)/ and $smoke{cc} = $1; - $html =~ /DEVEL: -?(\w+)/ and $smoke{DEVEL} = $1; - $html =~ /harness_args: (.+)$/m and $smoke{harness_args} = $1; - $html =~ /build_dir: (.+)$/m and $smoke{build_dir} = $1; - $html =~ -/summary="(\d+) test cases: (\d+) ok, (\d+) failed, (\d+) todo, (\d+) skipped and (\d+) unexpectedly succeeded"/ - and $smoke{summary} = { - total => $1, - ok => $2, - failed => $3, - todo => $4, - skipped => $5, - unexpect => $6, - }; - - if ( grep { not $smoke{$_} } qw ) { - print "The submitted smoke has an invalid format!"; - exit; - } - - $smoke{runcore} = runcore_from_args( $smoke{harness_args} ); - $smoke{revision} ||= 0; - $smoke{timestamp} = time; - $smoke{id} = $id; - my $filename = pack_smoke(%smoke); - - open my $fh, ">", $filename - or die "Couldn't open \"$filename\" for writing: $!\n"; - print $fh $html - or die "Couldn't write to \"$filename\": $!\n"; - close $fh - or die "Couldn't close \"$filename\": $!\n"; -} - -sub clean_obsolete_smokes { - my $category = sub { - return join "-", ( map { $_[0]->{$_} } - qw ), - $_[0]->{DEVEL} eq "devel" ? "dev" : "release",; - }; - - my %cats; - my @smokes = map { unpack_smoke($_) } glob "parrot-smoke-*.html"; - push @{ $cats{ $category->($_) } }, $_ for @smokes; - - $cats{$_} = [ - ( - sort { $b->{revision} <=> $a->{revision} || $b->{timestamp}[0] <=> $a->{timestamp}[0] } - @{ $cats{$_} } - )[ 0 .. MAX_SMOKES_OF_SAME_CATEGORY- 1 ] - ] - for keys %cats; - - my %delete = map { $_->{filename} => 1 } @smokes; - for ( map { @$_ } values %cats ) { - next unless $_; - - delete $delete{ $_->{filename} }; - } - - unlink keys %delete; -} - -sub process_list { - my $CGI = shift; - my $tmpl = HTML::Template->new( scalarref => \$t, die_on_bad_params => 0 ); - - print $CGI->header; - - my $category = sub { - return sprintf "%s / %s runcore on %s-%s-%s", - $_[0]->{DEVEL} eq "devel" ? "repository snapshot" : "release", - runcore2human( $_[0]->{runcore} ), $_[0]->{cpuarch}, $_[0]->{osname}, $_[0]->{cc},; - }; - - my @smokes = map { unpack_smoke($_) } glob "parrot-smoke-*.html"; - my %branches; - push @{ $branches{ $_->{branch} }{ $category->($_) } }, $_ for @smokes; - - foreach my $branch ( keys %branches ) { - foreach my $cat ( keys %{ $branches{$branch} } ) { - $branches{$branch}{$cat} = [ - map { - { %$_, timestamp => $_->{timestamp}[1] } - } - sort { - $b->{revision} <=> $a->{revision} - || lc $a->{osname} cmp lc $b->{osname} - || $b->{timestamp}[0] <=> $a->{timestamp}[0] - } @{ $branches{$branch}{$cat} } - ]; - } - - $branches{$branch} = [ - map { { catname => $_, smokes => $branches{$branch}{$_}, } } - sort { lc $a cmp lc $b } keys %{ $branches{$branch} } - ]; - } - - $tmpl->param( - branches => my $p = [ - map { { name => $_, categories => $branches{$_}, } } - sort { ( $a eq "trunk" ? -1 : 0 ) || ( $b eq "trunk" ? 1 : 0 ) || ( $a cmp $b ) } - keys %branches - ] - ); - print $tmpl->output; -} - -sub pack_smoke { - my %smoke = @_; - - my $summary = join( "-", map { $smoke{summary}{$_} } - qw ); - my $args = unpack( "H*", $smoke{harness_args} ); - -# 1 2 3 4 5 6 7 8 9 10 ... - my $str = -"parrot-smoke---r-----------$summary--$args--.html"; - - $str =~ s/<(.+?)>/$smoke{$1}/g; - - $str; -} - -sub unpack_smoke { - my $name = shift; - - /^parrot-smoke-([\d\.]+) # 1 VERSION - -(\w+) # 2 DEVEL - -r(\d+) # 3 revision - -([\w\-]+) # 4 branch - --([\w\d]+) # 5 cpuarch - -([\w\d]+) # 6 osname - -([\w\d]+) # 7 cc - -(\w+) # 8 runcore - --(\d+) # 9 timestamp - -(\d+) # 10 duration - --(\d+) # 11 total - -(\d+) # 12 ok - -(\d+) # 13 failed - -(\d+) # 14 todo - -(\d+) # 15 skipped - -(\d+) # 16 unexpected - --([a-f0-9]+) # 17 harness_args - --([a-f0-9]+) # 18 id - .html$/x - and return { - VERSION => $1, - DEVEL => $2, - revision => $3, - branch => $4, - cpuarch => $5, - osname => $6, - cc => $7, - runcore => $8, - timestamp => [ - $9, - do { - my $str = gmtime($9)->strftime("%d %b %Y %H:%M %a"); - $str =~ s/ / /g; - - # hack, to make the timestamps not break so the - # smoke reports look good even on 640x480 - $str; - }, - ], - duration => sprintf( "%.02f", - Time::Seconds->new($10)->minutes ) . " min", - summary => [ - { - total => $11, - ok => $12, - failed => $13, - todo => $14, - skipped => $15, - unexpect => $16, - } - ], - percentage => sprintf( "%.02f", $12 / ( $11 || 1 ) * 100 ), - harness_args => pack( "H*", $17 ), - id => $18, - filename => $name, - link => BASEHTTPDIR . $name, - }; - return (); -} - -sub runcore2human { - my %runcore = ( - goto => "computed goto", - jit => "JIT", - cgp => "CGP", - switch => "switch", - fast => "fast", - default => "default", - ); - - $runcore{ $_[0] }; -} - -sub runcore_from_args { - local $_ = shift; - - /\b-g\b/ and return "goto"; - /\b-j\b/ and return "jit"; - /\b-C\b/ and return "cgp"; - /\b-S\b/ and return "switch"; - /\b-f\b/ and return "fast"; - return "default"; -} - -# Rate limiting -sub limit_rate { - - # Open the DB and lock it exclusively. See perldoc -q lock. - sysopen my $fh, BUCKET, O_RDWR | O_CREAT - or die "Couldn't open \"@{[ BUCKET ]}\": $!\n"; - flock $fh, LOCK_EX - or die "Couldn't flock \"@{[ BUCKET ]}\": $!\n"; - - my $data = eval { fd_retrieve $fh }; - $data ||= [ MAX_RATE, BURST ]; - my $bucket = Algorithm::TokenBucket->new(@$data); - - my $exit; - unless ( $bucket->conform(1) ) { - print "Rate limiting -- please wait a bit and try again, thanks."; - $exit++; - } - $bucket->count(1); - - seek $fh, 0, 0 or die "Couldn't rewind \"@{[ BUCKET ]}\": $!\n"; - truncate $fh, 0 or die "Couldn't truncate \"@{[ BUCKET ]}\": $!\n"; - - store_fd [ $bucket->state ] => $fh - or die "Couldn't serialize bucket to \"@{[ BUCKET ]}\": $!\n"; - - exit if $exit; -} - -# Local Variables: -# mode: cperl -# cperl-indent-level: 4 -# fill-column: 100 -# End: -# vim: expandtab shiftwidth=4: - -__DATA__ - - - - - Parrot Smoke Reports - - - - - - - - -

Parrot Smoke Reports

- -

- Here's a list of recently submitted Parrot smoke reports. These smokes are - automatically generated and show how various runcores are functioning across - a variety of platforms. Individual languages targetting parrot (e.g. tcl), - are also available. -

- -

- Submitting your own smoke is easy, -

- -
$ make smoke
-
- -

- should suffice. To test the languages that are shipped with parrot, change - to the languages directory and issue the same command. -

- -

- Note that old smoke reports are automatically deleted, so you may not want - to link directly to a smoke. -

- -

- Note: Timezone is UTC.
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parrot  - - r - -  % ok:,,,,»»
- - test cases:
- ok, - failed, - todo,
- skipped and - unexpectedly succeeded -

- View full smoke report -
- - Index: MANIFEST =================================================================== --- MANIFEST (revision 34094) +++ MANIFEST (working copy) @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools\dev\mk_manifest_and_skip.pl Wed Dec 17 21:37:57 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Fri Dec 19 03:05:24 2008 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -1555,6 +1555,7 @@ languages/ecmascript/src/parser/grammar.pg [ecmascript] languages/ecmascript/t/00-comments.t [ecmascript] languages/ecmascript/t/01-literals.t [ecmascript] +languages/ecmascript/t/02-operators.t [ecmascript] languages/ecmascript/t/harness [ecmascript] languages/forth/MAINTAINER [forth] languages/forth/config/makefiles/root.in [forth] @@ -3780,9 +3781,6 @@ tools/util/perltidy.conf [] tools/util/pgegrep [] tools/util/release.json [] -tools/util/smokeserv-README.pod [] -tools/util/smokeserv-client.pl [] -tools/util/smokeserv-server.pl [] tools/util/templates.json [] tools/util/update_copyright.pl [] xconf/samples/testfoobar [] Index: lib/Parrot/Harness/Smoke.pm =================================================================== --- lib/Parrot/Harness/Smoke.pm (revision 34094) +++ lib/Parrot/Harness/Smoke.pm (working copy) @@ -3,7 +3,7 @@ =head1 NAME -Parrot::Harness::Smoke - Subroutines used by harness-skripts to generate smoke reports +Parrot::Harness::Smoke - Subroutines used by harness-scripts to generate smoke reports =head1 DESCRIPTION @@ -12,12 +12,6 @@ Following subroutines are supported: - generate_html_smoke_report ( - tests => \@tests, - args => $args, - file => 'smoke.html', - ); - my %env_data = collect_test_environment_data(); send_archive_to_smolder( %env_data ); @@ -33,7 +27,6 @@ use Parrot::Config qw/%PConfig/; use base qw( Exporter ); our @EXPORT_OK = qw( - generate_html_smoke_report collect_test_environment_data send_archive_to_smolder ); @@ -119,73 +112,6 @@ return $compiler; } -sub generate_html_smoke_report { - my $argsref = shift; - my $html_fn = $argsref->{file}; - my @smoke_config_vars = qw( - osname archname cc build_dir cpuarch revision VERSION optimize DEVEL - ); - - eval { - require Test::TAP::HTMLMatrix; - require Test::TAP::Model::Visual; - }; - die "You must have Test::TAP::HTMLMatrix installed.\n\n$@" - if $@; - - { - no warnings qw/redefine once/; - *Test::TAP::Model::run_tests = sub { - my $self = shift; - - $self->_init; - $self->{meat}{start_time} = time(); - - my %stats; - - foreach my $file (@_) { - my $data; - print STDERR "- $file\n"; - $data = $self->run_test($file); - $stats{tests} += $data->{results}{max} || 0; - $stats{ok} += $data->{results}{ok} || 0; - } - - printf STDERR "%s OK from %s tests (%.2f%% ok)\n\n", - $stats{ok}, - $stats{tests}, - $stats{ok} / $stats{tests} * 100; - - $self->{meat}{end_time} = time(); - }; - - my $start = time(); - my $model = Test::TAP::Model::Visual->new(); - $model->run_tests( @{ $argsref->{tests} } ); - - my $end = time(); - - my $duration = $end - $start; - - my $v = Test::TAP::HTMLMatrix->new( - $model, - join("\n", - "duration: $duration", - "branch: unknown", - "harness_args: " . (($argsref->{args}) ? $argsref->{args} : "N/A"), - map { "$_: $PConfig{$_}" } sort @smoke_config_vars), - ); - - $v->has_inline_css(1); # no separate css file - - open my $HTML, '>', $html_fn; - print {$HTML} $v->html(); - close $HTML; - - print "$html_fn has been generated.\n"; - } -} - 1; # Local Variables: Index: t/harness =================================================================== --- t/harness (revision 34094) +++ t/harness (working copy) @@ -22,7 +22,6 @@ Usage ); use Parrot::Harness::Smoke qw( - generate_html_smoke_report send_archive_to_smolder collect_test_environment_data ); @@ -64,60 +63,50 @@ @tests = map { glob($_) } (@ARGV ? @ARGV : @default_tests); } -if ($longopts->{html}) { - generate_html_smoke_report( +my $harness; +if ($longopts->{archive}) { + eval { require TAP::Harness::Archive }; + if ($@) { + die "\n" . ('-' x 55) . "\nCould not load TAP::Harness::Archive." + . "\nPlease install it if you want to create TAP archives.\n" + . ('-' x 55) . "\n\n$@\n"; + } + # for extra_properties we need TAP::Harness::Archive >= .10 + if ($TAP::Harness::Archive::VERSION < .10) { + die "\n" . ('-' x 55) . "\nWe need TAP::Harness::Archive >= .10." + . "\nPlease install it if you want to create TAP archives.\n" + . ('-' x 55) . "\n"; + } + + my %env_data = collect_test_environment_data(); + $harness = TAP::Harness::Archive->new( { - tests => \@tests, - args => $args, - file => 'smoke.html', + verbosity => $ENV{HARNESS_VERBOSE}, + archive => 'parrot_test_run.tar.gz', + merge => 1, + extra_properties => \%env_data, } ); -} else { - my $harness; - if ($longopts->{archive}) { - eval { require TAP::Harness::Archive }; - if ($@) { - die "\n" . ('-' x 55) . "\nCould not load TAP::Harness::Archive." - . "\nPlease install it if you want to create TAP archives.\n" - . ('-' x 55) . "\n\n$@\n"; - } - # for extra_properties we need TAP::Harness::Archive >= .10 - if ($TAP::Harness::Archive::VERSION < .10) { - die "\n" . ('-' x 55) . "\nWe need TAP::Harness::Archive >= .10." - . "\nPlease install it if you want to create TAP archives.\n" - . ('-' x 55) . "\n"; - } + $harness->runtests(@tests); + send_archive_to_smolder(%env_data) if $longopts->{send_to_smolder}; - my %env_data = collect_test_environment_data(); - $harness = TAP::Harness::Archive->new( - { - verbosity => $ENV{HARNESS_VERBOSE}, - archive => 'parrot_test_run.tar.gz', - merge => 1, - extra_properties => \%env_data, - } - ); - $harness->runtests(@tests); - send_archive_to_smolder(%env_data) if $longopts->{send_to_smolder}; - +} else { + eval { require TAP::Harness }; + if ($@) { + Test::Harness::runtests(@tests); + exit; } else { - eval { require TAP::Harness }; - if ($@) { - Test::Harness::runtests(@tests); - exit; - } else { - $harness = TAP::Harness->new({ - verbosity => $ENV{HARNESS_VERBOSE}, - merge => 0, - jobs => $ENV{TEST_JOBS} || 1, - directives => 1, - }); - } - my $results = $harness->runtests(@tests); - - # a non-zero code stops make after test failures (RT #60116) - exit ( $results->all_passed() ? 0 : 1 ); + $harness = TAP::Harness->new({ + verbosity => $ENV{HARNESS_VERBOSE}, + merge => 0, + jobs => $ENV{TEST_JOBS} || 1, + directives => 1, + }); } + my $results = $harness->runtests(@tests); + + # a non-zero code stops make after test failures (RT #60116) + exit ( $results->all_passed() ? 0 : 1 ); } =head1 NAME @@ -194,10 +183,6 @@ Invoke parrot with '--gc-debug'. -=item C<--html> - -Emit a C file instead of displaying results. - =item C<--code-tests> Run only the file metadata and basic coding standards tests. Index: config/gen/makefiles/root.in =================================================================== --- config/gen/makefiles/root.in (revision 34094) +++ config/gen/makefiles/root.in (working copy) @@ -689,13 +689,8 @@ @echo " examples_tests: Test the example scripts." @echo "" @echo "Smoke Testing:" - @echo " smoke: Run the test suite and send smoke.html to " - @echo " http:////smoke.parrotcode.org//" - @echo " smokej: Same as smoke, but with JIT runcore" - @echo " smokeexec: Same as smoke, but generate first executables" - @echo " with the exec runcore" - @echo " smoke-clean: clean up smoke.html" @echo " smolder_test: Run the test suite and send report to the smolder server" + @echo " smoke: Alias for smolder_test" @echo "" @echo "Benchmarks:" @echo " mopsbench: Million operations" @@ -724,7 +719,6 @@ @echo " languages-test: Proxy for target 'test' of languages/Makefile" @echo " languages-test-unified: Proxy for target 'test-unified' of languages/Makefile" @echo " languages-test-separate: Proxy for target 'test-separate' of languages/Makefile" - @echo " languages-smoke: Proxy for target 'smoke' of languages/Makefile" @echo " languages-clean: Proxy for target 'clean' of languages/Makefile" @echo "" @echo "Fetch from source repository:" @@ -1371,9 +1365,6 @@ languages-test-separate : $(MAKE) languages test-separate -languages-smoke : - $(MAKE) languages smoke - languages-clean : $(MAKE) languages clean @@ -1465,10 +1456,6 @@ test : test_prep $(PERL) t/harness $(EXTRA_TEST_ARGS) -# run the test suite, create a TAP archive and send it off to smolder -smolder_test : test_prep - $(PERL) t/harness $(EXTRA_TEST_ARGS) --archive --send-to-smolder - # "core tests" -- test basic functionality but not ancillaries coretest : test_prep $(PERL) t/harness $(EXTRA_TEST_ARGS) --core-tests @@ -1608,7 +1595,6 @@ examples-clean \ imcc-clean \ compilers-clean \ - smoke-clean \ #INVERSE_CONDITIONED_LINE(win32): cover-clean \ editor-clean @TEMP_cg_r@ @@ -2269,25 +2255,17 @@ ############################################################################### # -# smoke: +# smolder # ############################################################################### -smoke : all - $(PERL) t/harness --html $(EXTRA_TEST_ARGS) - $(PERL) tools/util/smokeserv-client.pl smoke.html -smokej : all - $(PERL) t/harness --html $(EXTRA_TEST_ARGS) -j - $(PERL) tools/util/smokeserv-client.pl smoke.html +# run the test suite, create a TAP archive and send it off to smolder +smolder_test : test_prep + $(PERL) t/harness $(EXTRA_TEST_ARGS) --archive --send-to-smolder -smokeexec: all - $(PERL) t/harness --html $(EXTRA_TEST_ARGS) --run-exec $(RUNCORE_TEST_FILES) - $(PERL) tools/util/smokeserv-client.pl smoke.html +smoke : smolder_test -smoke-clean : - $(RM_F) smoke.html - # # Local variables: # mode: makefile Index: config/gen/makefiles/ext.in =================================================================== --- config/gen/makefiles/ext.in (revision 34094) +++ config/gen/makefiles/ext.in (working copy) @@ -32,12 +32,6 @@ @echo "" @echo " help: Print this help message." @echo "" - @echo " smoke: Run the test suite and send smoke.html to " - @echo " http:////smoke.parrotcode.org//" - @echo "" - @echo " smoke-clean: clean up smoke.html" - @echo "" - @echo "" @echo "Following languages are available:" @echo " $(LANGUAGES)" @echo "A particular language can be built, tested and cleand up" Index: config/gen/makefiles/languages.in =================================================================== --- config/gen/makefiles/languages.in (revision 34094) +++ config/gen/makefiles/languages.in (working copy) @@ -50,12 +50,6 @@ @echo "" @echo " help: Print this help message." @echo "" - @echo " smoke: Run the unified test suite and send smoke.html to " - @echo " http:////smoke.parrotcode.org//" - @echo "" - @echo " smoke-clean: clean up smoke.html" - @echo "" - @echo "" @echo "Following languages are available:" @echo " $(LANGUAGES)" @echo "" @@ -97,13 +91,6 @@ Zcode.test -smoke: all - $(PERL) t/harness --html - $(PERL) ../tools/util/smokeserv-client.pl languages_smoke.html - -smoke-clean : - $(RM_F) languages_smoke.html - clean: \ abc.clean APL.clean \ BASIC.clean befunge.clean bf.clean \ @@ -122,8 +109,7 @@ scheme.clean squaak.clean \ urm.clean \ WMLScript.clean \ - Zcode.clean \ - smoke-clean + Zcode.clean realclean: \ abc.realclean APL.realclean \ Index: languages/LANGUAGES_STATUS.pod =================================================================== --- languages/LANGUAGES_STATUS.pod (revision 34094) +++ languages/LANGUAGES_STATUS.pod (working copy) @@ -10,9 +10,6 @@ should be tracked in the respective languages/*/MAINTAINER files, and we don't want to repeat ourselves. -For current status of some languages see also -L - Languages that work with the unified languages test suite will have their test results listed under the smokes marked 'languages'. Index: languages/t/harness =================================================================== --- languages/t/harness (revision 34094) +++ languages/t/harness (working copy) @@ -26,14 +26,6 @@ cd languages && make test -=item Smoke testing - - make languages-smoke - -or - - cd languages && make smoke - =item Selected languages cd languages && perl t/harness --languages=m4,punie @@ -66,14 +58,12 @@ # Step 0: handle command line args -my $do_gen_html; # smoke testing my $languages_list; # select a subset of languages -my $result = GetOptions( 'html' => \$do_gen_html, - 'languages=s' => \$languages_list ); +my $result = GetOptions( 'languages=s' => \$languages_list ); # Step 1: find harness files for testable languages -# Various languages are not yet in smoke testing, some will never be. +# Various languages are not yet in unified testing, some will never be. # # BASIC No t/harness, two implementations # ecmascript No t/harness @@ -125,74 +115,8 @@ # Step 3: test. -if ( ! $do_gen_html ) { - Test::Harness::runtests(@tests); -} -else { - my $html_fn = "languages_smoke.html"; - my @smoke_config_vars = qw( - osname archname cc build_dir cpuarch revision VERSION optimize DEVEL - ); +Test::Harness::runtests(@tests); - eval { - require Test::TAP::HTMLMatrix; - require Test::TAP::Model::Visual; - }; - die "You must have Test::TAP::HTMLMatrix installed.\n\n$@" - if $@; - - { - no warnings qw/redefine once/; - *Test::TAP::Model::run_tests = sub { - my $self = shift; - - $self->_init; - $self->{meat}{start_time} = time(); - - my %stats; - - foreach my $file (@_) { - my $data; - print STDERR "- $file\n"; - $data = $self->run_test($file); - $stats{tests} += $data->{results}{max} || 0; - $stats{ok} += $data->{results}{ok} || 0; - } - - printf STDERR "%s OK from %s tests (%.2f%% ok)\n\n", - $stats{ok}, - $stats{tests}, - $stats{ok} / $stats{tests} * 100; - - $self->{meat}{end_time} = time(); - }; - - my $start = time(); - my $model = Test::TAP::Model::Visual->new_with_tests(@tests); - my $end = time(); - - my $duration = $end - $start; - my $languages = join( q{ }, @unified_testable_languages ); - my $v = Test::TAP::HTMLMatrix->new( - $model, - join("\n", - "languages: $languages", - "duration: $duration", - "branch: unknown", - "harness_args: languages", - map { "$_: $PConfig{$_}" } sort @smoke_config_vars), - ); - - $v->has_inline_css(1); # no separate css file - - open HTML, '>', $html_fn; - print HTML $v->html(); - close HTML; - - print "$html_fn has been generated.\n"; - } -} - # Local Variables: # mode: cperl # cperl-indent-level: 4