1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- """
- Some legacy tests against previous bugs.
- FIXME: this should probably be integrated into ../../../tests/test_regression.py
- """
- import subprocess
- import sys
- from pathlib import Path
- # Import helper function to compare graphs from tests/regressions_tests
- sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
- from regression_test_helpers import ( # pylint: disable=import-error,wrong-import-position
- compare_graphs,
- )
- vulnfiles = ["nullderefrebuildlist"]
- output_types = [("xdot", "xdot:xdot:core")]
- def generate_vuln_graph(vulnfile, output_type):
- """
- Generate a graph from the given file in the given output format.
- """
- if not Path("output").exists():
- Path("output").mkdir(parents=True)
- output_file = Path("output") / f"{vulnfile}.{output_type[0]}"
- input_file = Path("input") / f"{vulnfile}.dot"
- try:
- subprocess.check_call(
- ["dot", f"-T{output_type[1]}", "-o", output_file, input_file]
- )
- except subprocess.CalledProcessError:
- print(f"An error occurred while generating: {output_file}")
- sys.exit(1)
- failures = 0
- for v in vulnfiles:
- for o in output_types:
- generate_vuln_graph(v, o)
- if not compare_graphs(v, o[0]):
- failures += 1
- print("")
- print('Results for "vuln" regression test:')
- print(f" Number of tests: {len(vulnfiles) * len(output_types)}")
- print(f" Number of failures: {failures}")
- if not failures == 0:
- sys.exit(1)
|