xref: /Universal-ctags/misc/packcc/tests/utils.sh (revision 94b93df2fbd992696312d0e8dbb9b272275f27aa)
1test_generate () {
2    (cd "$BATS_TEST_DIRNAME" && "$PACKCC" "${PACKCC_OPTS[@]}" -o "parser" "${1:-input.peg}")
3}
4
5test_compile() {
6    ${CC:-cc} -I "$BATS_TEST_DIRNAME" "main.c" -o "$BATS_TEST_DIRNAME/parser" "$@"
7}
8
9check_output() {
10    diff --strip-trailing-cr -uN "${1/input/expected}" --label "${1/input/expected}" <(echo "$output") --label "output"
11}
12
13run_for_input() {
14    run timeout 5s "$BATS_TEST_DIRNAME/parser" < "$1"
15    check_output "$1"
16}
17
18in_header() {
19    grep -Fq "$1" "$BATS_TEST_DIRNAME/parser.h"
20}
21
22in_source() {
23    grep -Fq "$1" "$BATS_TEST_DIRNAME/parser.c"
24}
25
26get_line() {
27    sed -n "/$1/=" "$BATS_TEST_DIRNAME/$2" | tail -n1
28}
29