aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/libstore/serve-protocol.cc
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2023-10-20 15:34:26 +0200
committereldritch horrors <pennae@lix.systems>2024-03-04 04:43:35 +0100
commitab40b2c5d0f90d6a119bf4b368f933f5331b0c15 (patch)
tree305c600d732546077701abefc9dddecdd2eadf0f /tests/unit/libstore/serve-protocol.cc
parent5ddd1a916667ec0d969f99a0a85a2092bf18b632 (diff)
Merge pull request #9157 from obsidiansystems/protocol-versions
Add protocol versions to `{Worker,Serve}Proto::*Conn` (cherry picked from commit 4d17c59d8d059a5b39f1d1da2b58f2ec8da44861) Change-Id: I497af39deb792e50c157a1305d8c9e722798740b
Diffstat (limited to 'tests/unit/libstore/serve-protocol.cc')
-rw-r--r--tests/unit/libstore/serve-protocol.cc38
1 files changed, 27 insertions, 11 deletions
diff --git a/tests/unit/libstore/serve-protocol.cc b/tests/unit/libstore/serve-protocol.cc
index dd7d83e0a..8146ea895 100644
--- a/tests/unit/libstore/serve-protocol.cc
+++ b/tests/unit/libstore/serve-protocol.cc
@@ -11,14 +11,22 @@
namespace nix {
-const char commonProtoDir[] = "serve-protocol";
+const char serveProtoDir[] = "serve-protocol";
-using ServeProtoTest = ProtoTest<ServeProto, commonProtoDir>;
+struct ServeProtoTest : VersionedProtoTest<ServeProto, serveProtoDir>
+{
+ /**
+ * For serializers that don't care about the minimum version, we
+ * used the oldest one: 1.0.
+ */
+ ServeProto::Version defaultVersion = 1 << 8 | 0;
+};
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
string,
"string",
+ defaultVersion,
(std::tuple<std::string, std::string, std::string, std::string, std::string> {
"",
"hi",
@@ -27,19 +35,21 @@ CHARACTERIZATION_TEST(
"oh no \0\0\0 what was that!",
}))
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
storePath,
"store-path",
+ defaultVersion,
(std::tuple<StorePath, StorePath> {
StorePath { "g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-foo" },
StorePath { "g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-foo-bar" },
}))
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
contentAddress,
"content-address",
+ defaultVersion,
(std::tuple<ContentAddress, ContentAddress, ContentAddress> {
ContentAddress {
.method = TextIngestionMethod {},
@@ -55,10 +65,11 @@ CHARACTERIZATION_TEST(
},
}))
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
drvOutput,
"drv-output",
+ defaultVersion,
(std::tuple<DrvOutput, DrvOutput> {
{
.drvHash = Hash::parseSRI("sha256-FePFYIlMuycIXPZbWi7LGEiMmZSX9FMbaQenWBzm1Sc="),
@@ -70,10 +81,11 @@ CHARACTERIZATION_TEST(
},
}))
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
realisation,
"realisation",
+ defaultVersion,
(std::tuple<Realisation, Realisation> {
Realisation {
.id = DrvOutput {
@@ -102,10 +114,11 @@ CHARACTERIZATION_TEST(
},
}))
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
vector,
"vector",
+ defaultVersion,
(std::tuple<std::vector<std::string>, std::vector<std::string>, std::vector<std::string>, std::vector<std::vector<std::string>>> {
{ },
{ "" },
@@ -113,10 +126,11 @@ CHARACTERIZATION_TEST(
{ {}, { "" }, { "", "1", "2" } },
}))
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
set,
"set",
+ defaultVersion,
(std::tuple<std::set<std::string>, std::set<std::string>, std::set<std::string>, std::set<std::set<std::string>>> {
{ },
{ "" },
@@ -124,10 +138,11 @@ CHARACTERIZATION_TEST(
{ {}, { "" }, { "", "1", "2" } },
}))
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
optionalStorePath,
"optional-store-path",
+ defaultVersion,
(std::tuple<std::optional<StorePath>, std::optional<StorePath>> {
std::nullopt,
std::optional {
@@ -135,10 +150,11 @@ CHARACTERIZATION_TEST(
},
}))
-CHARACTERIZATION_TEST(
+VERSIONED_CHARACTERIZATION_TEST(
ServeProtoTest,
optionalContentAddress,
"optional-content-address",
+ defaultVersion,
(std::tuple<std::optional<ContentAddress>, std::optional<ContentAddress>> {
std::nullopt,
std::optional {