@@ -3,6 +3,81 @@ import XCTest
3
3
import Foundation
4
4
5
5
class FileCheckSpec : XCTestCase {
6
+ func testWhitespace( ) {
7
+ // Check that CHECK-NEXT without a space after the colon works.
8
+ // Check that CHECK-NOT without a space after the colon works.
9
+ XCTAssert ( fileCheckOutput ( of: . stdout, withPrefixes: [ " WHITESPACE1 " , " WHITESPACE2 " ] ) {
10
+ // WHITESPACE1:a
11
+ // WHITESPACE1-NEXT:b
12
+ print ( " a " )
13
+ print ( " b " )
14
+
15
+ // WHITESPACE2-NOT:foo
16
+ print ( " oo " )
17
+ } )
18
+ }
19
+
20
+ func testSame( ) {
21
+ XCTAssert ( fileCheckOutput ( withPrefixes: [ " SAME1 " ] ) {
22
+ // SAME1: foo
23
+ // SAME1-SAME: bat
24
+ // SAME1-SAME: bar
25
+ // SAME1-NEXT: baz
26
+ print ( " foo bat bar " )
27
+ print ( " baz " )
28
+ } )
29
+
30
+ XCTAssert ( fileCheckOutput ( withPrefixes: [ " SAME2 " ] ) {
31
+ // SAME2: foo
32
+ // SAME2-NOT: baz
33
+ // SAME2-SAME: bar
34
+ // SAME2-NEXT: baz
35
+ print ( " foo bat bar " )
36
+ print ( " baz " )
37
+ } )
38
+
39
+ XCTAssertFalse ( fileCheckOutput ( withPrefixes: [ " FAIL-SAME1 " ] ) {
40
+ // FAIL-SAME1: foo
41
+ // FAIL-SAME1-SAME: baz
42
+ print ( " foo bat bar " )
43
+ print ( " baz " )
44
+ } )
45
+
46
+ XCTAssertFalse ( fileCheckOutput ( withPrefixes: [ " FAIL-SAME2 " ] ) {
47
+ // FAIL-SAME2: foo
48
+ // FAIL-SAME2-NOT: bat
49
+ // FAIL-SAME2-SAME: bar
50
+ print ( " foo bat bar " )
51
+ print ( " baz " )
52
+ } )
53
+ }
54
+
55
+ func testCheckDAG( ) {
56
+ XCTAssert ( fileCheckOutput ( withPrefixes: [ " TESTDAG " ] ) {
57
+ // TESTDAG-DAG: add [[REG1:r[0-9]+]], r1, r2
58
+ print ( " add r10, r1, r2 " )
59
+ // TESTDAG-DAG: add [[REG2:r[0-9]+]], r3, r4
60
+ print ( " add r11, r3, r4 " )
61
+ // TESTDAG: mul r5, [[REG1]], [[REG2]]
62
+ print ( " mul r5, r10, r11 " )
63
+
64
+ // TESTDAG-DAG: mul [[REG1:r[0-9]+]], r1, r2
65
+ print ( " mul r11, r3, r4 " )
66
+ // TESTDAG-DAG: mul [[REG2:r[0-9]+]], r3, r4
67
+ print ( " mul r10, r1, r2 " )
68
+ // TESTDAG: add r5, [[REG1]], [[REG2]]
69
+ print ( " add r5, r10, r11 " )
70
+
71
+ // TESTDAG-DAG: add [[REG1:r[0-9]+]], r1, r2
72
+ // TESTDAG-DAG: add [[REG2:r[0-9]+]], r3, r4
73
+ // TESTDAG-NOT: xor
74
+ // TESTDAG-DAG: mul r5, [[REG1]], [[REG2]]
75
+ print ( " add r11, r3, r4 " )
76
+ print ( " add r10, r1, r2 " )
77
+ print ( " mul r5, r10, r11 " )
78
+ } )
79
+ }
80
+
6
81
func testImplicitCheckNot( ) {
7
82
XCTAssert ( fileCheckOutput ( of: . stdout, withPrefixes: [ " CHECK-NOTCHECK " ] ) {
8
83
// CHECK-NOTCHECK: error: NOTCHECK-NOT: string occurred!
0 commit comments