File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / tests / objnames-test08.sh
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 10:01:16 2020 UTC (5 years ago) by misho
Branches: curl, MAIN
CVS tags: v7_70_0p4, HEAD
curl

    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
  218: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>