File: test-lib.sh

package info (click to toggle)
genparse 0.9.3-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,456 kB
  • sloc: ansic: 8,766; cpp: 6,059; sh: 5,336; java: 578; yacc: 482; lex: 315; makefile: 302
file content (68 lines) | stat: -rw-r--r-- 2,728 bytes parent folder | download | duplicates (2)
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
61
62
63
64
65
66
67
68
#!/bin/bash
# Common functions or definitions used by all test scripts

# Copyright (C) 2007 - 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/>.

LC_ALL=C
export LC_ALL

all_languages="c cc java"

GENPARSE=../../src/genparse

error_() { echo "$0: $@" 1>&2; exit 1; }
framework_failure() { error_ 'failure in testing framework'; }

CFLAGS=-I.
CXXFLAGS="-std=c++14 -I."
GNULIB_CPPFLAGS=-I$srcdir/../../gnulib/lib
GNULIB_LDFLAGS="-L../../gnulib/lib -lgnu"

# Generate a simple commad line parsing program.
# Parameters: 
# $1: genparse file
# $2: programming language
gen_code()
{
  genparse_file=$1
  language=$2

  if test $language = java; then
    GENPARSE_EXTRA_OPTS="--parsefunc parse_cl"
  else
    GENPARSE_EXTRA_OPTS=""
  fi

  $GENPARSE --language $language --outfile parse_cl \
    $GENPARSE_EXTRA_OPTS $genparse_file >/dev/null                              || fail=1

  case $language in
    c)    gcc $CFLAGS -o parse_cl parse_cl.c  $srcdir/simple.c                  || fail=1
          test -f parse_cl.c                                                    || fail=1
          test -x parse_cl                                                      || fail=1 ;;
    cc)   g++ $CXXFLAGS -o parse_cl parse_cl.cc $srcdir/simple.cc               || fail=1
          test -f parse_cl.cc                                                   || fail=1
          test -x parse_cl                                                      || fail=1 ;;
    java) rm -f classes/*                                                       || fail=1
          mkdir -p classes/                                                     || fail=1
          javac -classpath $CLASSPATH:classes -d classes parse_clInterface.java || fail=1
          javac -classpath $CLASSPATH:classes -d classes parse_clEx.java        || fail=1
          javac -classpath $CLASSPATH:classes -d classes parse_cl.java          || fail=1
          javac -classpath $CLASSPATH:classes -d classes $srcdir/simple.java    || fail=1
          java  -classpath $CLASSPATH:classes simple                            || fail=1 ;;
    *)    fail=1 ;;
  esac
}