]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libpathconv/tests/test.pl
Add a HISTORY section for memcpy(3) and mempcpy(3)
[FreeBSD/FreeBSD.git] / lib / libpathconv / tests / test.pl
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
28
29 #
30 # Test script for abs2rel(3) and rel2abs(3).
31 #
32 $logfile = 'err';
33 #
34 #       target          base directory  result
35 #       --------------------------------------
36 @abs2rel = (
37         '.              /               .',
38         'a/b/c          /               a/b/c',
39         'a/b/c          /a              a/b/c',
40         '/a/b/c         a               ERROR',
41 );
42 @rel2abs = (
43         '.              /               /',
44         './             /               /',
45         '/a/b/c         /               /a/b/c',
46         '/a/b/c         /a              /a/b/c',
47         'a/b/c          a               ERROR',
48         '..             /a              /',
49         '../            /a              /',
50         '../..          /a              /',
51         '../../         /a              /',
52         '../../..       /a              /',
53         '../../../      /a              /',
54         '../b           /a              /b',
55         '../b/          /a              /b/',
56         '../../b        /a              /b',
57         '../../b/       /a              /b/',
58         '../../../b     /a              /b',
59         '../../../b/    /a              /b/',
60         '../b/c         /a              /b/c',
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 );
67 @common = (
68         '/a/b/c         /a/b/c          .',
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/          /a/b/c          ../',
78         '/a/b           /a/b/c          ..',
79         '/a/            /a/b/c          ../../',
80         '/a             /a/b/c          ../..',
81         '/              /a/b/c          ../../../',
82         '/a/b/c         /a/b/z          ../c',
83         '/a/b/c         /a/y/z          ../../b/c',
84         '/a/b/c         /x/y/z          ../../../a/b/c',
85 );
86 print "TEST start ";
87 open(LOG, ">$logfile") || die("cannot open log file '$logfile'.\n");
88 $cnt = 0;
89 $progname = 'abs2rel';
90 foreach (@abs2rel) {
91         @d = split;
92         chop($result = `./$progname $d[0] $d[1]`);
93         if ($d[2] eq $result) {
94                 print '.';
95         } else {
96                 print 'X';
97                 print LOG "$progname $d[0] $d[1] -> $result (It should be '$d[2]')\n";
98                 $cnt++;
99         }
100 }
101 foreach (@common) {
102         @d = split;
103         chop($result = `./$progname $d[0] $d[1]`);
104         if ($d[2] eq $result) {
105                 print '.';
106         } else {
107                 print 'X';
108                 print LOG "$progname $d[0] $d[1] -> $result (It should be '$d[2]')\n";
109                 $cnt++;
110         }
111 }
112 $progname = 'rel2abs';
113 foreach (@rel2abs) {
114         @d = split;
115         chop($result = `./$progname $d[0] $d[1]`);
116         if ($d[2] eq $result) {
117                 print '.';
118         } else {
119                 print 'X';
120                 print LOG "$progname $d[0] $d[1] -> $result (It should be '$d[2]')\n";
121                 $cnt++;
122         }
123 }
124 foreach (@common) {
125         @d = split;
126         chop($result = `./$progname $d[2] $d[1]`);
127         if ($d[0] eq $result) {
128                 print '.';
129         } else {
130                 print 'X';
131                 print LOG "$progname $d[2] $d[1] -> $result (It should be '$d[0]')\n";
132                 $cnt++;
133         }
134 }
135 close(LOG);
136 if ($cnt == 0) {
137         print " COMPLETED.\n";
138 } else {
139         print " $cnt errors detected.\n";
140         open(LOG, $logfile) || die("log file not found.\n");
141         while (<LOG>) {
142                 print;
143         }
144         close(LOG);
145 }