aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorrgreenblatt <greenblattryan@gmail.com>2021-02-13 20:17:09 -0500
committerVeikka Tuominen <git@vexu.eu>2021-02-21 11:48:38 +0200
commitf9be7471bc9a35fcb872a83564d41cdf561ca173 (patch)
treec15fd1bf2d5600c537663699e216e198d610a7e2 /lib
parent340825a7afeb1909ab81c1e0258b81ff67323a2b (diff)
downloadzig-f9be7471bc9a35fcb872a83564d41cdf561ca173.tar.gz
zig-f9be7471bc9a35fcb872a83564d41cdf561ca173.zip
fix readable slice bug (and add tests)
Diffstat (limited to 'lib')
-rw-r--r--lib/std/fifo.zig4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/std/fifo.zig b/lib/std/fifo.zig
index dfd932cb32..b21cb7fc1c 100644
--- a/lib/std/fifo.zig
+++ b/lib/std/fifo.zig
@@ -153,7 +153,7 @@ pub fn LinearFifo(
var start = self.head + offset;
if (start >= self.buf.len) {
start -= self.buf.len;
- return self.buf[start .. self.count - offset];
+ return self.buf[start .. start + (self.count - offset)];
} else {
const end = math.min(self.head + self.count, self.buf.len);
return self.buf[start..end];
@@ -427,6 +427,8 @@ test "LinearFifo(u8, .Dynamic)" {
fifo.writeAssumeCapacity("6<chars<11");
testing.expectEqualSlices(u8, "HELLO6<char", fifo.readableSlice(0));
testing.expectEqualSlices(u8, "s<11", fifo.readableSlice(11));
+ testing.expectEqualSlices(u8, "11", fifo.readableSlice(13));
+ testing.expectEqualSlices(u8, "", fifo.readableSlice(15));
fifo.discard(11);
testing.expectEqualSlices(u8, "s<11", fifo.readableSlice(0));
fifo.discard(4);