49bf7bbb5d
- Introduced `r.toml` for R package configuration, including build flags and dependencies. - Added `sdl2-compat.toml` for SDL2 compatibility layer with SDL3, specifying build and runtime dependencies. - Created a patch for SDL3 to handle cases when XInput2 is not available, ensuring compatibility. - Added `sdl3.toml` for SDL3 configuration, including build flags and dependencies. - Introduced `tk.toml` for Tk configuration, detailing build flags and runtime dependencies. - Added a patch for Vala to ensure POSIX compliance in the test runner script, improving portability.
246 lines
7.0 KiB
Diff
246 lines
7.0 KiB
Diff
--- a/build-aux/testrunner.sh
|
|
+++ b/build-aux/testrunner.sh
|
|
@@ -1,4 +1,4 @@
|
|
-#!/usr/bin/env bash
|
|
+#!/bin/sh
|
|
# testrunner.sh
|
|
#
|
|
# Copyright (C) 2006-2008 Jürg Billeter
|
|
@@ -26,14 +26,22 @@
|
|
|
|
EXTRA_ENVIRONMENT_FILE=tests-extra-environment.sh
|
|
|
|
+sanitize_name() {
|
|
+ printf '%s\n' "$1" | tr '/-' '__'
|
|
+}
|
|
+
|
|
+package_flags() {
|
|
+ for package in $PACKAGES; do
|
|
+ printf ' --pkg %s' "$package"
|
|
+ done
|
|
+}
|
|
+
|
|
testfile=$1
|
|
-testdirname="$(dirname $testfile)"
|
|
+testdirname=$(dirname "$testfile")
|
|
testfile=${testfile#$srcdir/}
|
|
-testpath=${testfile/.*/}
|
|
-testpath=${testpath//\//_}
|
|
-testpath=${testpath//-/_}
|
|
-if test -f $testdirname/$EXTRA_ENVIRONMENT_FILE; then
|
|
- source $testdirname/$EXTRA_ENVIRONMENT_FILE
|
|
+testpath=$(sanitize_name "${testfile%.*}")
|
|
+if test -f "$testdirname/$EXTRA_ENVIRONMENT_FILE"; then
|
|
+ . "$testdirname/$EXTRA_ENVIRONMENT_FILE"
|
|
fi
|
|
|
|
vapidir=$abs_top_srcdir/vapi
|
|
@@ -57,21 +65,25 @@
|
|
|
|
# Incorporate the TEST_CFLAGS.
|
|
for cflag in ${TEST_CFLAGS}; do
|
|
- VALAFLAGS="${VALAFLAGS} -X ${cflag}"
|
|
+ VALAFLAGS="${VALAFLAGS} -X ${cflag}"
|
|
done
|
|
|
|
# Incorporate the user's CFLAGS. Matters if the user decided to insert
|
|
# -m32 in CFLAGS, for example.
|
|
for cflag in ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
|
|
- if [[ ! $cflag =~ ^\-O[0-9]$ ]]; then
|
|
- VALAFLAGS="${VALAFLAGS} -X ${cflag}"
|
|
- fi
|
|
+ case $cflag in
|
|
+ -O[0-9])
|
|
+ ;;
|
|
+ *)
|
|
+ VALAFLAGS="${VALAFLAGS} -X ${cflag}"
|
|
+ ;;
|
|
+ esac
|
|
done
|
|
|
|
-function testheader() {
|
|
+testheader() {
|
|
if [ "$1" = "Packages:" ]; then
|
|
shift
|
|
- PACKAGES="$PACKAGES $@"
|
|
+ PACKAGES="$PACKAGES $*"
|
|
elif [ "$*" = "Invalid Code" ]; then
|
|
INVALIDCODE=1
|
|
INHEADER=0
|
|
@@ -84,21 +96,19 @@
|
|
fi
|
|
}
|
|
|
|
-function sourceheader() {
|
|
+sourceheader() {
|
|
if [ "$1" = "Program:" ]; then
|
|
if [ "$2" = "server" ]; then
|
|
ISSERVER=1
|
|
fi
|
|
- ns=$testpath/$2
|
|
- ns=${ns//\//_}
|
|
- ns=${ns//-/_}
|
|
+ ns=$(sanitize_name "$testpath/$2")
|
|
SOURCEFILE=$ns.vala
|
|
SOURCEFILES="$SOURCEFILES $SOURCEFILE"
|
|
- elif [ $GIRWRITERTEST -eq 1 ]; then
|
|
+ elif [ "$GIRWRITERTEST" -eq 1 ]; then
|
|
if [ "$1" = "Input:" ]; then
|
|
ns=$testpath
|
|
SOURCEFILE=$testpath.vala
|
|
- cat <<EOF > $SOURCEFILE
|
|
+ cat <<EOF > "$SOURCEFILE"
|
|
[CCode (cprefix = "Test", gir_namespace = "Test", gir_version = "1.2", lower_case_cprefix = "test_")]
|
|
namespace Test {
|
|
EOF
|
|
@@ -108,26 +118,26 @@
|
|
fi
|
|
}
|
|
|
|
-function sourceend() {
|
|
- if [ $INVALIDCODE -eq 1 ]; then
|
|
- PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg")
|
|
+sourceend() {
|
|
+ if [ "$INVALIDCODE" -eq 1 ]; then
|
|
+ PACKAGEFLAGS=$(package_flags)
|
|
echo '' > prepare
|
|
echo "$VALAC $VALAFLAGS $PACKAGEFLAGS -C $SOURCEFILE" > check
|
|
echo "RET=\$?" >> check
|
|
echo "if [ \$RET -ne 1 ]; then exit 1; fi" >> check
|
|
echo "exit 0" >> check
|
|
- elif [ $GIRWRITERTEST -eq 1 ]; then
|
|
- if [ $PART -eq 1 ]; then
|
|
- echo "}" >> $SOURCEFILE
|
|
+ elif [ "$GIRWRITERTEST" -eq 1 ]; then
|
|
+ if [ "$PART" -eq 1 ]; then
|
|
+ echo "}" >> "$SOURCEFILE"
|
|
fi
|
|
- PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg")
|
|
+ PACKAGEFLAGS=$(package_flags)
|
|
echo "$VALAC $VALAFLAGS $PACKAGEFLAGS -C --library test -H test.h --gir Test-1.2.gir $ns.vala && tail -n +4 Test-1.2.gir|sed '\$d'|diff -wu Test-1.2.gir.ref -" > check
|
|
else
|
|
- PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg")
|
|
+ PACKAGEFLAGS=$(package_flags)
|
|
echo "$VALAC $VALAFLAGS $PACKAGEFLAGS -o $ns$EXEEXT $SOURCEFILE" >> prepare
|
|
- if [ $DBUSTEST -eq 1 ]; then
|
|
+ if [ "$DBUSTEST" -eq 1 ]; then
|
|
echo "UPDATE_EXPECTED=$UPDATE_EXPECTED" >> prepare
|
|
- if [ $ISSERVER -eq 1 ]; then
|
|
+ if [ "$ISSERVER" -eq 1 ]; then
|
|
echo "if [ -n \"$UPDATE_EXPECTED\" ]; then" >> prepare
|
|
echo " cp -p ${SOURCEFILE%.*}.c $abs_srcdir/${testfile%.*}_server.c-expected" >> prepare
|
|
echo "elif [ -f $abs_srcdir/${testfile%.*}_server.c-expected ]; then" >> prepare
|
|
@@ -152,38 +162,40 @@
|
|
unset SOURCEFILE
|
|
|
|
testdir=_test.$$
|
|
-rm -rf ./$testdir
|
|
-mkdir $testdir
|
|
-cd $testdir
|
|
+rm -rf "./$testdir"
|
|
+mkdir "$testdir"
|
|
+cd "$testdir"
|
|
|
|
case "$testfile" in
|
|
-*.gs)
|
|
- SOURCEFILE=$testpath.gs
|
|
- ;&
|
|
-*.vala)
|
|
+*.gs|*.vala)
|
|
+ case "$testfile" in
|
|
+ *.gs)
|
|
+ SOURCEFILE=$testpath.gs
|
|
+ ;;
|
|
+ esac
|
|
SOURCEFILE=${SOURCEFILE:-$testpath.vala}
|
|
- cat "$abs_srcdir/$testfile" > ./$SOURCEFILE
|
|
- PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg")
|
|
- $VALAC $VALAFLAGS $PACKAGEFLAGS -o $testpath$EXEEXT $SOURCEFILE
|
|
+ cat "$abs_srcdir/$testfile" > "./$SOURCEFILE"
|
|
+ PACKAGEFLAGS=$(package_flags)
|
|
+ $VALAC $VALAFLAGS $PACKAGEFLAGS -o "$testpath$EXEEXT" "$SOURCEFILE"
|
|
if [ -n "$UPDATE_EXPECTED" ]; then
|
|
- cp -p ${SOURCEFILE%.*}.c $abs_srcdir/${testfile%.*}.c-expected
|
|
+ cp -p "${SOURCEFILE%.*}.c" "$abs_srcdir/${testfile%.*}.c-expected"
|
|
if [ -f test.h ]; then
|
|
- cp -p test.h $abs_srcdir/${testfile%.*}.h-expected || exit 1
|
|
+ cp -p test.h "$abs_srcdir/${testfile%.*}.h-expected" || exit 1
|
|
fi
|
|
- elif [ -f $abs_srcdir/${testfile%.*}.c-expected ]; then
|
|
- diff -wu $abs_srcdir/${testfile%.*}.c-expected ${SOURCEFILE%.*}.c || exit 1
|
|
- if [ -f $abs_srcdir/${testfile%.*}.h-expected ]; then
|
|
- diff -wu $abs_srcdir/${testfile%.*}.h-expected test.h || exit 1
|
|
+ elif [ -f "$abs_srcdir/${testfile%.*}.c-expected" ]; then
|
|
+ diff -wu "$abs_srcdir/${testfile%.*}.c-expected" "${SOURCEFILE%.*}.c" || exit 1
|
|
+ if [ -f "$abs_srcdir/${testfile%.*}.h-expected" ]; then
|
|
+ diff -wu "$abs_srcdir/${testfile%.*}.h-expected" test.h || exit 1
|
|
fi
|
|
fi
|
|
- ./$testpath$EXEEXT
|
|
+ "./$testpath$EXEEXT"
|
|
;;
|
|
*.gir)
|
|
SOURCEFILE=$testpath.gir
|
|
- cat "$abs_srcdir/$testfile" > ./$SOURCEFILE
|
|
- PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg")
|
|
- $VAPIGEN $VAPIGENFLAGS $PACKAGEFLAGS --library $testpath $SOURCEFILE || exit 1
|
|
- tail -n +3 ${SOURCEFILE%.*}.vapi | diff -wu $abs_srcdir/${testfile%.*}.vapi-expected - || exit 1
|
|
+ cat "$abs_srcdir/$testfile" > "./$SOURCEFILE"
|
|
+ PACKAGEFLAGS=$(package_flags)
|
|
+ $VAPIGEN $VAPIGENFLAGS $PACKAGEFLAGS --library "$testpath" "$SOURCEFILE" || exit 1
|
|
+ tail -n +3 "${SOURCEFILE%.*}.vapi" | diff -wu "$abs_srcdir/${testfile%.*}.vapi-expected" - || exit 1
|
|
;;
|
|
*.test)
|
|
rm -f prepare check
|
|
@@ -195,37 +207,41 @@
|
|
GIRWRITERTEST=0
|
|
DBUSTEST=0
|
|
ISSERVER=0
|
|
- while IFS="" read -r line; do
|
|
- if [ $PART -eq 0 ]; then
|
|
+ while IFS= read -r line; do
|
|
+ if [ "$PART" -eq 0 ]; then
|
|
if [ -n "$line" ]; then
|
|
testheader $line
|
|
else
|
|
PART=1
|
|
fi
|
|
else
|
|
- if [ $INHEADER -eq 1 ]; then
|
|
+ if [ "$INHEADER" -eq 1 ]; then
|
|
if [ -n "$line" ]; then
|
|
sourceheader $line
|
|
else
|
|
INHEADER=0
|
|
fi
|
|
else
|
|
- if echo "$line" | grep -q "^[A-Za-z]\+:"; then
|
|
+ if printf '%s\n' "$line" | grep -q '^[A-Za-z][A-Za-z]*:'; then
|
|
sourceend
|
|
- PART=$(($PART + 1))
|
|
+ PART=$((PART + 1))
|
|
INHEADER=1
|
|
sourceheader $line
|
|
else
|
|
- echo "$line" >> $SOURCEFILE
|
|
+ echo "$line" >> "$SOURCEFILE"
|
|
fi
|
|
fi
|
|
fi
|
|
done < "$abs_srcdir/$testfile"
|
|
sourceend
|
|
- cat prepare check > $ns.check
|
|
- $run_prefix bash $ns.check
|
|
+ cat prepare check > "$ns.check"
|
|
+ if [ -n "$run_prefix" ]; then
|
|
+ $run_prefix sh "$ns.check"
|
|
+ else
|
|
+ sh "$ns.check"
|
|
+ fi
|
|
;;
|
|
esac
|
|
|
|
cd ..
|
|
-rm -rf ./$testdir
|
|
+rm -rf "./$testdir"
|