1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#!/bin/bash
# Test #no_struct
# Copyright (C) 2008 - 2016 Michael Geng <linux@MichaelGeng.de>
# This program 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 2 of the License, or
# (at your option) any later version.
# This program 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/>.
if test "$VERBOSE" = yes; then
set -x
fi
. test-lib.sh
# -------------------------------------------------------
# C language
# -------------------------------------------------------
echo "extern int x;" > x.h
echo "int x;" > x.c
echo "#include \"x.h\"
#no_struct
a flag \"-a sets x to 7\"
__CODE__(x = 7;)
b flag \"-b prints value of x\"
__CODE__(printf (\"x = %d\n\", x);)" > x.gp
echo "#include <stdio.h>
#include \"parse_cl.h\"
int main (int argc, char *argv[])
{
Cmdline (argc, argv);
return 0;
}" > main.c
echo "x = 7" > exp
$GENPARSE --language c x.gp >/dev/null || fail=1
gcc $CFLAGS -o parse_cl parse_cl.c main.c x.c || fail=1
parse_cl -a -b > out || fail=1
cmp out exp || fail=1
rm -f x.c x.h main.c
exit $fail
|