[analyzer] [tests] Remove empty folders in reference results, do not store diffs.txt

Storing diffs.txt is now redundant, as we simply dump the CmpRuns output
to stdout (it is saved in CI and tends to be small).
Not generating those files enables us to remove empty folders, which
confuse git, as it would not add them with reference results.

llvm-svn: 316948
This commit is contained in:
George Karpenkov 2017-10-30 19:40:33 +00:00
parent 017f896adb
commit 3c128cb1e6
2 changed files with 12 additions and 17 deletions

View File

@ -120,8 +120,6 @@ BuildLogName = "run_static_analyzer.log"
# displayed when buildbot detects a build failure.
NumOfFailuresInSummary = 10
FailuresSummaryFileName = "failures.txt"
# Summary of the result diffs.
DiffsSummaryFileName = "diffs.txt"
# The scan-build result directory.
SBOutputDirName = "ScanBuildResults"
@ -434,6 +432,16 @@ def CleanUpEmptyPlists(SBOutputDir):
continue
def CleanUpEmptyFolders(SBOutputDir):
"""
Remove empty folders from results, as git would not store them.
"""
Subfolders = glob.glob(SBOutputDir + "/*")
for Folder in Subfolders:
if not os.listdir(Folder):
os.removedirs(Folder)
def checkBuild(SBOutputDir):
"""
Given the scan-build output directory, checks if the build failed
@ -446,6 +454,7 @@ def checkBuild(SBOutputDir):
TotalFailed = len(Failures)
if TotalFailed == 0:
CleanUpEmptyPlists(SBOutputDir)
CleanUpEmptyFolders(SBOutputDir)
Plists = glob.glob(SBOutputDir + "/*/*.plist")
print "Number of bug reports (non-empty plist files) produced: %d" %\
len(Plists)
@ -519,9 +528,8 @@ def runCmpResults(Dir, Strictness=0):
if Verbose == 1:
print " Comparing Results: %s %s" % (RefDir, NewDir)
DiffsPath = os.path.join(NewDir, DiffsSummaryFileName)
PatchedSourceDirPath = os.path.join(Dir, PatchedSourceDirName)
Opts = CmpRuns.CmpOptions(DiffsPath, "", PatchedSourceDirPath)
Opts = CmpRuns.CmpOptions(rootA="", rootB=PatchedSourceDirPath)
# Scan the results, delete empty plist files.
NumDiffs, ReportsInRef, ReportsInNew = \
CmpRuns.dumpScanBuildResultsDiff(RefDir, NewDir, Opts, False)

View File

@ -54,22 +54,9 @@ def updateReferenceResults(ProjName, ProjBuildMode):
# Clean up the generated difference results.
SATestBuild.cleanupReferenceResults(RefResultsPath)
# Remove the created .diffs file before adding.
removeDiffsSummaryFiles(RefResultsPath)
runCmd('git add "%s"' % (RefResultsPath,))
def removeDiffsSummaryFiles(RefResultsPath):
"""
Remove all auto-generated .diffs files in reference data.
"""
for (Dirpath, Dirnames, Filenames) in os.walk(RefResultsPath):
if SATestBuild.DiffsSummaryFileName in Filenames:
runCmd("rm '%s'" % os.path.join(
Dirpath, SATestBuild.DiffsSummaryFileName))
def main(argv):
if len(argv) == 2 and argv[1] in ('-h', '--help'):
print >> sys.stderr, "Update static analyzer reference results based "\