reduce length of scanbuild static analyzer test

This was ~30mn, by far the longest run on travisCI.
That's because it re-analyzes multiple times the same files (library files notably).
It also performs actions that make no sense for the static analyzer purpose,
such as building the single-file library.

Reduced time spent in this test by reducing its scope :
just build the CLI, and obviously the library along it.
These are the only ones that really deserve to be analyzed.

Unfortunately, it still results in a number of false positives when using newer versions of scanbuild
(each version of scanbuild generates a different list of false positives).
These will have to be fixed before transfering to Github Actions.
dev
Yann Collet 2021-08-29 15:26:31 -07:00
parent 7f37b8a547
commit 72bd2a83a0
3 changed files with 10 additions and 4 deletions

View File

@ -51,7 +51,7 @@ matrix:
- make -C tests fuzztest
# TODO: migrate to GH actions once newest clang staticanalyze warnings are fixed
- name: static analyzer scanbuild # ~26mn
- name: static analyzer scanbuild # ~8mn
dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives
script:
- make staticAnalyze
@ -104,8 +104,9 @@ matrix:
- make arminstall
- make aarch64fuzz
# To be removed once confirmed transferred to GA
- name: Versions Compatibility Test # 11.5mn
# This test currently fails on GA specifically, for no obvious reason
# (it works fine on travisCI, and on local test platforms).
- name: Versions Compatibility Test # ~6mn
script:
- make -C tests versionsTest

View File

@ -416,5 +416,5 @@ bmi32build: clean
staticAnalyze: SCANBUILD ?= scan-build
staticAnalyze:
$(CC) -v
CC=$(CC) CPPFLAGS=-g $(SCANBUILD) --status-bugs -v $(MAKE) allzstd examples contrib
CC=$(CC) CPPFLAGS=-g $(SCANBUILD) --status-bugs -v $(MAKE) zstd
endif

View File

@ -244,6 +244,9 @@ if __name__ == '__main__':
make(['zstd'], False)
else:
os.chdir(programs_dir)
print('-----------------------------------------------')
print('compiling head')
print('-----------------------------------------------')
make(['zstd'], False)
shutil.copy2('zstd', dst_zstd)
@ -260,7 +263,9 @@ if __name__ == '__main__':
print('cp ' + dict_files + ' ' + dict_source_path)
execute('cp ' + dict_files + ' ' + dict_source_path, param_shell=True)
print('-----------------------------------------------')
print('Compress test.dat by all released zstd')
print('-----------------------------------------------')
error_code = 0
for tag in tags: