-
Notifications
You must be signed in to change notification settings - Fork 88
/
create_gold
executable file
·56 lines (43 loc) · 1.34 KB
/
create_gold
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
#!/usr/bin/perl
# Copyright 2002-2016, Paul Johnson (paul@pjcj.net)
# This software is free. It is licensed under the same terms as Perl itself.
# The latest version of this software should be available from my homepage:
# http://www.pjcj.net
require 5.8.1;
use strict;
use warnings;
# VERSION
use blib;
use Config;
exit if $Config{useithreads};
use Devel::Cover::Test;
my @tests = @ARGV;
mkdir "test_output" unless -d "test_output";
mkdir "test_output/cover" unless -d "test_output/cover";
unless (@tests) {
opendir D, "tests" or die "Cannot opendir tests: $!";
for my $t (sort readdir D) {
next unless -f "tests/$t";
next if $t =~ /\.(pm|pl|uncoverable|version|org|bak)$/;
next if $t =~ /~$/;
push @tests, $t;
}
closedir D or die "Cannot closedir tests: $!";
}
for my $test (@tests) {
my $e = "t/e2e";
my ($file) = grep -e, "$e/$test", "$e/a$test.t";
$file ||= $test;
print STDERR "creating golden results for $test: ";
# print "requiring [$file]\n";
die "Can't fork" unless defined(my $pid = fork);
if ($pid) {
waitpid $pid, 0;
} else {
no warnings "redefine";
local *Devel::Cover::Test::run_test = sub {};
my $t = require $file or die "Can't require $file: $!";
$t->create_gold && print STDERR "\n";
exit;
}
}