1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift 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 http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
// FIXME: re-enable when `measure` supports `async` or replace with lower level benchmarks
//import Basics
//import Commands
//import PackageModel
//import InternalTestSupport
//import Workspace
//import XCTest
//
//import class TSCTestSupport.XCTestCasePerf
//
//final class BuildPerfTests: XCTestCasePerf {
// @discardableResult
// func execute(args: [String] = [], packagePath: AbsolutePath) async throws -> (stdout: String, stderr: String) {
// // FIXME: We should pass the SWIFT_EXEC at lower level.
// try await SwiftPM.Build.execute(args + [], packagePath: packagePath, env: ["SWIFT_EXEC": UserToolchain.default.swiftCompilerPath.pathString])
// }
//
// func clean(packagePath: AbsolutePath) async throws {
// _ = try await SwiftPM.Package.execute(["clean"], packagePath: packagePath)
// }
//
// func testTrivialPackageFullBuild() throws {
// #if !os(macOS)
// try XCTSkipIf(true, "test is only supported on macOS")
// #endif
// try runFullBuildTest(for: "DependencyResolution/Internal/Simple", product: "foo")
// }
//
// func testTrivialPackageNullBuild() throws {
// #if !os(macOS)
// try XCTSkipIf(true, "test is only supported on macOS")
// #endif
// try runNullBuildTest(for: "DependencyResolution/Internal/Simple", product: "foo")
// }
//
// func testComplexPackageFullBuild() throws {
// #if !os(macOS)
// try XCTSkipIf(true, "test is only supported on macOS")
// #endif
// try runFullBuildTest(for: "DependencyResolution/External/Complex", app: "app", product: "Dealer")
// }
//
// func testComplexPackageNullBuild() throws {
// #if !os(macOS)
// try XCTSkipIf(true, "test is only supported on macOS")
// #endif
// try runNullBuildTest(for: "DependencyResolution/External/Complex", app: "app", product: "Dealer")
// }
//
// func runFullBuildTest(for name: String, app appString: String? = nil, product productString: String) throws {
// try fixture(name: name) { fixturePath in
// let app = fixturePath.appending(components: (appString ?? ""))
// let triple = try UserToolchain.default.targetTriple
// let product = app.appending(components: ".build", triple.platformBuildPathComponent, "debug", productString)
// try await self.execute(packagePath: app)
// measure {
// try! await self.clean(packagePath: app)
// try! await self.execute(packagePath: app)
// XCTAssertFileExists(product)
// }
// }
// }
//
// func runNullBuildTest(for name: String, app appString: String? = nil, product productString: String) throws {
// try fixture(name: name) { fixturePath in
// let app = fixturePath.appending(components: (appString ?? ""))
// let triple = try UserToolchain.default.targetTriple
// let product = app.appending(components: ".build", triple.platformBuildPathComponent, "debug", productString)
// try self.execute(packagePath: app)
// measure {
// try! self.execute(packagePath: app)
// XCTAssertFileExists(product)
// }
// }
// }
//}
|