123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- #!/bin/sh
- # ***************************************************************************
- # * _ _ ____ _
- # * Project ___| | | | _ \| |
- # * / __| | | | |_) | |
- # * | (__| |_| | _ <| |___
- # * \___|\___/|_| \_\_____|
- # *
- # * Copyright (C) 2013 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
- # *
- # * This software is licensed as described in the file COPYING, which
- # * you should have received as part of this distribution. The terms
- # * are also available at https://curl.haxx.se/docs/copyright.html.
- # *
- # * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- # * copies of the Software, and permit persons to whom the Software is
- # * furnished to do so, under the terms of the COPYING file.
- # *
- # * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- # * KIND, either express or implied.
- # *
- # ***************************************************************************
- #
- # This Bourne shell script file is used by test case 1222 to do
- # unit testing of curl_8char_object_name() shell function which
- # is defined in file objnames.inc and sourced by this file and
- # any other shell script that may use it.
- #
- #
- # argument validation
- #
- if test $# -eq 1; then
- :
- else
- echo "Usage: ${0} srcdir"
- exit 1
- fi
- if test -f "${1}/runtests.pl"; then
- :
- else
- echo "${0}: Wrong srcdir"
- exit 1
- fi
- srcdir=${1}
- if test -f "$srcdir/objnames.inc"; then
- :
- else
- echo "$0: Missing objnames.inc"
- exit 1
- fi
- #
- # Some variables
- #
- logdir=log
- tstnum=1222
- list_c=$logdir/${tstnum}_list_c
- list_obj=$logdir/${tstnum}_list_obj
- list_obj_c=$logdir/${tstnum}_list_obj_c
- list_obj_uniq=$logdir/${tstnum}_list_obj_uniq
- #
- # Source curl_8char_object_name() function definition
- #
- . $srcdir/objnames.inc
- #
- # Some curl_8char_object_name() unit tests
- #
- echo 'Testing curl_8char_object_name...'
- echo ""
- argstr=123__678__ABC__FGH__KLM__PQRSTUV
- expect=16AFKPQR
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=123__678__ABC__FGH__KLM__PQ.S.UV
- expect=16AFKPQ
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=123__678__ABC..FGH..KLM..PQRSTUV
- expect=16ABC
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=123__678_.ABC._FGH__KLM__PQRSTUV
- expect=16
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=123.567.90ABCDEFGHIJKLMNOPQRSTUV
- expect=123
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=1234567.90A.CDEFGHIJKLMNOPQRSTUV
- expect=1234567
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=1234567890.BCD.FGHIJKLMNOPQRSTUV
- expect=12345678
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=12=45-78+0AB.DE.GHIJKLMNOPQRSTUV
- expect=1470AB
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=1234567890ABCDEFGHIJKLMNOPQRSTUV
- expect=12345678
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=123_567_90A_CDE_GHIJKLMNOPQRSTUV
- expect=159CGHIJ
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=123_567_90A_CDEFGHIJKLMNOPQRSTUV
- expect=159CDEFG
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=123_567_90ABCDEFGHIJKLMNOPQRSTUV
- expect=1590ABCD
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=123_567890ABCDEFGHIJKLMNOPQRSTUV
- expect=1567890A
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- argstr=1234567890ABCDEFGHIJKLMNOPQRSTUV
- expect=12345678
- outstr=`curl_8char_object_name $argstr`
- echo "result: $outstr expected: $expect input: $argstr"
- #
- # Verify that generated object name is distinct for
- # all *.c source files in lib and src subdirectories.
- #
- ls $srcdir/../lib/*.c > $list_c
- ls $srcdir/../src/*.c >> $list_c
- rm -f $list_obj
- for c_fname in `cat $list_c`; do
- obj_name=`curl_8char_object_name $c_fname`
- echo "$obj_name" >> $list_obj
- done
- sort -u $list_obj > $list_obj_uniq
- cnt_c=`cat $list_c | wc -l`
- cnt_u=`cat $list_obj_uniq | wc -l`
- echo ""
- echo ""
- echo ""
- if test $cnt_c -eq $cnt_u; then
- echo "8-characters-or-less generated object names are unique."
- obj_name_clash="no"
- else
- echo "8-characters-or-less generated object names are clashing..."
- obj_name_clash="yes"
- fi
- if test $obj_name_clash = "yes"; then
- #
- # Show clashing object names and respective source file names
- #
- echo ""
- paste $list_obj $list_c | sort > $list_obj_c
- prev_match="no"
- prev_line="unknown"
- prev_obj_name="unknown"
- while read this_line; do
- obj_name=`echo "$this_line" | cut -f1`
- if test "x$obj_name" = "x$prev_obj_name"; then
- if test "x$prev_match" != "xyes"; then
- echo "$prev_line"
- echo "$this_line"
- prev_match="yes"
- else
- echo "$this_line"
- fi
- else
- prev_match="no"
- fi
- prev_line=$this_line
- prev_obj_name=$obj_name
- done < $list_obj_c
- fi
- rm -f $list_c
- rm -f $list_obj
- rm -f $list_obj_c
- rm -f $list_obj_uniq
- # end of objnames-test.sh
|