]> git.ipfire.org Git - people/ric9/pakfire.git/commitdiff
tests: Add a test to check if the log buffer limit works
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 25 Dec 2024 12:55:58 +0000 (12:55 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 25 Dec 2024 12:55:58 +0000 (12:55 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/log_buffer.c
tests/libpakfire/log_buffer.c

index ef76c127a1cfcbff5e7645ceb3e0aca5d62385c1..a25a26bf52d3c5e9ac4a7064bc31da889850df4d 100644 (file)
@@ -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
index c9a56baecc3ac443f8e47127ccc7031af875f44a..a8204a0be1dd31cea19cc03eda2a54ad27eb3ab6 100644 (file)
@@ -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);
 }