#! /bin/sh
# -*- Mode: Shell-script -*-
# directives.test --- test definition directives
#
# Author: Bruce Korb <bkorb@gnu.org>
##
## This file is part of AutoGen.
## AutoGen Copyright (C) 1992-2016 by Bruce Korb - all rights reserved
##
## AutoGen is free software: you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by the
## Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## AutoGen is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
## See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this program. If not, see <http://www.gnu.org/licenses/>.
##
#
# ----------------------------------------------------------------------
. ./defs
# # # # # # # # # # TEMPLATE FILE # # # # # # # # #
mkdir ${testname}.dir
mkdir ${testname}.dir/subdir
LDIR=`pwd`/${testname}.dir
export LDIR
echo creating ${testname}.dir/subdir/${testname}.tpl
cat > ${testname}.dir/subdir/${testname}.tpl <<'_EOF_'
[= AutoGen5 Template test =]
Irrelevant [=foo=].
_EOF_
# # # # # # # # # # DEFINITIONS FILE # # # # # # # # #
echo creating ${testname}.inc
${SED} 's/^ *[0-9]*: //' > ${testname}.inc <<_EOF_
1: autogen definitions ${testname};
2:
3: #option templ-dir \$LDIR/subdir
4:
5: /*
6: #define COMMENT
7: #ifdef COMMENT
8: # error error in comment
9: */
10:
11: #ifdef MUMBLE
12: # define MORE
13: #else
14: # define FUMBLE
15: #endif
_EOF_
echo creating ${testname}.def
${SED} 's/^ *[0-9]*: //' > ${testname}.def <<_EOF_
1: autogen definitions ${testname};
2:
3: #include ${testname}.inc
4:
5: #ifdef FUMBLE
6: # error we fumbled mumble
7: #endif
8:
9: #ifndef MORE
10: # error we fumbled more
11: #endif
12:
13: #if (FOO == 1)
14: # error we got iffed
15: #elif (FOO == 0)
16: # error we got FOO zeroed
17: #else
18: # error we got lost
19: #endif
20:
21: #shell
22:
23: echo "#line 1 shelltext"
24: echo "foo = bar;"
25:
26: #endshell
27:
28: #define FUMBLE
29: #undef MORE
30:
31: #ifndef FUMBLE
32: # error we goofed fumble
33: #endif
34:
35: #ifdef MORE
36: # error we mumbled more
37: #endif
_EOF_
# # # # # # # # # # EXPECTED OUTPUT FILE # # # # # # #
echo creating ${testname}.base
# this is the output we should expect to see
cat > ${testname}.base <<_EOF_
Irrelevant bar.
_EOF_
agopts="-DMUMBLE -DFOO=1"
MORE=DOITWRONG
run_ag x1 ${agopts} ${testname}.def
test $? -eq 0 || failure ${agopts}-1 failed
cmp -s ${testname}.base ${testname}.test || \
failure "`diff ${testname}.base ${testname}.test`"
echo '#assert `echo true`' >> ${testname}.inc
run_ag x2 ${agopts} ${testname}.def
test $? -eq 0 || failure ${agopts}-2 failed
echo '#assert `echo false`' >> ${testname}.inc
run_ag x3 ${agopts} ${testname}.def
test $? -ne 0 || failure ${agopts}-3 failed
${FGREP} -v '#assert' ${testname}.inc > ${testname}2.inc
mv -f ${testname}2.inc ${testname}.inc
echo '#assert (version-compare > autogen-version "5.8.4")' >> ${testname}.inc
run_ag x4 ${agopts} ${testname}.def
test $? -eq 0 || failure ${agopts}-4 failed
echo '#assert (version-compare < autogen-version "5.8.4.63")' >> ${testname}.inc
run_ag x5 ${agopts} ${testname}.def
test $? -ne 0 || failure ${agopts}-5 failed
cleanup
## Local Variables:
## mode: shell-script
## indent-tabs-mode: nil
## sh-indentation: 2
## sh-basic-offset: 2
## End:
# end of directives.test