]> git.ipfire.org Git - people/ms/pakfire.git/commitdiff
downloader: Add a simple test that requires internet access
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Sep 2021 13:38:12 +0000 (13:38 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Sep 2021 13:38:12 +0000 (13:38 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
configure.ac
tests/libpakfire/downloader.c

index 18bb4057d1b473db1f462a6fa6c6080e2c97581e..b73afbaf5669086235c5e65b047df95d57dae458 100644 (file)
@@ -65,6 +65,17 @@ AS_IF([test "x$enable_debug" = "xyes"], [
        AC_DEFINE(ENABLE_DEBUG, [1], [Debug messages.])
 ])
 
+# Online Tests
+AC_ARG_ENABLE([online-tests],
+       AS_HELP_STRING(
+               [--enable-online-tests],
+               [enable tests that require internet access @<:@default=disabled@:>@]
+       ), [], [enable_online_tests=no]
+)
+AS_IF([test "x$enable_online_tests" = "xyes"], [
+       AC_DEFINE(ENABLE_ONLINE_TESTS, [1], [Online Tests])
+])
+
 # pkg-config
 PKG_PROG_PKG_CONFIG
 # This makes sure pkg.m4 is available.
@@ -260,6 +271,7 @@ AC_MSG_RESULT([
        $PACKAGE_NAME $VERSION
 
        Debug:                  ${enable_debug}
+       Online Tests:           ${enable_online_tests}
 
        CFLAGS:                 ${OUR_CFLAGS} ${CFLAGS}
        CPPFLAGS:               ${OUR_CPPFLAGS} ${CPPFLAGS}
index 5fe0bd3fa87abd8269f72ae95e4de6516c9a504f..9d2730c047d10832f44c038ade1779364e54098a 100644 (file)
@@ -117,10 +117,42 @@ FAIL:
        return r;
 }
 
+#ifdef ENABLE_ONLINE_TESTS
+
+static int test_retrieve_online(const struct test* t) {
+       struct pakfire_downloader* d = NULL;
+       int r = EXIT_FAILURE;
+
+       // Create downloader
+       ASSERT_SUCCESS(pakfire_downloader_create(&d, t->pakfire));
+
+       // Retrieve a file
+       ASSERT_SUCCESS(
+               pakfire_downloader_retrieve(d, NULL, NULL, NULL,
+                       "https://mirror1.ipfire.org/releases/pakfire/pakfire-0.9.27.tar.gz",
+                       DOWNLOAD_PATH, PAKFIRE_DIGEST_NONE, NULL, 0, 0)
+       );
+
+       // Everything passed
+       r = EXIT_SUCCESS;
+
+FAIL:
+       if (d)
+               pakfire_downloader_unref(d);
+
+       return r;
+}
+
+#endif /* ENABLE_ONLINE_TESTS */
+
 int main(int argc, char** argv) {
        testsuite_add_test(test_simple);
        testsuite_add_test(test_retrieve_with_pending_transfers);
        testsuite_add_test(test_retrieve_with_mirrors);
 
+#ifdef ENABLE_ONLINE_TESTS
+       testsuite_add_test(test_retrieve_online);
+#endif /* ENABLE_ONLINE_TESTS */
+
        return testsuite_run();
 }