From: Michael Tremer Date: Sun, 13 Oct 2024 10:38:34 +0000 (+0000) Subject: tests: Make xfer tests compile and run again X-Git-Tag: 0.9.30~1042 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b64b546ac341fd7a0bad23028c549094442af49c;p=pakfire.git tests: Make xfer tests compile and run again Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/include/pakfire/xfer.h b/src/libpakfire/include/pakfire/xfer.h index 971285b81..1c9f6f58b 100644 --- a/src/libpakfire/include/pakfire/xfer.h +++ b/src/libpakfire/include/pakfire/xfer.h @@ -81,6 +81,9 @@ typedef enum pakfire_transfer_method { PAKFIRE_METHOD_DELETE, } pakfire_xfer_method_t; +int pakfire_xfer_create_simple( + struct pakfire_xfer** xfer, struct pakfire_ctx* ctx, const char* url); + int pakfire_xfer_create(struct pakfire_xfer** xfer, struct pakfire_ctx* ctx, const char* url, va_list args) __attribute__((format(printf, 3, 0))); diff --git a/src/libpakfire/xfer.c b/src/libpakfire/xfer.c index c086b9543..39a369079 100644 --- a/src/libpakfire/xfer.c +++ b/src/libpakfire/xfer.c @@ -340,6 +340,27 @@ ERROR: return r; } +// A helper function to create va_list +static int __pakfire_xfer_create_simple( + struct pakfire_xfer** xfer, struct pakfire_ctx* ctx, const char* url, ...) { + va_list args; + int r; + + va_start(args, url); + + // Create a new xfer + r = pakfire_xfer_create(xfer, ctx, url, args); + + va_end(args); + + return r; +} + +int pakfire_xfer_create_simple( + struct pakfire_xfer** xfer, struct pakfire_ctx* ctx, const char* url) { + return __pakfire_xfer_create_simple(xfer, ctx, "%s", url); +} + int pakfire_xfer_create(struct pakfire_xfer** xfer, struct pakfire_ctx* ctx, const char* url, va_list args) { struct pakfire_xfer* x = NULL; diff --git a/tests/libpakfire/httpclient.c b/tests/libpakfire/httpclient.c index 78d7fa947..b75771c23 100644 --- a/tests/libpakfire/httpclient.c +++ b/tests/libpakfire/httpclient.c @@ -50,7 +50,7 @@ static int test_one(const struct test* t) { int r = EXIT_FAILURE; // Create a new transfer - ASSERT_SUCCESS(pakfire_xfer_create(&xfer, t->ctx, t->httpclient, DOWNLOAD_URL)); + ASSERT_SUCCESS(pakfire_xfer_create_simple(&xfer, t->ctx, DOWNLOAD_URL)); // Set output buffer ASSERT_SUCCESS(pakfire_xfer_set_output_buffer(xfer, &buffer, &length)); @@ -74,25 +74,31 @@ FAIL: } static int __test_create_transfer(const struct test* t, struct pakfire_xfer** xfer, - const char* url, char** buffer, size_t* length) { + char** buffer, size_t* length, const char* url, ...) { + va_list args; int r; + va_start(args, url); + // Create a new transfer - r = pakfire_xfer_create(xfer, t->ctx, t->httpclient, url); + r = pakfire_xfer_create(xfer, t->ctx, url, args); if (r) - return r; + goto ERROR; // Set the output buffer r = pakfire_xfer_set_output_buffer(*xfer, buffer, length); if (r) - return r; + goto ERROR; // Enqueue the transfer r = pakfire_httpclient_enqueue_xfer(t->httpclient, *xfer); if (r) - return r; + goto ERROR; + +ERROR: + va_end(args); - return 0; + return r; } static int test_multiple(const struct test* t) { @@ -110,10 +116,10 @@ static int test_multiple(const struct test* t) { size_t length4 = 0; int r = EXIT_FAILURE; - ASSERT_SUCCESS(__test_create_transfer(t, &xfer1, DOWNLOAD_URL, &buffer1, &length1)); - ASSERT_SUCCESS(__test_create_transfer(t, &xfer2, DOWNLOAD_URL, &buffer2, &length2)); - ASSERT_SUCCESS(__test_create_transfer(t, &xfer3, DOWNLOAD_URL, &buffer3, &length3)); - ASSERT_SUCCESS(__test_create_transfer(t, &xfer4, DOWNLOAD_URL, &buffer4, &length4)); + ASSERT_SUCCESS(__test_create_transfer(t, &xfer1, &buffer1, &length1, "%s", DOWNLOAD_URL)); + ASSERT_SUCCESS(__test_create_transfer(t, &xfer2, &buffer2, &length2, "%s", DOWNLOAD_URL)); + ASSERT_SUCCESS(__test_create_transfer(t, &xfer3, &buffer3, &length3, "%s", DOWNLOAD_URL)); + ASSERT_SUCCESS(__test_create_transfer(t, &xfer4, &buffer4, &length4, "%s", DOWNLOAD_URL)); // Run it! ASSERT_SUCCESS(pakfire_httpclient_run(t->httpclient, "Downloading..."));