From feda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Fri, 27 Jul 2018 23:51:12 -0400 Subject: New upstream version 3.2.1+dfsg1 --- SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp | 66 +++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp (limited to 'SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp') diff --git a/SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp b/SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp new file mode 100644 index 0000000..deac898 --- /dev/null +++ b/SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp @@ -0,0 +1,66 @@ +#include "parser/lexer.h" +#include +#include + +class LexerTest : public QObject +{ + Q_OBJECT + + public: + LexerTest(); + + private Q_SLOTS: + void testStringCase1(); + void testFloat(); + void testHex1(); + void testHex2(); +}; + +LexerTest::LexerTest() +{ +} + +void LexerTest::testStringCase1() +{ + QString sql = "INSERT INTO tab VALUES (1, 2, :val); /* test"; + + Lexer lex(Dialect::Sqlite3); + TokenList tokens = lex.tokenize(sql); + QVERIFY(tokens.size() == 20); +} + +void LexerTest::testFloat() +{ + QString sql = "SELECT .2"; + + Lexer lex(Dialect::Sqlite3); + TokenList tokens = lex.tokenize(sql); + QVERIFY(tokens.size() == 3); + QVERIFY(tokens[2]->type == Token::FLOAT); +} + +void LexerTest::testHex1() +{ + QString sql = "SELECT 0x"; + + Lexer lex(Dialect::Sqlite3); + TokenList tokens = lex.tokenize(sql); + QVERIFY(tokens.size() == 3); + QVERIFY(tokens[2]->type == Token::INVALID); +} + +void LexerTest::testHex2() +{ + QString sql = "SELECT 0x5zzz"; + + Lexer lex(Dialect::Sqlite3); + TokenList tokens = lex.tokenize(sql); + QVERIFY(tokens.size() == 4); + QVERIFY(tokens[2]->type == Token::INTEGER); + QVERIFY(tokens[3]->type == Token::OTHER); + QVERIFY(tokens[3]->value == "zzz"); +} + +QTEST_APPLESS_MAIN(LexerTest) + +#include "tst_lexertest.moc" -- cgit v1.2.3