mirror of
https://github.com/hyprwm/hyprlang.git
synced 2024-12-22 18:09:49 +01:00
Add multiline tests
This commit is contained in:
parent
c5d9805379
commit
a11240549a
2 changed files with 31 additions and 0 deletions
20
tests/config/multiline-errors.conf
Normal file
20
tests/config/multiline-errors.conf
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# Careful when modifying this file. Line numbers are part of the test.
|
||||||
|
|
||||||
|
multiline = \
|
||||||
|
one \
|
||||||
|
two \
|
||||||
|
three
|
||||||
|
|
||||||
|
# Line numbers reported in errors should match the actual line numbers of the source file
|
||||||
|
# even after multi-line configs. Any errors reported should use the line number of the
|
||||||
|
# first line of any multi-line config.
|
||||||
|
|
||||||
|
this \
|
||||||
|
should \
|
||||||
|
cause \
|
||||||
|
error \
|
||||||
|
on \
|
||||||
|
line \
|
||||||
|
12
|
||||||
|
|
||||||
|
# A config file cannot end with a bashslash because we are expecting another line! Even in a comment! \
|
|
@ -302,6 +302,17 @@ int main(int argc, char** argv, char** envp) {
|
||||||
EXPECT(ERRORS2.error, true);
|
EXPECT(ERRORS2.error, true);
|
||||||
const auto ERRORSTR2 = std::string{ERRORS2.getError()};
|
const auto ERRORSTR2 = std::string{ERRORS2.getError()};
|
||||||
EXPECT(std::count(ERRORSTR2.begin(), ERRORSTR2.end(), '\n'), 9 - 1);
|
EXPECT(std::count(ERRORSTR2.begin(), ERRORSTR2.end(), '\n'), 9 - 1);
|
||||||
|
|
||||||
|
Hyprlang::CConfig multilineErrorConfig("./config/multiline-errors.conf", {.verifyOnly = true, .throwAllErrors = true});
|
||||||
|
multilineErrorConfig.commence();
|
||||||
|
const auto ERRORS3 = multilineErrorConfig.parse();
|
||||||
|
EXPECT(ERRORS3.error, true);
|
||||||
|
const auto ERRORSTR3 = std::string{ERRORS3.getError()};
|
||||||
|
|
||||||
|
// Error on line 12
|
||||||
|
EXPECT(ERRORSTR3.contains("12"), true);
|
||||||
|
// Backslash at end of file
|
||||||
|
EXPECT(ERRORSTR3.contains("backslash"), true);
|
||||||
} catch (const char* e) {
|
} catch (const char* e) {
|
||||||
std::cout << Colors::RED << "Error: " << Colors::RESET << e << "\n";
|
std::cout << Colors::RED << "Error: " << Colors::RESET << e << "\n";
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in a new issue