lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon,  1 Apr 2013 21:18:24 +0200
From:	Jiri Olsa <jolsa@...hat.com>
To:	linux-kernel@...r.kernel.org
Cc:	Jiri Olsa <jolsa@...hat.com>,
	Arnaldo Carvalho de Melo <acme@...stprotocols.net>,
	Peter Zijlstra <a.p.zijlstra@...llo.nl>,
	Ingo Molnar <mingo@...e.hu>, Paul Mackerras <paulus@...ba.org>,
	Corey Ashford <cjashfor@...ux.vnet.ibm.com>,
	Frederic Weisbecker <fweisbec@...il.com>,
	Namhyung Kim <namhyung@...nel.org>,
	Borislav Petkov <bp@...en8.de>,
	Stephane Eranian <eranian@...gle.com>
Subject: [PATCH 01/27] perf tools: Add automated make test suite

Adding automatd test for testing the build process.
To run it you needto be in perf directory or specify
one with PERF variable. It's also possible to specify
optional Makefile to test via MK variable.

Whole suite is executed twice, the second time with
O=/tmp/xxx option added.

To run the whole suite:
  $ make -f tests/make
  MAKE_PURE: cd . && make -f Makefile
  TEST: test -x ./perf
  MAKE_DEBUG: cd . && make -f Makefile DEBUG=1
  TEST: test -x ./perf
  ...

You see command line for 'MAKE_PURE' test right away,
and the output is stored into MAKE_PURE file.

To run simple test:
  $ make -f tests/make MAKE_DEBUG
  MAKE_DEBUG: cd . && make -f Makefile DEBUG=1
  TEST: test -x ./perf

At this moment tests checks for succesfull build
and for existence of several built files. Additional
after-build checks could be added.

Signed-off-by: Jiri Olsa <jolsa@...hat.com>
Cc: Arnaldo Carvalho de Melo <acme@...stprotocols.net>
Cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc: Ingo Molnar <mingo@...e.hu>
Cc: Paul Mackerras <paulus@...ba.org>
Cc: Corey Ashford <cjashfor@...ux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@...il.com>
Cc: Namhyung Kim <namhyung@...nel.org>
Cc: Borislav Petkov <bp@...en8.de>
Cc: Stephane Eranian <eranian@...gle.com>
---
 tools/perf/tests/make | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 122 insertions(+)
 create mode 100644 tools/perf/tests/make

diff --git a/tools/perf/tests/make b/tools/perf/tests/make
new file mode 100644
index 0000000..0cc64ea
--- /dev/null
+++ b/tools/perf/tests/make
@@ -0,0 +1,122 @@
+ifndef PERF
+PERF := .
+endif
+
+ifndef MK
+MK := Makefile
+endif
+
+MAKE_DEBUG          := DEBUG=1
+MAKE_NO_LIBPERL     := NO_LIBPERL=1
+MAKE_NO_LIBPYTHON   := NO_LIBPYTHON=1
+MAKE_NO_SCRIPTS     := NO_LIBPYTHON=1 NO_LIBPERL=1
+MAKE_NO_NEWT        := NO_NEWT=1
+MAKE_NO_SLANG       := NO_SLANG=1
+MAKE_NO_GTK2        := NO_GTK2=1
+MAKE_NO_UI          := NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
+MAKE_NO_DEMANGLE    := NO_DEMANGLE=1
+MAKE_NO_LIBELF      := NO_LIBELF=1
+MAKE_NO_LIBUNWIND   := NO_LIBUNWIND=1
+MAKE_NO_BACKTRACE   := NO_BACKTRACE=1
+MAKE_NO_LIBNUMA     := NO_LIBNUMA=1
+MAKE_NO_LIBAUDIT    := NO_LIBAUDIT=1
+MAKE_NO_LIBBIONIC   := NO_LIBBIONIC=1
+MAKE_MINIMAL        := NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1
+MAKE_TAGS           := tags
+MAKE_CSCOPE         := cscope
+MAKE_HELP           := help
+MAKE_DOC            := doc
+MAKE_PERF_O         := perf.o
+MAKE_UTIL_MAP_O     := util/map.o
+
+RUN := \
+	MAKE_PURE \
+	MAKE_DEBUG \
+	MAKE_NO_LIBPERL \
+	MAKE_NO_LIBPYTHON \
+	MAKE_NO_SCRIPTS \
+	MAKE_NO_NEWT \
+	MAKE_NO_SLANG \
+	MAKE_NO_GTK2 \
+	MAKE_NO_UI \
+	MAKE_NO_DEMANGLE \
+	MAKE_NO_LIBELF \
+	MAKE_NO_LIBUNWIND \
+	MAKE_NO_BACKTRACE \
+	MAKE_NO_LIBNUMA \
+	MAKE_NO_LIBAUDIT \
+	MAKE_NO_LIBBIONIC \
+	MAKE_MINIMAL \
+	MAKE_TAGS \
+	MAKE_CSCOPE \
+	MAKE_HELP \
+	MAKE_DOC \
+	MAKE_PERF_O \
+	MAKE_UTIL_MAP_O
+
+RUN_O := $(addsuffix _O,$(RUN))
+
+TEST_MAKE_TAGS   = test -f tags
+TEST_MAKE_CSCOPE = test -f cscope.out
+
+TEST_MAKE_TAGS_O   := $(TEST_MAKE_TAGS)
+TEST_MAKE_CSCOPE_O := $(TEST_MAKE_CSCOPE)
+
+TEST_OK := true
+TEST_MAKE_HELP   := $(TEST_OK)
+TEST_MAKE_DOC    := $(TEST_OK)
+TEST_MAKE_HELP_O := $(TEST_OK)
+TEST_MAKE_DOC_O  := $(TEST_OK)
+
+TEST_MAKE_PERF_O     := test -f $(PERF)/perf.o
+TEST_MAKE_UTIL_MAP_O := test -f $(PERF)/util/map.o
+
+# Kbuild tests only
+#TEST_MAKE_PERF_O_O     := test -f $$TMP/tools/perf/perf.o
+#TEST_MAKE_UTIL_MAP_O_O := test -f $$TMP/tools/perf/util/map.o
+
+TEST_MAKE_PERF_O_O     := true
+TEST_MAKE_UTIL_MAP_O_O := true
+
+TEST_DEFAULT = test -x $(PERF)/perf
+test = $(if $(TEST_$1),$(TEST_$1),$(TEST_DEFAULT))
+
+TEST_DEFAULT_O = test -x $$TMP/perf
+test_o = $(if $(TEST_$1),$(TEST_$1),$(TEST_DEFAULT_O))
+
+all:
+
+ifdef DEBUG
+d := $(info RUN   $(RUN))
+d := $(info RUN_O $(RUN_O))
+endif
+
+MAKEFLAGS := --no-print-directory
+
+clean := @cd $(PERF); make -s -f $(MK) clean >/dev/null
+
+$(RUN):
+	$(call clean) && \
+	cmd="cd $(PERF) && make -f $(MK) $($@)"; \
+	echo "$@: $$cmd" && echo $$cmd > $@ && \
+	( eval $$cmd ) >> $@ 2>&1; \
+	echo "TEST: $(call test,$@)"; \
+	$(call test,$@)
+
+$(RUN_O):
+	$(call clean) && \
+	TMP=$$(mktemp -d); \
+	cmd="cd $(PERF) && make -f $(MK) $($(patsubst %_O,%,$@)) O=$$TMP"; \
+	echo "$@: $$cmd" && echo $$cmd > $@ && \
+	( eval $$cmd ) >> $@ 2>&1 && \
+	echo "TEST: $(call test_o,$@)"; \
+	$(call test_o,$@) && \
+	rm -rf $$TMP
+
+all: $(RUN) $(RUN_O)
+	@echo OK
+
+out: $(RUN_O)
+	@echo OK
+
+.PHONY: all $(RUN) $(RUN_O) clean
-- 
1.7.11.7

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ