mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH RFC 0/6] enable O and KBUILD_OUTPUT for kselftest
@ 2016-10-21 11:01 bamvor.zhangjian
  2016-10-21 11:01 ` [PATCH RFC 1/6] selftests: remove duplicated all and clean target bamvor.zhangjian
                   ` (7 more replies)
  0 siblings, 8 replies; 22+ messages in thread
From: bamvor.zhangjian @ 2016-10-21 11:01 UTC (permalink / raw)
  To: shuahkh; +Cc: linux-api, linux-kernel, khilman, broonie, mpe

From: Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>

Here is my first version for enabling the KBUILD_OUTPUT for kselftest.
I fix and test all the TARGET in tools/testing/selftest/Makefile. For
ppc, I test through fake target.

There are six patches in these series. And five of them clean up the
existing code. I split the clean up patches into five, hope it is easy
to review.

selftests: remove duplicated all and clean target
selftests: remove useless TEST_DIRS
selftests: add pattern rules
selftests: remove CROSS_COMPILE in dedicated Makefile
selftests: add EXTRA_CLEAN for clean target
selftests: enable O and KBUILD_OUTPUT

In the first patch, I split the test files into two types:
TEST_GEN_XXX means such file is generated during compiling. TEST_XXX
means there is no need to compile before use. The main reason of this
is the enablement of KBUILD_OUTPUT only need to care about TEST_GEN_XXX.
I wanted to copy all the TEST_XXX with TEST_GEN_XXX, but I give up this
idea in the end. Because people may puzzle why copy the file before
installation.

Because of the introducing of TEST_GEN_XXX, I update the top-level
Makefile and lib.mk selftests directory. After introduce TEST_GEN_XXX I
could remove all the unnecessary all and clean targets.

The second patch remove TEST_DIRS variable. And third patch add the
pattern for compiling the c sourc code. The fourth patch remove the
useless CROSS_COMPILE variable as it aleady exists in
"tools/testing/selftests/lib.mk".

Further more, The fifth patch add the EXTRA_CLEAN variable to clean up
the duplicated clean target

The last patch introduces the KBUILD_OUTPUT and O for kselftest instead
using the existing kbuild system because user may compile kselftest
directly (make -C tools/testing/selftests).

Bamvor Jian Zhang (6):
  selftests: remove duplicated all and clean target
  selftests: remove useless TEST_DIRS
  selftests: add default rules for c source file
  selftests: remove CROSS_COMPILE in dedicated Makefile
  selftests: add EXTRA_CLEAN for clean target
  selftests: enable O and KBUILD_OUTPUT

 Documentation/kselftest.txt                        | 13 ++++++++
 tools/testing/selftests/Makefile                   | 39 +++++++++++++++++-----
 tools/testing/selftests/breakpoints/Makefile       |  8 ++---
 tools/testing/selftests/capabilities/Makefile      | 11 ++----
 tools/testing/selftests/efivarfs/Makefile          |  8 +----
 tools/testing/selftests/exec/Makefile              | 32 ++++++++----------
 tools/testing/selftests/ftrace/Makefile            |  6 ++--
 tools/testing/selftests/futex/Makefile             | 21 +++++++++---
 tools/testing/selftests/futex/functional/Makefile  | 12 ++-----
 tools/testing/selftests/ipc/Makefile               |  7 +---
 tools/testing/selftests/kcmp/Makefile              |  6 ++--
 tools/testing/selftests/lib.mk                     | 36 ++++++++++++++++----
 tools/testing/selftests/membarrier/Makefile        |  6 +---
 tools/testing/selftests/memfd/Makefile             | 15 ++-------
 tools/testing/selftests/mount/Makefile             |  7 +---
 tools/testing/selftests/mqueue/Makefile            |  6 +---
 tools/testing/selftests/net/Makefile               | 10 +-----
 tools/testing/selftests/powerpc/Makefile           | 14 +++++---
 tools/testing/selftests/powerpc/alignment/Makefile |  9 ++---
 .../testing/selftests/powerpc/benchmarks/Makefile  | 15 ++++-----
 .../selftests/powerpc/context_switch/Makefile      |  9 ++---
 tools/testing/selftests/powerpc/copyloops/Makefile | 19 +++++------
 tools/testing/selftests/powerpc/dscr/Makefile      | 13 +++-----
 tools/testing/selftests/powerpc/math/Makefile      | 27 +++++++--------
 tools/testing/selftests/powerpc/mm/Makefile        | 18 ++++------
 tools/testing/selftests/powerpc/pmu/Makefile       | 26 +++++++--------
 tools/testing/selftests/powerpc/pmu/ebb/Makefile   | 15 +++------
 .../testing/selftests/powerpc/primitives/Makefile  |  9 ++---
 .../testing/selftests/powerpc/stringloops/Makefile |  9 ++---
 .../selftests/powerpc/switch_endian/Makefile       | 17 ++++------
 tools/testing/selftests/powerpc/syscalls/Makefile  |  9 ++---
 tools/testing/selftests/powerpc/tm/Makefile        | 19 +++++------
 tools/testing/selftests/powerpc/vphn/Makefile      | 10 ++----
 tools/testing/selftests/pstore/Makefile            |  4 +--
 tools/testing/selftests/ptrace/Makefile            |  8 +----
 tools/testing/selftests/seccomp/Makefile           |  6 +---
 tools/testing/selftests/sigaltstack/Makefile       |  5 +--
 tools/testing/selftests/size/Makefile              | 10 ++----
 tools/testing/selftests/timers/Makefile            | 10 ++----
 tools/testing/selftests/vm/Makefile                | 29 +++++++---------
 tools/testing/selftests/x86/Makefile               | 17 ++++++----
 tools/testing/selftests/zram/Makefile              |  3 +-
 42 files changed, 250 insertions(+), 323 deletions(-)

-- 
1.8.4.5

^ permalink raw reply	[flat|nested] 22+ messages in thread
* Re: [PATCH RFC 3/6] selftests: add default rules for c source file
@ 2016-10-21 11:15 Bamvor Zhang Jian
  0 siblings, 0 replies; 22+ messages in thread
From: Bamvor Zhang Jian @ 2016-10-21 11:15 UTC (permalink / raw)
  To: Zhang Jian(Bamvor)
  Cc: Shuah Khan, linux-api, lkml, Mark Brown, Michael Ellerman, Kevin Hilman

Fix the wrong email address of kevin hilman to khilman@kernel.org.
Sorry for inconvenience.

On 21 October 2016 at 19:01,  <bamvor.zhangjian@huawei.com> wrote:
> From: Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
>
> There are difference rules for compiling c source file in different
> testcases. In order to enable KBUILD_OUTPUT support in later patch,
> this patch introduce the default rules in
> "tools/testing/selftest/lib.mk" and remove the existing rules in each
> testcase.
>
> Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
> ---
>  tools/testing/selftests/exec/Makefile  | 2 --
>  tools/testing/selftests/lib.mk         | 3 +++
>  tools/testing/selftests/mount/Makefile | 3 ---
>  tools/testing/selftests/net/Makefile   | 2 --
>  tools/testing/selftests/size/Makefile  | 4 +---
>  tools/testing/selftests/vm/Makefile    | 3 +--
>  6 files changed, 5 insertions(+), 12 deletions(-)
>
> diff --git a/tools/testing/selftests/exec/Makefile b/tools/testing/selftests/exec/Makefile
> index b3bf091..9eb1c3e 100644
> --- a/tools/testing/selftests/exec/Makefile
> +++ b/tools/testing/selftests/exec/Makefile
> @@ -11,8 +11,6 @@ execveat.symlink: execveat
>  execveat.denatured: execveat
>         cp $< $@
>         chmod -x $@
> -%: %.c
> -       $(CC) $(CFLAGS) -o $@ $^
>
>  TEST_GEN_PROGS := execveat
>  TEST_GEN_FILES := execveat.symlink execveat.denatured script subdir
> diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
> index 8c0440d..9ccec4b 100644
> --- a/tools/testing/selftests/lib.mk
> +++ b/tools/testing/selftests/lib.mk
> @@ -45,4 +45,7 @@ all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES)
>  clean:
>         $(RM) -fr $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES)
>
> +%: %.c
> +       $(CC) $(CFLAGS) $(LDFLAGS) $(LDLIBS) -o $@ $^
> +
>  .PHONY: run_tests all clean install emit_tests
> diff --git a/tools/testing/selftests/mount/Makefile b/tools/testing/selftests/mount/Makefile
> index e8fb15e..9093d7f 100644
> --- a/tools/testing/selftests/mount/Makefile
> +++ b/tools/testing/selftests/mount/Makefile
> @@ -2,9 +2,6 @@
>  CFLAGS = -Wall \
>           -O2
>
> -unprivileged-remount-test: unprivileged-remount-test.c
> -       $(CC) $(CFLAGS) unprivileged-remount-test.c -o unprivileged-remount-test
> -
>  TEST_GEN_PROGS := unprivileged-remount-test
>
>  include ../lib.mk
> diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile
> index c976425..d13620a 100644
> --- a/tools/testing/selftests/net/Makefile
> +++ b/tools/testing/selftests/net/Makefile
> @@ -4,8 +4,6 @@ CFLAGS = -Wall -O2 -g
>
>  CFLAGS += -I../../../../usr/include/
>
> -%: %.c
> -       $(CC) $(CFLAGS) -o $@ $^
>  TEST_PROGS := run_netsocktests run_afpackettests test_bpf.sh
>  TEST_GEN_FILES := socket psock_fanout psock_tpacket reuseport_bpf reuseport_bpf_cpu reuseport_dualstack
>
> diff --git a/tools/testing/selftests/size/Makefile b/tools/testing/selftests/size/Makefile
> index c67f357..4685b3e 100644
> --- a/tools/testing/selftests/size/Makefile
> +++ b/tools/testing/selftests/size/Makefile
> @@ -1,6 +1,4 @@
> -
> -get_size: get_size.c
> -       $(CC) -static -ffreestanding -nostartfiles -s $< -o $@
> +CFLAGS := -static -ffreestanding -nostartfiles -s
>
>  TEST_GEN_PROGS := get_size
>
> diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile
> index 323383a..eb0aaff 100644
> --- a/tools/testing/selftests/vm/Makefile
> +++ b/tools/testing/selftests/vm/Makefile
> @@ -1,6 +1,7 @@
>  # Makefile for vm selftests
>
>  CFLAGS = -Wall -I ../../../../usr/include $(EXTRA_CFLAGS)
> +LDLIBS = -lrt
>  TEST_GEN_FILES = compaction_test
>  TEST_GEN_FILES += hugepage-mmap
>  TEST_GEN_FILES += hugepage-shm
> @@ -12,8 +13,6 @@ TEST_GEN_FILES += transhuge-stress
>  TEST_GEN_FILES += userfaultfd
>  TEST_GEN_FILES += mlock-random-test
>
> -%: %.c
> -       $(CC) $(CFLAGS) -o $@ $^ -lrt
>  userfaultfd: userfaultfd.c ../../../../usr/include/linux/kernel.h
>         $(CC) $(CFLAGS) -O2 -o $@ $< -lpthread
>
> --
> 1.8.4.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-api" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2016-11-21  8:54 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-21 11:01 [PATCH RFC 0/6] enable O and KBUILD_OUTPUT for kselftest bamvor.zhangjian
2016-10-21 11:01 ` [PATCH RFC 1/6] selftests: remove duplicated all and clean target bamvor.zhangjian
2016-11-18 10:31   ` Michael Ellerman
2016-11-18 12:59     ` Zhangjian (Bamvor)
2016-11-21  8:53       ` Michael Ellerman
2016-10-21 11:01 ` [PATCH RFC 2/6] selftests: remove useless TEST_DIRS bamvor.zhangjian
2016-11-18 10:31   ` Michael Ellerman
2016-10-21 11:01 ` [PATCH RFC 3/6] selftests: add default rules for c source file bamvor.zhangjian
2016-11-18 10:57   ` Michael Ellerman
2016-10-21 11:01 ` [PATCH RFC 4/6] selftests: remove CROSS_COMPILE in dedicated Makefile bamvor.zhangjian
2016-11-18 10:58   ` Michael Ellerman
2016-10-21 11:01 ` [PATCH RFC 5/6] selftests: add EXTRA_CLEAN for clean target bamvor.zhangjian
2016-11-18 11:01   ` Michael Ellerman
2016-11-18 12:51     ` Zhangjian (Bamvor)
2016-10-21 11:01 ` [PATCH RFC 6/6] selftests: enable O and KBUILD_OUTPUT bamvor.zhangjian
2016-11-18 11:29   ` Michael Ellerman
2016-11-18 13:03     ` Zhangjian (Bamvor)
2016-10-21 11:11 ` [PATCH RFC 0/6] enable O and KBUILD_OUTPUT for kselftest Bamvor Zhang Jian
2016-11-16 23:57 ` Shuah Khan
2016-11-18  0:15   ` Michael Ellerman
2016-11-18  0:18     ` Shuah Khan
2016-10-21 11:15 [PATCH RFC 3/6] selftests: add default rules for c source file Bamvor Zhang Jian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®