Reviewed By: jeremydubreil Differential Revision: D5015626 fbshipit-source-id: 426597amaster
parent
29f7967f26
commit
fe8142deb8
@ -0,0 +1,31 @@
|
||||
# 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 = //infer/tests/build_systems/buck_cross_module/module2:module2
|
||||
INFERPRINT_OPTIONS = --project-root $(ROOT_DIR) --issues-tests
|
||||
CLEAN_EXTRA = $(ROOT_DIR)/buck-out
|
||||
|
||||
include $(TESTS_DIR)/java.make
|
||||
include $(TESTS_DIR)/infer.make
|
||||
|
||||
$(OBJECTS): $(JAVA_SOURCE_FILES)
|
||||
$(QUIET)cd $(ROOT_DIR) && \
|
||||
$(call silent_on_success,Compiling Buck cross module test tests,\
|
||||
INFER_BIN=$(INFER_BIN) NO_BUCKD=1 \
|
||||
$(BUCK) build --no-cache $(BUCK_TARGET))
|
||||
|
||||
infer-out/report.json: $(JAVA_DEPS) $(JAVA_SOURCE_FILES)
|
||||
$(QUIET)cd $(ROOT_DIR) && \
|
||||
$(REMOVE_DIR) buck-out && \
|
||||
$(call silent_on_success,Testing Buck Java cross module integration,\
|
||||
INFER_BIN=$(INFER_BIN) NO_BUCKD=1 \
|
||||
$(INFER_BIN) -a $(ANALYZER) --results-dir $(CURDIR)/infer-out -- \
|
||||
$(BUCK) build --no-cache $(BUCK_TARGET))
|
@ -0,0 +1,2 @@
|
||||
infer/tests/build_systems/buck_cross_module/module2/Class2.java, void Class2.crossModuleNPE1(), 1, NULL_DEREFERENCE, [start of procedure crossModuleNPE1(),start of procedure returnsNull(),return from a call to String Class1.returnsNull()]
|
||||
infer/tests/build_systems/buck_cross_module/module2/Class2.java, void Class2.crossModuleNPE2(Class1), 1, NULL_DEREFERENCE, [start of procedure crossModuleNPE2(...)]
|
@ -0,0 +1,10 @@
|
||||
java_library(
|
||||
name='module1',
|
||||
srcs=['Class1.java'],
|
||||
deps=[
|
||||
'//infer/tests/build_systems/genrule/annotations:annotations',
|
||||
],
|
||||
visibility=[
|
||||
'PUBLIC'
|
||||
],
|
||||
)
|
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package crossmodule.module1;
|
||||
|
||||
import genrule.annotations.Nullable;
|
||||
|
||||
public class Class1 {
|
||||
|
||||
public static String returnsNull() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable public Object nullableField;
|
||||
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
java_library(
|
||||
name='module2',
|
||||
srcs=['Class2.java'],
|
||||
deps=[
|
||||
'//infer/tests/build_systems/buck_cross_module/module1:module1'
|
||||
]
|
||||
)
|
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package crossmodule.module2;
|
||||
|
||||
import crossmodule.module1.Class1;
|
||||
|
||||
public class Class2 {
|
||||
|
||||
void crossModuleNPE1() {
|
||||
Class1.returnsNull().toString();
|
||||
}
|
||||
|
||||
void crossModuleNPE2(Class1 c) {
|
||||
c.nullableField.toString();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue