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

BIN
LXC_Tests Executable file

Binary file not shown.

Binary file not shown.

2
external/util vendored

BIN
lxc Executable file

Binary file not shown.

View File

@@ -4,8 +4,8 @@ add_executable(LXC_Tests
) )
# Creates the shared precompiled header # # Creates the shared precompiled header #
target_include_directories(LXC_Tests PRIVATE ${CMAKE_SOURCE_DIR}/common) target_include_directories(LXC_Tests PRIVATE ${CMAKE_SOURCE_DIR}/external/util)
target_precompile_headers(LXC_Tests PRIVATE ${CMAKE_SOURCE_DIR}/common/LXC.h) target_precompile_headers(LXC_Tests PRIVATE ${CMAKE_SOURCE_DIR}/external/util/Util.h)
# Includes headers for modules to test # # Includes headers for modules to test #
target_include_directories(LXC_Tests PRIVATE target_include_directories(LXC_Tests PRIVATE

View File

@@ -56,72 +56,72 @@ namespace PashaBibko::LXC::Lexer
TEST(LexerTests, EmptyInput) TEST(LexerTests, EmptyInput)
{ {
Util::ReturnVal result = TokenizeFile(""); Util::ReturnVal result = TokenizeFile("");
ASSERT_TRUE(result.Suceeded()); ASSERT_TRUE(result.Success());
EXPECT_TRUE(result.Result().empty()); EXPECT_TRUE(result.Result().empty());
} }
TEST(LexerTests, SingleIdentifier) TEST(LexerTests, SingleIdentifier)
{ {
Util::ReturnVal result = TokenizeFile("hello"); Util::ReturnVal result = TokenizeFile("hello");
ASSERT_TRUE(result.Suceeded()); ASSERT_TRUE(result.Success());
Internal::ExpectTokens(result, { Token::Identifier }); Internal::ExpectTokens(result.Result(), { Token::Identifier });
} }
TEST(LexerTests, SingleNumber) TEST(LexerTests, SingleNumber)
{ {
Util::ReturnVal result = TokenizeFile("12345"); Util::ReturnVal result = TokenizeFile("12345");
ASSERT_TRUE(result.Suceeded()); ASSERT_TRUE(result.Success());
Internal::ExpectTokens(result, { Token::NumLiteral }); Internal::ExpectTokens(result.Result(), { Token::NumLiteral });
} }
TEST(LexerTests, SingleStringLiteral) TEST(LexerTests, SingleStringLiteral)
{ {
Util::ReturnVal result = TokenizeFile("\"string literal\""); Util::ReturnVal result = TokenizeFile("\"string literal\"");
ASSERT_TRUE(result.Suceeded()); ASSERT_TRUE(result.Success());
Internal::ExpectTokens(result, { Token::StringLiteral }); Internal::ExpectTokens(result.Result(), { Token::StringLiteral });
} }
TEST(LexerTests, MultipleSymbolsAndOperators) TEST(LexerTests, MultipleSymbolsAndOperators)
{ {
Util::ReturnVal result = TokenizeFile("+ = ("); Util::ReturnVal result = TokenizeFile("+ = (");
ASSERT_TRUE(result.Suceeded()); ASSERT_TRUE(result.Success());
Internal::ExpectTokens(result, { Token::Add, Token::Assign, Token::OpenParen }); Internal::ExpectTokens(result.Result(), { Token::Add, Token::Assign, Token::OpenParen });
} }
TEST(LexerTests, WhileTrueTokenTest) TEST(LexerTests, WhileTrueTokenTest)
{ {
Util::ReturnVal result = TokenizeFile("while (true)"); Util::ReturnVal result = TokenizeFile("while (true)");
ASSERT_TRUE(result.Suceeded()); ASSERT_TRUE(result.Success());
Internal::ExpectTokens(result, { Token::While, Token::OpenParen, Token::Identifier, Token::CloseParen }); Internal::ExpectTokens(result.Result(), { Token::While, Token::OpenParen, Token::Identifier, Token::CloseParen });
} }
TEST(LexerTests, UnterminatedString) TEST(LexerTests, UnterminatedString)
{ {
Util::ReturnVal result = TokenizeFile("\"This is supposed to be unterminated"); 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); EXPECT_EQ(result.Error().reason, LexerError::UnterminatedStringLiteral);
} }
TEST(LexerTests, InvalidCharacter) TEST(LexerTests, InvalidCharacter)
{ {
Util::ReturnVal result = TokenizeFile("^^^"); Util::ReturnVal result = TokenizeFile("^^^");
ASSERT_FALSE(result.Suceeded()); ASSERT_FALSE(result.Success());
EXPECT_EQ(result.Error().reason, LexerError::InvalidCharacter); EXPECT_EQ(result.Error().reason, LexerError::InvalidCharacter);
} }
TEST(LexerTests, InvalidOperand) TEST(LexerTests, InvalidOperand)
{ {
Util::ReturnVal result = TokenizeFile("+/*"); Util::ReturnVal result = TokenizeFile("+/*");
ASSERT_FALSE(result.Suceeded()); ASSERT_FALSE(result.Success());
EXPECT_EQ(result.Error().reason, LexerError::UnknownSymbolOrOperand); EXPECT_EQ(result.Error().reason, LexerError::UnknownSymbolOrOperand);
} }
TEST(LexerTests, ExampleFile_LawsOfMath) TEST(LexerTests, ExampleFile_LawsOfMath)
{ {
Util::ReturnVal fileContents = Util::ReadFile("examples/LawsOfMath.lx"); Util::ReturnVal fileContents = Util::ReadFile("examples/LawsOfMath.lx");
ASSERT_TRUE(fileContents.Suceeded()); ASSERT_TRUE(fileContents.Success());
Util::ReturnVal tokens = TokenizeFile(fileContents); Util::ReturnVal tokens = TokenizeFile(fileContents.Result());
Internal::ExpectTokens(tokens, Internal::ExpectTokens(tokens.Result(),
{ {
Token::FunctionDef, // func Token::FunctionDef, // func
Token::OpenCrocodile, // < Token::OpenCrocodile, // <
@@ -181,9 +181,9 @@ namespace PashaBibko::LXC::Lexer
TEST(LexerTests, ExampleFile_Fib) TEST(LexerTests, ExampleFile_Fib)
{ {
Util::ReturnVal fileContents = Util::ReadFile("examples/Fib.lx"); Util::ReturnVal fileContents = Util::ReadFile("examples/Fib.lx");
ASSERT_TRUE(fileContents.Suceeded()); ASSERT_TRUE(fileContents.Success());
Util::ReturnVal tokens = TokenizeFile(fileContents); Util::ReturnVal tokens = TokenizeFile(fileContents.Result());
Internal::ExpectTokens(tokens, Internal::ExpectTokens(tokens.Result(),
{ {
Token::FunctionDef, // func Token::FunctionDef, // func
Token::OpenCrocodile, // < Token::OpenCrocodile, // <