]> git.ipfire.org Git - pakfire.git/commitdiff
tests: log stream: Replace PTY test with file handle test
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 24 Mar 2025 16:47:31 +0000 (16:47 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 24 Mar 2025 16:47:31 +0000 (16:47 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
tests/libpakfire/log_stream.c

index 98acbbc69024069fcdbce12f2b99d9ed16854bad..8591af140c886b1570e03d04d3b4dd5d474d9003 100644 (file)
@@ -109,31 +109,36 @@ FAIL:
        return r;
 }
 
-static int test_pty(const struct test* t) {
+static int test_file(const struct test* t) {
        struct pakfire_log_stream* stream = NULL;
        int r = EXIT_FAILURE;
        int lines_read = 0;
+       FILE* f = NULL;
 
        ASSERT_SUCCESS(pakfire_log_stream_create(&stream, t->ctx, log_callback, &lines_read));
 
+       // Fetch a file handle
+       ASSERT((f = pakfire_log_stream_as_file(stream)));
+
        // Write some individual parts and await until the streamer has found a line
-       ASSERT(pakfire_log_stream_pty(t->ctx, stream, "A", strlen("A")) == 1);
-       ASSERT_EQUALS(lines_read, 0);
-       ASSERT(pakfire_log_stream_pty(t->ctx, stream, "B", strlen("B")) == 1);
-       ASSERT_EQUALS(lines_read, 0);
-       ASSERT(pakfire_log_stream_pty(t->ctx, stream, "C", strlen("C")) == 1);
-       ASSERT_EQUALS(lines_read, 0);
-       ASSERT(pakfire_log_stream_pty(t->ctx, stream, "\n", strlen("\n")) == 1);
+       ASSERT(fwrite("A", 1, strlen("A"), f) == 1);
+       ASSERT(fwrite("B", 1, strlen("B"), f) == 1);
+       ASSERT(fwrite("C", 1, strlen("C"), f) == 1);
+       ASSERT(fwrite("\n", 1, strlen("\n"), f) == 1);
+
+       // Flush all buffers
+       ASSERT_SUCCESS(fflush(f));
+
+       // Now we should have one line
        ASSERT_EQUALS(lines_read, 1);
 
        // Write a second line
-       ASSERT(pakfire_log_stream_pty(t->ctx, stream, "D", strlen("D")) == 1);
-       ASSERT_EQUALS(lines_read, 1);
-       ASSERT(pakfire_log_stream_pty(t->ctx, stream, "E", strlen("E")) == 1);
-       ASSERT_EQUALS(lines_read, 1);
-       ASSERT(pakfire_log_stream_pty(t->ctx, stream, "F", strlen("F")) == 1);
-       ASSERT_EQUALS(lines_read, 1);
-       ASSERT(pakfire_log_stream_pty(t->ctx, stream, "\n", strlen("\n")) == 1);
+       ASSERT(fwrite("DEF\n", 1, strlen("DEF\n"), f) == 4);
+
+       // Flush all buffers
+       ASSERT_SUCCESS(fflush(f));
+
+       // Now we should have another line
        ASSERT_EQUALS(lines_read, 2);
 
        // Everything passed
@@ -142,6 +147,8 @@ static int test_pty(const struct test* t) {
 FAIL:
        if (stream)
                pakfire_log_stream_unref(stream);
+       if (f)
+               fclose(f);
 
        return r;
 }
@@ -149,7 +156,7 @@ FAIL:
 int main(int argc, const char* argv[]) {
        testsuite_add_test(test_simple, 0);
        testsuite_add_test(test_fork, 0);
-       testsuite_add_test(test_pty, 0);
+       testsuite_add_test(test_file, 0);
 
        return testsuite_run(argc, argv);
 }