@@ -29,15 +29,22 @@ TEST_F(ErrorDisplayTest, RenderStatus) {
2929 {
3030 // Test that diagnostics on the same column can be handled and all
3131 // three errors are diagnosed.
32- SourceLocation loc1 = {FileSpec{" a.c" }, 13 , 11 , 0 , false , true };
33- SourceLocation loc2 = {FileSpec{" a.c" }, 13 , 13 , 0 , false , true };
32+ SourceLocation loc1 = {FileSpec{" a.c" }, 13 , 5 , 0 , false , true };
33+ SourceLocation loc2 = {FileSpec{" a.c" }, 13 , 7 , 0 , false , true };
34+ SourceLocation loc3 = {FileSpec{" a.c" }, 13 , 9 , 0 , false , true };
3435 std::string result =
3536 Render ({DiagnosticDetail{loc1, eSeverityError, " 1" , " 1" },
36- DiagnosticDetail{loc1, eSeverityError, " 2" , " 2" },
37- DiagnosticDetail{loc2, eSeverityError, " 3" , " 3" }});
38- ASSERT_TRUE (StringRef (result).contains (" error: 1" ));
39- ASSERT_TRUE (StringRef (result).contains (" error: 2" ));
40- ASSERT_TRUE (StringRef (result).contains (" error: 3" ));
37+ DiagnosticDetail{loc2, eSeverityError, " 2a" , " 2a" },
38+ DiagnosticDetail{loc2, eSeverityInfo, " 2b" , " 2b" },
39+ DiagnosticDetail{loc3, eSeverityError, " 3" , " 3" }});
40+ llvm::SmallVector<StringRef> lines;
41+ StringRef (result).split (lines, ' \n ' );
42+ // 1234567890123
43+ ASSERT_EQ (lines[0 ], " ^ ^ ^" );
44+ ASSERT_EQ (lines[1 ], " | | error: 3" );
45+ ASSERT_EQ (lines[2 ], " | error: 2a" );
46+ ASSERT_EQ (lines[3 ], " | note: 2b" );
47+ ASSERT_EQ (lines[4 ], " error: 1" );
4148 }
4249 {
4350 // Test that diagnostics in reverse order are emitted correctly.
@@ -68,16 +75,12 @@ TEST_F(ErrorDisplayTest, RenderStatus) {
6875 std::string result =
6976 Render ({DiagnosticDetail{loc1, eSeverityError, " X" , " X" },
7077 DiagnosticDetail{loc2, eSeverityError, " Y" , " Y" }});
71- auto lines = StringRef (result).split (' \n ' );
72- auto line1 = lines.first ;
73- lines = lines.second .split (' \n ' );
74- auto line2 = lines.first ;
75- lines = lines.second .split (' \n ' );
76- auto line3 = lines.first ;
78+ llvm::SmallVector<StringRef> lines;
79+ StringRef (result).split (lines, ' \n ' );
7780 // 1234567
78- ASSERT_EQ (line1 , " ^~~ ^~~" );
79- ASSERT_EQ (line2 , " | error: Y" );
80- ASSERT_EQ (line3 , " error: X" );
81+ ASSERT_EQ (lines[ 0 ] , " ^~~ ^~~" );
82+ ASSERT_EQ (lines[ 1 ] , " | error: Y" );
83+ ASSERT_EQ (lines[ 2 ] , " error: X" );
8184 }
8285 {
8386 // Test diagnostics on the same line are emitted correctly.
@@ -86,15 +89,11 @@ TEST_F(ErrorDisplayTest, RenderStatus) {
8689 std::string result =
8790 Render ({DiagnosticDetail{loc1, eSeverityError, " X" , " X" },
8891 DiagnosticDetail{loc2, eSeverityError, " Y" , " Y" }});
89- auto lines = StringRef (result).split (' \n ' );
90- auto line1 = lines.first ;
91- lines = lines.second .split (' \n ' );
92- auto line2 = lines.first ;
93- lines = lines.second .split (' \n ' );
94- auto line3 = lines.first ;
92+ llvm::SmallVector<StringRef> lines;
93+ StringRef (result).split (lines, ' \n ' );
9594 // 1234567
96- ASSERT_EQ (line1 , " ^ ^" );
97- ASSERT_EQ (line2 , " | error: Y" );
98- ASSERT_EQ (line3 , " error: X" );
95+ ASSERT_EQ (lines[ 0 ] , " ^ ^" );
96+ ASSERT_EQ (lines[ 1 ] , " | error: Y" );
97+ ASSERT_EQ (lines[ 2 ] , " error: X" );
9998 }
10099}
0 commit comments