]> git.ipfire.org Git - pakfire.git/commitdiff
tests: Make xfer tests compile and run again
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 13 Oct 2024 10:38:34 +0000 (10:38 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 13 Oct 2024 10:38:34 +0000 (10:38 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/include/pakfire/xfer.h
src/libpakfire/xfer.c
tests/libpakfire/httpclient.c

index 971285b818aa87a42d21ad401d431787dfbbd197..1c9f6f58b3d0b629b665c425379b0787e375a33d 100644 (file)
@@ -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)));
 
index c086b95436396726a4472b73b28dcfcb706c2143..39a3690797db3296c51e85b2713e112467b38a98 100644 (file)
@@ -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;
index 78d7fa947d40dfbcc3132de069364fee504ad7b3..b75771c2329820b33603b827a15f3e16e25a324b 100644 (file)
@@ -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..."));