-
Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathtest_struct_change_size.swift
69 lines (53 loc) · 1.38 KB
/
test_struct_change_size.swift
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
// RUN: %target-resilience-test
// REQUIRES: executable_test
import StdlibUnittest
import struct_change_size
var ClassChangeSizeTest = TestSuite("ClassChangeSize")
func increment(_ c: inout ChangeSize) {
c.version += 1
}
ClassChangeSizeTest.test("ChangeFieldOffsetsOfFixedLayout") {
var t = ChangeFieldOffsetsOfFixedLayout(major: 7, minor: 5, patch: 3)
do {
expectEqual(t.getVersion(), "7.5.3")
}
do {
t.minor.version = 1
t.patch.version = 2
expectEqual(t.getVersion(), "7.1.2")
}
do {
increment(&t.patch)
expectEqual(t.getVersion(), "7.1.3")
}
}
struct ChangeFieldOffsetsOfMyFixedLayout {
init(major: Int32, minor: Int32, patch: Int32) {
self.major = ChangeSize(version: major)
self.minor = ChangeSize(version: minor)
self.patch = ChangeSize(version: patch)
}
var major: ChangeSize
var minor: ChangeSize
var patch: ChangeSize
func getVersion() -> String {
return "\(major.version).\(minor.version).\(patch.version)"
}
}
ClassChangeSizeTest.test("ChangeFieldOffsetsOfMyFixedLayout") {
var t = ChangeFieldOffsetsOfMyFixedLayout(major: 9, minor: 2, patch: 1)
do {
expectEqual(t.getVersion(), "9.2.1")
}
do {
t.major.version = 7
t.minor.version = 6
t.patch.version = 1
expectEqual(t.getVersion(), "7.6.1")
}
do {
increment(&t.patch)
expectEqual(t.getVersion(), "7.6.2")
}
}
runAllTests()