Align supported Swift versions with rest of the ecosystem (#141)
# Motivation Most of the server ecosystem follows the supported Swift versions from `swift-nio`. This means supporting the latest 3 Swift releases. # Modification This PR drops support for all Swift versions before 5.8. # Result This makes maintaining this repository easier and allows us to clean up some no longer needed stuff.
This commit is contained in:
parent
9c0646af4d
commit
7e53749103
|
|
@ -1,43 +0,0 @@
|
||||||
// swift-tools-version:4.2
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
import PackageDescription
|
|
||||||
|
|
||||||
let package = Package(
|
|
||||||
name: "swift-metrics",
|
|
||||||
products: [
|
|
||||||
.library(name: "CoreMetrics", targets: ["CoreMetrics"]),
|
|
||||||
.library(name: "Metrics", targets: ["Metrics"]),
|
|
||||||
.library(name: "MetricsTestKit", targets: ["MetricsTestKit"]),
|
|
||||||
],
|
|
||||||
targets: [
|
|
||||||
.target(
|
|
||||||
name: "CoreMetrics",
|
|
||||||
dependencies: []
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "Metrics",
|
|
||||||
dependencies: ["CoreMetrics"]
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "MetricsTestKit",
|
|
||||||
dependencies: ["Metrics"]
|
|
||||||
),
|
|
||||||
.testTarget(
|
|
||||||
name: "MetricsTests",
|
|
||||||
dependencies: ["Metrics", "MetricsTestKit"]
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
// swift-tools-version:5.0
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
import PackageDescription
|
|
||||||
|
|
||||||
let package = Package(
|
|
||||||
name: "swift-metrics",
|
|
||||||
products: [
|
|
||||||
.library(name: "CoreMetrics", targets: ["CoreMetrics"]),
|
|
||||||
.library(name: "Metrics", targets: ["Metrics"]),
|
|
||||||
.library(name: "MetricsTestKit", targets: ["MetricsTestKit"]),
|
|
||||||
],
|
|
||||||
targets: [
|
|
||||||
.target(
|
|
||||||
name: "CoreMetrics",
|
|
||||||
dependencies: []
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "Metrics",
|
|
||||||
dependencies: ["CoreMetrics"]
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "MetricsTestKit",
|
|
||||||
dependencies: ["Metrics"]
|
|
||||||
),
|
|
||||||
.testTarget(
|
|
||||||
name: "MetricsTests",
|
|
||||||
dependencies: ["Metrics", "MetricsTestKit"]
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
// swift-tools-version:5.1
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
import PackageDescription
|
|
||||||
|
|
||||||
let package = Package(
|
|
||||||
name: "swift-metrics",
|
|
||||||
products: [
|
|
||||||
.library(name: "CoreMetrics", targets: ["CoreMetrics"]),
|
|
||||||
.library(name: "Metrics", targets: ["Metrics"]),
|
|
||||||
.library(name: "MetricsTestKit", targets: ["MetricsTestKit"]),
|
|
||||||
],
|
|
||||||
targets: [
|
|
||||||
.target(
|
|
||||||
name: "CoreMetrics",
|
|
||||||
dependencies: []
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "Metrics",
|
|
||||||
dependencies: ["CoreMetrics"]
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "MetricsTestKit",
|
|
||||||
dependencies: ["Metrics"]
|
|
||||||
),
|
|
||||||
.testTarget(
|
|
||||||
name: "MetricsTests",
|
|
||||||
dependencies: ["Metrics", "MetricsTestKit"]
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
// swift-tools-version:5.2
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
import PackageDescription
|
|
||||||
|
|
||||||
let package = Package(
|
|
||||||
name: "swift-metrics",
|
|
||||||
products: [
|
|
||||||
.library(name: "CoreMetrics", targets: ["CoreMetrics"]),
|
|
||||||
.library(name: "Metrics", targets: ["Metrics"]),
|
|
||||||
.library(name: "MetricsTestKit", targets: ["MetricsTestKit"]),
|
|
||||||
],
|
|
||||||
targets: [
|
|
||||||
.target(
|
|
||||||
name: "CoreMetrics",
|
|
||||||
dependencies: []
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "Metrics",
|
|
||||||
dependencies: ["CoreMetrics"]
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "MetricsTestKit",
|
|
||||||
dependencies: ["Metrics"]
|
|
||||||
),
|
|
||||||
.testTarget(
|
|
||||||
name: "MetricsTests",
|
|
||||||
dependencies: ["Metrics", "MetricsTestKit"]
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
// swift-tools-version:5.3
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
import PackageDescription
|
|
||||||
|
|
||||||
let package = Package(
|
|
||||||
name: "swift-metrics",
|
|
||||||
products: [
|
|
||||||
.library(name: "CoreMetrics", targets: ["CoreMetrics"]),
|
|
||||||
.library(name: "Metrics", targets: ["Metrics"]),
|
|
||||||
.library(name: "MetricsTestKit", targets: ["MetricsTestKit"]),
|
|
||||||
],
|
|
||||||
targets: [
|
|
||||||
.target(
|
|
||||||
name: "CoreMetrics",
|
|
||||||
dependencies: []
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "Metrics",
|
|
||||||
dependencies: ["CoreMetrics"]
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "MetricsTestKit",
|
|
||||||
dependencies: ["Metrics"]
|
|
||||||
),
|
|
||||||
.testTarget(
|
|
||||||
name: "MetricsTests",
|
|
||||||
dependencies: ["Metrics", "MetricsTestKit"]
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
// swift-tools-version:5.4
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
import PackageDescription
|
|
||||||
|
|
||||||
let package = Package(
|
|
||||||
name: "swift-metrics",
|
|
||||||
products: [
|
|
||||||
.library(name: "CoreMetrics", targets: ["CoreMetrics"]),
|
|
||||||
.library(name: "Metrics", targets: ["Metrics"]),
|
|
||||||
.library(name: "MetricsTestKit", targets: ["MetricsTestKit"]),
|
|
||||||
],
|
|
||||||
targets: [
|
|
||||||
.target(
|
|
||||||
name: "CoreMetrics",
|
|
||||||
dependencies: []
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "Metrics",
|
|
||||||
dependencies: ["CoreMetrics"]
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "MetricsTestKit",
|
|
||||||
dependencies: ["Metrics"]
|
|
||||||
),
|
|
||||||
.testTarget(
|
|
||||||
name: "MetricsTests",
|
|
||||||
dependencies: ["Metrics", "MetricsTestKit"]
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
// swift-tools-version:5.5
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
import PackageDescription
|
|
||||||
|
|
||||||
let package = Package(
|
|
||||||
name: "swift-metrics",
|
|
||||||
products: [
|
|
||||||
.library(name: "CoreMetrics", targets: ["CoreMetrics"]),
|
|
||||||
.library(name: "Metrics", targets: ["Metrics"]),
|
|
||||||
.library(name: "MetricsTestKit", targets: ["MetricsTestKit"]),
|
|
||||||
],
|
|
||||||
targets: [
|
|
||||||
.target(
|
|
||||||
name: "CoreMetrics",
|
|
||||||
dependencies: []
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "Metrics",
|
|
||||||
dependencies: ["CoreMetrics"]
|
|
||||||
),
|
|
||||||
.target(
|
|
||||||
name: "MetricsTestKit",
|
|
||||||
dependencies: ["Metrics"]
|
|
||||||
),
|
|
||||||
.testTarget(
|
|
||||||
name: "MetricsTests",
|
|
||||||
dependencies: ["Metrics", "MetricsTestKit"]
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
@ -1253,7 +1253,6 @@ public final class NOOPMetricsHandler: MetricsFactory, CounterHandler, FloatingP
|
||||||
|
|
||||||
// MARK: - Sendable support helpers
|
// MARK: - Sendable support helpers
|
||||||
|
|
||||||
#if compiler(>=5.6)
|
|
||||||
extension MetricsSystem: Sendable {}
|
extension MetricsSystem: Sendable {}
|
||||||
extension Counter: Sendable {}
|
extension Counter: Sendable {}
|
||||||
extension FloatingPointCounter: Sendable {}
|
extension FloatingPointCounter: Sendable {}
|
||||||
|
|
@ -1263,10 +1262,5 @@ extension Timer: Sendable {}
|
||||||
extension Meter: Sendable {}
|
extension Meter: Sendable {}
|
||||||
// ideally we would not be using @unchecked here, but concurrency-safety checks do not recognize locks
|
// ideally we would not be using @unchecked here, but concurrency-safety checks do not recognize locks
|
||||||
extension AccumulatingRoundingFloatingPointCounter: @unchecked Sendable {}
|
extension AccumulatingRoundingFloatingPointCounter: @unchecked Sendable {}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if compiler(>=5.6)
|
|
||||||
@preconcurrency public protocol _SwiftMetricsSendableProtocol: Sendable {}
|
@preconcurrency public protocol _SwiftMetricsSendableProtocol: Sendable {}
|
||||||
#else
|
|
||||||
public protocol _SwiftMetricsSendableProtocol {}
|
|
||||||
#endif
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,6 @@ extension Timer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if swift(>=5.7)
|
|
||||||
extension Timer {
|
extension Timer {
|
||||||
/// Convenience for recording a duration based on ``Duration``.
|
/// Convenience for recording a duration based on ``Duration``.
|
||||||
///
|
///
|
||||||
|
|
@ -99,4 +98,3 @@ extension Timer {
|
||||||
self.recordNanoseconds(nanoseconds.partialValue)
|
self.recordNanoseconds(nanoseconds.partialValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
|
||||||
|
|
@ -576,26 +576,16 @@ extension NSLock {
|
||||||
|
|
||||||
// MARK: - Errors
|
// MARK: - Errors
|
||||||
|
|
||||||
#if compiler(>=5.6)
|
|
||||||
public enum TestMetricsError: Error {
|
public enum TestMetricsError: Error {
|
||||||
case missingMetric(label: String, dimensions: [(String, String)])
|
case missingMetric(label: String, dimensions: [(String, String)])
|
||||||
case illegalMetricType(metric: Sendable, expected: String)
|
case illegalMetricType(metric: Sendable, expected: String)
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
public enum TestMetricsError: Error {
|
|
||||||
case missingMetric(label: String, dimensions: [(String, String)])
|
|
||||||
case illegalMetricType(metric: Any, expected: String)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// MARK: - Sendable support
|
// MARK: - Sendable support
|
||||||
|
|
||||||
#if compiler(>=5.6)
|
|
||||||
// ideally we would not be using @unchecked here, but concurrency-safety checks do not recognize locks
|
// ideally we would not be using @unchecked here, but concurrency-safety checks do not recognize locks
|
||||||
extension TestMetrics: @unchecked Sendable {}
|
extension TestMetrics: @unchecked Sendable {}
|
||||||
extension TestCounter: @unchecked Sendable {}
|
extension TestCounter: @unchecked Sendable {}
|
||||||
extension TestMeter: @unchecked Sendable {}
|
extension TestMeter: @unchecked Sendable {}
|
||||||
extension TestRecorder: @unchecked Sendable {}
|
extension TestRecorder: @unchecked Sendable {}
|
||||||
extension TestTimer: @unchecked Sendable {}
|
extension TestTimer: @unchecked Sendable {}
|
||||||
#endif
|
|
||||||
|
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// CoreMetricsTests+XCTest.swift
|
|
||||||
//
|
|
||||||
import XCTest
|
|
||||||
|
|
||||||
///
|
|
||||||
/// NOTE: This file was generated by generate_linux_tests.rb
|
|
||||||
///
|
|
||||||
/// Do NOT edit this file directly as it will be regenerated automatically when needed.
|
|
||||||
///
|
|
||||||
|
|
||||||
extension MetricsTests {
|
|
||||||
static var allTests: [(String, (MetricsTests) -> () throws -> Void)] {
|
|
||||||
return [
|
|
||||||
("testCounters", testCounters),
|
|
||||||
("testCounterBlock", testCounterBlock),
|
|
||||||
("testDefaultFloatingPointCounter_ignoresNan", testDefaultFloatingPointCounter_ignoresNan),
|
|
||||||
("testDefaultFloatingPointCounter_ignoresInfinity", testDefaultFloatingPointCounter_ignoresInfinity),
|
|
||||||
("testDefaultFloatingPointCounter_ignoresNegativeValues", testDefaultFloatingPointCounter_ignoresNegativeValues),
|
|
||||||
("testDefaultFloatingPointCounter_ignoresZero", testDefaultFloatingPointCounter_ignoresZero),
|
|
||||||
("testDefaultFloatingPointCounter_ceilsExtremeValues", testDefaultFloatingPointCounter_ceilsExtremeValues),
|
|
||||||
("testDefaultFloatingPointCounter_accumulatesFloatingPointDecimalValues", testDefaultFloatingPointCounter_accumulatesFloatingPointDecimalValues),
|
|
||||||
("testRecorders", testRecorders),
|
|
||||||
("testRecordersInt", testRecordersInt),
|
|
||||||
("testRecordersFloat", testRecordersFloat),
|
|
||||||
("testRecorderBlock", testRecorderBlock),
|
|
||||||
("testTimers", testTimers),
|
|
||||||
("testTimerBlock", testTimerBlock),
|
|
||||||
("testTimerVariants", testTimerVariants),
|
|
||||||
("testTimerOverflow", testTimerOverflow),
|
|
||||||
("testTimerHandlesUnsignedOverflow", testTimerHandlesUnsignedOverflow),
|
|
||||||
("testGauge", testGauge),
|
|
||||||
("testGaugeBlock", testGaugeBlock),
|
|
||||||
("testMeter", testMeter),
|
|
||||||
("testMeterBlock", testMeterBlock),
|
|
||||||
("testMeterInt", testMeterInt),
|
|
||||||
("testMeterFloat", testMeterFloat),
|
|
||||||
("testMeterIncrement", testMeterIncrement),
|
|
||||||
("testMeterDecrement", testMeterDecrement),
|
|
||||||
("testDefaultMeterIgnoresNan", testDefaultMeterIgnoresNan),
|
|
||||||
("testDefaultMeterIgnoresInfinity", testDefaultMeterIgnoresInfinity),
|
|
||||||
("testDefaultMeterIgnoresNegativeValues", testDefaultMeterIgnoresNegativeValues),
|
|
||||||
("testDefaultMeterIgnoresZero", testDefaultMeterIgnoresZero),
|
|
||||||
("testMUX_Counter", testMUX_Counter),
|
|
||||||
("testMUX_Meter", testMUX_Meter),
|
|
||||||
("testMUX_Recorder", testMUX_Recorder),
|
|
||||||
("testMUX_Timer", testMUX_Timer),
|
|
||||||
("testCustomFactory", testCustomFactory),
|
|
||||||
("testDestroyingGauge", testDestroyingGauge),
|
|
||||||
("testDestroyingMeter", testDestroyingMeter),
|
|
||||||
("testDestroyingCounter", testDestroyingCounter),
|
|
||||||
("testDestroyingTimer", testDestroyingTimer),
|
|
||||||
("testDescriptions", testDescriptions),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// MetricsTests+XCTest.swift
|
|
||||||
//
|
|
||||||
import XCTest
|
|
||||||
|
|
||||||
///
|
|
||||||
/// NOTE: This file was generated by generate_linux_tests.rb
|
|
||||||
///
|
|
||||||
/// Do NOT edit this file directly as it will be regenerated automatically when needed.
|
|
||||||
///
|
|
||||||
|
|
||||||
extension MetricsExtensionsTests {
|
|
||||||
static var allTests: [(String, (MetricsExtensionsTests) -> () throws -> Void)] {
|
|
||||||
return [
|
|
||||||
("testTimerBlock", testTimerBlock),
|
|
||||||
("testTimerWithTimeInterval", testTimerWithTimeInterval),
|
|
||||||
("testTimerWithDispatchTime", testTimerWithDispatchTime),
|
|
||||||
("testTimerWithDispatchTimeInterval", testTimerWithDispatchTimeInterval),
|
|
||||||
("testTimerDuration", testTimerDuration),
|
|
||||||
("testTimerUnits", testTimerUnits),
|
|
||||||
("testPreferDisplayUnit", testPreferDisplayUnit),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -99,7 +99,6 @@ class MetricsExtensionsTests: XCTestCase {
|
||||||
func testTimerDuration() throws {
|
func testTimerDuration() throws {
|
||||||
// Wrapping only the insides of the test case so that the generated
|
// Wrapping only the insides of the test case so that the generated
|
||||||
// tests on Linux in MetricsTests+XCTest don't complain that the func does not exist.
|
// tests on Linux in MetricsTests+XCTest don't complain that the func does not exist.
|
||||||
#if swift(>=5.7)
|
|
||||||
guard #available(iOS 16, macOS 13, tvOS 15, watchOS 8, *) else {
|
guard #available(iOS 16, macOS 13, tvOS 15, watchOS 8, *) else {
|
||||||
throw XCTSkip("Timer.record(_ duration: Duration) is not available on this platform")
|
throw XCTSkip("Timer.record(_ duration: Duration) is not available on this platform")
|
||||||
}
|
}
|
||||||
|
|
@ -123,9 +122,6 @@ class MetricsExtensionsTests: XCTestCase {
|
||||||
XCTAssertEqual(testTimer.values.first, nanoseconds, "expected value to match")
|
XCTAssertEqual(testTimer.values.first, nanoseconds, "expected value to match")
|
||||||
XCTAssertEqual(testTimer.values[1], Int64.max, "expected to record Int64.max if Durataion overflows")
|
XCTAssertEqual(testTimer.values[1], Int64.max, "expected to record Int64.max if Durataion overflows")
|
||||||
XCTAssertEqual(metrics.timers.count, 1, "timer should have been stored")
|
XCTAssertEqual(metrics.timers.count, 1, "timer should have been stored")
|
||||||
#elseif swift(>=5.2)
|
|
||||||
throw XCTSkip("Timer.record(_ duration: Duration) is only available on Swift >=5.7")
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func testTimerUnits() throws {
|
func testTimerUnits() throws {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ import MetricsTestKit
|
||||||
import XCTest
|
import XCTest
|
||||||
|
|
||||||
class SendableTest: XCTestCase {
|
class SendableTest: XCTestCase {
|
||||||
#if compiler(>=5.6)
|
|
||||||
func testSendableMetrics() async throws {
|
func testSendableMetrics() async throws {
|
||||||
// bootstrap with our test metrics
|
// bootstrap with our test metrics
|
||||||
let metrics = TestMetrics()
|
let metrics = TestMetrics()
|
||||||
|
|
@ -98,5 +97,4 @@ class SendableTest: XCTestCase {
|
||||||
XCTAssertEqual(values[0], value, "expected value to match")
|
XCTAssertEqual(values[0], value, "expected value to match")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
runtime-setup:
|
|
||||||
image: swift-metrics:18.04-5.0
|
|
||||||
build:
|
|
||||||
args:
|
|
||||||
ubuntu_version: "bionic"
|
|
||||||
swift_version: "5.0"
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: swift-metrics:18.04-5.0
|
|
||||||
|
|
||||||
shell:
|
|
||||||
image: swift-metrics:18.04-5.0
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
runtime-setup:
|
|
||||||
image: swift-metrics:18.04-5.1
|
|
||||||
build:
|
|
||||||
args:
|
|
||||||
ubuntu_version: "bionic"
|
|
||||||
swift_version: "5.1"
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: swift-metrics:18.04-5.1
|
|
||||||
environment: []
|
|
||||||
#- SANITIZER_ARG=--sanitize=thread
|
|
||||||
|
|
||||||
shell:
|
|
||||||
image: swift-metrics:18.04-5.1
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
runtime-setup:
|
|
||||||
image: swift-metrics:18.04-5.2
|
|
||||||
build:
|
|
||||||
args:
|
|
||||||
ubuntu_version: "bionic"
|
|
||||||
swift_version: "5.2"
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: swift-metrics:18.04-5.2
|
|
||||||
environment: []
|
|
||||||
#- SANITIZER_ARG=--sanitize=thread
|
|
||||||
|
|
||||||
shell:
|
|
||||||
image: swift-metrics:18.04-5.2
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
runtime-setup:
|
|
||||||
image: swift-metrics:18.04-5.3
|
|
||||||
build:
|
|
||||||
args:
|
|
||||||
ubuntu_version: "bionic"
|
|
||||||
swift_version: "5.3"
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: swift-metrics:18.04-5.3
|
|
||||||
environment: []
|
|
||||||
#- SANITIZER_ARG=--sanitize=thread
|
|
||||||
|
|
||||||
shell:
|
|
||||||
image: swift-metrics:18.04-5.3
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
runtime-setup:
|
|
||||||
image: swift-metrics:20.04-5.4
|
|
||||||
build:
|
|
||||||
args:
|
|
||||||
ubuntu_version: "focal"
|
|
||||||
swift_version: "5.4"
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: swift-metrics:20.04-5.4
|
|
||||||
environment: []
|
|
||||||
#- SANITIZER_ARG=--sanitize=thread
|
|
||||||
|
|
||||||
shell:
|
|
||||||
image: swift-metrics:20.04-5.4
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
runtime-setup:
|
|
||||||
image: swift-metrics:20.04-5.5
|
|
||||||
build:
|
|
||||||
args:
|
|
||||||
ubuntu_version: "focal"
|
|
||||||
swift_version: "5.5"
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: swift-metrics:20.04-5.5
|
|
||||||
environment:
|
|
||||||
- FORCE_TEST_DISCOVERY=--enable-test-discovery
|
|
||||||
#- SANITIZER_ARG=--sanitize=thread
|
|
||||||
|
|
||||||
shell:
|
|
||||||
image: swift-metrics:20.04-5.5
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
runtime-setup:
|
|
||||||
image: swift-metrics:20.04-5.6
|
|
||||||
build:
|
|
||||||
args:
|
|
||||||
ubuntu_version: "focal"
|
|
||||||
swift_version: "5.6"
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: swift-metrics:20.04-5.6
|
|
||||||
environment:
|
|
||||||
- FORCE_TEST_DISCOVERY=--enable-test-discovery
|
|
||||||
#- SANITIZER_ARG=--sanitize=thread
|
|
||||||
|
|
||||||
shell:
|
|
||||||
image: swift-metrics:20.04-5.6
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
runtime-setup:
|
|
||||||
image: swift-metrics:20.04-5.7
|
|
||||||
build:
|
|
||||||
args:
|
|
||||||
ubuntu_version: "focal"
|
|
||||||
swift_version: "5.7"
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: swift-metrics:20.04-5.7
|
|
||||||
environment: []
|
|
||||||
#- SANITIZER_ARG=--sanitize=thread
|
|
||||||
|
|
||||||
shell:
|
|
||||||
image: swift-metrics:20.04-5.7
|
|
||||||
|
|
@ -26,15 +26,9 @@ services:
|
||||||
<<: *common
|
<<: *common
|
||||||
command: /bin/bash -xcl "./scripts/soundness.sh"
|
command: /bin/bash -xcl "./scripts/soundness.sh"
|
||||||
|
|
||||||
docs:
|
|
||||||
<<: *common
|
|
||||||
environment:
|
|
||||||
- CI
|
|
||||||
command: /bin/bash -xcl "./scripts/generate_docs.sh"
|
|
||||||
|
|
||||||
test:
|
test:
|
||||||
<<: *common
|
<<: *common
|
||||||
command: /bin/bash -xcl "swift test -Xswiftc -warnings-as-errors $${FORCE_TEST_DISCOVERY-} $${SANITIZER_ARG-}"
|
command: /bin/bash -xcl "swift test -Xswiftc -warnings-as-errors --enable-test-discovery $${SANITIZER_ARG-}"
|
||||||
|
|
||||||
# util
|
# util
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,122 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
##===----------------------------------------------------------------------===##
|
|
||||||
##
|
|
||||||
## This source file is part of the Swift Metrics API open source project
|
|
||||||
##
|
|
||||||
## Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
## Licensed under Apache License v2.0
|
|
||||||
##
|
|
||||||
## See LICENSE.txt for license information
|
|
||||||
## See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
##
|
|
||||||
## SPDX-License-Identifier: Apache-2.0
|
|
||||||
##
|
|
||||||
##===----------------------------------------------------------------------===##
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
my_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
root_path="$my_path/.."
|
|
||||||
version=$(git describe --abbrev=0 --tags || echo "0.0.0")
|
|
||||||
modules=(CoreMetrics Metrics)
|
|
||||||
|
|
||||||
if [[ "$(uname -s)" == "Linux" ]]; then
|
|
||||||
# build code if required
|
|
||||||
if [[ ! -d "$root_path/.build/x86_64-unknown-linux" ]]; then
|
|
||||||
swift build
|
|
||||||
fi
|
|
||||||
# setup source-kitten if required
|
|
||||||
mkdir -p "$root_path/.build/sourcekitten"
|
|
||||||
source_kitten_source_path="$root_path/.build/sourcekitten/source"
|
|
||||||
if [[ ! -d "$source_kitten_source_path" ]]; then
|
|
||||||
git clone https://github.com/jpsim/SourceKitten.git "$source_kitten_source_path"
|
|
||||||
fi
|
|
||||||
source_kitten_path="$source_kitten_source_path/.build/debug"
|
|
||||||
if [[ ! -d "$source_kitten_path" ]]; then
|
|
||||||
rm -rf "$source_kitten_source_path/.swift-version"
|
|
||||||
cd "$source_kitten_source_path" && swift build && cd "$root_path"
|
|
||||||
fi
|
|
||||||
# generate
|
|
||||||
for module in "${modules[@]}"; do
|
|
||||||
if [[ ! -f "$root_path/.build/sourcekitten/$module.json" ]]; then
|
|
||||||
"$source_kitten_path/sourcekitten" doc --spm --module-name $module > "$root_path/.build/sourcekitten/$module.json"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ -d docs/$version ]] || mkdir -p docs/$version
|
|
||||||
[[ -d swift-metrics.xcodeproj ]] || swift package generate-xcodeproj
|
|
||||||
|
|
||||||
# run jazzy
|
|
||||||
if ! command -v jazzy > /dev/null; then
|
|
||||||
gem install jazzy --no-ri --no-rdoc
|
|
||||||
fi
|
|
||||||
|
|
||||||
jazzy_dir="$root_path/.build/jazzy"
|
|
||||||
rm -rf "$jazzy_dir"
|
|
||||||
mkdir -p "$jazzy_dir"
|
|
||||||
|
|
||||||
module_switcher="$jazzy_dir/README.md"
|
|
||||||
jazzy_args=(--clean
|
|
||||||
--author 'SwiftMetrics team'
|
|
||||||
--readme "$module_switcher"
|
|
||||||
--author_url https://github.com/apple/swift-metrics
|
|
||||||
--github_url https://github.com/apple/swift-metrics
|
|
||||||
--github-file-prefix https://github.com/apple/swift-metrics/tree/$version
|
|
||||||
--theme fullwidth
|
|
||||||
--xcodebuild-arguments -scheme,swift-metrics-Package)
|
|
||||||
cat > "$module_switcher" <<"EOF"
|
|
||||||
# SwiftMetrics Docs
|
|
||||||
|
|
||||||
SwiftMetrics is a Swift metrics API package.
|
|
||||||
|
|
||||||
To get started with SwiftMetrics, [`import Metrics`](../CoreMetrics/index.html). The most important types are:
|
|
||||||
|
|
||||||
* [`Counter`](https://apple.github.io/swift-metrics/docs/current/CoreMetrics/Classes/Counter.html)
|
|
||||||
* [`Timer`](https://apple.github.io/swift-metrics/docs/current/CoreMetrics/Classes/Timer.html)
|
|
||||||
* [`Recorder`](https://apple.github.io/swift-metrics/docs/current/CoreMetrics/Classes/Recorder.html)
|
|
||||||
* [`Gauge`](https://apple.github.io/swift-metrics/docs/current/CoreMetrics/Classes/Gauge.html)
|
|
||||||
|
|
||||||
SwiftMetrics contains multiple modules:
|
|
||||||
EOF
|
|
||||||
|
|
||||||
for module in "${modules[@]}"; do
|
|
||||||
echo " - [$module](../$module/index.html)" >> "$module_switcher"
|
|
||||||
done
|
|
||||||
|
|
||||||
for module in "${modules[@]}"; do
|
|
||||||
echo "processing $module"
|
|
||||||
args=("${jazzy_args[@]}" --output "$jazzy_dir/docs/$version/$module" --docset-path "$jazzy_dir/docset/$version/$module"
|
|
||||||
--module "$module" --module-version $version
|
|
||||||
--root-url "https://apple.github.io/swift-metrics/docs/$version/$module/")
|
|
||||||
if [[ -f "$root_path/.build/sourcekitten/$module.json" ]]; then
|
|
||||||
args+=(--sourcekitten-sourcefile "$root_path/.build/sourcekitten/$module.json")
|
|
||||||
fi
|
|
||||||
jazzy "${args[@]}"
|
|
||||||
done
|
|
||||||
|
|
||||||
# push to github pages
|
|
||||||
if [[ $PUSH == true ]]; then
|
|
||||||
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
|
|
||||||
GIT_AUTHOR=$(git --no-pager show -s --format='%an <%ae>' HEAD)
|
|
||||||
git fetch origin +gh-pages:gh-pages
|
|
||||||
git checkout gh-pages
|
|
||||||
rm -rf "docs/$version"
|
|
||||||
rm -rf "docs/current"
|
|
||||||
cp -r "$jazzy_dir/docs/$version" docs/
|
|
||||||
cp -r "docs/$version" docs/current
|
|
||||||
git add --all docs
|
|
||||||
echo '<html><head><meta http-equiv="refresh" content="0; url=docs/current/CoreMetrics/index.html" /></head></html>' > index.html
|
|
||||||
git add index.html
|
|
||||||
touch .nojekyll
|
|
||||||
git add .nojekyll
|
|
||||||
changes=$(git diff-index --name-only HEAD)
|
|
||||||
if [[ -n "$changes" ]]; then
|
|
||||||
echo -e "changes detected\n$changes"
|
|
||||||
git commit --author="$GIT_AUTHOR" -m "publish $version docs"
|
|
||||||
git push origin gh-pages
|
|
||||||
else
|
|
||||||
echo "no changes detected"
|
|
||||||
fi
|
|
||||||
git checkout -f $BRANCH_NAME
|
|
||||||
fi
|
|
||||||
|
|
@ -1,231 +0,0 @@
|
||||||
#!/usr/bin/env ruby
|
|
||||||
|
|
||||||
#
|
|
||||||
# process_test_files.rb
|
|
||||||
#
|
|
||||||
# Copyright 2016 Tony Stone
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
# Created by Tony Stone on 5/4/16.
|
|
||||||
#
|
|
||||||
require 'getoptlong'
|
|
||||||
require 'fileutils'
|
|
||||||
require 'pathname'
|
|
||||||
|
|
||||||
include FileUtils
|
|
||||||
|
|
||||||
#
|
|
||||||
# This ruby script will auto generate LinuxMain.swift and the +XCTest.swift extension files for Swift Package Manager on Linux platforms.
|
|
||||||
#
|
|
||||||
# See https://github.com/apple/swift-corelibs-xctest/blob/master/Documentation/Linux.md
|
|
||||||
#
|
|
||||||
def header(fileName)
|
|
||||||
string = <<-eos
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This source file is part of the Swift Metrics API open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Apple Inc. and the Swift Metrics API project authors
|
|
||||||
// Licensed under Apache License v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE.txt for license information
|
|
||||||
// See CONTRIBUTORS.txt for the list of Swift Metrics API project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// <FileName>
|
|
||||||
//
|
|
||||||
import XCTest
|
|
||||||
|
|
||||||
///
|
|
||||||
/// NOTE: This file was generated by generate_linux_tests.rb
|
|
||||||
///
|
|
||||||
/// Do NOT edit this file directly as it will be regenerated automatically when needed.
|
|
||||||
///
|
|
||||||
eos
|
|
||||||
|
|
||||||
string
|
|
||||||
.sub('<FileName>', File.basename(fileName))
|
|
||||||
.sub('<Date>', Time.now.to_s)
|
|
||||||
end
|
|
||||||
|
|
||||||
def createExtensionFile(fileName, classes)
|
|
||||||
extensionFile = fileName.sub! '.swift', '+XCTest.swift'
|
|
||||||
print 'Creating file: ' + extensionFile + "\n"
|
|
||||||
|
|
||||||
File.open(extensionFile, 'w') do |file|
|
|
||||||
file.write header(extensionFile)
|
|
||||||
file.write "\n"
|
|
||||||
|
|
||||||
for classArray in classes
|
|
||||||
file.write 'extension ' + classArray[0] + " {\n"
|
|
||||||
file.write ' static var allTests: [(String, (' + classArray[0] + ") -> () throws -> Void)] {\n"
|
|
||||||
file.write " return [\n"
|
|
||||||
|
|
||||||
for funcName in classArray[1]
|
|
||||||
file.write ' ("' + funcName + '", ' + funcName + "),\n"
|
|
||||||
end
|
|
||||||
|
|
||||||
file.write " ]\n"
|
|
||||||
file.write " }\n"
|
|
||||||
file.write "}\n"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def createLinuxMain(testsDirectory, allTestSubDirectories, files)
|
|
||||||
fileName = testsDirectory + '/LinuxMain.swift'
|
|
||||||
print 'Creating file: ' + fileName + "\n"
|
|
||||||
|
|
||||||
File.open(fileName, 'w') do |file|
|
|
||||||
file.write header(fileName)
|
|
||||||
file.write "\n"
|
|
||||||
|
|
||||||
file.write "#if os(Linux) || os(FreeBSD)\n"
|
|
||||||
for testSubDirectory in allTestSubDirectories.sort { |x, y| x <=> y }
|
|
||||||
file.write '@testable import ' + testSubDirectory + "\n"
|
|
||||||
end
|
|
||||||
file.write "\n"
|
|
||||||
file.write "XCTMain([\n"
|
|
||||||
|
|
||||||
testCases = []
|
|
||||||
for classes in files
|
|
||||||
for classArray in classes
|
|
||||||
testCases << classArray[0]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for testCase in testCases.sort { |x, y| x <=> y }
|
|
||||||
file.write ' testCase(' + testCase + ".allTests),\n"
|
|
||||||
end
|
|
||||||
file.write "])\n"
|
|
||||||
file.write "#endif\n"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def parseSourceFile(fileName)
|
|
||||||
puts 'Parsing file: ' + fileName + "\n"
|
|
||||||
|
|
||||||
classes = []
|
|
||||||
currentClass = nil
|
|
||||||
inIfLinux = false
|
|
||||||
inElse = false
|
|
||||||
ignore = false
|
|
||||||
|
|
||||||
#
|
|
||||||
# Read the file line by line
|
|
||||||
# and parse to find the class
|
|
||||||
# names and func names
|
|
||||||
#
|
|
||||||
File.readlines(fileName).each do |line|
|
|
||||||
if inIfLinux
|
|
||||||
if /\#else/.match(line)
|
|
||||||
inElse = true
|
|
||||||
ignore = true
|
|
||||||
else
|
|
||||||
if /\#end/.match(line)
|
|
||||||
inElse = false
|
|
||||||
inIfLinux = false
|
|
||||||
ignore = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if /\#if[ \t]+os\(Linux\)/.match(line)
|
|
||||||
inIfLinux = true
|
|
||||||
ignore = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
next if ignore
|
|
||||||
# Match class or func
|
|
||||||
match = line[/class[ \t]+[a-zA-Z0-9_]*(?=[ \t]*:[ \t]*XCTestCase)|func[ \t]+test[a-zA-Z0-9_]*(?=[ \t]*\(\))/, 0]
|
|
||||||
if match
|
|
||||||
|
|
||||||
if match[/class/, 0] == 'class'
|
|
||||||
className = match.sub(/^class[ \t]+/, '')
|
|
||||||
#
|
|
||||||
# Create a new class / func structure
|
|
||||||
# and add it to the classes array.
|
|
||||||
#
|
|
||||||
currentClass = [className, []]
|
|
||||||
classes << currentClass
|
|
||||||
else # Must be a func
|
|
||||||
funcName = match.sub(/^func[ \t]+/, '')
|
|
||||||
#
|
|
||||||
# Add each func name the the class / func
|
|
||||||
# structure created above.
|
|
||||||
#
|
|
||||||
currentClass[1] << funcName
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
classes
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# Main routine
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
testsDirectory = 'Tests'
|
|
||||||
|
|
||||||
options = GetoptLong.new(['--tests-dir', GetoptLong::OPTIONAL_ARGUMENT])
|
|
||||||
options.quiet = true
|
|
||||||
|
|
||||||
begin
|
|
||||||
options.each do |option, value|
|
|
||||||
case option
|
|
||||||
when '--tests-dir'
|
|
||||||
testsDirectory = value
|
|
||||||
end
|
|
||||||
end
|
|
||||||
rescue GetoptLong::InvalidOption
|
|
||||||
end
|
|
||||||
|
|
||||||
allTestSubDirectories = []
|
|
||||||
allFiles = []
|
|
||||||
|
|
||||||
Dir[testsDirectory + '/*'].each do |subDirectory|
|
|
||||||
next unless File.directory?(subDirectory)
|
|
||||||
directoryHasClasses = false
|
|
||||||
Dir[subDirectory + '/*Test{s,}.swift'].each do |fileName|
|
|
||||||
next unless File.file? fileName
|
|
||||||
fileClasses = parseSourceFile(fileName)
|
|
||||||
|
|
||||||
#
|
|
||||||
# If there are classes in the
|
|
||||||
# test source file, create an extension
|
|
||||||
# file for it.
|
|
||||||
#
|
|
||||||
next unless fileClasses.count > 0
|
|
||||||
createExtensionFile(fileName, fileClasses)
|
|
||||||
directoryHasClasses = true
|
|
||||||
allFiles << fileClasses
|
|
||||||
end
|
|
||||||
|
|
||||||
if directoryHasClasses
|
|
||||||
allTestSubDirectories << Pathname.new(subDirectory).split.last.to_s
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# Last step is the create a LinuxMain.swift file that
|
|
||||||
# references all the classes and funcs in the source files.
|
|
||||||
#
|
|
||||||
if allFiles.count > 0
|
|
||||||
createLinuxMain(testsDirectory, allTestSubDirectories, allFiles)
|
|
||||||
end
|
|
||||||
# eof
|
|
||||||
|
|
@ -35,18 +35,6 @@ function replace_acceptable_years() {
|
||||||
sed -e 's/20[12][789012]-20[12][89012]/YEARS/' -e 's/20[12][89012]/YEARS/'
|
sed -e 's/20[12][789012]-20[12][89012]/YEARS/' -e 's/20[12][89012]/YEARS/'
|
||||||
}
|
}
|
||||||
|
|
||||||
printf "=> Checking linux tests... "
|
|
||||||
FIRST_OUT="$(git status --porcelain)"
|
|
||||||
ruby "$here/../scripts/generate_linux_tests.rb" > /dev/null
|
|
||||||
SECOND_OUT="$(git status --porcelain)"
|
|
||||||
if [[ "$FIRST_OUT" != "$SECOND_OUT" ]]; then
|
|
||||||
printf "\033[0;31mmissing changes!\033[0m\n"
|
|
||||||
git --no-pager diff
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
printf "\033[0;32mokay.\033[0m\n"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "=> Checking for unacceptable language... "
|
printf "=> Checking for unacceptable language... "
|
||||||
# This greps for unacceptable terminology. The square bracket[s] are so that
|
# This greps for unacceptable terminology. The square bracket[s] are so that
|
||||||
# "git grep" doesn't find the lines that greps :).
|
# "git grep" doesn't find the lines that greps :).
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue