Check ConflictSet preconditions in script_test
All checks were successful
Tests / Clang total: 825, passed: 825
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc] total: 825, passed: 825
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 824, passed: 824
Tests / Coverage total: 823, passed: 823
weaselab/conflict-set/pipeline/head This commit looks good
All checks were successful
Tests / Clang total: 825, passed: 825
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc] total: 825, passed: 825
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 824, passed: 824
Tests / Coverage total: 823, passed: 823
weaselab/conflict-set/pipeline/head This commit looks good
This commit is contained in:
11
Internal.h
11
Internal.h
@@ -35,6 +35,17 @@ operator<=>(const std::span<const uint8_t> &lhs,
|
|||||||
return lhs.size() <=> rhs.size();
|
return lhs.size() <=> rhs.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] inline auto operator<=>(const std::span<const uint8_t> &lhs,
|
||||||
|
const ConflictSet::Key &rhs) noexcept {
|
||||||
|
int cl = std::min<int>(lhs.size(), rhs.len);
|
||||||
|
if (cl > 0) {
|
||||||
|
if (auto c = memcmp(lhs.data(), rhs.p, cl) <=> 0; c != 0) {
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return lhs.size() <=> size_t(rhs.len);
|
||||||
|
}
|
||||||
|
|
||||||
// This header contains code that we want to reuse outside of ConflictSet.cpp or
|
// This header contains code that we want to reuse outside of ConflictSet.cpp or
|
||||||
// want to exclude from coverage since it's only testing related.
|
// want to exclude from coverage since it's only testing related.
|
||||||
|
|
||||||
|
@@ -51,6 +51,8 @@ int main(int argc, const char **argv) {
|
|||||||
StringView b;
|
StringView b;
|
||||||
StringView e;
|
StringView e;
|
||||||
int64_t v = 0;
|
int64_t v = 0;
|
||||||
|
int64_t lastWriteVersion = 0;
|
||||||
|
int64_t lastOldestVersion = 0;
|
||||||
std::vector<ConflictSet::WriteRange> writeRanges;
|
std::vector<ConflictSet::WriteRange> writeRanges;
|
||||||
std::vector<ConflictSet::ReadRange> readRanges;
|
std::vector<ConflictSet::ReadRange> readRanges;
|
||||||
std::vector<ConflictSet::Result> results;
|
std::vector<ConflictSet::Result> results;
|
||||||
@@ -84,7 +86,9 @@ int main(int argc, const char **argv) {
|
|||||||
readRanges.push_back(r);
|
readRanges.push_back(r);
|
||||||
} else if (line.starts_with("pointwrite"_v)) {
|
} else if (line.starts_with("pointwrite"_v)) {
|
||||||
printf("pointwrite\n");
|
printf("pointwrite\n");
|
||||||
// TODO check sorted
|
assert(writeRanges.empty() ||
|
||||||
|
(writeRanges.back().end.len == 0 ? writeRanges.back().begin
|
||||||
|
: writeRanges.back().end) < b);
|
||||||
ConflictSet::WriteRange w;
|
ConflictSet::WriteRange w;
|
||||||
w.begin.p = b.data();
|
w.begin.p = b.data();
|
||||||
w.begin.len = b.size();
|
w.begin.len = b.size();
|
||||||
@@ -101,7 +105,10 @@ int main(int argc, const char **argv) {
|
|||||||
readRanges.push_back(r);
|
readRanges.push_back(r);
|
||||||
} else if (line.starts_with("rangewrite"_v)) {
|
} else if (line.starts_with("rangewrite"_v)) {
|
||||||
printf("rangewrite\n");
|
printf("rangewrite\n");
|
||||||
// TODO check sorted
|
assert(b < e);
|
||||||
|
assert(writeRanges.empty() ||
|
||||||
|
(writeRanges.back().end.len == 0 ? writeRanges.back().begin
|
||||||
|
: writeRanges.back().end) < b);
|
||||||
ConflictSet::WriteRange w;
|
ConflictSet::WriteRange w;
|
||||||
w.begin.p = b.data();
|
w.begin.p = b.data();
|
||||||
w.begin.len = b.size();
|
w.begin.len = b.size();
|
||||||
@@ -125,11 +132,15 @@ int main(int argc, const char **argv) {
|
|||||||
readRanges = {};
|
readRanges = {};
|
||||||
} else if (line.starts_with("addwrites"_v)) {
|
} else if (line.starts_with("addwrites"_v)) {
|
||||||
printf("addwrites\n");
|
printf("addwrites\n");
|
||||||
|
assert(v > lastWriteVersion);
|
||||||
|
lastWriteVersion = v;
|
||||||
cs.addWrites(writeRanges.data(), writeRanges.size(), v);
|
cs.addWrites(writeRanges.data(), writeRanges.size(), v);
|
||||||
ref.addWrites(writeRanges.data(), writeRanges.size(), v);
|
ref.addWrites(writeRanges.data(), writeRanges.size(), v);
|
||||||
writeRanges = {};
|
writeRanges = {};
|
||||||
} else if (line.starts_with("setoldest"_v)) {
|
} else if (line.starts_with("setoldest"_v)) {
|
||||||
printf("setoldest\n");
|
printf("setoldest\n");
|
||||||
|
assert(v > lastOldestVersion);
|
||||||
|
lastOldestVersion = v;
|
||||||
cs.setOldestVersion(v);
|
cs.setOldestVersion(v);
|
||||||
ref.setOldestVersion(v);
|
ref.setOldestVersion(v);
|
||||||
} else if (line.empty() || line.starts_with(";"_v)) {
|
} else if (line.empty() || line.starts_with(";"_v)) {
|
||||||
|
@@ -160,6 +160,8 @@ pointwrite
|
|||||||
|
|
||||||
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz
|
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz
|
||||||
pointwrite
|
pointwrite
|
||||||
|
version 1
|
||||||
|
addwrites
|
||||||
|
|
||||||
; Lower its partial key length
|
; Lower its partial key length
|
||||||
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
; Create a node with a large partial key capacity
|
; Create a node with a large partial key capacity
|
||||||
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0
|
||||||
pointwrite
|
pointwrite
|
||||||
|
|
||||||
; Make it a Node48
|
; Make it a Node48
|
||||||
@@ -53,22 +53,20 @@ pointwrite
|
|||||||
|
|
||||||
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaq
|
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaq
|
||||||
pointwrite
|
pointwrite
|
||||||
|
version 2
|
||||||
|
addwrites
|
||||||
|
|
||||||
; Lower its partial key length
|
; Lower its partial key length
|
||||||
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
pointwrite
|
pointwrite
|
||||||
|
|
||||||
version 2
|
version 3
|
||||||
addwrites
|
addwrites
|
||||||
|
|
||||||
; Create work for setoldest
|
; Create work for setoldest
|
||||||
|
|
||||||
begin x
|
begin x
|
||||||
end y
|
end y
|
||||||
rangewrite
|
|
||||||
version 3
|
|
||||||
addwrites
|
|
||||||
|
|
||||||
rangewrite
|
rangewrite
|
||||||
version 4
|
version 4
|
||||||
addwrites
|
addwrites
|
||||||
@@ -141,5 +139,9 @@ rangewrite
|
|||||||
version 21
|
version 21
|
||||||
addwrites
|
addwrites
|
||||||
|
|
||||||
|
rangewrite
|
||||||
|
version 22
|
||||||
|
addwrites
|
||||||
|
|
||||||
version 1
|
version 1
|
||||||
setoldest
|
setoldest
|
||||||
|
@@ -108,13 +108,17 @@ begin 00y
|
|||||||
pointwrite
|
pointwrite
|
||||||
begin 00z
|
begin 00z
|
||||||
pointwrite
|
pointwrite
|
||||||
|
version 1
|
||||||
|
addwrites
|
||||||
|
|
||||||
begin 0
|
begin 0
|
||||||
end 000
|
end 000
|
||||||
rangewrite
|
rangewrite
|
||||||
|
version 2
|
||||||
|
addwrites
|
||||||
|
|
||||||
begin
|
begin
|
||||||
end 00
|
end 00
|
||||||
rangewrite
|
rangewrite
|
||||||
|
version 3
|
||||||
addwrites
|
addwrites
|
||||||
|
@@ -56,13 +56,17 @@ begin 00y
|
|||||||
pointwrite
|
pointwrite
|
||||||
begin 00z
|
begin 00z
|
||||||
pointwrite
|
pointwrite
|
||||||
|
version 1
|
||||||
|
addwrites
|
||||||
|
|
||||||
begin 0
|
begin 0
|
||||||
end 000
|
end 000
|
||||||
rangewrite
|
rangewrite
|
||||||
|
version 2
|
||||||
|
addwrites
|
||||||
|
|
||||||
begin
|
begin
|
||||||
end 00
|
end 00
|
||||||
rangewrite
|
rangewrite
|
||||||
|
version 3
|
||||||
addwrites
|
addwrites
|
||||||
|
Reference in New Issue
Block a user