@@ -74,9 +74,27 @@ TEST_F(ErrorDisplayTest, RenderStatus) {
7474 auto line2 = lines.first ;
7575 lines = lines.second .split (' \n ' );
7676 auto line3 = lines.first ;
77- // 1234567
77+ // 1234567
7878 ASSERT_EQ (line1, " ^~~ ^~~" );
7979 ASSERT_EQ (line2, " | error: Y" );
8080 ASSERT_EQ (line3, " error: X" );
8181 }
82+ {
83+ // Test diagnostics on the same line are emitted correctly.
84+ SourceLocation loc1 = {FileSpec{" a.c" }, 1 , 2 , 0 , false , true };
85+ SourceLocation loc2 = {FileSpec{" a.c" }, 1 , 6 , 0 , false , true };
86+ std::string result =
87+ Render ({DiagnosticDetail{loc1, eSeverityError, " X" , " X" },
88+ 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 ;
95+ // 1234567
96+ ASSERT_EQ (line1, " ^ ^" );
97+ ASSERT_EQ (line2, " | error: Y" );
98+ ASSERT_EQ (line3, " error: X" );
99+ }
82100}
0 commit comments