Author: rfm
Date: Thu Jan 15 13:27:58 2015
New Revision: 38292
URL: http://svn.gna.org/viewcvs/gnustep?rev=38292&view=rev
Log:
Fix use of Start.sh to actually check completion status
Modified:
tools/make/trunk/ChangeLog
tools/make/trunk/TestFramework/gnustep-tests.in
Modified: tools/make/trunk/ChangeLog
URL:
http://svn.gna.org/viewcvs/gnustep/tools/make/trunk/ChangeLog?rev=38292&r1=38291&r2=38292&view=diff
==============================================================================
--- tools/make/trunk/ChangeLog (original)
+++ tools/make/trunk/ChangeLog Thu Jan 15 13:27:58 2015
@@ -1,3 +1,9 @@
+2015-01-15 Richard Frith-Macdonald <[email protected]>
+
+ * TestFramework/gnustep-tests.in: Check status of Start.sh script so
+ we refrain from attempting tests in a directory whose startup script
+ has failed.
+
2014-12-21: Niels Grewe <[email protected]>
* rules.make
Modified: tools/make/trunk/TestFramework/gnustep-tests.in
URL:
http://svn.gna.org/viewcvs/gnustep/tools/make/trunk/TestFramework/gnustep-tests.in?rev=38292&r1=38291&r2=38292&view=diff
==============================================================================
--- tools/make/trunk/TestFramework/gnustep-tests.in (original)
+++ tools/make/trunk/TestFramework/gnustep-tests.in Thu Jan 15 13:27:58 2015
@@ -535,109 +535,117 @@
if test -r ./Start.sh -a -x ./Start.sh
then
./Start.sh
- fi
-
- # Get the names of all the source files in the current directory.
- if test x"$TESTS" = x
- then
- if test x"$OBJCXX" = x
- then
- # Only Objective-C (and C)
- TESTS=`find . \( -name . -o -prune \) \( -name "*.m" -o -name "*.c"
\) | sed -e 's;^.*/;;' | sort -u | sed -e 's/\(^\| \)X[^ ]*//g'`
- else
- # Objective-C and Objective-C++ (implicitly C and C++ too)
- TESTS=`find . \( -name . -o -prune \) \( -name "*.m" -o -name "*.mm"
-name "*.c" -o -name "*.cc" \) | sed -e 's;^.*/;;' | sort -u | sed -e 's/\(^\|
\)X[^ ]*//g'`
- fi
- fi
-
- if test -r GNUmakefile.tests
- then
- # There's a custom make template present ... use it.
- TEMPLATE=GNUmakefile.tests
- elif test -r GNUmakefile.preamble
- then
- # There's a make preamble present ... use default template.
- TEMPLATE=$GSTESTTOP/GNUmakefile.in
- elif test -r GNUmakefile.postamble
- then
- # There's a make postamble present ... use default template.
- TEMPLATE=$GSTESTTOP/GNUmakefile.in
- elif test -r ../GNUmakefile.super
- then
- # There's a make superfile present ... use default template.
- TEMPLATE=$GSTESTTOP/GNUmakefile.in
- elif test -r "$TESTS"
- then
- # Single readable file ... quicker to compile directly.
- TEMPLATE=
- elif test x"$GSSEQUENTIAL" = xyes
- then
- # We don't want to build in parallel, so a makefile won't speed us up
- TEMPLATE=
+ STARTSCRIPTSTATUS=$?
else
- # There are multiple files to build ... use make for parallelisation
- TEMPLATE=$GSTESTTOP/GNUmakefile.in
- fi
-
- NEEDBUILD=yes
- if test x"$TEMPLATE" = x
- then
- rm -rf core obj GNUmakefile gdb.cmds
- else
- TESTNAMES=
- TESTRULES=
- for TESTFILE in $TESTS
- do
- tmp=`basename $TESTFILE .m`
- if test x"$tmp" = x"$TESTFILE"
- then
- tmp=`basename $TESTFILE .mm`
+ STARTSCRIPTSTATUS=0
+ fi
+
+ if test $STARTSCRIPTSTATUS = 0
+ then
+ # Get the names of all the source files in the current directory.
+ if test x"$TESTS" = x
+ then
+ if test x"$OBJCXX" = x
+ then
+ # Only Objective-C (and C)
+ TESTS=`find . \( -name . -o -prune \) \( -name "*.m" -o -name
"*.c" \) | sed -e 's;^.*/;;' | sort -u | sed -e 's/\(^\| \)X[^ ]*//g'`
+ else
+ # Objective-C and Objective-C++ (implicitly C and C++ too)
+ TESTS=`find . \( -name . -o -prune \) \( -name "*.m" -o -name
"*.mm" -name "*.c" -o -name "*.cc" \) | sed -e 's;^.*/;;' | sort -u | sed -e
's/\(^\| \)X[^ ]*//g'`
+ fi
+ fi
+
+ if test -r GNUmakefile.tests
+ then
+ # There's a custom make template present ... use it.
+ TEMPLATE=GNUmakefile.tests
+ elif test -r GNUmakefile.preamble
+ then
+ # There's a make preamble present ... use default template.
+ TEMPLATE=$GSTESTTOP/GNUmakefile.in
+ elif test -r GNUmakefile.postamble
+ then
+ # There's a make postamble present ... use default template.
+ TEMPLATE=$GSTESTTOP/GNUmakefile.in
+ elif test -r ../GNUmakefile.super
+ then
+ # There's a make superfile present ... use default template.
+ TEMPLATE=$GSTESTTOP/GNUmakefile.in
+ elif test -r "$TESTS"
+ then
+ # Single readable file ... quicker to compile directly.
+ TEMPLATE=
+ elif test x"$GSSEQUENTIAL" = xyes
+ then
+ # We don't want to build in parallel, so a makefile won't speed us up
+ TEMPLATE=
+ else
+ # There are multiple files to build ... use make for parallelisation
+ TEMPLATE=$GSTESTTOP/GNUmakefile.in
+ fi
+
+ NEEDBUILD=yes
+ if test x"$TEMPLATE" = x
+ then
+ rm -rf core obj GNUmakefile gdb.cmds
+ else
+ TESTNAMES=
+ TESTRULES=
+ for TESTFILE in $TESTS
+ do
+ tmp=`basename $TESTFILE .m`
if test x"$tmp" = x"$TESTFILE"
then
- tmp=`basename $TESTFILE .c`
+ tmp=`basename $TESTFILE .mm`
if test x"$tmp" = x"$TESTFILE"
then
- TESTRULES="$TESTRULES\\
+ tmp=`basename $TESTFILE .c`
+ if test x"$tmp" = x"$TESTFILE"
+ then
+ TESTRULES="$TESTRULES\\
${tmp}_CC_FILES=$TESTFILE"
+ else
+ TESTRULES="$TESTRULES\\
+${tmp}_C_FILES=$TESTFILE"
+ fi
else
TESTRULES="$TESTRULES\\
-${tmp}_C_FILES=$TESTFILE"
+${tmp}_OBJCC_FILES=$TESTFILE"
fi
else
TESTRULES="$TESTRULES\\
-${tmp}_OBJCC_FILES=$TESTFILE"
+${tmp}_OBJC_FILES=$TESTFILE"
fi
- else
- TESTRULES="$TESTRULES\\
-${tmp}_OBJC_FILES=$TESTFILE"
- fi
- TESTNAMES="$TESTNAMES $tmp"
- done
- sed -e
"s/@TESTNAMES@/$TESTNAMES/;s^@TESTOPTS@^$GSTESTOPTS^;s/@TESTRULES@/$TESTRULES/"
< "$TEMPLATE" > GNUmakefile
- $MAKE_CMD clean >/dev/null 2>&1
-
- # Try building all the test files in the directory in parallel.
- # If that works, set NEEDBUILD to 'no' so that we do not build
- # each individual test file later.
- echo "" >>$GSTESTLOG
- echo "Building in $dir" >>$GSTESTLOG
- $MAKE_CMD -j 4 debug=yes >>$GSTESTLOG 2>&1
- if test $? = 0
- then
- NEEDBUILD=no
- fi
- fi
-
- # Now we process each test file in turn.
- # When cleaning, we only need to do one clean per directory.
- for TESTFILE in $TESTS
- do
- run_test_file
- if test "$RUNEXIT" != "0"
- then
- break
- fi
- done
+ TESTNAMES="$TESTNAMES $tmp"
+ done
+ sed -e
"s/@TESTNAMES@/$TESTNAMES/;s^@TESTOPTS@^$GSTESTOPTS^;s/@TESTRULES@/$TESTRULES/"
< "$TEMPLATE" > GNUmakefile
+ $MAKE_CMD clean >/dev/null 2>&1
+
+ # Try building all the test files in the directory in parallel.
+ # If that works, set NEEDBUILD to 'no' so that we do not build
+ # each individual test file later.
+ echo "" >>$GSTESTLOG
+ echo "Building in $dir" >>$GSTESTLOG
+ $MAKE_CMD -j 4 debug=yes >>$GSTESTLOG 2>&1
+ if test $? = 0
+ then
+ NEEDBUILD=no
+ fi
+ fi
+
+ # Now we process each test file in turn.
+ # When cleaning, we only need to do one clean per directory.
+ for TESTFILE in $TESTS
+ do
+ run_test_file
+ if test "$RUNEXIT" != "0"
+ then
+ break
+ fi
+ done
+ else
+ echo "Start.sh failed in '$TESTDIR' ... tests abandoned."
+ fi
TESTS=
# And perform the directory end script.
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs