From cdce33a421c793b8969ad521388f79e738a54d65 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Mon, 15 Jul 2013 18:52:08 -0700 Subject: [PATCH] Add configure and make machinery to activate perf metrics and ratchets. --- configure | 1 + mk/tests.mk | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/configure b/configure index 8f757a0715f..7138c395513 100755 --- a/configure +++ b/configure @@ -372,6 +372,7 @@ opt optimize 1 "build optimized rust code" opt optimize-cxx 1 "build optimized C++ code" opt optimize-llvm 1 "build optimized LLVM" opt debug 0 "build with extra debug fun" +opt ratchet-bench 0 "ratchet benchmarks" opt fast-make 0 "use .gitmodules as timestamp for submodule deps" opt manage-submodules 1 "let the build manage the git submodules" opt mingw-cross 0 "cross-compile for win32 using mingw" diff --git a/mk/tests.mk b/mk/tests.mk index 7a5a5dc15c3..625e2ea1461 100644 --- a/mk/tests.mk +++ b/mk/tests.mk @@ -60,6 +60,21 @@ endif TEST_LOG_FILE=tmp/check-stage$(1)-T-$(2)-H-$(3)-$(4).log TEST_OK_FILE=tmp/check-stage$(1)-T-$(2)-H-$(3)-$(4).ok +TEST_RATCHET_FILE=tmp/check-stage$(1)-T-$(2)-H-$(3)-$(4)-metrics.json +TEST_RATCHET_NOISE_PERCENT=10.0 + +# Whether to ratchet or merely save benchmarks +ifdef CFG_RATCHET_BENCH +CRATE_TEST_BENCH_ARGS=\ + --test --bench \ + --ratchet-metrics $(call TEST_RATCHET_FILE,$(1),$(2),$(3),$(4)) \ + --ratchet-noise-percent $(TEST_RATCHET_NOISE_PERCENT) +else +CRATE_TEST_BENCH_ARGS=\ + --test --bench \ + --save-metrics $(call TEST_RATCHET_FILE,$(1),$(2),$(3),$(4)) +endif + define DEF_TARGET_COMMANDS ifdef CFG_UNIXY_$(1) @@ -359,11 +374,14 @@ $(foreach host,$(CFG_HOST_TRIPLES), \ define DEF_TEST_CRATE_RULES check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)) +check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)) + $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)): \ $(3)/stage$(1)/test/$(4)test-$(2)$$(X_$(2)) @$$(call E, run: $$<) $$(Q)$$(call CFG_RUN_TEST_$(2),$$<,$(2),$(3)) $$(TESTARGS) \ --logfile $$(call TEST_LOG_FILE,$(1),$(2),$(3),$(4)) \ + $$(call CRATE_TEST_BENCH_ARGS,$(1),$(2),$(3),$(4)) \ && touch $$@ endef @@ -552,6 +570,7 @@ CTEST_ARGS$(1)-T-$(2)-H-$(3)-$(4) := \ $$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3)) \ --src-base $$(S)src/test/$$(CTEST_SRC_BASE_$(4))/ \ --build-base $(3)/test/$$(CTEST_BUILD_BASE_$(4))/ \ + --ratchet-metrics $(call TEST_RATCHET_FILE,$(1),$(2),$(3),$(4)) \ --mode $$(CTEST_MODE_$(4)) \ $$(CTEST_RUNTOOL_$(4))