diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 6dc29b3..5acfce9 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -472,7 +472,8 @@ inline void Node256::copyChildrenAndKeyFrom(const Node256 &other) { namespace { std::string getSearchPathPrintable(Node *n); -} +std::string getSearchPath(Node *n); +} // namespace // Bound memory usage following the analysis in the ART paper @@ -1224,28 +1225,11 @@ Node *erase(Node *self, NodeAllocators *allocators, ConflictSet::Impl *impl, return result; } - switch (self->getType()) { - case Type_Node0: - allocators->node0.release((Node0 *)self); - break; - case Type_Node3: - allocators->node3.release((Node3 *)self); - break; - case Type_Node16: - allocators->node16.release((Node16 *)self); - break; - case Type_Node48: - allocators->node48.release((Node48 *)self); - break; - case Type_Node256: - allocators->node256.release((Node256 *)self); - break; - default: // GCOVR_EXCL_LINE - __builtin_unreachable(); // GCOVR_EXCL_LINE - } + assert(self->getType() == Type_Node0); + allocators->node0.release((Node0 *)self); switch (parent->getType()) { - case Type_Node0: + case Type_Node0: // GCOVR_EXCL_LINE __builtin_unreachable(); // GCOVR_EXCL_LINE case Type_Node3: { auto *parent3 = static_cast(parent); @@ -2480,11 +2464,13 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { assert(n != nullptr); // Don't erase the root if (n == root) { - n = nextLogical(n); + n = nextPhysical(n); } for (; keyUpdates > 0 && n != nullptr; --keyUpdates) { - if (std::max(n->entry.pointVersion, n->entry.rangeVersion) <= - oldestVersion) { + printf("len: %d, cap: %d, type: %d %s\n", n->partialKeyLen, + n->getCapacity(), n->getType(), getSearchPath(n).c_str()); + if (n->entryPresent && std::max(n->entry.pointVersion, + n->entry.rangeVersion) <= oldestVersion) { // Any transaction n would have prevented from committing is // going to fail with TooOld anyway. @@ -2495,7 +2481,7 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { n = erase(n, &allocators, this, dummy); } else { maybeDecreaseCapacity(n, &allocators, this); - n = nextLogical(n); + n = nextPhysical(n); } } if (n == nullptr) { diff --git a/script_tests/256-256.txt b/script_tests/256-256.txt new file mode 100644 index 0000000..394e9e6 --- /dev/null +++ b/script_tests/256-256.txt @@ -0,0 +1,260 @@ + +; Create a node with a large partial key capacity +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +pointwrite + +; Make it a Node256 + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaB +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaC +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaD +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaE +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaF +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaG +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaH +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaI +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJ +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaK +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaL +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaM +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaN +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaO +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaP +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQ +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaR +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaS +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaT +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaU +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaV +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaW +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaX +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaY +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZ +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaae +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaj +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaak +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaam +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaan +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaao +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaap +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaq +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaau +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaav +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaw +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaax +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz +pointwrite + +; Lower its partial key length +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +pointwrite + +version 2 +addwrites + +; Create work for setoldest + +begin x +end y +rangewrite +version 3 +addwrites + +rangewrite +version 4 +addwrites + +rangewrite +version 5 +addwrites + +rangewrite +version 6 +addwrites + +rangewrite +version 7 +addwrites + +rangewrite +version 8 +addwrites + +rangewrite +version 9 +addwrites + +rangewrite +version 10 +addwrites + +rangewrite +version 11 +addwrites + +rangewrite +version 12 +addwrites + +rangewrite +version 13 +addwrites + +rangewrite +version 14 +addwrites + +rangewrite +version 15 +addwrites + +rangewrite +version 16 +addwrites + +rangewrite +version 17 +addwrites + +rangewrite +version 18 +addwrites + +rangewrite +version 19 +addwrites + +rangewrite +version 20 +addwrites + +rangewrite +version 21 +addwrites + +rangewrite +version 22 +addwrites + +rangewrite +version 23 +addwrites + +version 1 +setoldest diff --git a/script_tests/48-48.txt b/script_tests/48-48.txt new file mode 100644 index 0000000..daad7f8 --- /dev/null +++ b/script_tests/48-48.txt @@ -0,0 +1,145 @@ +; Create a node with a large partial key capacity +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +pointwrite + +; Make it a Node48 +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaae +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaj +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaak +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaam +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaan +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaao +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaap +pointwrite + +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaq +pointwrite + +; Lower its partial key length +begin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +pointwrite + +version 2 +addwrites + +; Create work for setoldest + +begin x +end y +rangewrite +version 3 +addwrites + +rangewrite +version 4 +addwrites + +rangewrite +version 5 +addwrites + +rangewrite +version 6 +addwrites + +rangewrite +version 7 +addwrites + +rangewrite +version 8 +addwrites + +rangewrite +version 9 +addwrites + +rangewrite +version 10 +addwrites + +rangewrite +version 11 +addwrites + +rangewrite +version 12 +addwrites + +rangewrite +version 13 +addwrites + +rangewrite +version 14 +addwrites + +rangewrite +version 15 +addwrites + +rangewrite +version 16 +addwrites + +rangewrite +version 17 +addwrites + +rangewrite +version 18 +addwrites + +rangewrite +version 19 +addwrites + +rangewrite +version 20 +addwrites + +rangewrite +version 21 +addwrites + +version 1 +setoldest diff --git a/script_tests/downsize-256.txt b/script_tests/downsize-256.txt new file mode 100644 index 0000000..7b12b3a --- /dev/null +++ b/script_tests/downsize-256.txt @@ -0,0 +1,120 @@ +begin +pointwrite +begin 0 +pointwrite +begin 00 +pointwrite +begin 00A +pointwrite +begin 00B +pointwrite +begin 00C +pointwrite +begin 00D +pointwrite +begin 00E +pointwrite +begin 00F +pointwrite +begin 00G +pointwrite +begin 00H +pointwrite +begin 00I +pointwrite +begin 00J +pointwrite +begin 00K +pointwrite +begin 00L +pointwrite +begin 00M +pointwrite +begin 00N +pointwrite +begin 00O +pointwrite +begin 00P +pointwrite +begin 00Q +pointwrite +begin 00R +pointwrite +begin 00S +pointwrite +begin 00T +pointwrite +begin 00U +pointwrite +begin 00V +pointwrite +begin 00W +pointwrite +begin 00X +pointwrite +begin 00Y +pointwrite +begin 00Z +pointwrite +begin 00a +pointwrite +begin 00b +pointwrite +begin 00c +pointwrite +begin 00d +pointwrite +begin 00e +pointwrite +begin 00f +pointwrite +begin 00g +pointwrite +begin 00h +pointwrite +begin 00i +pointwrite +begin 00j +pointwrite +begin 00k +pointwrite +begin 00l +pointwrite +begin 00m +pointwrite +begin 00n +pointwrite +begin 00o +pointwrite +begin 00p +pointwrite +begin 00q +pointwrite +begin 00r +pointwrite +begin 00s +pointwrite +begin 00t +pointwrite +begin 00u +pointwrite +begin 00v +pointwrite +begin 00w +pointwrite +begin 00x +pointwrite +begin 00y +pointwrite +begin 00z +pointwrite + +begin 0 +end 000 +rangewrite + +begin +end 00 +rangewrite + +addwrites diff --git a/script_tests/downsize-48.txt b/script_tests/downsize-48.txt new file mode 100644 index 0000000..dc05bde --- /dev/null +++ b/script_tests/downsize-48.txt @@ -0,0 +1,68 @@ +begin +pointwrite +begin 0 +pointwrite +begin 00 +pointwrite +begin 00a +pointwrite +begin 00b +pointwrite +begin 00c +pointwrite +begin 00d +pointwrite +begin 00e +pointwrite +begin 00f +pointwrite +begin 00g +pointwrite +begin 00h +pointwrite +begin 00i +pointwrite +begin 00j +pointwrite +begin 00k +pointwrite +begin 00l +pointwrite +begin 00m +pointwrite +begin 00n +pointwrite +begin 00o +pointwrite +begin 00p +pointwrite +begin 00q +pointwrite +begin 00r +pointwrite +begin 00s +pointwrite +begin 00t +pointwrite +begin 00u +pointwrite +begin 00v +pointwrite +begin 00w +pointwrite +begin 00x +pointwrite +begin 00y +pointwrite +begin 00z +pointwrite + +begin 0 +end 000 +rangewrite + +begin +end 00 +rangewrite + +addwrites