Annotation of embedaddon/curl/tests/objnames-test08.sh, revision 1.1.1.1
1.1 misho 1: #!/bin/sh
2: # ***************************************************************************
3: # * _ _ ____ _
4: # * Project ___| | | | _ \| |
5: # * / __| | | | |_) | |
6: # * | (__| |_| | _ <| |___
7: # * \___|\___/|_| \_\_____|
8: # *
9: # * Copyright (C) 2013 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
10: # *
11: # * This software is licensed as described in the file COPYING, which
12: # * you should have received as part of this distribution. The terms
13: # * are also available at https://curl.haxx.se/docs/copyright.html.
14: # *
15: # * You may opt to use, copy, modify, merge, publish, distribute and/or sell
16: # * copies of the Software, and permit persons to whom the Software is
17: # * furnished to do so, under the terms of the COPYING file.
18: # *
19: # * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20: # * KIND, either express or implied.
21: # *
22: # ***************************************************************************
23:
24: #
25: # This Bourne shell script file is used by test case 1222 to do
26: # unit testing of curl_8char_object_name() shell function which
27: # is defined in file objnames.inc and sourced by this file and
28: # any other shell script that may use it.
29: #
30:
31: #
32: # argument validation
33: #
34:
35: if test $# -eq 1; then
36: :
37: else
38: echo "Usage: ${0} srcdir"
39: exit 1
40: fi
41:
42: if test -f "${1}/runtests.pl"; then
43: :
44: else
45: echo "${0}: Wrong srcdir"
46: exit 1
47: fi
48:
49: srcdir=${1}
50:
51: if test -f "$srcdir/objnames.inc"; then
52: :
53: else
54: echo "$0: Missing objnames.inc"
55: exit 1
56: fi
57:
58: #
59: # Some variables
60: #
61:
62: logdir=log
63: tstnum=1222
64:
65: list_c=$logdir/${tstnum}_list_c
66: list_obj=$logdir/${tstnum}_list_obj
67: list_obj_c=$logdir/${tstnum}_list_obj_c
68: list_obj_uniq=$logdir/${tstnum}_list_obj_uniq
69:
70:
71: #
72: # Source curl_8char_object_name() function definition
73: #
74:
75: . $srcdir/objnames.inc
76:
77: #
78: # Some curl_8char_object_name() unit tests
79: #
80:
81: echo 'Testing curl_8char_object_name...'
82: echo ""
83:
84: argstr=123__678__ABC__FGH__KLM__PQRSTUV
85: expect=16AFKPQR
86: outstr=`curl_8char_object_name $argstr`
87: echo "result: $outstr expected: $expect input: $argstr"
88:
89: argstr=123__678__ABC__FGH__KLM__PQ.S.UV
90: expect=16AFKPQ
91: outstr=`curl_8char_object_name $argstr`
92: echo "result: $outstr expected: $expect input: $argstr"
93:
94: argstr=123__678__ABC..FGH..KLM..PQRSTUV
95: expect=16ABC
96: outstr=`curl_8char_object_name $argstr`
97: echo "result: $outstr expected: $expect input: $argstr"
98:
99: argstr=123__678_.ABC._FGH__KLM__PQRSTUV
100: expect=16
101: outstr=`curl_8char_object_name $argstr`
102: echo "result: $outstr expected: $expect input: $argstr"
103:
104: argstr=123.567.90ABCDEFGHIJKLMNOPQRSTUV
105: expect=123
106: outstr=`curl_8char_object_name $argstr`
107: echo "result: $outstr expected: $expect input: $argstr"
108:
109: argstr=1234567.90A.CDEFGHIJKLMNOPQRSTUV
110: expect=1234567
111: outstr=`curl_8char_object_name $argstr`
112: echo "result: $outstr expected: $expect input: $argstr"
113:
114: argstr=1234567890.BCD.FGHIJKLMNOPQRSTUV
115: expect=12345678
116: outstr=`curl_8char_object_name $argstr`
117: echo "result: $outstr expected: $expect input: $argstr"
118:
119: argstr=12=45-78+0AB.DE.GHIJKLMNOPQRSTUV
120: expect=1470AB
121: outstr=`curl_8char_object_name $argstr`
122: echo "result: $outstr expected: $expect input: $argstr"
123:
124: argstr=1234567890ABCDEFGHIJKLMNOPQRSTUV
125: expect=12345678
126: outstr=`curl_8char_object_name $argstr`
127: echo "result: $outstr expected: $expect input: $argstr"
128:
129: argstr=123_567_90A_CDE_GHIJKLMNOPQRSTUV
130: expect=159CGHIJ
131: outstr=`curl_8char_object_name $argstr`
132: echo "result: $outstr expected: $expect input: $argstr"
133:
134: argstr=123_567_90A_CDEFGHIJKLMNOPQRSTUV
135: expect=159CDEFG
136: outstr=`curl_8char_object_name $argstr`
137: echo "result: $outstr expected: $expect input: $argstr"
138:
139: argstr=123_567_90ABCDEFGHIJKLMNOPQRSTUV
140: expect=1590ABCD
141: outstr=`curl_8char_object_name $argstr`
142: echo "result: $outstr expected: $expect input: $argstr"
143:
144: argstr=123_567890ABCDEFGHIJKLMNOPQRSTUV
145: expect=1567890A
146: outstr=`curl_8char_object_name $argstr`
147: echo "result: $outstr expected: $expect input: $argstr"
148:
149: argstr=1234567890ABCDEFGHIJKLMNOPQRSTUV
150: expect=12345678
151: outstr=`curl_8char_object_name $argstr`
152: echo "result: $outstr expected: $expect input: $argstr"
153:
154: #
155: # Verify that generated object name is distinct for
156: # all *.c source files in lib and src subdirectories.
157: #
158:
159: ls $srcdir/../lib/*.c > $list_c
160: ls $srcdir/../src/*.c >> $list_c
161:
162: rm -f $list_obj
163:
164: for c_fname in `cat $list_c`; do
165: obj_name=`curl_8char_object_name $c_fname`
166: echo "$obj_name" >> $list_obj
167: done
168:
169: sort -u $list_obj > $list_obj_uniq
170:
171: cnt_c=`cat $list_c | wc -l`
172: cnt_u=`cat $list_obj_uniq | wc -l`
173:
174: echo ""
175: echo ""
176: echo ""
177: if test $cnt_c -eq $cnt_u; then
178: echo "8-characters-or-less generated object names are unique."
179: obj_name_clash="no"
180: else
181: echo "8-characters-or-less generated object names are clashing..."
182: obj_name_clash="yes"
183: fi
184:
185: if test $obj_name_clash = "yes"; then
186: #
187: # Show clashing object names and respective source file names
188: #
189: echo ""
190: paste $list_obj $list_c | sort > $list_obj_c
191: prev_match="no"
192: prev_line="unknown"
193: prev_obj_name="unknown"
194: while read this_line; do
195: obj_name=`echo "$this_line" | cut -f1`
196: if test "x$obj_name" = "x$prev_obj_name"; then
197: if test "x$prev_match" != "xyes"; then
198: echo "$prev_line"
199: echo "$this_line"
200: prev_match="yes"
201: else
202: echo "$this_line"
203: fi
204: else
205: prev_match="no"
206: fi
207: prev_line=$this_line
208: prev_obj_name=$obj_name
209: done < $list_obj_c
210: fi
211:
212: rm -f $list_c
213: rm -f $list_obj
214: rm -f $list_obj_c
215: rm -f $list_obj_uniq
216:
217: # end of objnames-test.sh
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>