Summary: Do not use the deprecated (and slower) `#infer` flavor. Instead, `infer-run` runs capture with the `#infer-capture-all` flavor, followed by merging targets, followed by the analysis. Move the call to `MergeCapture` around to make this change easier. Reviewed By: mbouaziz Differential Revision: D5547199 fbshipit-source-id: 53c9996master
parent
c473f21f81
commit
766a73d80c
@ -0,0 +1,33 @@
|
|||||||
|
# Copyright (c) 2017 - 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
|
||||||
|
BUCK_TARGET = //src:hello
|
||||||
|
SOURCES = $(wildcard src/hello.c)
|
||||||
|
OBJECTS = buck-out/gen/src/hello\#compile-hello.c.o1f717d69,default/hello.c.o
|
||||||
|
INFER_OPTIONS = --report-custom-error --developer-mode --project-root $(TESTS_DIR) --no-keep-going
|
||||||
|
INFERPRINT_OPTIONS = --project-root $(TESTS_DIR) --issues-tests
|
||||||
|
CLEAN_EXTRA = buck-out
|
||||||
|
|
||||||
|
include $(TESTS_DIR)/infer.make
|
||||||
|
|
||||||
|
# Buck passes -a capture to infer
|
||||||
|
export INFER_STRICT_MODE=0
|
||||||
|
|
||||||
|
$(OBJECTS): $(JAVA_SOURCE_FILES)
|
||||||
|
$(QUIET)$(call silent_on_success,Compiling Buck flavors tests,\
|
||||||
|
NO_BUCKD=1 $(BUCK) build --no-cache $(BUCK_TARGET))
|
||||||
|
|
||||||
|
infer-out/report.json: $(CLANG_DEPS) $(SOURCES) $(MAKEFILE_LIST)
|
||||||
|
$(QUIET)$(REMOVE_DIR) buck-out && \
|
||||||
|
$(call silent_on_success,Testing infer-run Buck flavors integration,\
|
||||||
|
NO_BUCKD=1 \
|
||||||
|
$(INFER_BIN) $(INFER_OPTIONS) run --flavors --results-dir $(CURDIR)/infer-out -- \
|
||||||
|
$(BUCK) build --no-cache $(BUCK_TARGET))
|
@ -0,0 +1,2 @@
|
|||||||
|
src/hello.c, test, 2, NULL_DEREFERENCE, [start of procedure test()]
|
||||||
|
src/hello2.c, test2, 2, NULL_DEREFERENCE, [start of procedure test2()]
|
@ -0,0 +1,6 @@
|
|||||||
|
cxx_library(
|
||||||
|
name = 'hello',
|
||||||
|
srcs = [
|
||||||
|
'hello.c', 'hello2.c',
|
||||||
|
],
|
||||||
|
)
|
@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017 - 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
void test() {
|
||||||
|
int* s = NULL;
|
||||||
|
*s = 42;
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017 - 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
void test2() {
|
||||||
|
int* s = NULL;
|
||||||
|
*s = 42;
|
||||||
|
}
|
Loading…
Reference in new issue