aboutsummaryrefslogtreecommitdiffstats
path: root/spec/util_dbuffer_spec.lua
Commit message (Collapse)AuthorAgeFilesLines
* util.dbuffer: Simplify test caseKim Alvefur2020-08-241-3/+2
| | | | | | | | | An earlier theory involved the bug being related to collapsing multiple items, so it exercised that too. Also correct the comment, it referred to the space in "hello world" in an earlier version before the test string was changed to "foobar", which was what was tested in a REPL
* util.dbuffer: Fix :sub() not working with partially-consumed chunks (thanks ↵Matthew Wild2020-08-241-1/+1
| | | | | | Zash for test case) This also appears to fix some bugs with chunk-encoded streams in net.http.parser.
* util.dbuffer: Add failing test case involving :sub after :discardKim Alvefur2020-08-241-0/+9
|
* util.dbuffer: Fix traceback when :collapse() is called on empty bufferMatthew Wild2020-08-201-0/+12
|
* util.dbuffer: If no bytes parameter passed to read, return remainder of ↵Matthew Wild2020-06-291-0/+15
| | | | frontmost chunk
* util.dbuffer: Don't use # operator in tests, Lua 5.1 doesn't support __lenMatthew Wild2020-06-281-1/+1
|
* util.dbuffer: dynamic string bufferMatthew Wild2020-06-261-0/+95
Similar to util.ringbuffer (and shares almost identical API). Differences: - size limit is optional and dynamic - does not allocate a fixed buffer of max_size bytes - focus on simply storing references to existing string objects where possible, avoiding unnecessary allocations - references are still stored in a ring buffer to enable use as a fast FIFO Optional second parameter to new() provides the number of ring buffer segments. On Lua 5.2 on my laptop, a segment is ~19 bytes. If the ring buffer fills up, the next write will compact all strings into a single item.