Update stream utilities and fix peek logic
Release / release (push) Successful in 4s

This commit is contained in:
2026-08-30 17:13:32 +01:00
parent b3830683f6
commit d5578f009a
10 changed files with 122 additions and 26 deletions
+35 -3
View File
@@ -1,6 +1,7 @@
// vim:fileencoding=utf-8:foldmethod=marker
#include "test_stream.h"
#include <stdio.h>
#define COUNT 3
@@ -12,7 +13,7 @@ WpTestFuncResult test_stream_at_end(void) {
for (u32 i = 0; i < COUNT; ++i) {
wpStreamConsume(c8, &stream);
result = result && (i == 2 ? wpStreamAtEnd(c8, &stream) : !wpStreamAtEnd(c8, &stream));
result = result && (i == 2 ? wpStreamAtEnd(&stream) : !wpStreamAtEnd(&stream));
}
return wpTesterResult(result);
@@ -25,15 +26,31 @@ WpTestFuncResult test_stream_peek(void) {
WpC8Stream stream = wpStream(c8, characters, COUNT);
c8 *c = NULL;
while (!wpStreamAtEnd(c8, &stream)) {
for (u32 i = 0; i <= COUNT; ++i) {
c = wpStreamPeek(c8, &stream);
wpStreamConsume(c8, &stream);
result = result && (wpStreamAtEnd(c8, &stream) ? c == NULL : c != NULL);
result = result && (i == 3 ? c == NULL : c != NULL);
}
return wpTesterResult(result);
}
WpTestFuncResult test_stream_peek_with_offset(void) {
b8 result = true;
c8 characters[COUNT] = {'a', 'b', 'c'};
WpC8Stream stream = wpStream(c8, characters, COUNT);
u64 offset = 2;
c8 *c = wpStreamPeekWithOffset(c8, &stream, offset);
result = result && *c == characters[offset];
c = wpStreamPeekWithOffset(c8, &stream, 5);
result = result && c == NULL;
return wpTesterResult(result);
}
WpTestFuncResult test_stream_consume(void) {
b8 result = true;
@@ -48,3 +65,18 @@ WpTestFuncResult test_stream_consume(void) {
return wpTesterResult(result);
}
WpTestFuncResult test_stream_consume_count(void) {
b8 result = true;
c8 characters[COUNT] = {'a', 'b', 'c'};
WpC8Stream stream = wpStream(c8, characters, COUNT);
c8 *c = wpStreamConsumeCount(c8, &stream, COUNT);
result = result && c != NULL && wpStreamAtEnd(&stream);
c = wpStreamConsumeCount(c8, &stream, COUNT);
result = result && c == NULL;
return wpTesterResult(result);
}
+35 -3
View File
@@ -1,6 +1,7 @@
// vim:fileencoding=utf-8:foldmethod=marker
#include "test_stream.h"
#include <stdio.h>
#define COUNT 3
@@ -12,7 +13,7 @@ WpTestFuncResult test_stream_at_end(void) {
for (u32 i = 0; i < COUNT; ++i) {
wpStreamConsume(c8, &stream);
result = result && (i == 2 ? wpStreamAtEnd(c8, &stream) : !wpStreamAtEnd(c8, &stream));
result = result && (i == 2 ? wpStreamAtEnd(&stream) : !wpStreamAtEnd(&stream));
}
return wpTesterResult(result);
@@ -25,15 +26,31 @@ WpTestFuncResult test_stream_peek(void) {
WpC8Stream stream = wpStream(c8, characters, COUNT);
c8 *c = NULL;
while (!wpStreamAtEnd(c8, &stream)) {
for (u32 i = 0; i <= COUNT; ++i) {
c = wpStreamPeek(c8, &stream);
wpStreamConsume(c8, &stream);
result = result && (wpStreamAtEnd(c8, &stream) ? c == NULL : c != NULL);
result = result && (i == 3 ? c == NULL : c != NULL);
}
return wpTesterResult(result);
}
WpTestFuncResult test_stream_peek_with_offset(void) {
b8 result = true;
c8 characters[COUNT] = {'a', 'b', 'c'};
WpC8Stream stream = wpStream(c8, characters, COUNT);
u64 offset = 2;
c8 *c = wpStreamPeekWithOffset(c8, &stream, offset);
result = result && *c == characters[offset];
c = wpStreamPeekWithOffset(c8, &stream, 5);
result = result && c == NULL;
return wpTesterResult(result);
}
WpTestFuncResult test_stream_consume(void) {
b8 result = true;
@@ -48,3 +65,18 @@ WpTestFuncResult test_stream_consume(void) {
return wpTesterResult(result);
}
WpTestFuncResult test_stream_consume_count(void) {
b8 result = true;
c8 characters[COUNT] = {'a', 'b', 'c'};
WpC8Stream stream = wpStream(c8, characters, COUNT);
c8 *c = wpStreamConsumeCount(c8, &stream, COUNT);
result = result && c != NULL && wpStreamAtEnd(&stream);
c = wpStreamConsumeCount(c8, &stream, COUNT);
result = result && c == NULL;
return wpTesterResult(result);
}
+2
View File
@@ -7,6 +7,8 @@
WpTestFuncResult test_stream_at_end(void);
WpTestFuncResult test_stream_peek(void);
WpTestFuncResult test_stream_peek_with_offset(void);
WpTestFuncResult test_stream_consume(void);
WpTestFuncResult test_stream_consume_count(void);
#endif // !TEST_STREAM_H
+2
View File
@@ -50,7 +50,9 @@ int main(void) {
test_queue_pop,
test_stream_at_end,
test_stream_peek,
test_stream_peek_with_offset,
test_stream_consume,
test_stream_consume_count,
test_str8_lit,
test_str8_lit_ro,
test_str8_buf,
+2
View File
@@ -50,7 +50,9 @@ int main(void) {
test_queue_pop,
test_stream_at_end,
test_stream_peek,
test_stream_peek_with_offset,
test_stream_consume,
test_stream_consume_count,
test_str8_lit,
test_str8_lit_ro,
test_str8_buf,