summaryrefslogtreecommitdiffstats
path: root/yql/essentials/public/fastcheck/linter_ut.cpp
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-10-08 11:41:14 +0300
committervvvv <[email protected]>2025-10-08 12:20:42 +0300
commitd73f13cfdb331365ddad0da51ec36e0a3e4cf187 (patch)
tree88cab10170ce9aa3389be7f1a09247386dcf5ebd /yql/essentials/public/fastcheck/linter_ut.cpp
parentf377d8ad9e0741cd904c1d4934afdf24af517d93 (diff)
YQL-20086 public
commit_hash:68b0c2e9c2960587af7d57ecedcb38f4d05890b7
Diffstat (limited to 'yql/essentials/public/fastcheck/linter_ut.cpp')
-rw-r--r--yql/essentials/public/fastcheck/linter_ut.cpp1173
1 files changed, 586 insertions, 587 deletions
diff --git a/yql/essentials/public/fastcheck/linter_ut.cpp b/yql/essentials/public/fastcheck/linter_ut.cpp
index 740202cebd3..134bf48b113 100644
--- a/yql/essentials/public/fastcheck/linter_ut.cpp
+++ b/yql/essentials/public/fastcheck/linter_ut.cpp
@@ -8,631 +8,630 @@ namespace {
TChecksRequest MakeCheckRequest() {
return TChecksRequest{
- .LangVer = GetMaxReleasedLangVersion()
- };
+ .LangVer = GetMaxReleasedLangVersion()};
}
-}
+} // namespace
Y_UNIT_TEST_SUITE(TLinterTests) {
- Y_UNIT_TEST(ListChecksResult) {
- auto res = ListChecks();
- UNIT_ASSERT(!res.empty());
- }
+Y_UNIT_TEST(ListChecksResult) {
+ auto res = ListChecks();
+ UNIT_ASSERT(!res.empty());
+}
- Y_UNIT_TEST(DummyLexerSExpr) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "((return world))";
- request.Syntax = ESyntax::SExpr;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "lexer"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(DummyLexerSExpr) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "((return world))";
+ request.Syntax = ESyntax::SExpr;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "lexer"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(DummyLexerPg) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select 1::text";
- request.Syntax = ESyntax::PG;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "lexer"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(DummyLexerPg) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select 1::text";
+ request.Syntax = ESyntax::PG;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "lexer"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodLexerYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "1";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "lexer"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(GoodLexerYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "1";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "lexer"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(BadLexerYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "Я";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "lexer"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(BadLexerYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "Я";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "lexer"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(DummyFormatSExpr) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "((return world))";
- request.Syntax = ESyntax::SExpr;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(DummyFormatSExpr) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "((return world))";
+ request.Syntax = ESyntax::SExpr;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(DummyFormatPg) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select 1::text";
- request.Syntax = ESyntax::PG;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(DummyFormatPg) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select 1::text";
+ request.Syntax = ESyntax::PG;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodFormatYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "SELECT\n 1\n;\n";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(GoodFormatYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "SELECT\n 1\n;\n";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodFormatYqlWithWinEOL) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "SELECT\r\n 1\r\n;\r\n";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(GoodFormatYqlWithWinEOL) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "SELECT\r\n 1\r\n;\r\n";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodFormatYqlWithWinEOLInComment) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "--\r\nSELECT\n 1\n;\n\nSELECT\n 2\n;\n";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(GoodFormatYqlWithWinEOLInComment) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "--\r\nSELECT\n 1\n;\n\nSELECT\n 2\n;\n";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(UnparsedFormatYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select1\n";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(UnparsedFormatYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select1\n";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(BadFormatYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select 1";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(BadFormatYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select 1";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(ContextForBadFormatYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "SELECT\n 'привет',1;";
- request.File = "myFile.sql";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 1);
- const auto& pos = res.Checks[0].Issues.back().Position;
- UNIT_ASSERT_VALUES_EQUAL(pos.Row, 2);
- UNIT_ASSERT_VALUES_EQUAL(pos.Column, 13);
- }
+Y_UNIT_TEST(ContextForBadFormatYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "SELECT\n 'привет',1;";
+ request.File = "myFile.sql";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 1);
+ const auto& pos = res.Checks[0].Issues.back().Position;
+ UNIT_ASSERT_VALUES_EQUAL(pos.Row, 2);
+ UNIT_ASSERT_VALUES_EQUAL(pos.Column, 13);
+}
- Y_UNIT_TEST(BadFormatYqlHidden) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select\t1 ";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
- UNIT_ASSERT(!res.Checks[0].Success);
- UNIT_ASSERT_NO_DIFF(res.Checks[0].Issues.ToString(),
- "<main>:1:0: Warning: Format mismatch, expected:\n"
- "SELECT\n"
- "••••1\n"
- ";\n\n"
- "but got:\n"
- "select→1•\n"
- ", code: 3\n");
- }
+Y_UNIT_TEST(BadFormatYqlHidden) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select\t1 ";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ UNIT_ASSERT_NO_DIFF(res.Checks[0].Issues.ToString(),
+ "<main>:1:0: Warning: Format mismatch, expected:\n"
+ "SELECT\n"
+ "••••1\n"
+ ";\n\n"
+ "but got:\n"
+ "select→1•\n"
+ ", code: 3\n");
+}
- Y_UNIT_TEST(GoodParserSExpr) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "((return world))";
- request.Syntax = ESyntax::SExpr;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(GoodParserSExpr) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "((return world))";
+ request.Syntax = ESyntax::SExpr;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(BadParserSExpr) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = ")";
- request.Syntax = ESyntax::SExpr;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(BadParserSExpr) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = ")";
+ request.Syntax = ESyntax::SExpr;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(GoodParserPg) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select 1::text";
- request.Syntax = ESyntax::PG;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(GoodParserPg) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select 1::text";
+ request.Syntax = ESyntax::PG;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(BadParserPg) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "sel";
- request.Syntax = ESyntax::PG;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(BadParserPg) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "sel";
+ request.Syntax = ESyntax::PG;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(DummyParserPg) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select 1::text";
- request.Syntax = ESyntax::PG;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(DummyParserPg) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select 1::text";
+ request.Syntax = ESyntax::PG;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodParserYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "SELECT 1";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(GoodParserYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "SELECT 1";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(BadParserYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "1";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(BadParserYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "1";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "parser"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "parser");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(DummyTranslatorSExpr) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "((return world))";
- request.Syntax = ESyntax::SExpr;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
- }
+Y_UNIT_TEST(DummyTranslatorSExpr) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "((return world))";
+ request.Syntax = ESyntax::SExpr;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodTranslatorPg) {
- TChecksRequest request = MakeCheckRequest();
- request.ClusterMapping["plato"] = TString(YtProviderName);
- request.Program = "select * from plato.\"Input\"";
- request.Syntax = ESyntax::PG;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(GoodTranslatorPg) {
+ TChecksRequest request = MakeCheckRequest();
+ request.ClusterMapping["plato"] = TString(YtProviderName);
+ request.Program = "select * from plato.\"Input\"";
+ request.Syntax = ESyntax::PG;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(BadTranslatorPg) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select * from \"Input\"";
- request.Syntax = ESyntax::PG;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(BadTranslatorPg) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select * from \"Input\"";
+ request.Syntax = ESyntax::PG;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(GoodTranslatorYql) {
- TChecksRequest request = MakeCheckRequest();
- request.ClusterMapping["plato"] = TString(YtProviderName);
- request.Program = "use plato; select * from Input";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(GoodTranslatorYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.ClusterMapping["plato"] = TString(YtProviderName);
+ request.Program = "use plato; select * from Input";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(BadTranslatorYql) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select ListLengggth([1,2,3])";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(BadTranslatorYql) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select ListLengggth([1,2,3])";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(AllowYqlExportsForLibrary) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "$a = 1; export $a";
- request.Mode = EMode::Library;
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(AllowYqlExportsForLibrary) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "$a = 1; export $a";
+ request.Mode = EMode::Library;
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(AllowYqlExportsForDefault) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "$a = 1; export $a";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(AllowYqlExportsForDefault) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "$a = 1; export $a";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(DisallowYqlExportsForMain) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "$a = 1; export $a";
- request.Syntax = ESyntax::YQL;
- request.Mode = EMode::Main;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(DisallowYqlExportsForMain) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "$a = 1; export $a";
+ request.Syntax = ESyntax::YQL;
+ request.Mode = EMode::Main;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(DisallowYqlExportsForView) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "$a = 1; export $a";
- request.Syntax = ESyntax::YQL;
- request.Mode = EMode::View;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(DisallowYqlExportsForView) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "$a = 1; export $a";
+ request.Syntax = ESyntax::YQL;
+ request.Mode = EMode::View;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(GoodYqlView) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select 1";
- request.Syntax = ESyntax::YQL;
- request.Mode = EMode::View;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(GoodYqlView) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select 1";
+ request.Syntax = ESyntax::YQL;
+ request.Mode = EMode::View;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(BadYqlView) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select 1;select 2";
- request.Syntax = ESyntax::YQL;
- request.Mode = EMode::View;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(BadYqlView) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select 1;select 2";
+ request.Syntax = ESyntax::YQL;
+ request.Mode = EMode::View;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(AllChecks) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "SELECT\n 1\n;\n";
- request.Syntax = ESyntax::YQL;
- auto res = RunChecks(request);
- TSet<TString> passedChecks;
- for (const auto& r : res.Checks) {
- Cerr << r.CheckName << "\n";
- UNIT_ASSERT(r.Success);
- Cerr << r.Issues.ToString();
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- passedChecks.insert(r.CheckName);
- }
-
- UNIT_ASSERT_VALUES_EQUAL(passedChecks, ListChecks());
+Y_UNIT_TEST(AllChecks) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "SELECT\n 1\n;\n";
+ request.Syntax = ESyntax::YQL;
+ auto res = RunChecks(request);
+ TSet<TString> passedChecks;
+ for (const auto& r : res.Checks) {
+ Cerr << r.CheckName << "\n";
+ UNIT_ASSERT(r.Success);
+ Cerr << r.Issues.ToString();
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+ passedChecks.insert(r.CheckName);
}
- Y_UNIT_TEST(AllChecksByStar) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "SELECT\n 1\n;\n";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "*"});
- auto res = RunChecks(request);
- TSet<TString> passedChecks;
- for (const auto& r : res.Checks) {
- Cerr << r.CheckName << "\n";
- UNIT_ASSERT(r.Success);
- Cerr << r.Issues.ToString();
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- passedChecks.insert(r.CheckName);
- }
-
- UNIT_ASSERT_VALUES_EQUAL(passedChecks, ListChecks());
- }
+ UNIT_ASSERT_VALUES_EQUAL(passedChecks, ListChecks());
+}
- Y_UNIT_TEST(NoChecksByStarWithSecondFilter) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "1";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.Include = false, .CheckNameGlob = "*"});
- request.Filters->push_back(TCheckFilter{.Include = true, .CheckNameGlob = "lexer"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+Y_UNIT_TEST(AllChecksByStar) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "SELECT\n 1\n;\n";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "*"});
+ auto res = RunChecks(request);
+ TSet<TString> passedChecks;
+ for (const auto& r : res.Checks) {
+ Cerr << r.CheckName << "\n";
+ UNIT_ASSERT(r.Success);
+ Cerr << r.Issues.ToString();
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+ passedChecks.insert(r.CheckName);
}
- Y_UNIT_TEST(BadTranslatorYqlWithoutUseMany) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select * from Input";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+ UNIT_ASSERT_VALUES_EQUAL(passedChecks, ListChecks());
+}
- Y_UNIT_TEST(GoodTranslatorYqlWithoutUseSingle) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select * from Input";
- request.ClusterMode = EClusterMode::Single;
- request.ClusterSystem = YtProviderName;
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(NoChecksByStarWithSecondFilter) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "1";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.Include = false, .CheckNameGlob = "*"});
+ request.Filters->push_back(TCheckFilter{.Include = true, .CheckNameGlob = "lexer"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "lexer");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+}
- Y_UNIT_TEST(GoodTranslatorYqlWithoutUseUnknown) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select * from Input";
- request.ClusterMode = EClusterMode::Unknown;
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(BadTranslatorYqlWithoutUseMany) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select * from Input";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(BadTranslatorYqlAnotherClusterMany) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select * from foo.Input";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(GoodTranslatorYqlWithoutUseSingle) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select * from Input";
+ request.ClusterMode = EClusterMode::Single;
+ request.ClusterSystem = YtProviderName;
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodTranslatorYqlAnotherClusterMany) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "select * from foo.Input";
- request.ClusterSystem = YtProviderName;
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(GoodTranslatorYqlWithoutUseUnknown) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select * from Input";
+ request.ClusterMode = EClusterMode::Unknown;
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodTranslatorYqlUnknownSystemUpdate) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "update foo set value = 1";
- request.ClusterMode = EClusterMode::Unknown;
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(BadTranslatorYqlAnotherClusterMany) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select * from foo.Input";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
- Y_UNIT_TEST(GoodTranslatorYqlUnknownSystemDelete) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "delete from foo where value = 1";
- request.ClusterMode = EClusterMode::Unknown;
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(GoodTranslatorYqlAnotherClusterMany) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "select * from foo.Input";
+ request.ClusterSystem = YtProviderName;
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(GoodTranslatorYqlUnknownSystemReplaceInto) {
- TChecksRequest request = MakeCheckRequest();
- request.Program = "replace into foo select 1";
- request.ClusterMode = EClusterMode::Unknown;
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
+Y_UNIT_TEST(GoodTranslatorYqlUnknownSystemUpdate) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "update foo set value = 1";
+ request.ClusterMode = EClusterMode::Unknown;
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(TooHighLangVersion) {
- TChecksRequest request;
- request.LangVer = GetMaxLangVersion();
- request.ClusterMapping["plato"] = TString(YtProviderName);
- request.Program = "use plato; select * from Input";
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT(!res.Checks[0].Success);
- Cerr << res.Checks[0].Issues.ToString();
- UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
- }
+Y_UNIT_TEST(GoodTranslatorYqlUnknownSystemDelete) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "delete from foo where value = 1";
+ request.ClusterMode = EClusterMode::Unknown;
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
- Y_UNIT_TEST(UsedFlags) {
- TChecksRequest request;
- request.Program = R"sql(
+Y_UNIT_TEST(GoodTranslatorYqlUnknownSystemReplaceInto) {
+ TChecksRequest request = MakeCheckRequest();
+ request.Program = "replace into foo select 1";
+ request.ClusterMode = EClusterMode::Unknown;
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+}
+
+Y_UNIT_TEST(TooHighLangVersion) {
+ TChecksRequest request;
+ request.LangVer = GetMaxLangVersion();
+ request.ClusterMapping["plato"] = TString(YtProviderName);
+ request.Program = "use plato; select * from Input";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT(!res.Checks[0].Success);
+ Cerr << res.Checks[0].Issues.ToString();
+ UNIT_ASSERT(res.Checks[0].Issues.Size() > 0);
+}
+
+Y_UNIT_TEST(UsedFlags) {
+ TChecksRequest request;
+ request.Program = R"sql(
$input = AsList(
AsStruct(1 AS key, 1001 AS subkey, 'AAA' AS value),
);
@@ -645,16 +644,16 @@ Y_UNIT_TEST_SUITE(TLinterTests) {
FROM
AS_TABLE($input) AS i1
)sql";
- request.ClusterMode = EClusterMode::Unknown;
- request.Syntax = ESyntax::YQL;
- request.Filters.ConstructInPlace();
- request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
-
- auto res = RunChecks(request);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
- UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
- UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(),0);
- }
-
+ request.ClusterMode = EClusterMode::Unknown;
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "translator"});
+
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "translator");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
}
+
+} // Y_UNIT_TEST_SUITE(TLinterTests)