File Coverage

tests/name-4
Criterion Covered Total %
statement 104 104 100.0
branch 2 2 100.0
condition n/a
subroutine 6 6 100.0
pod n/a
total 112 112 100.0


line stmt bran cond sub pod time code
1             #!/usr/bin/perl -w
2              
3             # The script tests Arch::Name parsing.
4              
5 1     1   6 use strict;
  1         2  
  1         35  
6              
7 1     1   1052 use FindBin;
  1         1170  
  1         45  
8 1     1   894 use lib "$FindBin::Bin/../perllib";
  1         834  
  1         7  
9              
10 1     1   1539 use Test::More tests => 83;
  1         18410  
  1         10  
11 1     1   6 use_ok("Arch::Name");
  1         720  
  1         3  
  1         2  
  1         19  
12              
13             sub check_name ($;$) {
14 82     82   144 my $string = shift;
15 82         95 my $level = shift;
16 82 100       723 my $label = defined $level? $level: "valid";
17              
18 82         243 my $name = Arch::Name->new($string);
19             #print "[expected $label] [ got ", $name->level, "]\n";
20 82         3187 ok($name->is_valid($level), "'$string' is $label");
21             }
22              
23 1         534 check_name('migo@homemail.com--Perl-GPL');
24 1         390 check_name('migo@homemail.com--Perl-GPL/arch-perl');
25 1         337 check_name('migo@homemail.com--Perl-GPL/arch-perl--devel');
26 1         297 check_name('migo@homemail.com--Perl-GPL/arch-perl--devel--0');
27 1         236 check_name('migo@homemail.com--Perl-GPL/arch-perl--devel--0--patch-73');
28              
29 1         213 check_name('some@project');
30 1         246 check_name('some@project/c');
31 1         240 check_name('some@project/c--');
32 1         217 check_name('some@project/c----00');
33 1         231 check_name('some@project/c----00--versionfix-22');
34              
35 1         272 check_name('some@project/c--b--FIRST', 4);
36 1         361 check_name('some@project/c--b--LATEST', 4);
37 1         288 check_name('some@project/c--b--FIRST--versionfix-2', 5);
38 1         1094 check_name('some@project/c--b--LATEST--version-0', 5);
39 1         280 check_name('some@project/c--b--FIRST--LATEST', 5);
40 1         266 check_name('some@project/c--b--LATEST--FIRST', 5);
41 1         262 check_name('some@project/c--b--1--FIRST', 5);
42 1         271 check_name('some@project/c--b--1--LATEST', 5);
43              
44 1         278 check_name('some-project', 0);
45 1         681 check_name('some@project/@', 0);
46 1         285 check_name('some@project/c--@', 0);
47 1         287 check_name('some@project/c--b--v', 0);
48 1         288 check_name('some@project/c--b--0--base-2', 0);
49              
50 1         280 check_name('@aaa', 0);
51 1         374 check_name('aaa@@ddd', 0);
52 1         318 check_name('aaa@ddd/', 0);
53 1         281 check_name('aaa@ddd//', 0);
54 1         877 check_name('aaa@ddd/c@', 0);
55 1         320 check_name('aaa@ddd/@c', 0);
56 1         544 check_name('aaa@ddd/c@c', 0);
57 1         281 check_name('aaa@ddd/_', 0);
58 1         283 check_name('aaa@ddd/_b', 0);
59 1         320 check_name('aaa@ddd/-', 0);
60 1         262 check_name('aaa@ddd/--', 0);
61 1         257 check_name('aaa@ddd/---', 0);
62 1         278 check_name('aaa@ddd/c/', 0);
63 1         269 check_name('aaa@ddd/-c', 0);
64 1         252 check_name('aaa@ddd/c-', 0);
65 1         240 check_name('aaa@ddd/c---', 0);
66 1         320 check_name('aaa@ddd/c--_', 0);
67 1         220 check_name('aaa@ddd/c--_b', 0);
68 1         187 check_name('aaa@ddd/c--b-', 0);
69 1         230 check_name('aaa@ddd/c--b--', 0);
70 1         217 check_name('aaa@ddd/c--b---', 0);
71 1         233 check_name('aaa@ddd/c--b--.0', 0);
72 1         372 check_name('aaa@ddd/c--b--0.', 0);
73 1         249 check_name('aaa@ddd/c--b--1.1.', 0);
74 1         261 check_name('aaa@ddd/c--b--11a', 0);
75 1         240 check_name('aaa@ddd/c--b--1.a', 0);
76 1         238 check_name('aaa@ddd/c--b--1-', 0);
77 1         236 check_name('aaa@ddd/c--b--1--', 0);
78 1         201 check_name('aaa@ddd/c--b--1---', 0);
79 1         399 check_name('aaa@ddd/c--b--1--patch-a', 0);
80              
81 1         210 check_name(' ', 0);
82 1         190 check_name('a @d', 0);
83 1         204 check_name('a@d/ ', 0);
84 1         223 check_name('a@d/c ', 0);
85 1         209 check_name('a@d/c-- ', 0);
86 1         233 check_name('a@d/c-- b', 0);
87 1         233 check_name('a@d/c--b-- ', 0);
88 1         243 check_name('a@d/c--b-- 1', 0);
89 1         242 check_name('a@d/c--b--1-- ', 0);
90 1         189 check_name('a@d/c--b--1-- base-0', 0);
91 1         183 check_name('a@d/c--b--1--base-0 ', 0);
92              
93 1         203 check_name('', 0);
94 1         227 check_name('a@', 1);
95 1         203 check_name('a@/c', 2);
96 1         183 check_name('a@/c--', 3);
97 1         194 check_name('a@/c----0', 4);
98 1         199 check_name('a@/c----0--version-0', 5);
99              
100 1         187 check_name('', 'none');
101 1         184 check_name('a1@d2', 'archive');
102 1         194 check_name('a1@d2/c3', 'category');
103 1         250 check_name('a1@d2/c3--b4', 'branch');
104 1         241 check_name('a1@d2/c3--b4--56', 'version');
105 1         258 check_name('a1@d2/c3--b4--00.11.22--patch-11111111', 'revision');
106              
107 1         246 check_name('a1@d2/c3--b4--5.6--patch-7', 'none+');
108 1         255 check_name('a1@d2/c3--b4--5.6--patch-7', 'archive+');
109 1         231 check_name('a1@d2/c3--b4--5.6--patch-7', 'category+');
110 1         285 check_name('a1@d2/c3--b4--5.6--patch-7', 'branch+');
111 1         246 check_name('a1@d2/c3--b4--5.6--patch-7', 'version+');
112 1         279 check_name('a1@d2/c3--b4--5.6--patch-7', 'revision+');