From 7a0c9c88bd478717c3de4f1a5cc09102310edca5 Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Tue, 15 Dec 2015 15:27:17 -0800 Subject: [PATCH] add test target Summary: public `make test` now runs the e2e tests. Reviewed By: jeremydubreil Differential Revision: D2754740 fb-gh-sync-id: 9f80815 --- Makefile.config.in | 9 +++++++++ Makefile.in | 39 ++++++++++++++++++++++++++++++++------- scripts/test.sh | 39 +++------------------------------------ 3 files changed, 44 insertions(+), 43 deletions(-) diff --git a/Makefile.config.in b/Makefile.config.in index 0bfa5e20c..ad0d38b2f 100644 --- a/Makefile.config.in +++ b/Makefile.config.in @@ -34,6 +34,15 @@ INFERCLANG_BIN = $(BIN_DIR)/InferClang INFERJAVA_BIN = $(BIN_DIR)/InferJava INFERPRINT_BIN = $(BIN_DIR)/InferPrint +INFER_ANALYZERS= +ifeq (@BUILD_C_ANALYZERS@,yes) +INFER_ANALYZERS+=clang +endif +ifeq (@BUILD_JAVA_ANALYZERS@,yes) +INFER_ANALYZERS+=java +endif + + JAVA_DEPS = $(addprefix $(PYTHON_LIB_DIR)/, \ analyze.py config.py issues.py jwlib.py source.py utils.py) \ $(addprefix $(CAPTURE_LIB_DIR)/, javac.py util.py) \ diff --git a/Makefile.in b/Makefile.in index 7b7a8c202..5caecb4aa 100644 --- a/Makefile.in +++ b/Makefile.in @@ -9,15 +9,19 @@ ROOT_DIR = . include $(ROOT_DIR)/Makefile.config -all: - +TARGETS_TO_TEST= +ifeq (@BUILD_C_ANALYZERS@,yes) +TARGETS_TO_TEST += c cpp +endif ifeq (@BUILD_JAVA_ANALYZERS@,yes) -all: java +TARGETS_TO_TEST += java endif - -ifeq (@BUILD_C_ANALYZERS@,yes) -all: clang +ifneq (@XCODE_SELECT@,no) +TARGETS_TO_TEST += objc endif +TARGETS_TO_TEST := $(shell echo $(TARGETS_TO_TEST)) + +all: $(INFER_ANALYZERS) ifneq (@BUILD_JAVA_ANALYZERS@,yes) java: @@ -70,9 +74,30 @@ clang: clang_plugin $(MAKE) -C $(INFER_DIR) clang endif +buck_test: $(INFER_ANALYZERS) + NO_BUCKD=1 buck clean + NO_BUCKD=1 buck test $(TARGETS_TO_TEST) + +buck_test_xml: $(INFER_ANALYZERS) + NO_BUCKD=1 buck clean + NO_BUCKD=1 buck test --xml test.xml $(TARGETS_TO_TEST) + +build_integration_tests: $(INFER_ANALYZERS) + ./scripts/build_integration_tests.py + +test: buck_test + +test_xml: buck_test_xml + +ifeq (@BUILD_JAVA_ANALYZERS@,yes) +test: build_integration_tests +test_xml: build_integration_tests +endif + clean: + @rm -fv test.xml $(MAKE) -C $(FCP_DIR) clean $(MAKE) -C $(FCP_DIR)/clang-ocaml clean $(MAKE) -C $(INFER_DIR) clean -.PHONY: all clean clang clang_plugin clang_setup java +.PHONY: all build_integration_tests clean clang clang_plugin clang_setup java test test_xml diff --git a/scripts/test.sh b/scripts/test.sh index c30d1926d..1a53f4949 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -12,43 +12,10 @@ set -x SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" INFER_DIR="$SCRIPT_DIR/.." -INFER_BIN="$INFER_DIR/infer/bin" +XML= if [ "$1" == "--xml" ]; then - XML="--xml test.xml" + XML="_xml" fi -TARGETS_TO_COMPILE=() -TARGETS_TO_TEST=() -if [ -e "$INFER_BIN/InferJava" ]; then - TARGETS_TO_COMPILE+=('java') - TARGETS_TO_TEST+=('java') -fi - -platform=`uname` -if [ -e "$INFER_BIN/InferClang" ]; then - TARGETS_TO_COMPILE+=('clang') - TARGETS_TO_TEST+=('c' 'cpp') - if command -v xcode-select > /dev/null; then - TARGETS_TO_TEST+=('objc') - fi -fi - -# We must collect at least one target, or Infer must be recompiled -([ -z "$TARGETS_TO_TEST" ] || [ -z "$TARGETS_TO_COMPILE" ]) \ - && echo 'Infer is not compiled properly. Run make clean all' \ - && exit 1 - -cd $SCRIPT_DIR/.. -make ${TARGETS_TO_COMPILE[@]} - -# Must clean in order to force running the tests with the latest version -# of infer. There is no dependency between buck targets and infer. -buck clean -rm -rf test.xml - -buck test ${TARGETS_TO_TEST[@]} $XML || exit 1 - -if [ -e "$INFER_BIN/InferJava" ]; then - ./scripts/build_integration_tests.py -fi +make -C "$INFER_DIR" test$XML