Fix v8 landmines script.
Currently, some builders are in a clobber-landmine loop. Clobber deletes the .landmines tracker (sigh). 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. After the branch point, all v8 branch builders have to be manually clobbered, because the appearance of the landmines.py script and the first landmine request are in the same branch CL. TBR=jochen@chromium.org Review URL: https://codereview.chromium.org/457063002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
68b933007c
commit
7f156ffefa
@ -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():
|
||||
|
@ -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.")
|
||||
|
Loading…
Reference in New Issue
Block a user