-
Notifications
You must be signed in to change notification settings - Fork 138
/
harness
122 lines (82 loc) · 2.38 KB
/
harness
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#! perl -w
# Copyright: 2001-2003 The Perl Foundation. All Rights Reserved.
# $Id$
=head1 NAME
t/harness - Parrot Test Harness
=head1 SYNOPSIS
% perl t/harness [options] [testfiles]
=head1 DESCRIPTION
Command-line options are:
=over 4
=item C<-w>
Turn warnings on.
=item C<-g>
Run the C<CGoto> core.
=item C<-j>
Run with JIT enabled.
=item C<-P>
Run the C<Prederef> core.
=item C<-P> (sic)
Run the C<CGP> core.
=item C<-S>
Run Switched.
=item C<-b>
Run bounds checking enabled.
=item C<-d>
Run with debugging enabled.
=item C<-r>
assemble to Parrot bytecode and then run the bytecode.
=item C<-O[012]>
Run optimized to the specified level.
=back
=cut
use strict;
use lib qw(lib imcc);
use Getopt::Std;
use Test::Harness qw(runtests);
# handle the long options
$ENV{RUNNING_MAKE_TEST} = grep { $_ eq '--running-make-test' } @ARGV;
@ARGV = grep { $_ ne '--running-make-test' } @ARGV;
$ENV{PARROT_QUICKTEST} = grep { $_ eq 'quick' } @ARGV;
@ARGV = grep { $_ ne 'quick' } @ARGV;
my $gc_debug = grep { $_ eq '--gc-debug' } @ARGV;
@ARGV = grep { $_ ne '--gc-debug' } @ARGV;
my $run_pbc = grep { $_ eq '--run-pbc' } @ARGV;
@ARGV = grep { $_ ne '--run-pbc' } @ARGV;
# Suck the short options into the TEST_PROG_ARGS evar:
my %opts;
getopts('wgjPCSbvdr?hO:', \%opts);
if ($opts{'?'} || $opts{h}) {
print <<"EOF";
perl t/harness [options] [testfiles]
-w ... warnings on
-g ... run CGoto
-j ... run JIT
-P ... run Prederef
-P ... run CGP
-S ... run Switched
-b ... run bounds checked
-v ... run verbose
-d ... run debug
-r ... assemble to PBC run PBC
-O[012] optimize
EOF
exit;
}
my $args = join(' ', map { "-$_" } keys %opts );
$args =~ s/-O/-O$opts{O}/ if ($opts{O});
$args .= ' --gc-debug' if $gc_debug;
$args .= ' --run-pbc' if $run_pbc;
$ENV{TEST_PROG_ARGS} = $args;
# Pass in a list of tests to run on the command line, else run all the tests.
my @default_tests = ( ( map { glob( "t/$_/*.t" ) } qw(op pmc native_pbc) ),
glob( "imcc/t/*/*.t" ),
glob( "t/src/*.t" ),
);
my @tests = @ARGV ? map { glob( $_ ) } @ARGV : @default_tests;
runtests(@tests);
=head1 HISTORY
Mike Lambert stole F<t/harness> for F<languages/perl6/t/harness>.
Leo Toetsch stole F<languages/perl6/t/harness> for F<imcc/t/harness>.
Bernhard Schmalhofer merged F<imcc/t/harness> back into F<t/harness>.
=cut