[inseparable changes from patch from perl5.003_24 to perl5.003_25]
[p5sagit/p5-mst-13.2.git] / vms / ext / filespec.t
CommitLineData
acbb349e 1#!./perl
2
3use VMS::Filespec;
4
5foreach (<DATA>) {
6 chomp;
7 s/\s*#.*//;
8 next if /^\s*$/;
9 push(@tests,$_);
10}
740ce14c 11print '1..',scalar(@tests)+3,"\n";
acbb349e 12
13foreach $test (@tests) {
14 ($arg,$func,$expect) = split(/\t+/,$test);
15 $idx++;
16 $rslt = eval "$func('$arg')";
17 if ($@) { print "not ok $idx : eval error: $@\n"; next; }
18 else {
19 if ($rslt ne $expect) {
20 print "not ok $idx : $func('$arg') expected |$expect|, got |$rslt|\n";
21 }
22 else { print "ok $idx\n"; }
23 }
24}
25
26print +(rmsexpand('[]') eq "\U$ENV{DEFAULT}" ? 'ok ' : 'not ok '),++$idx,"\n";
740ce14c 27print +(rmsexpand('from.here') eq "\L$ENV{DEFAULT}from.here" ?
28 'ok ' : 'not ok '),++$idx,"\n";
29print +(rmsexpand('from.here','cant:[get.there];2') eq
30 'cant:[get.there]from.here;2' ? 'ok ' : 'not ok '),++$idx,"\n";
acbb349e 31
32__DATA__
33
34# Basic VMS to Unix filespecs
35some:[where.over]the.rainbow unixify /some/where/over/the.rainbow
36[.some.where.over]the.rainbow unixify some/where/over/the.rainbow
37[-.some.where.over]the.rainbow unixify ../some/where/over/the.rainbow
38[.some.--.where.over]the.rainbow unixify some/../../where/over/the.rainbow
f86702cc 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...] unixify some/where/over/.../
43[.some.where.over.-] unixify some/where/over/../
acbb349e 44[] unixify ./
45[-] unixify ../
46[--] unixify ../../
f86702cc 47[...] unixify .../
acbb349e 48
49# and back again
50/some/where/over/the.rainbow vmsify some:[where.over]the.rainbow
51some/where/over/the.rainbow vmsify [.some.where.over]the.rainbow
52../some/where/over/the.rainbow vmsify [-.some.where.over]the.rainbow
53some/../../where/over/the.rainbow vmsify [-.where.over]the.rainbow
f86702cc 54.../some/where/over/the.rainbow vmsify [...some.where.over]the.rainbow
55some/.../where/over/the.rainbow vmsify [.some...where.over]the.rainbow
56/some/.../where/over/the.rainbow vmsify some:[...where.over]the.rainbow
57some/where/... vmsify [.some.where...]
58/where/... vmsify where:[...]
acbb349e 59. vmsify []
60.. vmsify [-]
61../.. vmsify [--]
f86702cc 62.../ vmsify [...]
acbb349e 63
64# Fileifying directory specs
65down:[the.garden.path] fileify down:[the.garden]path.dir;1
66[.down.the.garden.path] fileify [.down.the.garden]path.dir;1
67/down/the/garden/path fileify /down/the/garden/path.dir;1
68/down/the/garden/path/ fileify /down/the/garden/path.dir;1
69down/the/garden/path fileify down/the/garden/path.dir;1
70down:[the.garden]path fileify down:[the.garden]path.dir;1
71down:[the.garden]path. fileify # N.B. trailing . ==> null type
72down:[the]garden.path fileify
73/down/the/garden/path. fileify # N.B. trailing . ==> null type
74/down/the/garden.path fileify
75
76# and pathifying them
77down:[the.garden]path.dir;1 pathify down:[the.garden.path]
78[.down.the.garden]path.dir pathify [.down.the.garden.path]
79/down/the/garden/path.dir pathify /down/the/garden/path/
80down/the/garden/path.dir pathify down/the/garden/path/
81down:[the.garden]path pathify down:[the.garden.path]
82down:[the.garden]path. pathify # N.B. trailing . ==> null type
83down:[the]garden.path pathify
84/down/the/garden/path. pathify # N.B. trailing . ==> null type
85/down/the/garden.path pathify
86down:[the.garden]path.dir;2 pathify #N.B. ;2
87path pathify path/
f86702cc 88/down/the/garden/. pathify /down/the/garden/./
89/down/the/garden/.. pathify /down/the/garden/../
90/down/the/garden/... pathify /down/the/garden/.../
acbb349e 91path.notdir pathify
92
93# Both VMS/Unix and file/path conversions
94down:[the.garden]path.dir;1 unixpath /down/the/garden/path/
95/down/the/garden/path vmspath down:[the.garden.path]
96down:[the.garden.path] unixpath /down/the/garden/path/
f86702cc 97down:[the.garden.path...] unixpath /down/the/garden/path/.../
acbb349e 98/down/the/garden/path.dir vmspath down:[the.garden.path]
99[.down.the.garden]path.dir unixpath down/the/garden/path/
100down/the/garden/path vmspath [.down.the.garden.path]
101path vmspath [.path]
102
103# Redundant characters in Unix paths
740ce14c 104//some/where//over/../the.rainbow vmsify some:[where]the.rainbow
acbb349e 105/some/where//over/./the.rainbow vmsify some:[where.over]the.rainbow
106..//../ vmspath [--]
107./././ vmspath []
108./../. vmsify [-]
109