218 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # ***************************************************************************
 | |
| # *                                  _   _ ____  _
 | |
| # *  Project                     ___| | | |  _ \| |
 | |
| # *                             / __| | | | |_) | |
 | |
| # *                            | (__| |_| |  _ <| |___
 | |
| # *                             \___|\___/|_| \_\_____|
 | |
| # *
 | |
| # * Copyright (C) 2013, 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 http://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 1221 to do
 | |
| # unit testing of curl_10char_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/../lib/objnames.inc"; then
 | |
|   :
 | |
| else
 | |
|   echo "$0: Missing objnames.inc"
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| #
 | |
| # Some variables
 | |
| #
 | |
| 
 | |
| logdir=log
 | |
| tstnum=1221
 | |
| 
 | |
| 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_10char_object_name() function definition
 | |
| #
 | |
| 
 | |
| . $srcdir/../lib/objnames.inc
 | |
| 
 | |
| #
 | |
| # Some curl_10char_object_name() unit tests
 | |
| #
 | |
| 
 | |
| echo 'Testing curl_10char_object_name...'
 | |
| echo ""
 | |
| 
 | |
| argstr=123__678__ABC__FGH__KLM__PQRSTUV
 | |
| expect=16AFKPQRST
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=123__678__ABC__FGH__KLM__PQ.S.UV
 | |
| expect=16AFKPQ
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=123__678__ABC..FGH..KLM..PQRSTUV
 | |
| expect=16ABC
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=123__678_.ABC._FGH__KLM__PQRSTUV
 | |
| expect=16
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=123.567.90ABCDEFGHIJKLMNOPQRSTUV
 | |
| expect=123
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=1234567.90A.CDEFGHIJKLMNOPQRSTUV
 | |
| expect=1234567
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=1234567890.BCD.FGHIJKLMNOPQRSTUV
 | |
| expect=1234567890
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=12=45-78+0AB.DE.GHIJKLMNOPQRSTUV
 | |
| expect=1470AB
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=1234567890ABCDEFGHIJKLMNOPQRSTUV
 | |
| expect=1234567890
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=123_567_90A_CDE_GHIJKLMNOPQRSTUV
 | |
| expect=159CGHIJKL
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=123_567_90A_CDEFGHIJKLMNOPQRSTUV
 | |
| expect=159CDEFGHI
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=123_567_90ABCDEFGHIJKLMNOPQRSTUV
 | |
| expect=1590ABCDEF
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=123_567890ABCDEFGHIJKLMNOPQRSTUV
 | |
| expect=1567890ABC
 | |
| outstr=`curl_10char_object_name $argstr`
 | |
| echo "result: $outstr expected: $expect input: $argstr"
 | |
| 
 | |
| argstr=1234567890ABCDEFGHIJKLMNOPQRSTUV
 | |
| expect=1234567890
 | |
| outstr=`curl_10char_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_10char_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 "10-characters-or-less generated object names are unique."
 | |
|   obj_name_clash="no"
 | |
| else
 | |
|   echo "10-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-test10.sh
 | 
