From: Gabor Horvath Date: Wed, 8 Jul 2015 18:39:31 +0000 (+0000) Subject: [Static Analyzer] Make the paths relative from the project root when generating refer... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7d70c91050f1fd43ac6d1f67f8f66cb3b88a6e0f;p=clang [Static Analyzer] Make the paths relative from the project root when generating reference results in the test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@241706 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/analyzer/CmpRuns.py b/utils/analyzer/CmpRuns.py index a1f7a5649c..ce5ddfb3ad 100755 --- a/utils/analyzer/CmpRuns.py +++ b/utils/analyzer/CmpRuns.py @@ -37,7 +37,7 @@ import CmpRuns class SingleRunInfo: def __init__(self, path, root="", verboseLog=None): self.path = path - self.root = root + self.root = root.rstrip("/\\") self.verboseLog = verboseLog class AnalysisDiagnostic: @@ -50,8 +50,8 @@ class AnalysisDiagnostic: def getFileName(self): root = self._report.run.root fileName = self._report.files[self._loc['file']] - if fileName.startswith(root) : - return fileName[len(root):] + if fileName.startswith(root) and len(root) > 0: + return fileName[len(root)+1:] return fileName def getLine(self): diff --git a/utils/analyzer/SATestBuild.py b/utils/analyzer/SATestBuild.py index 20839c24e1..2d91ba41e2 100755 --- a/utils/analyzer/SATestBuild.py +++ b/utils/analyzer/SATestBuild.py @@ -16,6 +16,7 @@ Repository Directory structure: - Project Dir2 - ReferenceOutput .. +Note that the build tree must be inside the project dir. To test the build of the analyzer one would: - Copy over a copy of the Repository Directory. (TODO: Prefer to ensure that @@ -337,6 +338,18 @@ def buildProject(Dir, SBOutputDir, ProjectBuildMode, IsReferenceBuild): if IsReferenceBuild : runCleanupScript(Dir, PBuildLogFile) + + # Make the absolute paths relative in the reference results. + for (DirPath, Dirnames, Filenames) in os.walk(SBOutputDir): + for F in Filenames: + if (not F.endswith('plist')): + continue + Plist = os.path.join(DirPath, F) + Data = plistlib.readPlist(Plist) + Paths = [SourceFile[len(Dir)+1:] if SourceFile.startswith(Dir)\ + else SourceFile for SourceFile in Data['files']] + Data['files'] = Paths + plistlib.writePlist(Data, Plist) finally: PBuildLogFile.close() @@ -450,7 +463,7 @@ def runCmpResults(Dir, Strictness = 0): print " Comparing Results: %s %s" % (RefDir, NewDir) DiffsPath = os.path.join(NewDir, DiffsSummaryFileName) - Opts = CmpRuns.CmpOptions(DiffsPath) + Opts = CmpRuns.CmpOptions(DiffsPath, "", Dir) # Discard everything coming out of stdout (CmpRun produces a lot of them). OLD_STDOUT = sys.stdout sys.stdout = Discarder()