mirror of
https://github.com/NixOS/nix.git
synced 2025-04-15 13:47:34 +00:00
Merge of #12988
This commit is contained in:
commit
7940780c8d
@ -106,13 +106,14 @@ static std::vector<std::string> expandBuilderLines(const std::string & builders)
|
||||
{
|
||||
std::vector<std::string> result;
|
||||
for (auto line : tokenizeString<std::vector<std::string>>(builders, "\n")) {
|
||||
trim(line);
|
||||
line.erase(std::find(line.begin(), line.end(), '#'), line.end());
|
||||
for (auto entry : tokenizeString<std::vector<std::string>>(line, ";")) {
|
||||
if (entry.empty()) continue;
|
||||
entry = trim(entry);
|
||||
|
||||
if (entry[0] == '@') {
|
||||
const std::string path = trim(std::string(entry, 1));
|
||||
if (entry.empty()) {
|
||||
// skip blank entries
|
||||
} else if (entry[0] == '@') {
|
||||
const std::string path = trim(std::string_view{entry}.substr(1));
|
||||
std::string text;
|
||||
try {
|
||||
text = readFile(path);
|
||||
|
@ -83,6 +83,20 @@ TEST(machines, getMachinesWithCommentsAndSemicolonSeparator) {
|
||||
EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, AuthorityMatches("nix@scabby.labs.cs.uu.nl"))));
|
||||
}
|
||||
|
||||
TEST(machines, getMachinesWithFunnyWhitespace) {
|
||||
auto actual = Machine::parseConfig({},
|
||||
" # commment ; comment\n"
|
||||
" nix@scratchy.labs.cs.uu.nl ; nix@itchy.labs.cs.uu.nl \n"
|
||||
"\n \n"
|
||||
"\n ;;; \n"
|
||||
"\n ; ; \n"
|
||||
"nix@scabby.labs.cs.uu.nl\n\n");
|
||||
EXPECT_THAT(actual, SizeIs(3));
|
||||
EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, AuthorityMatches("nix@scratchy.labs.cs.uu.nl"))));
|
||||
EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, AuthorityMatches("nix@itchy.labs.cs.uu.nl"))));
|
||||
EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, AuthorityMatches("nix@scabby.labs.cs.uu.nl"))));
|
||||
}
|
||||
|
||||
TEST(machines, getMachinesWithCorrectCompleteSingleBuilder) {
|
||||
auto actual = Machine::parseConfig({},
|
||||
"nix@scratchy.labs.cs.uu.nl i686-linux "
|
||||
|
Loading…
Reference in New Issue
Block a user