Add configuration files and patches for R, SDL2, SDL3, Tk, and Vala
- 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.
This commit is contained in:
@@ -0,0 +1,245 @@
|
||||
--- 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"
|
||||
Reference in New Issue
Block a user