Skip to content
Snippets Groups Projects
Commit 19ebdac7 authored by Ondřej Štorc's avatar Ondřej Štorc
Browse files

cli: New tests

parent 52e37112
No related branches found
No related tags found
1 merge request!256Parser replacement with ANTLR
......@@ -68,3 +68,11 @@ TEST_CASE("Whitespace")
"b"));
}
}
TEST_CASE("Incomplete command")
{
SECTION("introspect overload")
{
CHECK_THROWS(newParseString("introspect overloads"));
}
}
\ No newline at end of file
#include <catch2/catch.hpp>
#include <grammar/Autocomplete.h>
TEST_CASE("Autocomplete")
{
SECTION("Empty")
{
cli::Environment env;
cli::Autocomplete autocomplete{env};
auto suggestions = autocomplete.getSuggestions("", "");
CHECK(suggestions.size() == 26);
}
SECTION("pri")
{
cli::Environment env;
cli::Autocomplete autocomplete{env};
auto suggestions = autocomplete.getSuggestions("pri", "pri");
CHECK(suggestions.size() == 1);
}
SECTION("print ")
{
cli::Environment env;
cli::Autocomplete autocomplete{env};
auto suggestions = autocomplete.getSuggestions("print ", "");
// CHECK(suggestions.size() == 2);
}
SECTION("print e")
{
cli::Environment env;
cli::Autocomplete autocomplete{env};
auto suggestions = autocomplete.getSuggestions("print e", "e");
CHECK(suggestions.size() == 1);
}
SECTION("print raw")
{
cli::Environment env;
cli::Autocomplete autocomplete{env};
auto suggestions = autocomplete.getSuggestions("print raw", "raw");
// CHECK(suggestions.size() == 1);
}
}
\ No newline at end of file
......@@ -22,4 +22,20 @@ TEST_CASE("Scanner Test")
 
CHECK(scanner.tokenSubText() == "exp");
}
SECTION("Basic parse 2")
{
std::istringstream iss("print");
antlr4::ANTLRInputStream inputStream{iss};
lexer::AltCliLexer lexer{&inputStream};
antlr4::CommonTokenStream tokenStream(&lexer);
lexer.removeErrorListeners();
completion::Scanner scanner{&tokenStream};
while (scanner.next())
;
scanner.previous();
CHECK(scanner.tokenSubText() == "print");
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment