3 BEGIN { unshift(@INC,'../lib') if -d '../lib'; }
13 print '1..',scalar(@tests)+3,"\n";
15 foreach $test (@tests) {
16 ($arg,$func,$expect) = split(/\t+/,$test);
18 $rslt = eval "$func('$arg')";
19 if ($@) { print "not ok $idx : eval error: $@\n"; next; }
21 if ($rslt ne $expect) {
22 print "not ok $idx : $func('$arg') expected |$expect|, got |$rslt|\n";
24 else { print "ok $idx\n"; }
28 print +(rmsexpand('[]') eq "\U$ENV{DEFAULT}" ? 'ok ' : 'not ok '),++$idx,"\n";
29 print +(rmsexpand('from.here') eq "\L$ENV{DEFAULT}from.here" ?
30 'ok ' : 'not ok '),++$idx,"\n";
31 print +(rmsexpand('from.here','cant:[get.there];2') eq
32 'cant:[get.there]from.here;2' ? 'ok ' : 'not ok '),++$idx,"\n";
36 # Basic VMS to Unix filespecs
37 some:[where.over]the.rainbow unixify /some/where/over/the.rainbow
38 [.some.where.over]the.rainbow unixify some/where/over/the.rainbow
39 [-.some.where.over]the.rainbow unixify ../some/where/over/the.rainbow
40 [.some.--.where.over]the.rainbow unixify some/../../where/over/the.rainbow
41 [.some...where.over]the.rainbow unixify some/.../where/over/the.rainbow
42 [...some.where.over]the.rainbow unixify .../some/where/over/the.rainbow
43 [.some.where.over...]the.rainbow unixify some/where/over/.../the.rainbow
44 [.some.where.over...] unixify some/where/over/.../
45 [.some.where.over.-] unixify some/where/over/../
52 /some/where/over/the.rainbow vmsify some:[where.over]the.rainbow
53 some/where/over/the.rainbow vmsify [.some.where.over]the.rainbow
54 ../some/where/over/the.rainbow vmsify [-.some.where.over]the.rainbow
55 some/../../where/over/the.rainbow vmsify [-.where.over]the.rainbow
56 .../some/where/over/the.rainbow vmsify [...some.where.over]the.rainbow
57 some/.../where/over/the.rainbow vmsify [.some...where.over]the.rainbow
58 /some/.../where/over/the.rainbow vmsify some:[...where.over]the.rainbow
59 some/where/... vmsify [.some.where...]
60 /where/... vmsify where:[...]
66 # Fileifying directory specs
67 down:[the.garden.path] fileify down:[the.garden]path.dir;1
68 [.down.the.garden.path] fileify [.down.the.garden]path.dir;1
69 /down/the/garden/path fileify /down/the/garden/path.dir;1
70 /down/the/garden/path/ fileify /down/the/garden/path.dir;1
71 down/the/garden/path fileify down/the/garden/path.dir;1
72 down:[the.garden]path fileify down:[the.garden]path.dir;1
73 down:[the.garden]path. fileify # N.B. trailing . ==> null type
74 down:[the]garden.path fileify
75 /down/the/garden/path. fileify # N.B. trailing . ==> null type
76 /down/the/garden.path fileify
79 down:[the.garden]path.dir;1 pathify down:[the.garden.path]
80 [.down.the.garden]path.dir pathify [.down.the.garden.path]
81 /down/the/garden/path.dir pathify /down/the/garden/path/
82 down/the/garden/path.dir pathify down/the/garden/path/
83 down:[the.garden]path pathify down:[the.garden.path]
84 down:[the.garden]path. pathify # N.B. trailing . ==> null type
85 down:[the]garden.path pathify
86 /down/the/garden/path. pathify # N.B. trailing . ==> null type
87 /down/the/garden.path pathify
88 down:[the.garden]path.dir;2 pathify #N.B. ;2
90 /down/the/garden/. pathify /down/the/garden/./
91 /down/the/garden/.. pathify /down/the/garden/../
92 /down/the/garden/... pathify /down/the/garden/.../
95 # Both VMS/Unix and file/path conversions
96 down:[the.garden]path.dir;1 unixpath /down/the/garden/path/
97 /down/the/garden/path vmspath down:[the.garden.path]
98 down:[the.garden.path] unixpath /down/the/garden/path/
99 down:[the.garden.path...] unixpath /down/the/garden/path/.../
100 /down/the/garden/path.dir vmspath down:[the.garden.path]
101 [.down.the.garden]path.dir unixpath down/the/garden/path/
102 down/the/garden/path vmspath [.down.the.garden.path]
105 # Redundant characters in Unix paths
106 //some/where//over/../the.rainbow vmsify some:[where]the.rainbow
107 /some/where//over/./the.rainbow vmsify some:[where.over]the.rainbow