[tests] port delete infer-out test to a Makefile

Reviewed By: jberdine

Differential Revision: D4329624

fbshipit-source-id: 16d86b1
master
Jules Villard 8 years ago committed by Facebook Github Bot
parent 241b4b04fa
commit 674e3c86ea

@ -13,7 +13,8 @@ ifeq ($(IS_FACEBOOK_TREE),yes)
include $(ROOT_DIR)/facebook/Makefile.env include $(ROOT_DIR)/facebook/Makefile.env
endif endif
BUILD_SYSTEMS_TESTS = assembly ck_analytics ck_imports clang_translation linters project_root_rel BUILD_SYSTEMS_TESTS = \
assembly ck_analytics ck_imports clang_translation delete_results_dir linters project_root_rel
ifneq ($(ANT),no) ifneq ($(ANT),no)
BUILD_SYSTEMS_TESTS += ant BUILD_SYSTEMS_TESTS += ant
endif endif

@ -61,7 +61,6 @@ CODETOANALYZE_DIR = os.path.join(SCRIPT_DIR, 'codetoanalyze')
EXPECTED_OUTPUTS_DIR = os.path.join(SCRIPT_DIR, 'expected_outputs') EXPECTED_OUTPUTS_DIR = os.path.join(SCRIPT_DIR, 'expected_outputs')
ALL_TESTS = [ ALL_TESTS = [
'delete',
'fail', 'fail',
'gradle', 'gradle',
'javac', 'javac',
@ -496,15 +495,6 @@ class BuildIntegrationTest(unittest.TestCase):
extra_check=pmd_check, extra_check=pmd_check,
available=lambda: has_lxml) available=lambda: has_lxml)
def test_infer_deletes_infer_out(self):
# Test that two consecutive analyses do not pollute each other:
# the expected results of running infer on hello.c then on
# hello2.c is that only the bug in hello2.c is reported.
test('delete', 'infer deletes infer-out',
CODETOANALYZE_DIR,
[{'compile': ['clang', '-c', 'hello.c']},
{'compile': ['clang', '-c', 'hello2.c']}])
if __name__ == '__main__': if __name__ == '__main__':
# hackish capturing of the arguments after '--' # hackish capturing of the arguments after '--'

@ -0,0 +1,31 @@
# 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.
# Test that two consecutive analyses do not pollute each other: the expected results of running
# infer on hello.c then on hello2.c is that only the bug in hello2.c is reported.
TESTS_DIR = ../..
ANALYZER = infer
CODETOANALYZE_DIR = ../codetoanalyze
CLANG_OPTIONS = -c
INFER_OPTIONS = --project-root $(CODETOANALYZE_DIR)
INFERPRINT_OPTIONS = --issues-tests
SOURCES = $(CODETOANALYZE_DIR)/hello.c $(CODETOANALYZE_DIR)/hello2.c
include $(TESTS_DIR)/clang.make
infer-out/report.json: $(CLANG_DEPS) $(SOURCES)
$(call silent_on_success,\
$(INFER_BIN) --check-duplicate-symbols $(INFER_OPTIONS) -a $(ANALYZER) -- clang $(CLANG_OPTIONS) $(CODETOANALYZE_DIR)/hello.c 2>duplicates.txt)
grep "DUPLICATE_SYMBOLS" duplicates.txt; test $$? -ne 0
$(call silent_on_success,\
$(INFER_BIN) --check-duplicate-symbols $(INFER_OPTIONS) -a $(ANALYZER) -- clang $(CLANG_OPTIONS) $(CODETOANALYZE_DIR)/hello2.c 2>duplicates.txt)
grep "DUPLICATE_SYMBOLS" duplicates.txt; test $$? -ne 0

@ -0,0 +1 @@
hello2.c, test2, 2, NULL_DEREFERENCE, [start of procedure test2()]

@ -1,7 +0,0 @@
[
{
"bug_type": "NULL_DEREFERENCE",
"file": "hello2.c",
"procedure": "test2"
}
]
Loading…
Cancel
Save