source: trunk/third/perl/vms/ext/filespec.t @ 14545

Revision 14545, 5.3 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14544, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
Line 
1#!./perl
2
3BEGIN { unshift(@INC,'../lib') if -d '../lib'; }
4
5use VMS::Filespec;
6
7foreach (<DATA>) {
8  chomp;
9  s/\s*#.*//;
10  next if /^\s*$/;
11  push(@tests,$_);
12}
13print '1..',scalar(@tests)+6,"\n";
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
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
35if (rmsexpand('[]') eq "\U$ENV{DEFAULT}") { print 'ok ',++$idx,"\n"; }
36else {
37  print 'not ok ', ++$idx, ": rmsexpand('[]') = |", rmsexpand('[]'),
38        "|, \$ENV{DEFAULT} = |\U$ENV{DEFAULT}|\n$defwarn";
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'),
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";
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}
62
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
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
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/../
80[]      unixify         ./
81[-]     unixify         ../
82[--]    unixify         ../../
83[...]   unixify         .../
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
89some/../../where/over/the.rainbow       vmsify  [-.where.over]the.rainbow
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:[...]
95.       vmsify  []
96..      vmsify  [-]
97../..   vmsify  [--]
98.../    vmsify  [...]
99/       vmsify  sys$disk:[000000]
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/
125/down/the/garden/.      pathify /down/the/garden/./
126/down/the/garden/..     pathify /down/the/garden/../
127/down/the/garden/...    pathify /down/the/garden/.../
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/
134down:[the.garden.path...]       unixpath        /down/the/garden/path/.../
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]
139/       vmspath sys$disk:[000000]
140
141# Redundant characters in Unix paths
142//some/where//over/../the.rainbow       vmsify  some:[where]the.rainbow
143/some/where//over/./the.rainbow vmsify  some:[where.over]the.rainbow
144..//../ vmspath [--]
145./././  vmspath []
146./../.  vmsify  [-]
147
Note: See TracBrowser for help on using the repository browser.