Finished Linux support for new Util lib
This commit is contained in:
Binary file not shown.
2
external/util
vendored
2
external/util
vendored
Submodule external/util updated: d4b999676d...fc5381b3ae
@@ -4,8 +4,8 @@ add_executable(LXC_Tests
|
||||
)
|
||||
|
||||
# Creates the shared precompiled header #
|
||||
target_include_directories(LXC_Tests PRIVATE ${CMAKE_SOURCE_DIR}/common)
|
||||
target_precompile_headers(LXC_Tests PRIVATE ${CMAKE_SOURCE_DIR}/common/LXC.h)
|
||||
target_include_directories(LXC_Tests PRIVATE ${CMAKE_SOURCE_DIR}/external/util)
|
||||
target_precompile_headers(LXC_Tests PRIVATE ${CMAKE_SOURCE_DIR}/external/util/Util.h)
|
||||
|
||||
# Includes headers for modules to test #
|
||||
target_include_directories(LXC_Tests PRIVATE
|
||||
|
||||
@@ -56,72 +56,72 @@ namespace PashaBibko::LXC::Lexer
|
||||
TEST(LexerTests, EmptyInput)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("");
|
||||
ASSERT_TRUE(result.Suceeded());
|
||||
ASSERT_TRUE(result.Success());
|
||||
EXPECT_TRUE(result.Result().empty());
|
||||
}
|
||||
|
||||
TEST(LexerTests, SingleIdentifier)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("hello");
|
||||
ASSERT_TRUE(result.Suceeded());
|
||||
Internal::ExpectTokens(result, { Token::Identifier });
|
||||
ASSERT_TRUE(result.Success());
|
||||
Internal::ExpectTokens(result.Result(), { Token::Identifier });
|
||||
}
|
||||
|
||||
TEST(LexerTests, SingleNumber)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("12345");
|
||||
ASSERT_TRUE(result.Suceeded());
|
||||
Internal::ExpectTokens(result, { Token::NumLiteral });
|
||||
ASSERT_TRUE(result.Success());
|
||||
Internal::ExpectTokens(result.Result(), { Token::NumLiteral });
|
||||
}
|
||||
|
||||
TEST(LexerTests, SingleStringLiteral)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("\"string literal\"");
|
||||
ASSERT_TRUE(result.Suceeded());
|
||||
Internal::ExpectTokens(result, { Token::StringLiteral });
|
||||
ASSERT_TRUE(result.Success());
|
||||
Internal::ExpectTokens(result.Result(), { Token::StringLiteral });
|
||||
}
|
||||
|
||||
TEST(LexerTests, MultipleSymbolsAndOperators)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("+ = (");
|
||||
ASSERT_TRUE(result.Suceeded());
|
||||
Internal::ExpectTokens(result, { Token::Add, Token::Assign, Token::OpenParen });
|
||||
ASSERT_TRUE(result.Success());
|
||||
Internal::ExpectTokens(result.Result(), { Token::Add, Token::Assign, Token::OpenParen });
|
||||
}
|
||||
|
||||
TEST(LexerTests, WhileTrueTokenTest)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("while (true)");
|
||||
ASSERT_TRUE(result.Suceeded());
|
||||
Internal::ExpectTokens(result, { Token::While, Token::OpenParen, Token::Identifier, Token::CloseParen });
|
||||
ASSERT_TRUE(result.Success());
|
||||
Internal::ExpectTokens(result.Result(), { Token::While, Token::OpenParen, Token::Identifier, Token::CloseParen });
|
||||
}
|
||||
|
||||
TEST(LexerTests, UnterminatedString)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("\"This is supposed to be unterminated");
|
||||
ASSERT_FALSE(result.Suceeded());
|
||||
ASSERT_FALSE(result.Success());
|
||||
EXPECT_EQ(result.Error().reason, LexerError::UnterminatedStringLiteral);
|
||||
}
|
||||
|
||||
TEST(LexerTests, InvalidCharacter)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("^^^");
|
||||
ASSERT_FALSE(result.Suceeded());
|
||||
ASSERT_FALSE(result.Success());
|
||||
EXPECT_EQ(result.Error().reason, LexerError::InvalidCharacter);
|
||||
}
|
||||
|
||||
TEST(LexerTests, InvalidOperand)
|
||||
{
|
||||
Util::ReturnVal result = TokenizeFile("+/*");
|
||||
ASSERT_FALSE(result.Suceeded());
|
||||
ASSERT_FALSE(result.Success());
|
||||
EXPECT_EQ(result.Error().reason, LexerError::UnknownSymbolOrOperand);
|
||||
}
|
||||
|
||||
TEST(LexerTests, ExampleFile_LawsOfMath)
|
||||
{
|
||||
Util::ReturnVal fileContents = Util::ReadFile("examples/LawsOfMath.lx");
|
||||
ASSERT_TRUE(fileContents.Suceeded());
|
||||
Util::ReturnVal tokens = TokenizeFile(fileContents);
|
||||
Internal::ExpectTokens(tokens,
|
||||
ASSERT_TRUE(fileContents.Success());
|
||||
Util::ReturnVal tokens = TokenizeFile(fileContents.Result());
|
||||
Internal::ExpectTokens(tokens.Result(),
|
||||
{
|
||||
Token::FunctionDef, // func
|
||||
Token::OpenCrocodile, // <
|
||||
@@ -181,9 +181,9 @@ namespace PashaBibko::LXC::Lexer
|
||||
TEST(LexerTests, ExampleFile_Fib)
|
||||
{
|
||||
Util::ReturnVal fileContents = Util::ReadFile("examples/Fib.lx");
|
||||
ASSERT_TRUE(fileContents.Suceeded());
|
||||
Util::ReturnVal tokens = TokenizeFile(fileContents);
|
||||
Internal::ExpectTokens(tokens,
|
||||
ASSERT_TRUE(fileContents.Success());
|
||||
Util::ReturnVal tokens = TokenizeFile(fileContents.Result());
|
||||
Internal::ExpectTokens(tokens.Result(),
|
||||
{
|
||||
Token::FunctionDef, // func
|
||||
Token::OpenCrocodile, // <
|
||||
|
||||
Reference in New Issue
Block a user