diff --git a/build/landmines.py b/build/landmines.py index 4f9773f414..bd1fb28f71 100755 --- a/build/landmines.py +++ b/build/landmines.py @@ -61,30 +61,30 @@ def set_up_landmines(target, new_landmines): if not os.path.exists(landmines_path): print "Landmines tracker didn't exists." - # Make sure the landmines tracker exists. - open(landmines_path, 'a').close() + # FIXME(machenbach): Clobber deletes the .landmines tracker. Difficult + # to know if we are right after a clobber or if it is first-time landmines + # deployment. Also, a landmine-triggered clobber right after a clobber is + # not possible. Different clobber methods for msvs, xcode and make all + # have different blacklists of files that are not deleted. + if os.path.exists(landmines_path): + triggered = os.path.join(out_dir, '.landmines_triggered') + with open(landmines_path, 'r') as f: + old_landmines = f.readlines() + if old_landmines != new_landmines: + old_date = time.ctime(os.stat(landmines_path).st_ctime) + diff = difflib.unified_diff(old_landmines, new_landmines, + fromfile='old_landmines', tofile='new_landmines', + fromfiledate=old_date, tofiledate=time.ctime(), n=0) - triggered = os.path.join(out_dir, '.landmines_triggered') - with open(landmines_path, 'r') as f: - old_landmines = f.readlines() - if old_landmines != new_landmines: - old_date = time.ctime(os.stat(landmines_path).st_ctime) - diff = difflib.unified_diff(old_landmines, new_landmines, - fromfile='old_landmines', tofile='new_landmines', - fromfiledate=old_date, tofiledate=time.ctime(), n=0) - - with open(triggered, 'w') as f: - f.writelines(diff) - print "Setting landmine: %s" % triggered - elif os.path.exists(triggered): - # Remove false triggered landmines. - os.remove(triggered) - print "Removing landmine: %s" % triggered + with open(triggered, 'w') as f: + f.writelines(diff) + print "Setting landmine: %s" % triggered + elif os.path.exists(triggered): + # Remove false triggered landmines. + os.remove(triggered) + print "Removing landmine: %s" % triggered with open(landmines_path, 'w') as f: f.writelines(new_landmines) - with open(landmines_path, 'r') as f: - print "Content of the landmines tracker:" - print f.read() def process_options(): diff --git a/tools/run-tests.py b/tools/run-tests.py index 06de70a4b0..6e9f5549d8 100755 --- a/tools/run-tests.py +++ b/tools/run-tests.py @@ -267,14 +267,6 @@ def ProcessOptions(options): # Buildbots run presubmit tests as a separate step. options.no_presubmit = True options.no_network = True - - # FIXME(machenbach): Temporary hack to debug landmines on buildbot. - # Hardcoded for make/ninja. - src_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) - target_dir = options.mode[0] if options.mode else 'Release' - out_dir = os.path.join(src_dir, 'out', target_dir, '.landmines') - if os.path.exists(out_dir): - print "[INFO] Landmines tracker exists." if options.command_prefix: print("Specifying --command-prefix disables network distribution, " "running tests locally.")