diff --git a/lit.cfg b/lit.cfg index 5c2c512..4851623 100644 --- a/lit.cfg +++ b/lit.cfg @@ -120,11 +120,14 @@ if lit_config.params.get("have-network"): # Get the package path. package_path = lit_config.params.get("package-path") +if package_path is None: + # If a package wasn't provided, use the current selected toolchain on Darwin. + if platform.system() == "Darwin": + package_path = os.path.abspath( + os.path.join(subprocess.check_output(["xcrun", "--find", "swift"]).strip(), "../../../")) if package_path is None: lit_config.fatal("'--param package-path=PATH' is required") package_path = os.path.abspath(package_path) -# if platform.system() == "Darwin": -# package_path = os.path.join(package_path, "Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain") lit_config.note("testing package: %r" % (package_path,)) # Find the path to FileCheck. We just pick any one out of the build directory. @@ -177,7 +180,10 @@ if not os.path.exists(swiftc_path): if not os.path.exists(filecheck_path): lit_config.fatal("filecheck does not exist!") if not os.path.exists(lldb_path): - lit_config.fatal("lldb does not exist!") + if platform.system() == "Darwin": + lldb_path = subprocess.check_output(["xcrun", "--find", "lldb"]).strip() + else: + lit_config.fatal("lldb does not exist!") # Define our supported substitutions. config.substitutions.append( ('%{not}', os.path.join(srcroot, "not")) ) @@ -186,13 +192,17 @@ config.substitutions.append( ('%{swift}', swift_path) ) config.substitutions.append( ('%{swiftc}', swiftc_path) ) config.substitutions.append( ('%{FileCheck}', filecheck_path) ) -# Add a substitution for swiftpm build directory. This is useful for -# running the integration tests locally, for e.g. by changing: -# %{swift} build -> %{swiftpm_build}/swift-build +# Add substitutions for swiftpm executables. swiftpm_build = lit_config.params.get("swiftpm-build") if swiftpm_build is not None: - config.substitutions.append( ('%{swiftpm_build}', swiftpm_build) ) lit_config.note("testing using swiftpm build directory: {}".format(swiftpm_build)) + config.substitutions.append( ('%{swift-build}', os.path.join(swiftpm_build, "swift-build")) ) + config.substitutions.append( ('%{swift-test}', os.path.join(swiftpm_build, "swift-test")) ) + config.substitutions.append( ('%{swift-run}', os.path.join(swiftpm_build, "swift-run")) ) +else: + config.substitutions.append( ('%{swift-build}', swift_path + ' build') ) + config.substitutions.append( ('%{swift-test}', swift_path + ' test') ) + config.substitutions.append( ('%{swift-run}', swift_path + ' run') ) ### diff --git a/test-complex-xctest-package/SwiftCMixed/Sources/see/see.c b/test-complex-xctest-package/SwiftCMixed/Sources/see/see.c index 56a6706..29dfbda 100644 --- a/test-complex-xctest-package/SwiftCMixed/Sources/see/see.c +++ b/test-complex-xctest-package/SwiftCMixed/Sources/see/see.c @@ -1,5 +1,9 @@ #include "see.h" +int (^simpleBlock)(int) = ^(int a){ + return a+1; +}; + int foo() { - return 5; + return simpleBlock(4); } diff --git a/test-complex-xctest-package/SwiftCMixed/Sources/swifty/swifty.swift b/test-complex-xctest-package/SwiftCMixed/Sources/swifty/swifty.swift index 8abf1ec..c5ff442 100644 --- a/test-complex-xctest-package/SwiftCMixed/Sources/swifty/swifty.swift +++ b/test-complex-xctest-package/SwiftCMixed/Sources/swifty/swifty.swift @@ -1,4 +1,5 @@ import see +import Dispatch func swiftyFoo() -> Int { return Int(foo()) diff --git a/test-complex-xctest-package/test-xctest-package.txt b/test-complex-xctest-package/test-xctest-package.txt index 006acf3..c050f86 100644 --- a/test-complex-xctest-package/test-xctest-package.txt +++ b/test-complex-xctest-package/test-xctest-package.txt @@ -4,7 +4,7 @@ // RUN: rm -rf %t.dir // RUN: mkdir -p %t.dir // RUN: cp -r %S/SwiftCMixed %t.dir/ -// RUN: %{swift} test --package-path %t.dir/SwiftCMixed -v 2>&1 | tee %t.build-log +// RUN: %{swift-test} --package-path %t.dir/SwiftCMixed -v 2>&1 | tee %t.build-log // // Check the build log. //