@@ -3,6 +3,81 @@ import XCTest
33import Foundation
44
55class 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+
681 func testImplicitCheckNot( ) {
782 XCTAssert ( fileCheckOutput ( of: . stdout, withPrefixes: [ " CHECK-NOTCHECK " ] ) {
883 // CHECK-NOTCHECK: error: NOTCHECK-NOT: string occurred!
0 commit comments