Skip to content

Commit 5b1aab1

Browse files
committed
[unittests/Parse] Update unit tests to accomodate ParsedTrivia introduction
1 parent 5bef4c7 commit 5b1aab1

File tree

3 files changed

+139
-100
lines changed

3 files changed

+139
-100
lines changed

include/swift/Parse/ParsedTrivia.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,14 @@ class ParsedTriviaPiece {
5050
return Len;
5151
}
5252

53+
bool operator==(const ParsedTriviaPiece &Other) const {
54+
return Kind == Other.Kind && Length == Other.Length;
55+
}
56+
57+
bool operator!=(const ParsedTriviaPiece &Other) const {
58+
return !(*this == Other);
59+
}
60+
5361
static syntax::Trivia
5462
convertToSyntaxTrivia(ArrayRef<ParsedTriviaPiece> pieces, SourceLoc loc,
5563
const SourceManager &SM, unsigned bufferID);
@@ -101,6 +109,24 @@ struct ParsedTrivia {
101109
}
102110
}
103111

112+
bool operator==(const ParsedTrivia &Other) const {
113+
if (Pieces.size() != Other.size()) {
114+
return false;
115+
}
116+
117+
for (size_t i = 0; i < Pieces.size(); ++i) {
118+
if (Pieces[i] != Other.Pieces[i]) {
119+
return false;
120+
}
121+
}
122+
123+
return true;
124+
}
125+
126+
bool operator!=(const ParsedTrivia &Other) const {
127+
return !(*this == Other);
128+
}
129+
104130
syntax::Trivia convertToSyntaxTrivia(SourceLoc loc, const SourceManager &SM,
105131
unsigned bufferID) const;
106132
};

unittests/Parse/LexerTests.cpp

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "swift/Basic/LangOptions.h"
55
#include "swift/Basic/SourceManager.h"
66
#include "swift/Parse/Lexer.h"
7+
#include "swift/Syntax/Trivia.h"
78
#include "swift/Subsystems.h"
89
#include "llvm/Support/MemoryBuffer.h"
910
#include "llvm/Support/Process.h"
@@ -18,6 +19,7 @@
1819

1920
using namespace swift;
2021
using namespace llvm;
22+
using syntax::TriviaKind;
2123

2224
// The test fixture.
2325
class LexerTest : public ::testing::Test {
@@ -283,24 +285,24 @@ TEST_F(LexerTest, BOMNoCommentNoTrivia) {
283285
TriviaRetentionMode::WithoutTrivia);
284286

285287
Token Tok;
286-
syntax::Trivia LeadingTrivia, TrailingTrivia;
288+
ParsedTrivia LeadingTrivia, TrailingTrivia;
287289

288290
L.lex(Tok, LeadingTrivia, TrailingTrivia);
289291
ASSERT_EQ(tok::identifier, Tok.getKind());
290292
ASSERT_EQ("aaa", Tok.getText());
291293
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 14), Tok.getLoc());
292294
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 14), Tok.getCommentRange().getStart());
293295
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
294-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
295-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
296+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
297+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
296298

297299
L.lex(Tok, LeadingTrivia, TrailingTrivia);
298300
ASSERT_EQ(tok::eof, Tok.getKind());
299301
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 31), Tok.getLoc());
300302
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 31), Tok.getCommentRange().getStart());
301303
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
302-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
303-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
304+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
305+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
304306
}
305307

306308
TEST_F(LexerTest, BOMTokenCommentNoTrivia) {
@@ -315,51 +317,51 @@ TEST_F(LexerTest, BOMTokenCommentNoTrivia) {
315317
TriviaRetentionMode::WithoutTrivia);
316318

317319
Token Tok;
318-
syntax::Trivia LeadingTrivia, TrailingTrivia;
320+
ParsedTrivia LeadingTrivia, TrailingTrivia;
319321

320322
L.lex(Tok, LeadingTrivia, TrailingTrivia);
321323
ASSERT_EQ(tok::comment, Tok.getKind());
322324
ASSERT_EQ("// comment\n", Tok.getText());
323325
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 3), Tok.getLoc());
324326
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 3), Tok.getCommentRange().getStart());
325327
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
326-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
327-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
328+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
329+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
328330

329331
L.lex(Tok, LeadingTrivia, TrailingTrivia);
330332
ASSERT_EQ(tok::identifier, Tok.getKind());
331333
ASSERT_EQ("aaa", Tok.getText());
332334
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 14), Tok.getLoc());
333335
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 14), Tok.getCommentRange().getStart());
334336
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
335-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
336-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
337+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
338+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
337339

338340
L.lex(Tok, LeadingTrivia, TrailingTrivia);
339341
ASSERT_EQ(tok::comment, Tok.getKind());
340342
ASSERT_EQ("//xx \n", Tok.getText());
341343
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 18), Tok.getLoc());
342344
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 18), Tok.getCommentRange().getStart());
343345
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
344-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
345-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
346+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
347+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
346348

347349
L.lex(Tok, LeadingTrivia, TrailingTrivia);
348350
ASSERT_EQ(tok::comment, Tok.getKind());
349351
ASSERT_EQ("/* x */", Tok.getText());
350352
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 24), Tok.getLoc());
351353
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 24), Tok.getCommentRange().getStart());
352354
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
353-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
354-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
355+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
356+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
355357

356358
L.lex(Tok, LeadingTrivia, TrailingTrivia);
357359
ASSERT_EQ(tok::eof, Tok.getKind());
358360
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 31), Tok.getLoc());
359361
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 31), Tok.getCommentRange().getStart());
360362
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
361-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
362-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
363+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
364+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
363365
}
364366

365367
TEST_F(LexerTest, BOMAttachCommentNoTrivia) {
@@ -374,24 +376,24 @@ TEST_F(LexerTest, BOMAttachCommentNoTrivia) {
374376
TriviaRetentionMode::WithoutTrivia);
375377

376378
Token Tok;
377-
syntax::Trivia LeadingTrivia, TrailingTrivia;
379+
ParsedTrivia LeadingTrivia, TrailingTrivia;
378380

379381
L.lex(Tok, LeadingTrivia, TrailingTrivia);
380382
ASSERT_EQ(tok::identifier, Tok.getKind());
381383
ASSERT_EQ("aaa", Tok.getText());
382384
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 14), Tok.getLoc());
383385
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 3), Tok.getCommentRange().getStart());
384386
ASSERT_EQ(10u, Tok.getCommentRange().getByteLength());
385-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
386-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
387+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
388+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
387389

388390
L.lex(Tok, LeadingTrivia, TrailingTrivia);
389391
ASSERT_EQ(tok::eof, Tok.getKind());
390392
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 31), Tok.getLoc());
391393
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 18), Tok.getCommentRange().getStart());
392394
ASSERT_EQ(13u, Tok.getCommentRange().getByteLength());
393-
ASSERT_EQ((syntax::Trivia{{}}), LeadingTrivia);
394-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
395+
ASSERT_EQ((ParsedTrivia{{}}), LeadingTrivia);
396+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
395397
}
396398

397399
TEST_F(LexerTest, BOMNoCommentTrivia) {
@@ -406,34 +408,34 @@ TEST_F(LexerTest, BOMNoCommentTrivia) {
406408
TriviaRetentionMode::WithTrivia);
407409

408410
Token Tok;
409-
syntax::Trivia LeadingTrivia, TrailingTrivia;
411+
ParsedTrivia LeadingTrivia, TrailingTrivia;
410412

411413
L.lex(Tok, LeadingTrivia, TrailingTrivia);
412414
ASSERT_EQ(tok::identifier, Tok.getKind());
413415
ASSERT_EQ("aaa", Tok.getText());
414416
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 14), Tok.getLoc());
415417
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 14), Tok.getCommentRange().getStart());
416418
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
417-
ASSERT_EQ((syntax::Trivia{{
418-
syntax::TriviaPiece::garbageText("\xEF\xBB\xBF"),
419-
syntax::TriviaPiece::lineComment("// comment"),
420-
syntax::TriviaPiece::newlines(1)
419+
ASSERT_EQ((ParsedTrivia{{
420+
ParsedTriviaPiece(TriviaKind::GarbageText, strlen("\xEF\xBB\xBF")),
421+
ParsedTriviaPiece(TriviaKind::LineComment, strlen("// comment")),
422+
ParsedTriviaPiece(TriviaKind::Newline, 1)
421423
}}), LeadingTrivia);
422-
ASSERT_EQ((syntax::Trivia{{
423-
syntax::TriviaPiece::spaces(1)
424+
ASSERT_EQ((ParsedTrivia{{
425+
ParsedTriviaPiece(TriviaKind::Space, 1)
424426
}}), TrailingTrivia);
425427

426428
L.lex(Tok, LeadingTrivia, TrailingTrivia);
427429
ASSERT_EQ(tok::eof, Tok.getKind());
428430
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 31), Tok.getLoc());
429431
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 31), Tok.getCommentRange().getStart());
430432
ASSERT_EQ(0u, Tok.getCommentRange().getByteLength());
431-
ASSERT_EQ((syntax::Trivia{{
432-
syntax::TriviaPiece::lineComment("//xx "),
433-
syntax::TriviaPiece::newlines(1),
434-
syntax::TriviaPiece::blockComment("/* x */")
433+
ASSERT_EQ((ParsedTrivia{{
434+
ParsedTriviaPiece(TriviaKind::LineComment, strlen("//xx ")),
435+
ParsedTriviaPiece(TriviaKind::Newline, 1),
436+
ParsedTriviaPiece(TriviaKind::BlockComment, strlen("/* x */"))
435437
}}), LeadingTrivia);
436-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
438+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
437439
}
438440

439441
TEST_F(LexerTest, BOMAttachCommentTrivia) {
@@ -448,34 +450,34 @@ TEST_F(LexerTest, BOMAttachCommentTrivia) {
448450
TriviaRetentionMode::WithTrivia);
449451

450452
Token Tok;
451-
syntax::Trivia LeadingTrivia, TrailingTrivia;
453+
ParsedTrivia LeadingTrivia, TrailingTrivia;
452454

453455
L.lex(Tok, LeadingTrivia, TrailingTrivia);
454456
ASSERT_EQ(tok::identifier, Tok.getKind());
455457
ASSERT_EQ("aaa", Tok.getText());
456458
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 14), Tok.getLoc());
457459
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 3), Tok.getCommentRange().getStart());
458460
ASSERT_EQ(10u, Tok.getCommentRange().getByteLength());
459-
ASSERT_EQ((syntax::Trivia{{
460-
syntax::TriviaPiece::garbageText("\xEF\xBB\xBF"),
461-
syntax::TriviaPiece::lineComment("// comment"),
462-
syntax::TriviaPiece::newlines(1)
461+
ASSERT_EQ((ParsedTrivia{{
462+
ParsedTriviaPiece(TriviaKind::GarbageText, strlen("\xEF\xBB\xBF")),
463+
ParsedTriviaPiece(TriviaKind::LineComment, strlen("// comment")),
464+
ParsedTriviaPiece(TriviaKind::Newline, 1)
463465
}}), LeadingTrivia);
464-
ASSERT_EQ((syntax::Trivia{{
465-
syntax::TriviaPiece::spaces(1)
466+
ASSERT_EQ((ParsedTrivia{{
467+
ParsedTriviaPiece(TriviaKind::Space, 1)
466468
}}), TrailingTrivia);
467469

468470
L.lex(Tok, LeadingTrivia, TrailingTrivia);
469471
ASSERT_EQ(tok::eof, Tok.getKind());
470472
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 31), Tok.getLoc());
471473
ASSERT_EQ(SourceMgr.getLocForOffset(BufferID, 18), Tok.getCommentRange().getStart());
472474
ASSERT_EQ(13u, Tok.getCommentRange().getByteLength());
473-
ASSERT_EQ((syntax::Trivia{{
474-
syntax::TriviaPiece::lineComment("//xx "),
475-
syntax::TriviaPiece::newlines(1),
476-
syntax::TriviaPiece::blockComment("/* x */")
475+
ASSERT_EQ((ParsedTrivia{{
476+
ParsedTriviaPiece(TriviaKind::LineComment, strlen("//xx ")),
477+
ParsedTriviaPiece(TriviaKind::Newline, 1),
478+
ParsedTriviaPiece(TriviaKind::BlockComment, strlen("/* x */"))
477479
}}), LeadingTrivia);
478-
ASSERT_EQ((syntax::Trivia{{}}), TrailingTrivia);
480+
ASSERT_EQ((ParsedTrivia{{}}), TrailingTrivia);
479481
}
480482

481483
TEST_F(LexerTest, RestoreBasic) {

0 commit comments

Comments
 (0)