Merge branch 'master' of github.com:cesanta/mongoose

This commit is contained in:
cpq committed 2022-09-08 08:50:51 +01:00
commit 419126652e
3 files changed
+8 -4

No files matched your search

+1 -1
View File
@@ -184,7 +184,7 @@ static void q_copyout(struct queue *q, uint8_t *buf, size_t len, size_t tail) {
static bool q_write(struct queue *q, const void *buf, size_t len) {
bool success = false;
size_t left = q->len - q->head + q->tail;
size_t left = (q->len - q->head + q->tail -1) % q->len;
if (len + sizeof(size_t) <= left) {
q_copyin(q, (uint8_t *) &len, sizeof(len), q->head);
q_copyin(q, (uint8_t *) buf, len, (q->head + sizeof(size_t)) % q->len);
+1 -1
View File
@@ -6472,7 +6472,7 @@ static void q_copyout(struct queue *q, uint8_t *buf, size_t len, size_t tail) {
static bool q_write(struct queue *q, const void *buf, size_t len) {
bool success = false;
size_t left = q->len - q->head + q->tail;
size_t left = (q->len - q->head + q->tail -1) % q->len;
if (len + sizeof(size_t) <= left) {
q_copyin(q, (uint8_t *) &len, sizeof(len), q->head);
q_copyin(q, (uint8_t *) buf, len, (q->head + sizeof(size_t)) % q->len);
+6 -2
View File
@@ -2,15 +2,17 @@
#include "mongoose.c"
static void test_queue(void) {
uint8_t buf[sizeof(size_t) + 5];
static uint8_t buf[sizeof(size_t) + sizeof(uint16_t) + 3 ]; // fit 1 element but not 2
uint16_t val = 1234;
struct queue q = {buf, sizeof(buf), 0, 0};
static struct queue q = {buf, sizeof(buf), 0, 0};
// Write to an empty queue, and read back
assert(q_avail(&q) == 0);
assert(q_write(&q, &val, sizeof(val)) == true);
assert(q_avail(&q) == sizeof(val));
assert(q.head > q.tail);
// Only one element may fit
assert(q_write(&q, &val, sizeof(val)) == false);
val = 0;
assert(q_read(&q, &val) == sizeof(val));
assert(val == 1234);
@@ -20,6 +22,8 @@ static void test_queue(void) {
assert(q_write(&q, &val, sizeof(val)) == true);
assert(q_avail(&q) == sizeof(val));
assert(q.head < q.tail);
// Only one element may fit
assert(q_write(&q, &val, sizeof(val)) == false);
val = 0;
assert(q_read(&q, &val) == sizeof(val));
assert(val == 1234);