1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-07 22:33:57 +02:00

Ensure we can construct remote store configs in isolation

Progress towards #10766

I thought that #10768 achieved, but when I went to use this stuff (in
Hydra), turns out it did not. (Those `using FooConfig;` lines were not
working --- they are so finicky!) This PR gets the job done, and adds
some trivial unit tests to make sure I did what I intended.

I had to add add a header to expose `SSHStoreConfig`, after which the
preexisting `ssh-store-config.*` were very confusingly named files, so I
renamed them to `common-ssh-store-config.hh` to match the type defined
therein.
This commit is contained in:
John Ericson 2024-07-15 13:13:11 -04:00
parent 846869da0e
commit 808082ea03
11 changed files with 120 additions and 26 deletions

View file

@ -0,0 +1,26 @@
#include <gtest/gtest.h>
#include "legacy-ssh-store.hh"
namespace nix {
TEST(LegacySSHStore, constructConfig)
{
LegacySSHStoreConfig config{
"ssh",
"localhost",
StoreConfig::Params{
{
"remote-program",
// TODO #11106, no more split on space
"foo bar",
},
}};
EXPECT_EQ(
config.remoteProgram.get(),
(Strings{
"foo",
"bar",
}));
}
}

View file

@ -58,6 +58,7 @@ sources = files(
'derivation.cc',
'derived-path.cc',
'downstream-placeholder.cc',
'legacy-ssh-store.cc',
'machines.cc',
'nar-info-disk-cache.cc',
'nar-info.cc',
@ -67,6 +68,7 @@ sources = files(
'path.cc',
'references.cc',
'serve-protocol.cc',
'ssh-store.cc',
'store-reference.cc',
'worker-protocol.cc',
)

View file

@ -0,0 +1,26 @@
#include <gtest/gtest.h>
#include "ssh-store.hh"
namespace nix {
TEST(SSHStore, constructConfig)
{
SSHStoreConfig config{
"ssh",
"localhost",
StoreConfig::Params{
{
"remote-program",
// TODO #11106, no more split on space
"foo bar",
},
}};
EXPECT_EQ(
config.remoteProgram.get(),
(Strings{
"foo",
"bar",
}));
}
}