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
parent 68b93300
......@@ -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()
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
# 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)
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.")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment