From a2193005a9fa0760f36aae00990067290b0495f9 Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Fri, 16 Dec 2016 07:57:49 -0800 Subject: [PATCH] [tests] less phony genrule test Reviewed By: jberdine Differential Revision: D4334141 fbshipit-source-id: e290cb9 --- Makefile | 2 +- infer/tests/build_systems/buck/Makefile | 23 ++++++----- infer/tests/build_systems/genrule/Makefile | 40 ++++++++++++++++++++ infer/tests/build_systems/genrule/issues.exp | 1 + 4 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 infer/tests/build_systems/genrule/Makefile create mode 100644 infer/tests/build_systems/genrule/issues.exp diff --git a/Makefile b/Makefile index 7a053c9ec..b1f4fd1b0 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ ifneq ($(ANT),no) BUILD_SYSTEMS_TESTS += ant endif ifneq ($(BUCK),no) -BUILD_SYSTEMS_TESTS += buck +BUILD_SYSTEMS_TESTS += buck genrule endif ifneq ($(CMAKE),no) BUILD_SYSTEMS_TESTS += clang_compilation_db cmake diff --git a/infer/tests/build_systems/buck/Makefile b/infer/tests/build_systems/buck/Makefile index b463dc61c..fb7e261db 100644 --- a/infer/tests/build_systems/buck/Makefile +++ b/infer/tests/build_systems/buck/Makefile @@ -10,19 +10,22 @@ ROOT_DIR = $(TESTS_DIR)/../.. ANALYZER = infer SOURCES = $(wildcard $(TESTS_DIR)/codetoanalyze/java/infer/*.java) -OBJECTS = $(ROOT_DIR)/buck-out/gen/infer/tests/codetoanalyze/java/infer/lib__compile__output/compile.jar +OBJECTS = $(ROOT_DIR)/buck-out/gen/infer/tests/codetoanalyze/java/infer/lib__compile_compile__output/compile_compile.jar INFERPRINT_OPTIONS = --project-root $(ROOT_DIR) --issues-tests -CLEAN_EXTRA = $(ROOT_DIR)/buck-out/ $(CURDIR)/buck-out/ +CLEAN_EXTRA = $(ROOT_DIR)/buck-out include $(TESTS_DIR)/java.make include $(TESTS_DIR)/base.make -$(JAR_OUTPUT): $(JAVA_SOURCE_FILES) - cd $(ROOT_DIR) && $(call silent_on_success, INFER_BIN=$(INFER_BIN) NO_BUCKD=1 buck build --no-cache //infer/tests/codetoanalyze/java/infer:compile) +$(OBJECTS): $(JAVA_SOURCE_FILES) + cd $(ROOT_DIR) && \ + $(call silent_on_success,\ + INFER_BIN=$(INFER_BIN) NO_BUCKD=1 \ + buck build --no-cache //infer/tests/codetoanalyze/java/infer:compile) -.PHONY: genrule -genrule: $(JAR_OUTPUT) - cd $(ROOT_DIR) && $(call silent_on_success, INFER_BIN=$(INFER_BIN) NO_BUCKD=1 GENERATE_INFER_GENRULES=1 buck build --no-cache //infer/tests/build_systems/genrule/module2:module2_infer) - -infer-out/report.json: genrule $(JAVA_DEPS) $(JAVA_SOURCE_FILES) - cd $(ROOT_DIR) && $(call silent_on_success, INFER_BIN=$(INFER_BIN) NO_BUCKD=1 $(INFER_BIN) -a $(ANALYZER) --results-dir $(CURDIR)/infer-out -- buck build --no-cache //infer/tests/codetoanalyze/java/infer:compile) +infer-out/report.json: $(JAVA_DEPS) $(JAVA_SOURCE_FILES) + cd $(ROOT_DIR) && \ + $(call silent_on_success,\ + INFER_BIN=$(INFER_BIN) NO_BUCKD=1 \ + $(INFER_BIN) -a $(ANALYZER) --results-dir $(CURDIR)/infer-out -- \ + buck build --no-cache //infer/tests/codetoanalyze/java/infer:compile) diff --git a/infer/tests/build_systems/genrule/Makefile b/infer/tests/build_systems/genrule/Makefile new file mode 100644 index 000000000..9d1a26658 --- /dev/null +++ b/infer/tests/build_systems/genrule/Makefile @@ -0,0 +1,40 @@ +# Copyright (c) 2016 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + +TESTS_DIR = ../.. +ROOT_DIR = $(TESTS_DIR)/../.. + +ANALYZER = infer +SOURCES = $(wildcard $(TESTS_DIR)/codetoanalyze/java/infer/*.java) +OBJECTS = $(ROOT_DIR)/buck-out/genruletest/gen/infer/tests/build_systems/genrule/module2/lib__module2_compile__output/module2_compile.jar +INFER_OPTIONS = --project-root $(ROOT_DIR) +INFERPRINT_OPTIONS = --project-root $(ROOT_DIR) --issues-tests +CLEAN_EXTRA = $(ROOT_DIR)/buck-out/genruletest + +include $(TESTS_DIR)/java.make +include $(TESTS_DIR)/base.make + +$(OBJECTS): $(JAVA_SOURCE_FILES) + cd $(ROOT_DIR) && \ + $(call silent_on_success,\ + NO_BUCKD=1 buck build --no-cache //infer/tests/codetoanalyze/java/infer:compile) + +.PHONY: genrule +genrule: $(ROOT_DIR)/buck-out/genruletest/gen/infer/tests/build_systems/genrule/module2/module2_infer/infer_out/report.json + + +$(ROOT_DIR)/buck-out/genruletest/gen/infer/tests/build_systems/genrule/module2/module2_infer/infer_out/report.json: \ + $(JAVA_DEPS) $(JAVA_SOURCE_FILES) + cd $(ROOT_DIR) && \ + $(call silent_on_success,\ + INFER_BIN="$(INFER_BIN)" NO_BUCKD=1 GENERATE_INFER_GENRULES=1 \ + buck build --config project.buck_out=buck-out/genruletest --no-cache //infer/tests/build_systems/genrule/module2:module2_infer) + +infer-out/report.json: $(ROOT_DIR)/buck-out/genruletest/gen/infer/tests/build_systems/genrule/module2/module2_infer/infer_out/report.json + $(MKDIR_P) infer-out +# the report contains absolute paths + @sed -e 's#$(abspath $(ROOT_DIR))/##g' $< > $@ diff --git a/infer/tests/build_systems/genrule/issues.exp b/infer/tests/build_systems/genrule/issues.exp new file mode 100644 index 000000000..dcaf6e233 --- /dev/null +++ b/infer/tests/build_systems/genrule/issues.exp @@ -0,0 +1 @@ +buck-out/genruletest/gen/infer/tests/build_systems/genrule/module2/module2_export_srcs/src_copy/Class2.java, void Class2.localNPE2(), 2, NULL_DEREFERENCE, [start of procedure localNPE2()]