summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorserg-belyakov <[email protected]>2023-02-03 14:59:59 +0300
committerserg-belyakov <[email protected]>2023-02-03 14:59:59 +0300
commit5d2f4b4034904b4f15593fb18c250210ca60a6a2 (patch)
treeec7d2b2d96a3b14c63ae0b7ebebdcd79a578bbf6
parente83e0247eb4e3c03003a6c21625932c25d8497b2 (diff)
Add more convenient way to construct protobufs, get rid of dynamic memory allocations,
More convenient way to construct protobufs,
-rw-r--r--ydb/core/driver_lib/version/version.cpp39
-rw-r--r--ydb/core/driver_lib/version/version.h110
-rw-r--r--ydb/core/driver_lib/version/version_ut.cpp145
3 files changed, 181 insertions, 113 deletions
diff --git a/ydb/core/driver_lib/version/version.cpp b/ydb/core/driver_lib/version/version.cpp
index 9dfe532272b..627ae031ec6 100644
--- a/ydb/core/driver_lib/version/version.cpp
+++ b/ydb/core/driver_lib/version/version.cpp
@@ -10,19 +10,25 @@ using TStored = NKikimrConfig::TStoredCompatibilityInfo;
/////////////////////////////////////////////////////////////
// new version control
-TCurrent* TCompatibilityInfo::CompatibilityInfo = nullptr;
+std::optional<TCurrent> TCompatibilityInfo::CompatibilityInfo = std::nullopt;
TSpinLock TCompatibilityInfo::LockCurrent = TSpinLock();
const TCurrent* TCompatibilityInfo::GetCurrent() {
TGuard<TSpinLock> g(TCompatibilityInfo::LockCurrent);
if (!CompatibilityInfo) {
- CompatibilityInfo = new TCurrent();
+ // using TYdbVersion = TCompatibilityInfo::TProtoConstructor::TYdbVersion;
+ // using TCompatibilityRule = TCompatibilityInfo::TProtoConstructor::TCompatibilityRule;
+ using TCurrentCompatibilityInfo = TCompatibilityInfo::TProtoConstructor::TCurrentCompatibilityInfo;
+
// Look for protobuf message format in ydb/core/protos/config.proto
// To be changed in new release:
- CompatibilityInfo->SetBuild("trunk");
+ CompatibilityInfo = TCurrent();
+ CompatibilityInfo->CopyFrom(TCurrentCompatibilityInfo{
+ .Build = "trunk"
+ }.ToPB());
}
- return CompatibilityInfo;
+ return &*CompatibilityInfo;
}
// obsolete version control
@@ -44,23 +50,25 @@ TMaybe<NActors::TInterconnectProxyCommon::TVersionInfo> VERSION = NActors::TInte
// Last stable YDB release, which doesn't include version control change
// When the compatibility information is not present in component's data,
// we assume component's version to be this version
-TStored* TCompatibilityInfo::UnknownYdbRelease = nullptr;
+std::optional<TStored> TCompatibilityInfo::UnknownYdbRelease = std::nullopt;
const TStored* TCompatibilityInfo::GetUnknown() {
static TSpinLock lock;
TGuard<TSpinLock> g(lock);
if (!UnknownYdbRelease) {
- UnknownYdbRelease = new TStored();
- UnknownYdbRelease->SetBuild("ydb");
+ using TYdbVersion = TCompatibilityInfo::TProtoConstructor::TYdbVersion;
+ // using TCompatibilityRule = TCompatibilityInfo::TProtoConstructor::TCompatibilityRule;
+ using TStoredCompatibilityInfo = TCompatibilityInfo::TProtoConstructor::TStoredCompatibilityInfo;
+
+ UnknownYdbRelease = TStored();
+ UnknownYdbRelease->CopyFrom(TStoredCompatibilityInfo{
+ .Build = "ydb",
+ .YdbVersion = TYdbVersion{ .Year = 22, .Major = 5, .Minor = 7, .Hotfix = 0 }
- auto* version = UnknownYdbRelease->MutableYdbVersion();
- version->SetYear(22);
- version->SetMajor(5);
- version->SetMinor(7);
- version->SetHotfix(0);
+ }.ToPB());
}
- return UnknownYdbRelease;
+ return &*UnknownYdbRelease;
}
TStored TCompatibilityInfo::MakeStored(ui32 componentId, const TCurrent* current) {
@@ -288,7 +296,10 @@ bool TCompatibilityInfo::CheckCompatibility(const TStored* stored, ui32 componen
void TCompatibilityInfo::Reset(TCurrent* newCurrent) {
TGuard<TSpinLock> g(TCompatibilityInfo::LockCurrent);
- CompatibilityInfo = newCurrent;
+ if (!CompatibilityInfo) {
+ CompatibilityInfo = TCurrent();
+ }
+ CompatibilityInfo->CopyFrom(*newCurrent);
}
TString GetBranchName(TString url) {
diff --git a/ydb/core/driver_lib/version/version.h b/ydb/core/driver_lib/version/version.h
index ae7dfb266fd..9f6746cb3ce 100644
--- a/ydb/core/driver_lib/version/version.h
+++ b/ydb/core/driver_lib/version/version.h
@@ -8,6 +8,112 @@ class TCompatibilityInfo {
using TOldFormat = NActors::TInterconnectProxyCommon::TVersionInfo;
public:
+ struct TProtoConstructor {
+ TProtoConstructor() = delete;
+
+ struct TYdbVersion {
+ std::optional<ui32> Year;
+ std::optional<ui32> Major;
+ std::optional<ui32> Minor;
+ std::optional<ui32> Hotfix;
+
+ NKikimrConfig::TYdbVersion ToPB() {
+ NKikimrConfig::TYdbVersion res;
+ if (Year) {
+ res.SetYear(*Year);
+ }
+ if (Major) {
+ res.SetMajor(*Major);
+ }
+ if (Minor) {
+ res.SetMinor(*Minor);
+ }
+ if (Hotfix) {
+ res.SetHotfix(*Hotfix);
+ }
+
+ return res;
+ }
+ };
+
+ struct TCompatibilityRule {
+ std::optional<std::string> Build;
+ std::optional<TYdbVersion> BottomLimit;
+ std::optional<TYdbVersion> UpperLimit;
+ std::optional<ui32> ComponentId;
+ std::optional<bool> Forbidden;
+
+ NKikimrConfig::TCompatibilityRule ToPB() {
+ NKikimrConfig::TCompatibilityRule res;
+ if (Build) {
+ res.SetBuild(Build->data());
+ }
+ if (BottomLimit) {
+ res.MutableBottomLimit()->CopyFrom(BottomLimit->ToPB());
+ }
+ if (UpperLimit) {
+ res.MutableUpperLimit()->CopyFrom(UpperLimit->ToPB());
+ }
+ if (ComponentId) {
+ res.SetComponentId(*ComponentId);
+ }
+ if (Forbidden) {
+ res.SetForbidden(*Forbidden);
+ }
+
+ return res;
+ }
+ };
+
+ struct TCurrentCompatibilityInfo {
+ std::optional<std::string> Build;
+ std::optional<TYdbVersion> YdbVersion;
+ std::vector<TCompatibilityRule> CanLoadFrom;
+ std::vector<TCompatibilityRule> StoresReadableBy;
+
+ NKikimrConfig::TCurrentCompatibilityInfo ToPB() {
+ NKikimrConfig::TCurrentCompatibilityInfo res;
+ Y_VERIFY(Build);
+ res.SetBuild(Build->data());
+ if (YdbVersion) {
+ res.MutableYdbVersion()->CopyFrom(YdbVersion->ToPB());
+ }
+
+ for (auto canLoadFrom : CanLoadFrom) {
+ res.AddCanLoadFrom()->CopyFrom(canLoadFrom.ToPB());
+ }
+ for (auto storesReadableBy : StoresReadableBy) {
+ res.AddStoresReadableBy()->CopyFrom(storesReadableBy.ToPB());
+ }
+
+ return res;
+ }
+ };
+
+ struct TStoredCompatibilityInfo {
+ std::optional<std::string> Build;
+ std::optional<TYdbVersion> YdbVersion;
+ std::vector<TCompatibilityRule> ReadableBy;
+
+ NKikimrConfig::TStoredCompatibilityInfo ToPB() {
+ NKikimrConfig::TStoredCompatibilityInfo res;
+ Y_VERIFY(Build);
+
+ res.SetBuild(Build->data());
+ if (YdbVersion) {
+ res.MutableYdbVersion()->CopyFrom(YdbVersion->ToPB());
+ }
+
+ for (auto readableBy : ReadableBy) {
+ res.AddReadableBy()->CopyFrom(readableBy.ToPB());
+ }
+
+ return res;
+ }
+ };
+ };
+
+public:
TCompatibilityInfo() = delete;
static const NKikimrConfig::TCurrentCompatibilityInfo* GetCurrent();
static const NKikimrConfig::TStoredCompatibilityInfo* GetUnknown();
@@ -28,8 +134,8 @@ public:
private:
static TSpinLock LockCurrent;
- static NKikimrConfig::TCurrentCompatibilityInfo* CompatibilityInfo;
- static NKikimrConfig::TStoredCompatibilityInfo* UnknownYdbRelease;
+ static std::optional<NKikimrConfig::TCurrentCompatibilityInfo> CompatibilityInfo;
+ static std::optional<NKikimrConfig::TStoredCompatibilityInfo> UnknownYdbRelease;
// functions that modify compatibility information are only accessible from friend classes
static void Reset(NKikimrConfig::TCurrentCompatibilityInfo* newCurrent);
diff --git a/ydb/core/driver_lib/version/version_ut.cpp b/ydb/core/driver_lib/version/version_ut.cpp
index 97e3b8e2e4c..fe8b9eae491 100644
--- a/ydb/core/driver_lib/version/version_ut.cpp
+++ b/ydb/core/driver_lib/version/version_ut.cpp
@@ -21,103 +21,10 @@ Y_UNIT_TEST_SUITE(VersionParser) {
using EComponentId = NKikimrConfig::TCompatibilityRule;
using TOldFormat = NActors::TInterconnectProxyCommon::TVersionInfo;
-struct TYdbVersion {
- std::optional<ui32> Year;
- std::optional<ui32> Major;
- std::optional<ui32> Minor;
- std::optional<ui32> Hotfix;
-
- NKikimrConfig::TYdbVersion ToPB() {
- NKikimrConfig::TYdbVersion res;
- if (Year) {
- res.SetYear(*Year);
- }
- if (Major) {
- res.SetMajor(*Major);
- }
- if (Minor) {
- res.SetMinor(*Minor);
- }
- if (Hotfix) {
- res.SetHotfix(*Hotfix);
- }
-
- return res;
- }
-};
-
-struct TCompatibilityRule {
- std::optional<std::string> Build;
- std::optional<TYdbVersion> BottomLimit;
- std::optional<TYdbVersion> UpperLimit;
- std::optional<ui32> ComponentId;
- std::optional<bool> Forbidden;
-
- NKikimrConfig::TCompatibilityRule ToPB() {
- NKikimrConfig::TCompatibilityRule res;
- if (Build) {
- res.SetBuild(Build->data());
- }
- if (BottomLimit) {
- res.MutableBottomLimit()->CopyFrom(BottomLimit->ToPB());
- }
- if (UpperLimit) {
- res.MutableUpperLimit()->CopyFrom(UpperLimit->ToPB());
- }
- if (ComponentId) {
- res.SetComponentId(*ComponentId);
- }
- if (Forbidden) {
- res.SetForbidden(*Forbidden);
- }
-
- return res;
- }
-};
-
-struct TCurrentCompatibilityInfo {
- std::string Build = "ydb";
- std::optional<TYdbVersion> YdbVersion;
- std::vector<TCompatibilityRule> CanLoadFrom;
- std::vector<TCompatibilityRule> StoresReadableBy;
-
- NKikimrConfig::TCurrentCompatibilityInfo ToPB() {
- NKikimrConfig::TCurrentCompatibilityInfo res;
- res.SetBuild(Build.data());
- if (YdbVersion) {
- res.MutableYdbVersion()->CopyFrom(YdbVersion->ToPB());
- }
-
- for (auto canLoadFrom : CanLoadFrom) {
- res.AddCanLoadFrom()->CopyFrom(canLoadFrom.ToPB());
- }
- for (auto storesReadableBy : StoresReadableBy) {
- res.AddStoresReadableBy()->CopyFrom(storesReadableBy.ToPB());
- }
-
- return res;
- }
-};
-
-struct TStoredCompatibilityInfo {
- std::string Build = "ydb";
- std::optional<TYdbVersion> YdbVersion;
- std::vector<TCompatibilityRule> ReadableBy;
-
- NKikimrConfig::TStoredCompatibilityInfo ToPB() {
- NKikimrConfig::TStoredCompatibilityInfo res;
- res.SetBuild(Build.data());
- if (YdbVersion) {
- res.MutableYdbVersion()->CopyFrom(YdbVersion->ToPB());
- }
-
- for (auto readableBy : ReadableBy) {
- res.AddReadableBy()->CopyFrom(readableBy.ToPB());
- }
-
- return res;
- }
-};
+using TYdbVersion = TCompatibilityInfo::TProtoConstructor::TYdbVersion;
+using TCompatibilityRule = TCompatibilityInfo::TProtoConstructor::TCompatibilityRule;
+using TCurrentCompatibilityInfo = TCompatibilityInfo::TProtoConstructor::TCurrentCompatibilityInfo;
+using TStoredCompatibilityInfo = TCompatibilityInfo::TProtoConstructor::TStoredCompatibilityInfo;
Y_UNIT_TEST_SUITE(YdbVersion) {
@@ -133,9 +40,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultSameVersion) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 0 }
},
true
@@ -144,9 +53,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultPrevMajor) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 1, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 10 }
},
true
@@ -155,9 +66,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultNextMajor) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 8, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 1, .Hotfix = 0 }
},
true
@@ -166,9 +79,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultHotfix) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 10 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 0 }
},
true
@@ -177,9 +92,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultCompatible) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 1, .Hotfix = 10 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 10, .Hotfix = 0 }
},
true
@@ -188,9 +105,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultNextYear) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 2, .Major = 1, .Minor = 1, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 0 }
},
false
@@ -199,9 +118,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultPrevYear) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 2, .Major = 1, .Minor = 1, .Hotfix = 0 }
},
false
@@ -210,9 +131,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultNewMajor) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 3, .Minor = 1, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 3, .Hotfix = 0 }
},
false
@@ -221,9 +144,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(DefaultOldMajor) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 3, .Minor = 1, .Hotfix = 0 }
},
false
@@ -258,6 +183,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(LimitOld) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 1, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{
@@ -268,6 +194,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
}
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 2, .Hotfix = 1 }
},
false
@@ -276,9 +203,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(LimitNew) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 1, .Hotfix = 3 },
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 2, .Hotfix = 0 },
.StoresReadableBy = {
TCompatibilityRule{
@@ -407,9 +336,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(StoredWithRules) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 4, .Minor = 1, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 3, .Minor = 3, .Hotfix = 1 },
.StoresReadableBy = {
TCompatibilityRule{
@@ -424,9 +355,11 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(StoredWithRulesIncompatible) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 5, .Minor = 1, .Hotfix = 0 }
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 3, .Minor = 3, .Hotfix = 1 },
.StoresReadableBy = {
TCompatibilityRule{
@@ -521,6 +454,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(OneAcceptedVersion) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 3, .Minor = 2, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{
@@ -530,6 +464,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
}
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 3, .Hotfix = 2 },
},
true
@@ -538,6 +473,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(ForbiddenMinor) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 2, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{
@@ -548,6 +484,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
}
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 1, .Minor = 3, .Hotfix = 1 },
},
false
@@ -556,6 +493,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(ExtraAndForbidden) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 4, .Minor = 2, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{
@@ -570,6 +508,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
}
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 3, .Hotfix = 0 },
},
false
@@ -578,6 +517,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(SomeRulesAndOtherForbidden) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 4, .Minor = 2, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{
@@ -592,6 +532,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
}
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 3, .Hotfix = 0 },
},
true
@@ -600,6 +541,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(Component) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 4, .Minor = 2, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{
@@ -610,6 +552,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
}
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 3, .Hotfix = 0 },
},
true
@@ -618,6 +561,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
Y_UNIT_TEST(OtherComponent) {
Test(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 4, .Minor = 2, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{
@@ -628,6 +572,7 @@ Y_UNIT_TEST_SUITE(YdbVersion) {
}
},
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 1, .Major = 2, .Minor = 3, .Hotfix = 0 },
},
false
@@ -652,6 +597,7 @@ Y_UNIT_TEST_SUITE(OldFormat) {
Y_UNIT_TEST(SameVersion) {
TestOldFormat(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 22, .Major = 4, .Minor = 1, .Hotfix = 0 }
},
TOldFormat{
@@ -665,6 +611,7 @@ Y_UNIT_TEST_SUITE(OldFormat) {
Y_UNIT_TEST(DefaultRules) {
TestOldFormat(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 22, .Major = 5, .Minor = 1, .Hotfix = 0 }
},
TOldFormat{
@@ -678,6 +625,7 @@ Y_UNIT_TEST_SUITE(OldFormat) {
Y_UNIT_TEST(PrevYear) {
TestOldFormat(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 23, .Major = 1, .Minor = 1, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{
@@ -710,6 +658,7 @@ Y_UNIT_TEST_SUITE(OldFormat) {
Y_UNIT_TEST(UnexpectedTrunk) {
TestOldFormat(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 22, .Major = 4, .Minor = 1, .Hotfix = 0 },
},
TOldFormat{
@@ -723,6 +672,7 @@ Y_UNIT_TEST_SUITE(OldFormat) {
Y_UNIT_TEST(TooOld) {
TestOldFormat(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 22, .Major = 4, .Minor = 1, .Hotfix = 0 },
},
TOldFormat{
@@ -736,6 +686,7 @@ Y_UNIT_TEST_SUITE(OldFormat) {
Y_UNIT_TEST(OldNbs) {
TestOldFormat(
TCurrentCompatibilityInfo{
+ .Build = "ydb",
.YdbVersion = TYdbVersion{ .Year = 23, .Major = 1, .Minor = 1, .Hotfix = 0 },
.CanLoadFrom = {
TCompatibilityRule{