diff --git a/lix/libstore/machines.cc b/lix/libstore/machines.cc index 6619e5612..07a8267e2 100644 --- a/lix/libstore/machines.cc +++ b/lix/libstore/machines.cc @@ -66,6 +66,8 @@ try { co_return result::current_exception(); } +namespace machines_legacy_parsing { + static std::vector expandBuilderLines(const std::string & builders) { std::vector result; @@ -179,10 +181,12 @@ static Machines parseBuilderLines(const std::vector & builders) return result; } +} + Machines getMachines() { - const auto builderLines = expandBuilderLines(settings.builders); - return parseBuilderLines(builderLines); + const auto builderLines = machines_legacy_parsing::expandBuilderLines(settings.builders); + return machines_legacy_parsing::parseBuilderLines(builderLines); } } diff --git a/tests/unit/libstore/machines.cc b/tests/unit/libstore/machines_legacy.cc similarity index 73% rename from tests/unit/libstore/machines.cc rename to tests/unit/libstore/machines_legacy.cc index 2dcaac7f3..2c50d860d 100644 --- a/tests/unit/libstore/machines.cc +++ b/tests/unit/libstore/machines_legacy.cc @@ -15,28 +15,33 @@ using testing::SizeIs; using nix::absPath; using nix::FormatError; -using nix::UsageError; using nix::getMachines; using nix::Machine; using nix::Machines; using nix::pathExists; using nix::settings; +using nix::UsageError; -class Environment : public ::testing::Environment { - public: - void SetUp() override { settings.thisSystem.override("TEST_ARCH-TEST_OS"); } +class Environment : public ::testing::Environment +{ +public: + void SetUp() override + { + settings.thisSystem.override("TEST_ARCH-TEST_OS"); + } }; -testing::Environment* const foo_env = - testing::AddGlobalTestEnvironment(new Environment); +testing::Environment * const foo_env = testing::AddGlobalTestEnvironment(new Environment); -TEST(machines, getMachinesWithEmptyBuilders) { +TEST(machines, getMachinesWithEmptyBuilders) +{ settings.builders.override(""); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(0)); } -TEST(machines, getMachinesUriOnly) { +TEST(machines, getMachinesUriOnly) +{ settings.builders.override("nix@scratchy.labs.cs.uu.nl"); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(1)); @@ -50,7 +55,8 @@ TEST(machines, getMachinesUriOnly) { EXPECT_THAT(actual[0], Field(&Machine::sshPublicHostKey, SizeIs(0))); } -TEST(machines, getMachinesDefaults) { +TEST(machines, getMachinesDefaults) +{ settings.builders.override("nix@scratchy.labs.cs.uu.nl - - - - - - -"); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(1)); @@ -64,26 +70,35 @@ TEST(machines, getMachinesDefaults) { EXPECT_THAT(actual[0], Field(&Machine::sshPublicHostKey, SizeIs(0))); } -TEST(machines, getMachinesWithNewLineSeparator) { +TEST(machines, getMachinesWithNewLineSeparator) +{ settings.builders.override("nix@scratchy.labs.cs.uu.nl\nnix@itchy.labs.cs.uu.nl"); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(2)); - EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl")))); + EXPECT_THAT( + actual, Contains(Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl"))) + ); EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, EndsWith("nix@itchy.labs.cs.uu.nl")))); } -TEST(machines, getMachinesWithSemicolonSeparator) { +TEST(machines, getMachinesWithSemicolonSeparator) +{ settings.builders.override("nix@scratchy.labs.cs.uu.nl ; nix@itchy.labs.cs.uu.nl"); Machines actual = getMachines(); EXPECT_THAT(actual, SizeIs(2)); - EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl")))); + EXPECT_THAT( + actual, Contains(Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl"))) + ); EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, EndsWith("nix@itchy.labs.cs.uu.nl")))); } -TEST(machines, getMachinesWithCorrectCompleteSingleBuilder) { - settings.builders.override("nix@scratchy.labs.cs.uu.nl i686-linux " - "/home/nix/.ssh/id_scratchy_auto 8 3 kvm " - "benchmark SSH+HOST+PUBLIC+KEY+BASE64+ENCODED=="); +TEST(machines, getMachinesWithCorrectCompleteSingleBuilder) +{ + settings.builders.override( + "nix@scratchy.labs.cs.uu.nl i686-linux " + "/home/nix/.ssh/id_scratchy_auto 8 3 kvm " + "benchmark SSH+HOST+PUBLIC+KEY+BASE64+ENCODED==" + ); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(1)); EXPECT_THAT(actual[0], Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl"))); @@ -93,15 +108,18 @@ TEST(machines, getMachinesWithCorrectCompleteSingleBuilder) { EXPECT_THAT(actual[0], Field(&Machine::speedFactor, Eq(3))); EXPECT_THAT(actual[0], Field(&Machine::supportedFeatures, ElementsAre("kvm"))); EXPECT_THAT(actual[0], Field(&Machine::mandatoryFeatures, ElementsAre("benchmark"))); - EXPECT_THAT(actual[0], Field(&Machine::sshPublicHostKey, Eq("SSH+HOST+PUBLIC+KEY+BASE64+ENCODED=="))); + EXPECT_THAT( + actual[0], Field(&Machine::sshPublicHostKey, Eq("SSH+HOST+PUBLIC+KEY+BASE64+ENCODED==")) + ); } -TEST(machines, - getMachinesWithCorrectCompleteSingleBuilderWithTabColumnDelimiter) { +TEST(machines, getMachinesWithCorrectCompleteSingleBuilderWithTabColumnDelimiter) +{ settings.builders.override( "nix@scratchy.labs.cs.uu.nl\ti686-linux\t/home/nix/.ssh/" "id_scratchy_auto\t8\t3\tkvm\tbenchmark\tSSH+HOST+PUBLIC+" - "KEY+BASE64+ENCODED=="); + "KEY+BASE64+ENCODED==" + ); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(1)); EXPECT_THAT(actual[0], Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl"))); @@ -111,22 +129,34 @@ TEST(machines, EXPECT_THAT(actual[0], Field(&Machine::speedFactor, Eq(3))); EXPECT_THAT(actual[0], Field(&Machine::supportedFeatures, ElementsAre("kvm"))); EXPECT_THAT(actual[0], Field(&Machine::mandatoryFeatures, ElementsAre("benchmark"))); - EXPECT_THAT(actual[0], Field(&Machine::sshPublicHostKey, Eq("SSH+HOST+PUBLIC+KEY+BASE64+ENCODED=="))); + EXPECT_THAT( + actual[0], Field(&Machine::sshPublicHostKey, Eq("SSH+HOST+PUBLIC+KEY+BASE64+ENCODED==")) + ); } -TEST(machines, getMachinesWithMultiOptions) { - settings.builders.override("nix@scratchy.labs.cs.uu.nl Arch1,Arch2 - - - " - "SupportedFeature1,SupportedFeature2 " - "MandatoryFeature1,MandatoryFeature2"); +TEST(machines, getMachinesWithMultiOptions) +{ + settings.builders.override( + "nix@scratchy.labs.cs.uu.nl Arch1,Arch2 - - - " + "SupportedFeature1,SupportedFeature2 " + "MandatoryFeature1,MandatoryFeature2" + ); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(1)); EXPECT_THAT(actual[0], Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl"))); EXPECT_THAT(actual[0], Field(&Machine::systemTypes, ElementsAre("Arch1", "Arch2"))); - EXPECT_THAT(actual[0], Field(&Machine::supportedFeatures, ElementsAre("SupportedFeature1", "SupportedFeature2"))); - EXPECT_THAT(actual[0], Field(&Machine::mandatoryFeatures, ElementsAre("MandatoryFeature1", "MandatoryFeature2"))); + EXPECT_THAT( + actual[0], + Field(&Machine::supportedFeatures, ElementsAre("SupportedFeature1", "SupportedFeature2")) + ); + EXPECT_THAT( + actual[0], + Field(&Machine::mandatoryFeatures, ElementsAre("MandatoryFeature1", "MandatoryFeature2")) + ); } -TEST(machines, getMachinesWithIncorrectFormat) { +TEST(machines, getMachinesWithIncorrectFormat) +{ settings.builders.override("nix@scratchy.labs.cs.uu.nl - - eight"); EXPECT_THROW(getMachines(), FormatError); settings.builders.override("nix@scratchy.labs.cs.uu.nl - - -1"); @@ -139,19 +169,23 @@ TEST(machines, getMachinesWithIncorrectFormat) { EXPECT_THROW(getMachines(), FormatError); } -TEST(machines, getMachinesWithCorrectFileReference) { +TEST(machines, getMachinesWithCorrectFileReference) +{ auto path = nix::getUnitTestDataPath("machines.valid"); ASSERT_TRUE(pathExists(path)); settings.builders.override(std::string("@") + path); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(3)); - EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl")))); + EXPECT_THAT( + actual, Contains(Field(&Machine::storeUri, EndsWith("nix@scratchy.labs.cs.uu.nl"))) + ); EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, EndsWith("nix@itchy.labs.cs.uu.nl")))); EXPECT_THAT(actual, Contains(Field(&Machine::storeUri, EndsWith("nix@poochie.labs.cs.uu.nl")))); } -TEST(machines, getMachinesWithCorrectFileReferenceToEmptyFile) { +TEST(machines, getMachinesWithCorrectFileReferenceToEmptyFile) +{ auto path = "/dev/null"; ASSERT_TRUE(pathExists(path)); @@ -160,13 +194,15 @@ TEST(machines, getMachinesWithCorrectFileReferenceToEmptyFile) { ASSERT_THAT(actual, SizeIs(0)); } -TEST(machines, getMachinesWithIncorrectFileReference) { +TEST(machines, getMachinesWithIncorrectFileReference) +{ settings.builders.override(std::string("@") + absPath("/not/a/file")); Machines actual = getMachines(); ASSERT_THAT(actual, SizeIs(0)); } -TEST(machines, getMachinesWithCorrectFileReferenceToIncorrectFile) { +TEST(machines, getMachinesWithCorrectFileReferenceToIncorrectFile) +{ settings.builders.override(std::string("@") + nix::getUnitTestDataPath("machines.bad_format")); EXPECT_THROW(getMachines(), FormatError); } diff --git a/tests/unit/meson.build b/tests/unit/meson.build index 04fa7b0a4..6e11081fa 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build @@ -140,7 +140,7 @@ libstore_tests_sources = files( 'libstore/derivation.cc', 'libstore/derived-path.cc', 'libstore/filetransfer.cc', - 'libstore/machines.cc', + 'libstore/machines_legacy.cc', 'libstore/nar-info-disk-cache.cc', 'libstore/outputs-spec.cc', 'libstore/path.cc',