mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
module to contain only code necessary for testing the compiler optimizations and diagnostics. This commit comprises the following changes: 1. Rename the OSLogPrototype module to OSLogTestHelper and rename the files. 2. Make the private module: OSLogTestHelper independent of os overlay. 3. Simplify the os log test suites and make them not perform logging. 4. Enable the os log test suites on all platforms. <rdar://problem/60542172>
59 lines
2.4 KiB
Swift
59 lines
2.4 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend -swift-version 5 -emit-silgen -primary-file %s -o %t/OSLogConstantEvaluableTest_silgen.sil
|
|
//
|
|
// Run the (mandatory) passes on which constant evaluator depends, and run the
|
|
// constant evaluator on the SIL produced after the dependent passes are run.
|
|
//
|
|
// RUN: %target-sil-opt -silgen-cleanup -raw-sil-inst-lowering -allocbox-to-stack -mandatory-inlining -constexpr-limit 3072 -test-constant-evaluable-subset %t/OSLogConstantEvaluableTest_silgen.sil > %t/OSLogConstantEvaluableTest.sil 2> %t/error-output
|
|
//
|
|
// RUN: %FileCheck %s < %t/error-output
|
|
//
|
|
// REQUIRES: OS=macosx || OS=ios || OS=tvos || OS=watchos
|
|
|
|
// Test that the functions defined in the OSLogPrototype overlay annotated as
|
|
// constant evaluable are so (with the constexpr-limit defined above).
|
|
// This test is meant to catch regressions in the OSLog overlay implementation
|
|
// affecting the constant evaluability of functions that are expected to be so.
|
|
|
|
import OSLogTestHelper
|
|
|
|
// CHECK-LABEL: @init(stringLiteral: String) -> OSLogMessage
|
|
// CHECK-NOT: error:
|
|
@_semantics("test_driver")
|
|
func osLogMessageStringLiteralInitTest() -> OSLogMessage {
|
|
return "A string literal"
|
|
}
|
|
|
|
// CHECK-LABEL: @init(literalCapacity: Int, interpolationCount: Int) -> OSLogInterpolation
|
|
// CHECK-NOT: error:
|
|
// CHECK-LABEL: @appendLiteral(String) -> ()
|
|
// CHECK-NOT: error:
|
|
// CHECK-LABEL: @appendInterpolation(_: @autoclosure () -> Int, format: OSLogIntegerFormatting, align: OSLogStringAlignment, privacy: OSLogPrivacy) -> ()
|
|
// CHECK-NOT: error:
|
|
// CHECK-LABEL: @appendLiteral(String) -> ()
|
|
// CHECK-NOT: error:
|
|
// CHECK-LABEL: @init(stringInterpolation: OSLogInterpolation) -> OSLogMessage
|
|
// CHECK-NOT: error:
|
|
@_semantics("test_driver")
|
|
func intValueInterpolationTest() -> OSLogMessage {
|
|
return "An integer value \(10)"
|
|
}
|
|
|
|
// CHECK-LABEL: @init(literalCapacity: Int, interpolationCount: Int) -> OSLogInterpolation
|
|
// CHECK-NOT: error:
|
|
// CHECK-LABEL: @appendInterpolation(_: @autoclosure () -> String, align: OSLogStringAlignment, privacy: OSLogPrivacy) -> ()
|
|
// CHECK-NOT: error:
|
|
@_semantics("test_driver")
|
|
func stringValueInterpolationTest() -> OSLogMessage {
|
|
return "A string value \("xyz")"
|
|
}
|
|
|
|
@_semantics("test_driver")
|
|
func intValueWithPrecisionTest() -> OSLogMessage {
|
|
return
|
|
"""
|
|
An integer value \
|
|
\(10, format: .decimal(minDigits: 25), align: .right(columns: 10))
|
|
"""
|
|
}
|