blob: 4535306d197ebd5847d46ad4e93e597772250059 [file] [log] [blame]
# test_migration.py - Tests for swift_build_support.migration -*- python -*-
#
# This source file is part of the Swift.org open source project
#
# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
# Licensed under Apache License v2.0 with Runtime Library Exception
#
# See https://swift.org/LICENSE.txt for license information
# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
import argparse
import os
import unittest
from swift_build_support import migration
class MigrateImplArgsTestCase(unittest.TestCase):
def test_report_unknown_args(self):
parser = argparse.ArgumentParser()
parser.add_argument('-R', '--release', action='store_true')
parser.add_argument('-T', '--validation-test', action='store_true')
parser.add_argument('--darwin-xcrun-toolchain')
args = migration.parse_args(
parser,
['-RT', '--unknown', 'true', '--darwin-xcrun-toolchain=foo', '--',
'--darwin-xcrun-toolchain=bar', '--other'])
self.assertEqual(
args,
argparse.Namespace(
release=True,
validation_test=True,
darwin_xcrun_toolchain='bar',
build_script_impl_args=['--unknown', 'true', '--other']))
def test_no_unknown_args(self):
parser = argparse.ArgumentParser()
parser.add_argument('-R', '--release', action='store_true')
parser.add_argument('-T', '--validation-test', action='store_true')
parser.add_argument('--darwin-xcrun-toolchain')
args = migration.parse_args(
parser,
['-RT', '--darwin-xcrun-toolchain=bar'])
self.assertEqual(
args,
argparse.Namespace(
release=True,
validation_test=True,
darwin_xcrun_toolchain='bar',
build_script_impl_args=[]))
def test_check_impl_args(self):
# Assuming file locations:
# utils/swift_build_support/tests/test_migration.py
# utils/build-script-impl
build_script_impl = os.path.join(
os.path.dirname(__file__), '..', '..', 'build-script-impl')
self.assertIsNone(migration.check_impl_args(build_script_impl,
['--reconfigure']))
with self.assertRaises(ValueError) as cm:
migration.check_impl_args(build_script_impl, ['foo'])
self.assertIn('foo', str(cm.exception))
with self.assertRaises(ValueError) as cm:
migration.check_impl_args(build_script_impl, ['--reconfigure',
'--foo=true'])
self.assertIn('foo', str(cm.exception))
if __name__ == '__main__':
unittest.main()