mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This is the second part of 308f39fe56.
It fixes (better: works-around) linker errors when testing in optimized mode.
56 lines
1.3 KiB
Swift
56 lines
1.3 KiB
Swift
// RUN: rm -rf %t && mkdir %t
|
|
// RUN: %target-build-swift -I %S/../Inputs/clang-importer-sdk/platform/any/usr/include %s -o %t/a.out
|
|
// RUN: %target-run %t/a.out
|
|
// REQUIRES: executable_test
|
|
|
|
import StdlibUnittest
|
|
|
|
// Also import modules which are used by StdlibUnittest internally. This
|
|
// workaround is needed to link all required libraries in case we compile
|
|
// StdlibUnittest with -sil-serialize-all.
|
|
import SwiftPrivate
|
|
#if _runtime(_ObjC)
|
|
import ObjectiveC
|
|
#endif
|
|
|
|
import ctypes
|
|
|
|
var BitfieldTestSuite = TestSuite("Bitfields")
|
|
|
|
BitfieldTestSuite.test("Simple") {
|
|
var new: ModRM = ModRM()
|
|
new.rm = 7
|
|
new.reg = 5
|
|
new.mod = 3
|
|
new.opcode = 44
|
|
|
|
expectEqual(7, new.rm)
|
|
expectEqual(5, new.reg)
|
|
expectEqual(3, new.mod)
|
|
expectEqual(44, new.opcode)
|
|
}
|
|
|
|
BitfieldTestSuite.test("Anonymous Struct") {
|
|
var new = AnonStructWithBitfields()
|
|
new.left.first = 1
|
|
new.left.second = -1
|
|
new.right.first = -1
|
|
new.right.second = 1
|
|
|
|
expectEqual(1, new.left.first)
|
|
expectEqual(-1, new.left.second)
|
|
expectEqual(-1, new.right.first)
|
|
expectEqual(1, new.right.second)
|
|
}
|
|
|
|
BitfieldTestSuite.test("Initializer") {
|
|
let new = ModRM(rm: 6, reg: 4, mod: 2, opcode: 33)
|
|
|
|
expectEqual(6, new.rm)
|
|
expectEqual(4, new.reg)
|
|
expectEqual(2, new.mod)
|
|
expectEqual(33, new.opcode)
|
|
}
|
|
|
|
runAllTests()
|