Commit 0c00c3fb authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo

tools build: Add test for missing include

The current build framework fails to cope with header file removal. The
reason is that the removed header file stays in the .cmd file target
rule and forces the build to fail.

This issue is fixed and explained in the following patches.

Adding a new build test that simulates header removal.
Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1443004442-32660-3-git-send-email-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent ab6201d0
...@@ -4,6 +4,7 @@ ex-y += b.o ...@@ -4,6 +4,7 @@ ex-y += b.o
ex-y += b.o ex-y += b.o
ex-y += empty/ ex-y += empty/
ex-y += empty2/ ex-y += empty2/
ex-y += inc.o
libex-y += c.o libex-y += c.o
libex-y += d.o libex-y += d.o
......
export srctree := ../../../.. export srctree := $(abspath ../../../..)
export CC := gcc export CC := gcc
export LD := ld export LD := ld
export AR := ar export AR := ar
......
...@@ -5,6 +5,7 @@ int c(void); ...@@ -5,6 +5,7 @@ int c(void);
int d(void); int d(void);
int e(void); int e(void);
int f(void); int f(void);
int inc(void);
int main(void) int main(void)
{ {
...@@ -14,6 +15,7 @@ int main(void) ...@@ -14,6 +15,7 @@ int main(void)
d(); d();
e(); e();
f(); f();
inc();
return 0; return 0;
} }
#ifdef INCLUDE
#include "krava.h"
#endif
int inc(void)
{
return 0;
}
...@@ -34,9 +34,36 @@ function test_ex_suffix { ...@@ -34,9 +34,36 @@ function test_ex_suffix {
make -C ex V=1 clean > /dev/null 2>&1 make -C ex V=1 clean > /dev/null 2>&1
rm -f ex.out rm -f ex.out
} }
function test_ex_include {
make -C ex V=1 clean > ex.out 2>&1
# build with krava.h include
touch ex/krava.h
make -C ex V=1 CFLAGS=-DINCLUDE >> ex.out 2>&1
if [ ! -x ./ex/ex ]; then
echo FAILED
exit -1
fi
# build without the include
rm -f ex/krava.h ex/ex
make -C ex V=1 >> ex.out 2>&1
if [ ! -x ./ex/ex ]; then
echo FAILED
exit -1
fi
make -C ex V=1 clean > /dev/null 2>&1
rm -f ex.out
}
echo -n Testing.. echo -n Testing..
test_ex test_ex
test_ex_suffix test_ex_suffix
test_ex_include
echo OK echo OK
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment