mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
78 lines
2.8 KiB
Python
78 lines
2.8 KiB
Python
# 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()
|