forked from dolphin-emu/dolphin
		
	
		
			
	
	
		
			218 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			218 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
|   | #!/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 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 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 |