1#!/usr/bin/perl 2# 3# Copyright (c) 1997 Shigio Yamaguchi. All rights reserved. 4# Copyright (c) 1999 Tama Communications Corporation. All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25# SUCH DAMAGE. 26# 27# $FreeBSD$ 28# 29 30# 31# Test script for abs2rel(3) and rel2abs(3). 32# 33$logfile = 'err'; 34# 35# target base directory result 36# -------------------------------------- 37@abs2rel = ( 38 '. / .', 39 'a/b/c / a/b/c', 40 'a/b/c /a a/b/c', 41 '/a/b/c a ERROR', 42); 43@rel2abs = ( 44 '. / /', 45 './ / /', 46 '/a/b/c / /a/b/c', 47 '/a/b/c /a /a/b/c', 48 'a/b/c a ERROR', 49 '.. /a /', 50 '../ /a /', 51 '../.. /a /', 52 '../../ /a /', 53 '../../.. /a /', 54 '../../../ /a /', 55 '../b /a /b', 56 '../b/ /a /b/', 57 '../../b /a /b', 58 '../../b/ /a /b/', 59 '../../../b /a /b', 60 '../../../b/ /a /b/', 61 '../b/c /a /b/c', 62 '../b/c/ /a /b/c/', 63 '../../b/c /a /b/c', 64 '../../b/c/ /a /b/c/', 65 '../../../b/c /a /b/c', 66 '../../../b/c/ /a /b/c/', 67); 68@common = ( 69 '/a/b/c /a/b/c .', 70 '/a/b/c /a/b/ c', 71 '/a/b/c /a/b c', 72 '/a/b/c /a/ b/c', 73 '/a/b/c /a b/c', 74 '/a/b/c / a/b/c', 75 '/a/b/c /a/b/c .', 76 '/a/b/c /a/b/c/ .', 77 '/a/b/c/ /a/b/c ./', 78 '/a/b/ /a/b/c ../', 79 '/a/b /a/b/c ..', 80 '/a/ /a/b/c ../../', 81 '/a /a/b/c ../..', 82 '/ /a/b/c ../../../', 83 '/a/b/c /a/b/z ../c', 84 '/a/b/c /a/y/z ../../b/c', 85 '/a/b/c /x/y/z ../../../a/b/c', 86); 87print "TEST start "; 88open(LOG, ">$logfile") || die("cannot open log file '$logfile'.\n"); 89$cnt = 0; 90$progname = 'abs2rel'; 91foreach (@abs2rel) { 92 @d = split; 93 chop($result = `./$progname $d[0] $d[1]`); 94 if ($d[2] eq $result) { 95 print '.'; 96 } else { 97 print 'X'; 98 print LOG "$progname $d[0] $d[1] -> $result (It should be '$d[2]')\n"; 99 $cnt++; 100 } 101} 102foreach (@common) { 103 @d = split; 104 chop($result = `./$progname $d[0] $d[1]`); 105 if ($d[2] eq $result) { 106 print '.'; 107 } else { 108 print 'X'; 109 print LOG "$progname $d[0] $d[1] -> $result (It should be '$d[2]')\n"; 110 $cnt++; 111 } 112} 113$progname = 'rel2abs'; 114foreach (@rel2abs) { 115 @d = split; 116 chop($result = `./$progname $d[0] $d[1]`); 117 if ($d[2] eq $result) { 118 print '.'; 119 } else { 120 print 'X'; 121 print LOG "$progname $d[0] $d[1] -> $result (It should be '$d[2]')\n"; 122 $cnt++; 123 } 124} 125foreach (@common) { 126 @d = split; 127 chop($result = `./$progname $d[2] $d[1]`); 128 if ($d[0] eq $result) { 129 print '.'; 130 } else { 131 print 'X'; 132 print LOG "$progname $d[2] $d[1] -> $result (It should be '$d[0]')\n"; 133 $cnt++; 134 } 135} 136close(LOG); 137if ($cnt == 0) { 138 print " COMPLETED.\n"; 139} else { 140 print " $cnt errors detected.\n"; 141 open(LOG, $logfile) || die("log file not found.\n"); 142 while (<LOG>) { 143 print; 144 } 145 close(LOG); 146} 147