diff options
-rw-r--r-- | clang/tools/scan-build-py/libscanbuild/report.py | 4 | ||||
-rw-r--r-- | clang/tools/scan-build-py/tests/unit/test_report.py | 13 |
2 files changed, 16 insertions, 1 deletions
diff --git a/clang/tools/scan-build-py/libscanbuild/report.py b/clang/tools/scan-build-py/libscanbuild/report.py index 5c33319e206..766ddef7199 100644 --- a/clang/tools/scan-build-py/libscanbuild/report.py +++ b/clang/tools/scan-build-py/libscanbuild/report.py @@ -21,6 +21,7 @@ import glob import json import logging import contextlib +import datetime from libscanbuild import duplicate_check from libscanbuild.clang import get_version @@ -34,7 +35,8 @@ def report_directory(hint, keep): hint -- could specify the parent directory of the output directory. keep -- a boolean value to keep or delete the empty report directory. """ - stamp = time.strftime('scan-build-%Y-%m-%d-%H%M%S-', time.localtime()) + stamp_format = 'scan-build-%Y-%m-%d-%H-%M-%S-%f-' + stamp = datetime.datetime.now().strftime(stamp_format) parentdir = os.path.abspath(hint) if not os.path.exists(parentdir): diff --git a/clang/tools/scan-build-py/tests/unit/test_report.py b/clang/tools/scan-build-py/tests/unit/test_report.py index 3f249ce2aa0..c82b5593e0d 100644 --- a/clang/tools/scan-build-py/tests/unit/test_report.py +++ b/clang/tools/scan-build-py/tests/unit/test_report.py @@ -146,3 +146,16 @@ class GetPrefixFromCompilationDatabaseTest(unittest.TestCase): def test_empty(self): self.assertEqual( sut.commonprefix([]), '') + +class ReportDirectoryTest(unittest.TestCase): + + # Test that successive report directory names ascend in lexicographic + # order. This is required so that report directories from two runs of + # scan-build can be easily matched up to compare results. + def test_directory_name_comparison(self): + with libear.TemporaryDirectory() as tmpdir, \ + sut.report_directory(tmpdir, False) as report_dir1, \ + sut.report_directory(tmpdir, False) as report_dir2, \ + sut.report_directory(tmpdir, False) as report_dir3: + self.assertLess(report_dir1, report_dir2) + self.assertLess(report_dir2, report_dir3) |