blob: 6d6ea217a002067693a5a8a7a90864fc905cb813 [file] [log] [blame]
#!/usr/bin/env python
#
# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
#
"""Unit tests for make_bundle.py."""
import os
from os import path
import shutil
import subprocess
import sys
import tempfile
import unittest
import make_bundle
class BundleMakerTest(unittest.TestCase):
"""Unit test class for BundleMaker."""
def setUp(self):
self._tempdir = tempfile.mkdtemp()
self._top_dir = path.normpath(path.join(path.dirname(sys.argv[0]),
os.pardir))
self._dest = path.join(self._tempdir, 'new_bundle')
def tearDown(self):
shutil.rmtree(self._tempdir)
def testBuildOptions(self):
op = make_bundle.BundleMaker.BuildOptions()
op.parse_args(args=[])
def testCheckOptions(self):
op = make_bundle.BundleMaker.BuildOptions()
options = make_bundle.BundleMaker.CheckOptions(op, self._top_dir,
['--dest', self._dest])
self.failUnless(path.exists(self._dest))
os.rmdir(self._dest)
self.assertEquals(self._dest, options['dest'])
self.assertEquals(self._top_dir, options['top_dir'])
self.failIf(options['verbose'])
self.failIf(options['skip_build'])
options = make_bundle.BundleMaker.CheckOptions(op, self._top_dir,
['--dest', self._dest, '-v'])
self.failUnless(path.exists(self._dest))
self.assertEquals(self._dest, options['dest'])
self.assertEquals(self._top_dir, options['top_dir'])
self.failUnless(options['verbose'])
self.failIf(options['skip_build'])
def _RunCommand(self, *args):
proc = subprocess.Popen(args,
cwd=self._dest,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
stdout = proc.communicate()[0]
self.assertEqual(0, proc.wait(), msg='%s\n%s' % (' '.join(args), stdout))
def testMakeBundle(self):
os.mkdir(self._dest)
maker = make_bundle.BundleMaker(dest=self._dest, top_dir=self._top_dir)
self.assertEquals(0, maker.MakeBundle())
commands = [
'./dart samples/hello.dart',
'./dart samples/deltablue.dart',
'./dart samples/mandelbrot.dart',
'./dart samples/towers.dart',
]
for command in commands:
args = command.split(' ')
self._RunCommand(*args)
args.append('--arch=dartc')
self._RunCommand(*args)
if __name__ == '__main__':
unittest.main()