forked from pfqgauxfb/code-analysis
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
972 B
35 lines
972 B
import os
|
|
import subprocess
|
|
|
|
from testutils import cppcheck
|
|
|
|
__script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
def test_fuzz_crash():
|
|
failures = {}
|
|
|
|
fuzz_crash_dir = os.path.join(__script_dir, 'fuzz-crash')
|
|
for f in os.listdir(fuzz_crash_dir):
|
|
ret, stdout, _ = cppcheck(['-q', '--language=c++', '--enable=all', '--inconclusive', f], cwd=fuzz_crash_dir)
|
|
if ret != 0:
|
|
failures[f] = stdout
|
|
|
|
assert failures == {}
|
|
|
|
|
|
def test_fuzz_timeout():
|
|
failures = []
|
|
|
|
fuzz_timeout_dir = os.path.join(__script_dir, 'fuzz-timeout')
|
|
# TODO: remove check if we have test data
|
|
if not os.path.exists(fuzz_timeout_dir):
|
|
return
|
|
for f in os.listdir(fuzz_timeout_dir):
|
|
try:
|
|
ret, stdout, _ = cppcheck(['-q', '--language=c++', '--enable=all', '--inconclusive', f], cwd=fuzz_timeout_dir, timeout=5)
|
|
except subprocess.TimeoutExpired:
|
|
failures.append(f)
|
|
|
|
assert failures == []
|