Skip to content

Commit 7a254d7

Browse files
committed
Factor out logic to find test files.
Closes #1749
1 parent 230e421 commit 7a254d7

12 files changed

+57
-148
lines changed

lib/Test-Files.pm

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
unit class Test-Files;
2+
3+
method files() {
4+
my @files;
5+
6+
if @*ARGS {
7+
@files = @*ARGS;
8+
} else {
9+
if %*ENV<TEST_FILES> {
10+
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
11+
} else {
12+
@files = qx<git ls-files>.lines;
13+
}
14+
}
15+
return @files;
16+
}
17+
18+
# vim: expandtab shiftwidth=4 ft=perl6

t/pod-valid.t

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,17 @@
33
use v6;
44
use Test;
55
use lib 'lib';
6+
use Test-Files;
67

78
=begin overview
89
910
Insure any text that isn't a code example has valid POD6
1011
1112
=end overview
1213

13-
my @files;
1414
my $max-jobs = %*ENV<TEST_THREADS> // 2;
1515

16-
if @*ARGS {
17-
@files = @*ARGS;
18-
} else {
19-
if %*ENV<TEST_FILES> {
20-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
21-
} else {
22-
@files = qx<git ls-files>.lines;
23-
}
24-
}
25-
@files = @files.grep(/'.pod6'$/);
16+
my @files = Test-Files.files.grep({$_.ends-with: '.pod6'});
2617

2718
plan +@files;
2819

t/pod6.t

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,12 @@
33
use v6;
44
use Test;
55
use lib 'lib';
6+
use Test-Files;
67

7-
my @files;
8+
my @files = Test-Files.files;
89

9-
if @*ARGS {
10-
@files = @*ARGS;
11-
} else {
12-
if %*ENV<TEST_FILES> {
13-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
14-
} else {
15-
@files= qx<git ls-files>.lines;
16-
}
17-
}
10+
my @pod-only-files = @files.grep({$_.ends-with: '.pod'}) ;
1811

19-
my @pod-only-files = @files.grep( {/ '.pod' $/} ) ;
2012
plan 1;
2113
is @pod-only-files.elems, 0, "no .pod files, only .pod6" ;
2214

t/tabs.t

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,14 @@
33
use v6;
44
use Test;
55
use lib 'lib';
6+
use Test-Files;
67

7-
my @files;
8-
9-
if @*ARGS {
10-
@files = @*ARGS;
11-
} else {
12-
if %*ENV<TEST_FILES> {
13-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
14-
} else {
15-
@files = qx<git ls-files>.lines;
16-
}
17-
}
18-
@files = @files.grep({$_ ne 'LICENSE'|'Makefile'})\
19-
.grep({! $_.contains('custom-theme')})\
20-
.grep({! $_.contains('jquery')})\
21-
.grep({! $_.ends-with('.png')})\
22-
.grep({! $_.ends-with('.ico')});
8+
my @files = Test-Files.files\
9+
.grep({$_ ne 'LICENSE'|'Makefile'})\
10+
.grep({! $_.contains('custom-theme')})\
11+
.grep({! $_.contains('jquery')})\
12+
.grep({! $_.ends-with('.png')})\
13+
.grep({! $_.ends-with('.ico')});
2314

2415
plan +@files;
2516

xt/aspell.t

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use v6;
44
use Test;
55
use lib 'lib';
6+
use Test-Files;
67

78
=begin overview
89
@@ -19,20 +20,9 @@ text that is part of a code example)
1920
2021
=end overview
2122

22-
my @files;
23-
24-
if @*ARGS {
25-
@files = @*ARGS;
26-
} else {
27-
if %*ENV<TEST_FILES> {
28-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
29-
} else {
30-
@files = qx<git ls-files>.lines;
31-
}
32-
}
33-
34-
@files = @files.grep({$_.ends-with('.pod6') or $_.ends-with('.md')})\
35-
.grep({! $_.ends-with('contributors.pod6')});
23+
my @files = Test-Files.files\
24+
.grep({$_.ends-with: '.pod6' or $_.ends-with: '.md'})\
25+
.grep({! $_.ends-with: 'contributors.pod6'});
3626

3727
plan +@files;
3828
my $max-jobs = %*ENV<TEST_THREADS> // 2;

xt/double-dots.t

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,15 @@
33
use v6;
44
use Test;
55
use lib 'lib';
6+
use Test-Files;
67

78
=begin overview
89
910
Avoid using C<..> - usually a typo for C<.> or C<...>
1011
1112
=end overview
1213

13-
my @files;
14-
15-
if @*ARGS {
16-
@files = @*ARGS;
17-
} else {
18-
if %*ENV<TEST_FILES> {
19-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
20-
} else {
21-
@files = qx<git ls-files>.lines;
22-
}
23-
}
24-
25-
@files = @files.grep({$_.ends-with('.pod6') or $_.ends-with('.md')});
14+
my @files = Test-Files.files.grep({$_.ends-with: '.pod6' or $_.ends-with: '.md'});
2615

2716
plan +@files;
2817
my $max-jobs = %*ENV<TEST_THREADS> // 2;

xt/duplicates.t

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use v6;
44
use Test;
55
use lib 'lib';
6+
use Test-Files;
67

78
=begin overview
89
@@ -17,19 +18,9 @@ Allow a few well known duplicates, like 'long long'
1718
1819
=end overview
1920

20-
my @files;
2121
my $safe-dups = Set.new(<method long default>); # Allow these dupes
2222

23-
if @*ARGS {
24-
@files = @*ARGS;
25-
} else {
26-
if %*ENV<TEST_FILES> {
27-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
28-
} else {
29-
@files = qx<git ls-files>.lines;
30-
}
31-
}
32-
@files = @files.grep({$_.ends-with('.pod6') or $_.ends-with('.md')});
23+
my @files = Test-Files.files.grep({$_.ends-with: '.pod6' or $_.ends-with: '.md'});
3324

3425
plan +@files;
3526

xt/examples-compilation.t

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use IO::String;
66

77
use lib 'lib';
88
use Pod::Convenience;
9+
use Test-Files;
910

1011
=begin overview
1112
@@ -19,19 +20,7 @@ P6_DOC_TEST_FUDGE is set to a true value.
1920
2021
=end overview
2122

22-
my @files;
23-
24-
if @*ARGS {
25-
@files = @*ARGS;
26-
} else {
27-
if %*ENV<TEST_FILES> {
28-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
29-
} else {
30-
@files = qx<git ls-files doc>.lines;
31-
}
32-
}
33-
34-
@files = @files.grep({$_.ends-with('.pod6')});
23+
my @files = Test-Files.files.grep({$_.ends-with: '.pod6'});
3524

3625
sub walk($arg) {
3726
given $arg {

xt/perl-nbsp.t

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,10 @@
22

33
use v6;
44
use Test;
5+
use lib 'lib';
6+
use Test-Files;
57

6-
my @files;
7-
8-
if @*ARGS {
9-
@files = @*ARGS;
10-
} else {
11-
if %*ENV<TEST_FILES> {
12-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
13-
} else {
14-
@files = qx<git ls-files doc>.lines;
15-
}
16-
}
17-
18-
@files = @files.grep({$_.ends-with('.pod6')});
8+
my @files = Test-Files.files.grep({$_.ends-with: '.pod6'});
199

2010
plan +@files;
2111

xt/return-type.t

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,10 @@
33
use v6;
44
use Test;
55
use lib 'lib';
6-
7-
my @files;
6+
use Test-Files;
87

98
# Every .pod6 file in the Type directory.
10-
11-
if @*ARGS {
12-
@files = @*ARGS;
13-
} else {
14-
if %*ENV<TEST_FILES> {
15-
@files = %*ENV<TEST_FILES>.split(' ').grep(*.IO.e);
16-
} else {
17-
@files = qx<git ls-files>.lines;
18-
}
19-
}
20-
21-
@files = @files.grep(* ~~ /'.pod6'/).grep(* ~~ /Type | Language/);
9+
my @files = Test-Files.files.grep({$_.ends-with: '.pod6'}).grep(* ~~ /Type | Language/);
2210

2311
plan +@files;
2412

0 commit comments

Comments
 (0)