Skip to content

Commit 557ec04

Browse files
committed
Improve test
1 parent 7a57bc8 commit 557ec04

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

source/mir/appender.d

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,9 @@ struct ScopedBuffer(T, size_t bytes = 4096)
245245
}
246246
}
247247

248+
///
249+
alias opOpAssign(string op : "~") = put;
250+
248251
///
249252
void reset() scope nothrow
250253
{
@@ -326,6 +329,23 @@ version (mir_test) unittest
326329
assert(buf.data == "cs");
327330
}
328331

332+
@safe pure nothrow @nogc
333+
version (mir_test) unittest
334+
{
335+
alias T = char;
336+
const n = 3;
337+
auto buf = scopedBuffer!(T, n * T.sizeof);
338+
assert(buf._scopeBuffer.length == n); // stack
339+
buf.reserve(n + 1); // transition to heap
340+
assert(buf._buffer.length >= n + 1); // heap
341+
buf ~= 'c';
342+
buf ~= "str";
343+
assert(buf.data == "cstr");
344+
345+
buf.popBackN(2);
346+
assert(buf.data == "cs");
347+
}
348+
329349
///
330350
struct UnsafeArrayBuffer(T)
331351
{

0 commit comments

Comments
 (0)