Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Unified Diff: tools/bots/linux_distribution_support.py

Issue 273593008: Sanity check dep installation package on the bots (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/bots/linux_distribution_support.py
===================================================================
--- tools/bots/linux_distribution_support.py (revision 35880)
+++ tools/bots/linux_distribution_support.py (working copy)
@@ -55,14 +55,52 @@
os.path.basename(entry)])
gsutil.upload(full_path, remote_file, public=True)
+def InstallFromDep(builddir):
+ for entry in os.listdir(builddir):
+ if entry.endswith("_amd64.deb"):
Søren Gjesse 2014/05/08 13:32:56 Only 2 space indent.
ricow1 2014/05/08 17:00:04 Done.
+ path = os.path.join(builddir, entry)
+ Run(['sudo', 'dpkg', '-i', path])
+
+def UninstallDart():
+ Run(['sudo', 'dpkg', '-r', 'dart'])
+
+def CreateDartTestFile(tempdir):
Søren Gjesse 2014/05/08 13:32:56 Only 2 space indent.
ricow1 2014/05/08 17:00:04 Done.
+ filename = os.path.join(tempdir, 'test.dart')
+ with open(filename, 'w') as f:
+ f.write('import "dart:html";\n\n')
+ f.write('void main() {\n')
+ f.write(' print("Hello world");\n')
+ f.write('}')
+ return filename
+
+def Run(args):
+ print "Running: %s" % ' '.join(args)
+ bot.RunProcess(args)
+
+def TestInstallation(assume_installed=True):
+ paths = ['/usr/bin/dart']
+ for tool in ['dart2js', 'pub', 'dart', 'dartanalyzer']:
+ paths.append(os.path.join('/usr/lib/dart/bin', tool))
+ for path in paths:
+ if os.path.exists(path):
+ if not assume_installed:
+ print 'Assumed not installed, found %s' % path
+ sys.exit(1)
+ else:
+ if assume_installed:
+ print 'Assumed installed, but could not find %s' % path
+ sys.exit(1)
+
def SrcSteps(build_info):
# We always clobber the bot, to not leave old tarballs and packages
# floating around the out dir.
bot.Clobber(force=True)
+
version = utils.GetVersion()
builddir = os.path.join(bot_utils.DART_DIR,
utils.GetBuildDir(HOST_OS, HOST_OS),
'src_and_installation')
+
if not os.path.exists(builddir):
os.makedirs(builddir)
tarfilename = 'dart-%s.tar.gz' % version
@@ -86,16 +124,46 @@
sys.exit(1)
with bot.BuildStep('Create src tarball'):
- args = [sys.executable, './tools/create_tarball.py', '--tar_filename',
- tarfile]
print 'Building src tarball'
- bot.RunProcess(args)
+ Run([sys.executable, './tools/create_tarball.py',
+ '--tar_filename', tarfile])
+
print 'Building Debian packages'
- args = [sys.executable, './tools/create_debian_packages.py',
- '--tar_filename', tarfile,
- '--out_dir', builddir]
- bot.RunProcess(args)
-
+ Run([sys.executable, './tools/create_debian_packages.py',
+ '--tar_filename', tarfile,
+ '--out_dir', builddir])
+
+ with bot.BuildStep('Sanity check installation'):
+ if os.path.exists('/usr/bin/dart'):
+ print "Dart already installled, removing"
+ UninstallDart()
+ TestInstallation(assume_installed=False)
+
+ InstallFromDep(builddir)
+ TestInstallation(assume_installed=True)
+
+ # We build the runtime target to get everything we need to test the
+ # standalone target.
+ Run([sys.executable, './tools/build.py', '-mrelease', '-ax64', 'runtime'])
+ # Copy in the installed binary to avoid poluting /usr/bin (and having to
+ # run as root)
+ Run(['cp', '/usr/bin/dart', 'out/ReleaseX64/dart'])
+
+ Run([sys.executable, './tools/test.py', '-ax64',
+ '--mode=release', 'standalone'])
+
+ # Sanity check dart2js and the analyzer against a hello world program
+ with utils.TempDir() as temp_dir:
+ test_file = CreateDartTestFile(temp_dir)
+ Run(['/usr/lib/dart/bin/dart2js', test_file])
+ Run(['/usr/lib/dart/bin/dartanalyzer', test_file])
+
+ # Sanity check that pub can start up and print the version
+ Run(['/usr/lib/dart/bin/pub', '--version'])
+
+ UninstallDart()
+ TestInstallation(assume_installed=False)
+
with bot.BuildStep('Upload artifacts'):
bot_name, _ = bot.GetBotName()
channel = bot_utils.GetChannelFromName(bot_name)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698