[infer][tests] use Buck target output instead of hard copies of the paths under buck-out

Summary: This allows to modify the structure of the buck project under test with less risk of breaking the tests

Reviewed By: sblackshear

Differential Revision: D4411721

fbshipit-source-id: 6ee2cc5
master
Jeremy Dubreil 8 years ago committed by Facebook Github Bot
parent 3c482da094
commit 219d5b3883

@ -9,8 +9,11 @@ TESTS_DIR = ../..
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_compile__output/compile_compile.jar
BUCK_TARGET = //infer/tests/codetoanalyze/java/infer:compile
SOURCES = $(addprefix $(ROOT_DIR), $(shell buck audit input $(BUCK_TARGET)))
TARGET_OUTPUT = $(word 2, $(shell buck targets --show-output $(BUCK_TARGET)))
OBJECTS = $(ROOT_DIR)/$(TARGET_OUTPUT)
INFERPRINT_OPTIONS = --project-root $(ROOT_DIR) --issues-tests
CLEAN_EXTRA = $(ROOT_DIR)/buck-out
@ -21,11 +24,11 @@ $(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)
buck build --no-cache $(BUCK_TARGET))
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)
buck build --no-cache $(BUCK_TARGET))

@ -9,8 +9,16 @@ 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
BUCK_TARGET = //infer/tests/build_systems/genrule/module2:module2
SOURCES = $(addprefix $(ROOT_DIR), $(shell buck audit input $(BUCK_TARGET)))
TARGET_OUTPUT = $(word 2, $(shell buck targets --show-output $(BUCK_TARGET)))
OBJECTS = $(ROOT_DIR)/$(TARGET_OUTPUT)
INFER_TARGET = $(BUCK_TARGET)_infer
GENRULE_OUTPUT = $(word 2, $(shell GENERATE_INFER_GENRULES=1 buck targets --show-output $(INFER_TARGET)))
JSON_REPORT = $(ROOT_DIR)/$(GENRULE_OUTPUT)/report.json
INFER_OPTIONS = --project-root $(ROOT_DIR)
INFERPRINT_OPTIONS = --project-root $(ROOT_DIR) --issues-tests
CLEAN_EXTRA = $(ROOT_DIR)/buck-out/genruletest
@ -21,22 +29,21 @@ 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)
NO_BUCKD=1 buck build --no-cache $(BUCK_TARGET))
.PHONY: genrule
genrule: $(ROOT_DIR)/buck-out/genruletest/gen/infer/tests/build_systems/genrule/module2/module2_infer/infer_out/report.json
genrule: $(JSON_REPORT)
$(ROOT_DIR)/buck-out/genruletest/gen/infer/tests/build_systems/genrule/module2/module2_infer/infer_out/report.json: \
$(JAVA_DEPS) $(JAVA_SOURCE_FILES)
$(JSON_REPORT): $(JAVA_DEPS) $(JAVA_SOURCE_FILES)
cd $(ROOT_DIR) && \
$(REMOVE_DIR) buck-out && \
$(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)
buck build --no-cache $(INFER_TARGET))
touch $@
infer-out/report.json: $(ROOT_DIR)/buck-out/genruletest/gen/infer/tests/build_systems/genrule/module2/module2_infer/infer_out/report.json
infer-out/report.json: $(JSON_REPORT)
$(MKDIR_P) infer-out
# the report contains absolute paths
@sed -e 's#$(abspath $(TESTS_DIR))/##g' $< > $@

Loading…
Cancel
Save