Finished Linux support for new Util lib

This commit is contained in:
2025-08-10 15:42:01 +01:00
parent 2e5acce525
commit 5b92f55d66
6 changed files with 23 additions and 23 deletions

View File

@@ -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

View File

@@ -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, // <