From bb164c98f67b21a948fef39faee9fb285843da41 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 25 Dec 2024 12:55:58 +0000 Subject: [PATCH] tests: Add a test to check if the log buffer limit works Signed-off-by: Michael Tremer --- src/libpakfire/log_buffer.c | 2 +- tests/libpakfire/log_buffer.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/libpakfire/log_buffer.c b/src/libpakfire/log_buffer.c index ef76c127a..a25a26bf5 100644 --- a/src/libpakfire/log_buffer.c +++ b/src/libpakfire/log_buffer.c @@ -115,7 +115,7 @@ int pakfire_log_buffer_enqueue(struct pakfire_log_buffer* buffer, int priority, // Fail if the buffer is full if (buffer->max_length > 0) { if (pakfire_log_buffer_length(buffer) >= buffer->max_length) - return -ENOSPC; + return -ENOBUFS; } // Automatically determine the length diff --git a/tests/libpakfire/log_buffer.c b/tests/libpakfire/log_buffer.c index c9a56baec..a8204a0be 100644 --- a/tests/libpakfire/log_buffer.c +++ b/tests/libpakfire/log_buffer.c @@ -104,9 +104,34 @@ FAIL: return r; } +static int test_full(const struct test* t) { + struct pakfire_log_buffer* buffer = NULL; + int r = EXIT_FAILURE; + + // Create buffer + ASSERT_SUCCESS(pakfire_log_buffer_create(&buffer, t->ctx, 2)); + + // Enqueue something + ASSERT_SUCCESS(pakfire_log_buffer_enqueue(buffer, LOG_DEBUG, "Line 1", -1)); + ASSERT_SUCCESS(pakfire_log_buffer_enqueue(buffer, LOG_DEBUG, "Line 2", -1)); + + // There should be no more space for a third line + ASSERT_ERROR(pakfire_log_buffer_enqueue(buffer, LOG_DEBUG, "Line 3", -1), ENOBUFS); + + // Everything passed + r = EXIT_SUCCESS; + +FAIL: + if (buffer) + pakfire_log_buffer_unref(buffer); + + return r; +} + int main(int argc, const char* argv[]) { testsuite_add_test(test_simple, 0); testsuite_add_test(test_wrong_usage, 0); + testsuite_add_test(test_full, 0); return testsuite_run(argc, argv); } -- 2.47.3