on master help sign in
Merge pull request #2853 from jfdm/time-tests
9c99198Jan de Muijnck-Hughes
@@ -36,6 +36,9 @@ test_all:
36 $(MAKE) test_llvm
36 $(MAKE) test_llvm
37 $(MAKE) test_java
37 $(MAKE) test_java
38
38
39+test_timed:
40+ $(MAKE) -C test IDRIS=../dist/build/idris time
41+
39lib_clean:
42lib_clean:
40 $(MAKE) -C libs IDRIS=../../dist/build/idris/idris RTS=../../dist/build/rts/libidris_rts clean
43 $(MAKE) -C libs IDRIS=../../dist/build/idris/idris RTS=../../dist/build/rts/libidris_rts clean
41
44
test/Makefile+4−1
@@ -1,4 +1,4 @@
1−.PHONY: test test_java test_js update diff distclean $(TESTS)
1+.PHONY: test test_java test_js time update diff distclean $(TESTS)
2
2
3TESTS = $(sort $(patsubst %/,%.test,$(wildcard */)))
3TESTS = $(sort $(patsubst %/,%.test,$(wildcard */)))
4
4
@@ -16,6 +16,9 @@ update:
16diff:
16diff:
17 /usr/bin/env perl ./runtest.pl all -d
17 /usr/bin/env perl ./runtest.pl all -d
18
18
19+time:
20+ /usr/bin/env perl ./runtest.pl all -t
21+
19distclean:
22distclean:
20 rm -f *~
23 rm -f *~
21 rm -f */output
24 rm -f */output
test/runtest.pl+25−6
@@ -49,16 +49,24 @@ sub sandbox_path {
49# output and report results.
49# output and report results.
50#
50#
51sub runtest {
51sub runtest {
52− my ($test, $update) = @_;
52+ my ($test, $update, $showTime) = @_;
53
53
54 my $sandbox = sandbox_path($test);
54 my $sandbox = sandbox_path($test);
55
55
56 chdir($test);
56 chdir($test);
57
57
58+ my $startTime = time();
58 print "Running $test...\n";
59 print "Running $test...\n";
59 my $got = `$sandbox ./run @idrOpts`;
60 my $got = `$sandbox ./run @idrOpts`;
60 my $exp = `cat expected`;
61 my $exp = `cat expected`;
61
62
63+ my $endTime = time();
64+ my $elapsedTime = $endTime - $startTime;
65+
66+ if ($showTime == 1 ){
67+ printf("Duration of $test was %d\n", $elapsedTime);
68+ }
69+
62 # Allow for variant expected output for tests by overriding expected
70 # Allow for variant expected output for tests by overriding expected
63 # when there is an expected.<os> file in the test.
71 # when there is an expected.<os> file in the test.
64 # This should be the exception but there are sometimes valid reasons
72 # This should be the exception but there are sometimes valid reasons
@@ -155,15 +163,17 @@ else {
155
163
156# Run the tests.
164# Run the tests.
157
165
158−my $update = 0;
166+my $update = 0;
159−my $diff = 0;
167+my $diff = 0;
160−my $show = 0;
168+my $show = 0;
161−my $usejava = 0;
169+my $usejava = 0;
170+my $showTime = 0;
162
171
163while (my $opt = shift @opts) {
172while (my $opt = shift @opts) {
164 if ($opt eq "-u") { $update = 1; }
173 if ($opt eq "-u") { $update = 1; }
165 elsif ($opt eq "-d") { $diff = 1; }
174 elsif ($opt eq "-d") { $diff = 1; }
166 elsif ($opt eq "-s") { $show = 1; }
175 elsif ($opt eq "-s") { $show = 1; }
176+ elsif ($opt eq "-t") { $showTime = 1; }
167 else { push(@idrOpts, $opt); }
177 else { push(@idrOpts, $opt); }
168}
178}
169
179
@@ -171,9 +181,11 @@ my $idris = $ENV{IDRIS};
171my $path = $ENV{PATH};
181my $path = $ENV{PATH};
172$ENV{PATH} = cwd() . "/" . $idris . ":" . $path;
182$ENV{PATH} = cwd() . "/" . $idris . ":" . $path;
173
183
184+my $startTime = time();
185+
174foreach my $test (@tests) {
186foreach my $test (@tests) {
175 if ($diff == 0 && $show == 0) {
187 if ($diff == 0 && $show == 0) {
176− runtest($test,$update);
188+ runtest($test,$update,$showTime);
177 }
189 }
178 else {
190 else {
179 chdir $test;
191 chdir $test;
@@ -192,4 +204,11 @@ foreach my $test (@tests) {
192 }
204 }
193}
205}
194
206
207+my $endTime = time();
208+my $elapsedTime = $endTime - $startTime;
209+
210+if ($showTime == 1) {
211+ printf("Duration of Entire Test Suite was %d\n", $elapsedTime);
212+}
213+
195exit $exitstatus;
214exit $exitstatus;