Files
patches/vala/vala-0.56.18-posixify.patch
2026-05-26 02:08:47 -05:00

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"