From: Michael Tremer Date: Mon, 24 Mar 2025 16:47:31 +0000 (+0000) Subject: tests: log stream: Replace PTY test with file handle test X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9389e8fe124d880e9b5fdb98084c782edbc908c4;p=pakfire.git tests: log stream: Replace PTY test with file handle test Signed-off-by: Michael Tremer --- diff --git a/tests/libpakfire/log_stream.c b/tests/libpakfire/log_stream.c index 98acbbc6..8591af14 100644 --- a/tests/libpakfire/log_stream.c +++ b/tests/libpakfire/log_stream.c @@ -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); }