This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove HAS_SETSPENT, HAS_GETSPENT, HAS_ENDSPENT,
[perl5.git] / vms / ext / filespec.t
CommitLineData
acbb349e 1#!./perl
2
aa689395 3BEGIN { unshift(@INC,'../lib') if -d '../lib'; }
4
acbb349e 5use VMS::Filespec;
6
7foreach (<DATA>) {
8 chomp;
9 s/\s*#.*//;
10 next if /^\s*$/;
11 push(@tests,$_);
12}
17f28c40 13print '1..',scalar(@tests)+6,"\n";
acbb349e 14
15foreach $test (@tests) {
16 ($arg,$func,$expect) = split(/\t+/,$test);
17 $idx++;
18 $rslt = eval "$func('$arg')";
19 if ($@) { print "not ok $idx : eval error: $@\n"; next; }
20 else {
21 if ($rslt ne $expect) {
22 print "not ok $idx : $func('$arg') expected |$expect|, got |$rslt|\n";
23 }
24 else { print "ok $idx\n"; }
25 }
26}
27
17f28c40
CB
28$defwarn = <<'EOW';
29# Note: This failure may have occurred because your default device
30# was set using a non-concealed logical name. If this is the case,
31# you will need to determine by inspection that the two resultant
32# file specifications shwn above are in fact equivalent.
33EOW
34
84902520
TB
35if (rmsexpand('[]') eq "\U$ENV{DEFAULT}") { print 'ok ',++$idx,"\n"; }
36else {
37 print 'not ok ', ++$idx, ": rmsexpand('[]') = |", rmsexpand('[]'),
17f28c40 38 "|, \$ENV{DEFAULT} = |\U$ENV{DEFAULT}|\n$defwarn";
84902520
TB
39}
40if (rmsexpand('from.here') eq "\L$ENV{DEFAULT}from.here") {
41 print 'ok ', ++$idx, "\n";
42}
43else {
44 print 'not ok ', ++$idx, ": rmsexpand('from.here') = |",
45 rmsexpand('from.here'),
17f28c40
CB
46 "|, \$ENV{DEFAULT}from.here = |\L$ENV{DEFAULT}from.here|\n$defwarn";
47}
48if (rmsexpand('from') eq "\L$ENV{DEFAULT}from") {
49 print 'ok ', ++$idx, "\n";
50}
51else {
52 print 'not ok ', ++$idx, ": rmsexpand('from') = |",
53 rmsexpand('from'),
54 "|, \$ENV{DEFAULT}from = |\L$ENV{DEFAULT}from|\n$defwarn";
84902520
TB
55}
56if (rmsexpand('from.here','cant:[get.there];2') eq
57 'cant:[get.there]from.here;2') { print 'ok ',++$idx,"\n"; }
58else {
59 print 'not ok ', ++$idx, ': expected |cant:[get.there]from.here;2|, got |',
60 rmsexpand('from.here','cant:[get.there];2'),"|\n";
61}
acbb349e 62
09b7f37c
CB
63# Make sure we're using redirected mkdir, which strips trailing '/', since
64# the CRTL's mkdir can't handle this.
65print +(mkdir('testdir/',0777) ? 'ok ' : 'not ok '),++$idx,"\n";
66print +(rmdir('testdir/') ? 'ok ' : 'not ok '),++$idx,"\n";
67
acbb349e 68__DATA__
69
70# Basic VMS to Unix filespecs
71some:[where.over]the.rainbow unixify /some/where/over/the.rainbow
72[.some.where.over]the.rainbow unixify some/where/over/the.rainbow
73[-.some.where.over]the.rainbow unixify ../some/where/over/the.rainbow
74[.some.--.where.over]the.rainbow unixify some/../../where/over/the.rainbow
f86702cc 75[.some...where.over]the.rainbow unixify some/.../where/over/the.rainbow
76[...some.where.over]the.rainbow unixify .../some/where/over/the.rainbow
77[.some.where.over...]the.rainbow unixify some/where/over/.../the.rainbow
78[.some.where.over...] unixify some/where/over/.../
79[.some.where.over.-] unixify some/where/over/../
acbb349e 80[] unixify ./
81[-] unixify ../
82[--] unixify ../../
f86702cc 83[...] unixify .../
acbb349e 84
85# and back again
86/some/where/over/the.rainbow vmsify some:[where.over]the.rainbow
87some/where/over/the.rainbow vmsify [.some.where.over]the.rainbow
88../some/where/over/the.rainbow vmsify [-.some.where.over]the.rainbow
08c7cbbb 89some/../../where/over/the.rainbow vmsify [-.where.over]the.rainbow
f86702cc 90.../some/where/over/the.rainbow vmsify [...some.where.over]the.rainbow
91some/.../where/over/the.rainbow vmsify [.some...where.over]the.rainbow
92/some/.../where/over/the.rainbow vmsify some:[...where.over]the.rainbow
93some/where/... vmsify [.some.where...]
94/where/... vmsify where:[...]
acbb349e 95. vmsify []
96.. vmsify [-]
97../.. vmsify [--]
f86702cc 98.../ vmsify [...]
491527d0 99/ vmsify sys$disk:[000000]
acbb349e 100
101# Fileifying directory specs
102down:[the.garden.path] fileify down:[the.garden]path.dir;1
103[.down.the.garden.path] fileify [.down.the.garden]path.dir;1
104/down/the/garden/path fileify /down/the/garden/path.dir;1
105/down/the/garden/path/ fileify /down/the/garden/path.dir;1
106down/the/garden/path fileify down/the/garden/path.dir;1
107down:[the.garden]path fileify down:[the.garden]path.dir;1
108down:[the.garden]path. fileify # N.B. trailing . ==> null type
109down:[the]garden.path fileify
110/down/the/garden/path. fileify # N.B. trailing . ==> null type
111/down/the/garden.path fileify
112
113# and pathifying them
114down:[the.garden]path.dir;1 pathify down:[the.garden.path]
115[.down.the.garden]path.dir pathify [.down.the.garden.path]
116/down/the/garden/path.dir pathify /down/the/garden/path/
117down/the/garden/path.dir pathify down/the/garden/path/
118down:[the.garden]path pathify down:[the.garden.path]
119down:[the.garden]path. pathify # N.B. trailing . ==> null type
120down:[the]garden.path pathify
121/down/the/garden/path. pathify # N.B. trailing . ==> null type
122/down/the/garden.path pathify
123down:[the.garden]path.dir;2 pathify #N.B. ;2
124path pathify path/
f86702cc 125/down/the/garden/. pathify /down/the/garden/./
126/down/the/garden/.. pathify /down/the/garden/../
127/down/the/garden/... pathify /down/the/garden/.../
acbb349e 128path.notdir pathify
129
130# Both VMS/Unix and file/path conversions
131down:[the.garden]path.dir;1 unixpath /down/the/garden/path/
132/down/the/garden/path vmspath down:[the.garden.path]
133down:[the.garden.path] unixpath /down/the/garden/path/
f86702cc 134down:[the.garden.path...] unixpath /down/the/garden/path/.../
acbb349e 135/down/the/garden/path.dir vmspath down:[the.garden.path]
136[.down.the.garden]path.dir unixpath down/the/garden/path/
137down/the/garden/path vmspath [.down.the.garden.path]
138path vmspath [.path]
491527d0 139/ vmspath sys$disk:[000000]
acbb349e 140
141# Redundant characters in Unix paths
08c7cbbb 142//some/where//over/../the.rainbow vmsify some:[where]the.rainbow
acbb349e 143/some/where//over/./the.rainbow vmsify some:[where.over]the.rainbow
144..//../ vmspath [--]
145./././ vmspath []
146./../. vmsify [-]
147