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
|
//===--- SmallStringCompatibility.swift -----------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2025 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
//
//===----------------------------------------------------------------------===//
// RUN: %target-run-stdlib-swift
// REQUIRES: executable_test
// REQUIRES: CPU=wasm32 || CPU=arm64_32
import StdlibUnittest
var suite = TestSuite("SmallStringCompatibility")
defer { runAllTests() }
var strings = [
("Small", true),
("Less small", true),
("Positively large.", true),
]
#if os(watchOS)
strings[1].1 = false
#endif
strings.forEach { (string, contiguous) in
suite.test("Contiguous: \(string)")
.require(.stdlib_6_2).code {
expectEqual(string.isContiguousUTF8, contiguous)
}
}
strings.forEach { (string, contiguous) in
suite.test("Contiguous Substring: \(string)")
.require(.stdlib_6_2).code {
let substring = string[...]
expectEqual(substring.isContiguousUTF8, contiguous)
}
}
strings.forEach { (string, contiguous) in
suite.test("String.makeContiguousUTF8: \(string)")
.require(.stdlib_6_2).code {
var s = string
s.makeContiguousUTF8()
expectTrue(s.isContiguousUTF8)
expectEqual(s, string)
}
}
strings.forEach { (string, contiguous) in
suite.test("Substring.makeContiguousUTF8: \(string)")
.require(.stdlib_6_2).code {
var s: Substring = string.dropFirst().dropLast()
s.makeContiguousUTF8()
expectTrue(s.isContiguousUTF8)
expectEqual(s, string.dropFirst().dropLast())
}
}
|