diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-01-11 18:26:03 +0100 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-01-11 18:47:42 +0100 |
commit | b670a66a6ac1ee8ef25dc48a26e477812c2dbacf (patch) | |
tree | d18b61e871f50512ee49fed36ef30c0fde0f1be6 /t/self-check-cc-no-c-o.sh | |
parent | 10790d08f071a91160bbaeabab7fd8a8d23e5a55 (diff) | |
download | automake-b670a66a6ac1ee8ef25dc48a26e477812c2dbacf.tar.gz |
tests: can fake a compiler not grasping "-c -o" -- globally in all tests
The ability to easily do so will be quite important in upcoming changes
about C compilation handling and semantics of the 'subdir-objects'
option. Refer to the extensive discussion about automake bug#13378 for
more details: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378>.
See also commit 'v1.13.1-34-g744cd57' of 2013-01-08, "coverage: compile
rules used "-c -o" also with losing compilers".
* t/ax/cc-no-c-o.in: New, a "C compiler" that chokes when the '-c' and
'-o' options are passed together to it on the command line.
* Makefile.am (t/ax/cc-no-c-o): Generate this script from it.
(noinst_SCRIPTS, CLEANFILES): Add it.
(EXTRA_DIST): Add 't/ax/cc-no-c-o.in'.
(check-cc-no-c-o): New target, runs the whole testsuite with 'cc-no-c-o'
as the C compiler (bot GNU and non-GNU).
* .gitignore: Update.
* t/ccnoco.sh: Use the new script instead of duplicating it.
* t/ccnoco3.sh: Likewise.
* t/ccnoco4.sh: Likewise.
* t/self-check-cc-no-c-o.sh: New testsuite self-check.
* t/list-of-tests.mk: Adjust.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/self-check-cc-no-c-o.sh')
-rwxr-xr-x | t/self-check-cc-no-c-o.sh | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/t/self-check-cc-no-c-o.sh b/t/self-check-cc-no-c-o.sh new file mode 100755 index 000000000..69809b77f --- /dev/null +++ b/t/self-check-cc-no-c-o.sh @@ -0,0 +1,35 @@ +#! /bin/sh +# Copyright (C) 2012-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Check that our fake "C compiler" that doesn't grasp the '-c' and +# '-o' command-line options passed together, used to enhance testsuite +# coverage. + +required=gcc # Our fake compiler uses gcc. +am_create_testdir=empty +. test-init.sh + +CC=$am_testaux_builddir/cc-no-c-o; export CC + +echo 'int main (void) { return 0; }' > foo.c +$CC -c foo.c +test -f foo.o || test -f foo.obj +$CC -c -o bar.o foo.c 2>stderr && { cat stderr >&2; exit 1; } +cat stderr >&2 +grep "both '-o' and '-c' seen on the command line" stderr +test ! -e bar.o && test ! -e bar.obj + +: |