Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1231324 > unrolled thread

[PATCH 2/7] tools build: Add test for missing include

Started byJiri Olsa <jolsa@kernel.org>
First post2015-09-23 12:40 +0200
Last post2015-09-29 10:50 +0200
Articles 4 — 4 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 2/7] tools build: Add test for missing include Jiri Olsa <jolsa@kernel.org> - 2015-09-23 12:40 +0200
    Re: [PATCH 2/7] tools build: Add test for missing include Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-25 19:50 +0200
      Re: [PATCH 2/7] tools build: Add test for missing include Jiri Olsa <jolsa@redhat.com> - 2015-09-27 21:50 +0200
    [tip:perf/core] tools build: Add test for missing include tip-bot for Jiri Olsa <tipbot@zytor.com> - 2015-09-29 10:50 +0200

#1231324 — [PATCH 2/7] tools build: Add test for missing include

FromJiri Olsa <jolsa@kernel.org>
Date2015-09-23 12:40 +0200
Subject[PATCH 2/7] tools build: Add test for missing include
Message-ID<qbPCW-1wv-15@gated-at.bofh.it>
The current build framework fails to cope with header file
removal. The reason is the removed header file stays in the
.cmd file target rule and force the build to fail.

This issue is fixed and explained in following patches.

Adding new build test that simulates header removal.

Link: http://lkml.kernel.org/n/tip-580lv21jts6t9j15cosxggdc@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
 tools/build/tests/ex/Build    |  1 +
 tools/build/tests/ex/Makefile |  2 +-
 tools/build/tests/ex/ex.c     |  2 ++
 tools/build/tests/ex/inc.c    |  8 ++++++++
 tools/build/tests/run.sh      | 27 +++++++++++++++++++++++++++
 5 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 tools/build/tests/ex/inc.c

diff --git a/tools/build/tests/ex/Build b/tools/build/tests/ex/Build
index 429c7d452101..4d502f9b1a50 100644
--- a/tools/build/tests/ex/Build
+++ b/tools/build/tests/ex/Build
@@ -4,6 +4,7 @@ ex-y += b.o
 ex-y += b.o
 ex-y += empty/
 ex-y += empty2/
+ex-y += inc.o
 
 libex-y += c.o
 libex-y += d.o
diff --git a/tools/build/tests/ex/Makefile b/tools/build/tests/ex/Makefile
index a8f596e37fd2..f279b84cb859 100644
--- a/tools/build/tests/ex/Makefile
+++ b/tools/build/tests/ex/Makefile
@@ -1,4 +1,4 @@
-export srctree := ../../../..
+export srctree := $(abspath ../../../..)
 export CC      := gcc
 export LD      := ld
 export AR      := ar
diff --git a/tools/build/tests/ex/ex.c b/tools/build/tests/ex/ex.c
index dc42eb2e1a67..57de6074d252 100644
--- a/tools/build/tests/ex/ex.c
+++ b/tools/build/tests/ex/ex.c
@@ -5,6 +5,7 @@ int c(void);
 int d(void);
 int e(void);
 int f(void);
+int inc(void);
 
 int main(void)
 {
@@ -14,6 +15,7 @@ int main(void)
 	d();
 	e();
 	f();
+	inc();
 
 	return 0;
 }
diff --git a/tools/build/tests/ex/inc.c b/tools/build/tests/ex/inc.c
new file mode 100644
index 000000000000..c20f1e9033a3
--- /dev/null
+++ b/tools/build/tests/ex/inc.c
@@ -0,0 +1,8 @@
+#ifdef INCLUDE
+#include "krava.h"
+#endif
+
+int inc(void)
+{
+	return 0;
+}
diff --git a/tools/build/tests/run.sh b/tools/build/tests/run.sh
index 5494f8ea7567..44d2a0fade67 100755
--- a/tools/build/tests/run.sh
+++ b/tools/build/tests/run.sh
@@ -34,9 +34,36 @@ function test_ex_suffix {
 	make -C ex V=1 clean > /dev/null 2>&1
 	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..
 
 test_ex
 test_ex_suffix
+test_ex_include
 
 echo OK
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1232972

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2015-09-25 19:50 +0200
Message-ID<qcFia-8p1-17@gated-at.bofh.it>
In reply to#1231324
Em Wed, Sep 23, 2015 at 12:33:57PM +0200, Jiri Olsa escreveu:
> The current build framework fails to cope with header file
> removal. The reason is the removed header file stays in the
> .cmd file target rule and force the build to fail.

So, where is this test hooked up, is the way to test this to do:

cd tools/build/tests/
./run.sh
less ex.out

?
 
> This issue is fixed and explained in following patches.
> 
> Adding new build test that simulates header removal.
> 
> Link: http://lkml.kernel.org/n/tip-580lv21jts6t9j15cosxggdc@git.kernel.org
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---
>  tools/build/tests/ex/Build    |  1 +
>  tools/build/tests/ex/Makefile |  2 +-
>  tools/build/tests/ex/ex.c     |  2 ++
>  tools/build/tests/ex/inc.c    |  8 ++++++++
>  tools/build/tests/run.sh      | 27 +++++++++++++++++++++++++++
>  5 files changed, 39 insertions(+), 1 deletion(-)
>  create mode 100644 tools/build/tests/ex/inc.c
> 
> diff --git a/tools/build/tests/ex/Build b/tools/build/tests/ex/Build
> index 429c7d452101..4d502f9b1a50 100644
> --- a/tools/build/tests/ex/Build
> +++ b/tools/build/tests/ex/Build
> @@ -4,6 +4,7 @@ ex-y += b.o
>  ex-y += b.o
>  ex-y += empty/
>  ex-y += empty2/
> +ex-y += inc.o
>  
>  libex-y += c.o
>  libex-y += d.o
> diff --git a/tools/build/tests/ex/Makefile b/tools/build/tests/ex/Makefile
> index a8f596e37fd2..f279b84cb859 100644
> --- a/tools/build/tests/ex/Makefile
> +++ b/tools/build/tests/ex/Makefile
> @@ -1,4 +1,4 @@
> -export srctree := ../../../..
> +export srctree := $(abspath ../../../..)
>  export CC      := gcc
>  export LD      := ld
>  export AR      := ar
> diff --git a/tools/build/tests/ex/ex.c b/tools/build/tests/ex/ex.c
> index dc42eb2e1a67..57de6074d252 100644
> --- a/tools/build/tests/ex/ex.c
> +++ b/tools/build/tests/ex/ex.c
> @@ -5,6 +5,7 @@ int c(void);
>  int d(void);
>  int e(void);
>  int f(void);
> +int inc(void);
>  
>  int main(void)
>  {
> @@ -14,6 +15,7 @@ int main(void)
>  	d();
>  	e();
>  	f();
> +	inc();
>  
>  	return 0;
>  }
> diff --git a/tools/build/tests/ex/inc.c b/tools/build/tests/ex/inc.c
> new file mode 100644
> index 000000000000..c20f1e9033a3
> --- /dev/null
> +++ b/tools/build/tests/ex/inc.c
> @@ -0,0 +1,8 @@
> +#ifdef INCLUDE
> +#include "krava.h"
> +#endif
> +
> +int inc(void)
> +{
> +	return 0;
> +}
> diff --git a/tools/build/tests/run.sh b/tools/build/tests/run.sh
> index 5494f8ea7567..44d2a0fade67 100755
> --- a/tools/build/tests/run.sh
> +++ b/tools/build/tests/run.sh
> @@ -34,9 +34,36 @@ function test_ex_suffix {
>  	make -C ex V=1 clean > /dev/null 2>&1
>  	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..
>  
>  test_ex
>  test_ex_suffix
> +test_ex_include
>  
>  echo OK
> -- 
> 2.4.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233738

FromJiri Olsa <jolsa@redhat.com>
Date2015-09-27 21:50 +0200
Message-ID<qdq7n-8oh-1@gated-at.bofh.it>
In reply to#1232972
On Fri, Sep 25, 2015 at 02:43:47PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Wed, Sep 23, 2015 at 12:33:57PM +0200, Jiri Olsa escreveu:
> > The current build framework fails to cope with header file
> > removal. The reason is the removed header file stays in the
> > .cmd file target rule and force the build to fail.
> 
> So, where is this test hooked up, is the way to test this to do:
> 
> cd tools/build/tests/
> ./run.sh
> less ex.out

yep, ex.out is there only in case of error

jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1234854 — [tip:perf/core] tools build: Add test for missing include

Fromtip-bot for Jiri Olsa <tipbot@zytor.com>
Date2015-09-29 10:50 +0200
Subject[tip:perf/core] tools build: Add test for missing include
Message-ID<qdYLO-1nH-51@gated-at.bofh.it>
In reply to#1231324
Commit-ID:  0c00c3fb4e4a6ff714b7ad864f58e0fb33b3534c
Gitweb:     http://git.kernel.org/tip/0c00c3fb4e4a6ff714b7ad864f58e0fb33b3534c
Author:     Jiri Olsa <jolsa@kernel.org>
AuthorDate: Wed, 23 Sep 2015 12:33:57 +0200
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 28 Sep 2015 15:50:54 -0300

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: Jiri 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.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/build/tests/ex/Build    |  1 +
 tools/build/tests/ex/Makefile |  2 +-
 tools/build/tests/ex/ex.c     |  2 ++
 tools/build/tests/ex/inc.c    |  8 ++++++++
 tools/build/tests/run.sh      | 27 +++++++++++++++++++++++++++
 5 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/tools/build/tests/ex/Build b/tools/build/tests/ex/Build
index 429c7d4..4d502f9 100644
--- a/tools/build/tests/ex/Build
+++ b/tools/build/tests/ex/Build
@@ -4,6 +4,7 @@ ex-y += b.o
 ex-y += b.o
 ex-y += empty/
 ex-y += empty2/
+ex-y += inc.o
 
 libex-y += c.o
 libex-y += d.o
diff --git a/tools/build/tests/ex/Makefile b/tools/build/tests/ex/Makefile
index a8f596e..f279b84 100644
--- a/tools/build/tests/ex/Makefile
+++ b/tools/build/tests/ex/Makefile
@@ -1,4 +1,4 @@
-export srctree := ../../../..
+export srctree := $(abspath ../../../..)
 export CC      := gcc
 export LD      := ld
 export AR      := ar
diff --git a/tools/build/tests/ex/ex.c b/tools/build/tests/ex/ex.c
index dc42eb2..57de607 100644
--- a/tools/build/tests/ex/ex.c
+++ b/tools/build/tests/ex/ex.c
@@ -5,6 +5,7 @@ int c(void);
 int d(void);
 int e(void);
 int f(void);
+int inc(void);
 
 int main(void)
 {
@@ -14,6 +15,7 @@ int main(void)
 	d();
 	e();
 	f();
+	inc();
 
 	return 0;
 }
diff --git a/tools/build/tests/ex/inc.c b/tools/build/tests/ex/inc.c
new file mode 100644
index 0000000..c20f1e9
--- /dev/null
+++ b/tools/build/tests/ex/inc.c
@@ -0,0 +1,8 @@
+#ifdef INCLUDE
+#include "krava.h"
+#endif
+
+int inc(void)
+{
+	return 0;
+}
diff --git a/tools/build/tests/run.sh b/tools/build/tests/run.sh
index 5494f8e..44d2a0f 100755
--- a/tools/build/tests/run.sh
+++ b/tools/build/tests/run.sh
@@ -34,9 +34,36 @@ function test_ex_suffix {
 	make -C ex V=1 clean > /dev/null 2>&1
 	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..
 
 test_ex
 test_ex_suffix
+test_ex_include
 
 echo OK
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web