File: 121_mac.t

package info (click to toggle)
libregexp-common-perl 2024080801-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,328 kB
  • sloc: perl: 17,842; makefile: 2
file content (125 lines) | stat: -rwxr-xr-x 3,083 bytes parent folder | download | duplicates (4)
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
123
124
125
# VOODOO LINE-NOISE
my($C,$M,$P,$N,$S);END{print"1..$C\n$M";print"\nfailed: $N\n"if$N}
sub ok{$C++; $M.= ($_[0]||!@_)?"ok $C\n":($N++,"not ok $C (".
((caller 1)[1]||(caller 0)[1]).":".((caller 1)[2]||(caller 0)[2]).")\n")}
sub try{$P=qr/^$_[0]$/}sub fail{ok($S=$_[0]!~$P)}sub pass{ok($S=$_[0]=~$P)}

# LOAD

use Regexp::Common;
ok;

try $RE{net}{MAC};

pass '0:0:0:0:0:0';
pass '1:1:1:1:1:1';
pass 'a:b:c:d:e:f';
pass 'a0:b0:c0:d0:e0:f0';
pass 'a0:b0:6:80:e0:f';
fail '0:0:0:0:0';
fail '1:1:1:1:1:1:1';
fail 'a:b:c:d:e:g';
fail 'a0-b0-c0-d0-e0-f0';
fail '255:255:255:255:255:255';

try $RE{net}{MAC}{hex};

pass '0:0:0:0:0:0';
pass '1:1:1:1:1:1';
pass 'a:b:c:d:e:f';
pass 'a0:b0:c0:d0:e0:f0';
pass 'a0:b0:6:80:e0:f';
fail '0:0:0:0:0';
fail '1:1:1:1:1:1:1';
fail 'a:b:c:d:e:g';
fail 'a0-b0-c0-d0-e0-f0';
fail '255:255:255:255:255:255';

try $RE{net}{MAC}{dec};

pass '0:0:0:0:0:0';
pass '1:1:1:1:1:1';
pass '10:11:12:13:14:15';
pass '255:255:255:56:255:255';
pass '255:255:27:255:255:255';
pass '255:255:255:255:255:30';
fail '0:0:0:0:0';
fail '1:1:1:1:1:1:1';
fail 'a:b:c:d:e:f';
fail '0-0-0-0-0--0';
fail '255:255:255:256:255:255:';
fail '255:255:274:255:255:255:';
fail '255:255:255:255:255:300:';

try $RE{net}{MAC}{oct};

pass '0:0:0:0:0:0';
pass '1:1:1:1:1:1';
pass '10:11:12:13:14:15';
pass '377:377:377:56:377:377';
pass '377:377:27:377:377:377';
pass '377:377:377:377:377:30';
fail '0:0:0:0:0';
fail '1:1:1:1:1:1:1';
fail '1:1:1:1:8:1';
fail 'a:b:c:d:e:f';
fail '0-0-0-0-0-0';
fail '377:377:377:400:377:377';
fail '377:377:379:377:377:377';
fail '377:377:377:377:377:380';

try $RE{net}{MAC}{bin};

pass '0:0:0:0:0:0';
pass '1:1:1:1:1:1';
pass '10:11:100:101:110:111';
pass '11111111:11111111:11111111:1111111:11111111:11111111';
pass '11111111:11111111:11111111:11111110:11111111:11111111';
pass '11111111:11111111:11111111:11111111:11111111:11111111';
fail '0:0:0:0:0';
fail '1:1:1:1:1:1:1';
fail '1:1:1:1:111111111:1';
fail 'a:b:c:d:e:f';
fail '0-0-0-0-0-0';

try $RE{net}{MAC}{hex}{-sep => ""};

pass '000000';
pass '111111';
pass 'abcdef';
pass 'a0b0c0d0e0f';
pass 'a0b0680e0f';
fail 'cdefgh';
fail 'a0-b0-c0-d0-e0-f0';
fail '255255255255255255';

try $RE{net}{MAC}{hex}{-sep => " "};

pass '0 0 0 0 0 0';
pass '1 1 1 1 1 1';
pass 'a b c d e f';
pass 'a0 b0 c0 d0 e0 f0';
pass 'a0 b0 6 80 e0 f';
fail '0 0 0 0 0';
fail '1 1 1 1 1 1 1';
fail 'c d e f g h';
fail 'a0-b0-c0-d0-e0-f0';
fail '255 255 255 255 255 255';


ok '08:09:0a:0b:0c:0d' eq
       $RE{net}{MAC} -> subs ('8:9:a:b:c:d');
ok '08:09:0a:0b:0c:0d' eq
       $RE{net}{MAC}{hex} -> subs ('8:9:a:b:c:d');
ok '08:09:0a:0b:0c:0d' eq
       $RE{net}{MAC}{hex}{-sep => '-'} -> subs ('8-9-a-b-c-d');
ok '08:09:0a:0b:0c:0d' eq
       $RE{net}{MAC}{hex}{-sep => ''}  -> subs ('89abcd');
ok '08:09:0a:0b:0c:0d' eq
       $RE{net}{MAC}{dec} -> subs ('8:9:10:11:12:13');
ok '08:09:0a:0b:0c:0d' eq
       $RE{net}{MAC}{oct} -> subs ('10:11:12:13:14:15');
ok '08:09:0a:0b:0c:0d' eq
       $RE{net}{MAC}{bin} -> subs ('1000:1001:1010:1011:1100:1101');
ok '8:9:a:b:c:g' eq
       $RE{net}{MAC}{hex} -> subs ('8:9:a:b:c:g');