"Fossies" - the Fresh Open Source Software Archive

Member "cook-2.34/test/01/t0103a.sh" (25 Sep 2010, 2549 Bytes) of package /linux/misc/old/cook-2.34.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Bash source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 #!/bin/sh
    2 #
    3 #       cook - file construction tool
    4 #       Copyright (C) 1997, 1998, 2007, 2008 Peter Miller
    5 #
    6 #       This program is free software; you can redistribute it and/or modify
    7 #       it under the terms of the GNU General Public License as published by
    8 #       the Free Software Foundation; either version 3 of the License, or
    9 #       (at your option) any later version.
   10 #
   11 #       This program is distributed in the hope that it will be useful,
   12 #       but WITHOUT ANY WARRANTY; without even the implied warranty of
   13 #       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   14 #       GNU General Public License for more details.
   15 #
   16 #       You should have received a copy of the GNU General Public License
   17 #       along with this program. If not, see
   18 #       <http://www.gnu.org/licenses/>.
   19 #
   20 work=${COOK_TMP:-/tmp}/$$
   21 PAGER=cat
   22 export PAGER
   23 umask 022
   24 unset COOK
   25 here=`pwd`
   26 if test $? -ne 0 ; then exit 2; fi
   27 
   28 bin="$here/${1-.}/bin"
   29 
   30 pass()
   31 {
   32         set +x
   33         cd $here
   34         rm -rf $work
   35         exit 0
   36 }
   37 fail()
   38 {
   39         set +x
   40         echo 'FAILED test of the make2cook foreach functionality' 1>&2
   41         cd $here
   42         rm -rf $work
   43         exit 1
   44 }
   45 no_result()
   46 {
   47         set +x
   48         echo 'NO RESULT for test of the make2cook foreach functionality' 1>&2
   49         cd $here
   50         rm -rf $work
   51         exit 2
   52 }
   53 trap \"no_result\" 1 2 3 15
   54 
   55 mkdir $work $work/lib
   56 if test $? -ne 0 ; then no_result; fi
   57 cd $work
   58 if test $? -ne 0 ; then no_result; fi
   59 
   60 #
   61 # Use the default error messages.  There is no other way to get
   62 # predictable test behaviour on the unknown systems we will be tested on.
   63 #
   64 COOK_MESSAGE_LIBRARY=$work/no-such-dir
   65 export COOK_MESSAGE_LIBRARY
   66 unset LANG
   67 
   68 #
   69 # test the make2cook foreach functionality
   70 #
   71 cat > test.in << 'fubar'
   72 override list := a b c d
   73 override x := $(foreach name,$(list),a-$(name)-b-$(name)-c)
   74 
   75 # the next translation is known to be less than perfect:
   76 override y := $(foreach name,$(list),$(wildcard $(name)/*))
   77 fubar
   78 if test $? -ne 0 ; then no_result; fi
   79 
   80 cat > test.ok << 'fubar'
   81 #line 1 "test.in"
   82 list = a b c d;
   83 x = [fromto % a-%-b-%-c [list]];
   84 /*
   85  * the next translation is known to be less than perfect:
   86  */
   87 #line 5 "test.in"
   88 y = [fromto % [wildcard %/\*] [list]];
   89 fubar
   90 if test $? -ne 0 ; then no_result; fi
   91 
   92 $bin/make2cook -ln test.in test.out
   93 if test $? -ne 0 ; then fail; fi
   94 
   95 diff test.ok test.out
   96 if test $? -ne 0 ; then fail; fi
   97 
   98 #
   99 # Only definite negatives are possible.
  100 # The functionality exercised by this test appears to work,
  101 # no other guarantees are made.
  102 #
  103 pass