Skip to content

Commit

Permalink
Add tests for VMS-Unix file syntax conversion routines
Browse files Browse the repository at this point in the history
  • Loading branch information
Perl 5 Porters authored and Charles Bailey committed Jun 27, 1996
1 parent 60618c0 commit acbb349
Showing 1 changed file with 88 additions and 0 deletions.
88 changes: 88 additions & 0 deletions vms/ext/filespec.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#!./perl

use VMS::Filespec;

foreach (<DATA>) {
chomp;
s/\s*#.*//;
next if /^\s*$/;
push(@tests,$_);
}
print '1..',scalar(@tests)+1,"\n";

foreach $test (@tests) {
($arg,$func,$expect) = split(/\t+/,$test);
$idx++;
$rslt = eval "$func('$arg')";
if ($@) { print "not ok $idx : eval error: $@\n"; next; }
else {
if ($rslt ne $expect) {
print "not ok $idx : $func('$arg') expected |$expect|, got |$rslt|\n";
}
else { print "ok $idx\n"; }
}
}

print +(rmsexpand('[]') eq "\U$ENV{DEFAULT}" ? 'ok ' : 'not ok '),++$idx,"\n";

__DATA__
# Basic VMS to Unix filespecs
some:[where.over]the.rainbow unixify /some/where/over/the.rainbow
[.some.where.over]the.rainbow unixify some/where/over/the.rainbow
[-.some.where.over]the.rainbow unixify ../some/where/over/the.rainbow
[.some.--.where.over]the.rainbow unixify some/../../where/over/the.rainbow
[] unixify ./
[-] unixify ../
[--] unixify ../../
# and back again
/some/where/over/the.rainbow vmsify some:[where.over]the.rainbow
some/where/over/the.rainbow vmsify [.some.where.over]the.rainbow
../some/where/over/the.rainbow vmsify [-.some.where.over]the.rainbow
some/../../where/over/the.rainbow vmsify [-.where.over]the.rainbow
. vmsify []
.. vmsify [-]
../.. vmsify [--]
# Fileifying directory specs
down:[the.garden.path] fileify down:[the.garden]path.dir;1
[.down.the.garden.path] fileify [.down.the.garden]path.dir;1
/down/the/garden/path fileify /down/the/garden/path.dir;1
/down/the/garden/path/ fileify /down/the/garden/path.dir;1
down/the/garden/path fileify down/the/garden/path.dir;1
down:[the.garden]path fileify down:[the.garden]path.dir;1
down:[the.garden]path. fileify # N.B. trailing . ==> null type
down:[the]garden.path fileify
/down/the/garden/path. fileify # N.B. trailing . ==> null type
/down/the/garden.path fileify
# and pathifying them
down:[the.garden]path.dir;1 pathify down:[the.garden.path]
[.down.the.garden]path.dir pathify [.down.the.garden.path]
/down/the/garden/path.dir pathify /down/the/garden/path/
down/the/garden/path.dir pathify down/the/garden/path/
down:[the.garden]path pathify down:[the.garden.path]
down:[the.garden]path. pathify # N.B. trailing . ==> null type
down:[the]garden.path pathify
/down/the/garden/path. pathify # N.B. trailing . ==> null type
/down/the/garden.path pathify
down:[the.garden]path.dir;2 pathify #N.B. ;2
path pathify path/
path.notdir pathify
# Both VMS/Unix and file/path conversions
down:[the.garden]path.dir;1 unixpath /down/the/garden/path/
/down/the/garden/path vmspath down:[the.garden.path]
down:[the.garden.path] unixpath /down/the/garden/path/
/down/the/garden/path.dir vmspath down:[the.garden.path]
[.down.the.garden]path.dir unixpath down/the/garden/path/
down/the/garden/path vmspath [.down.the.garden.path]
path vmspath [.path]
# Redundant characters in Unix paths
/some/where//over/./the.rainbow vmsify some:[where.over]the.rainbow
..//../ vmspath [--]
./././ vmspath []
./../. vmsify [-]

0 comments on commit acbb349

Please sign in to comment.