diff options
author | Alexander Larsson <alexander.larsson@gmail.com> | 2016-01-29 08:54:58 +0100 |
---|---|---|
committer | Alexander Larsson <alexander.larsson@gmail.com> | 2016-01-29 08:54:58 +0100 |
commit | a0a1bc4d0be5c6b3c85a1253d533d331b94e051d (patch) | |
tree | 1de016ef0516c580a4fb190ec45f10aeb36fc0a4 /tests/test-doc-portal.c | |
parent | f0e87af9295710ef0ce9a8fedd267b70eb57a7a1 (diff) | |
parent | aaae0d0b6db23b16ac4f5e455d29cc7b02c8c914 (diff) | |
download | xdg-app-a0a1bc4d0be5c6b3c85a1253d533d331b94e051d.tar.gz |
Merge pull request #108 from smcv/no-fuse
Fix `make check` when FUSE is unavailable
Diffstat (limited to 'tests/test-doc-portal.c')
-rw-r--r-- | tests/test-doc-portal.c | 57 |
1 files changed, 49 insertions, 8 deletions
diff --git a/tests/test-doc-portal.c b/tests/test-doc-portal.c index f98eb92..d675360 100644 --- a/tests/test-doc-portal.c +++ b/tests/test-doc-portal.c @@ -21,6 +21,7 @@ GTestDBus *dbus; GDBusConnection *session_bus; XdpDbusDocuments *documents; char *mountpoint; +static gboolean have_fuse; static char * make_doc_dir (const char *id, const char *app) @@ -157,6 +158,12 @@ test_create_doc (void) const char *basename = "a-file"; GError *error = NULL; + if (!have_fuse) + { + g_test_skip ("this test requires FUSE"); + return; + } + id = export_new_file (basename, "content", FALSE); assert_doc_has_contents (id, basename, NULL, "content"); @@ -191,6 +198,12 @@ test_recursive_doc (void) g_autofree char *path = NULL; g_autofree char *app_path = NULL; + if (!have_fuse) + { + g_test_skip ("this test requires FUSE"); + return; + } + id = export_new_file (basename, "recursive-content", FALSE); assert_doc_has_contents (id, basename, NULL, "recursive-content"); @@ -211,14 +224,23 @@ test_recursive_doc (void) g_assert_cmpstr (id, ==, id3); } -int -main (int argc, char **argv) +static void +global_setup (void) { - int res; gboolean inited; + g_autofree gchar *fusermount = NULL; GError *error = NULL; gint exit_status; + fusermount = g_find_program_in_path ("fusermount"); + /* cache result so subsequent tests can be marked as skipped */ + have_fuse = (access ("/dev/fuse", W_OK) == 0 && + fusermount != NULL && + g_file_test (fusermount, G_FILE_TEST_IS_EXECUTABLE)); + + if (!have_fuse) + return; + g_mkdtemp (outdir); g_print ("outdir: %s\n", outdir); @@ -251,13 +273,15 @@ main (int argc, char **argv) g_assert_no_error (error); g_assert (inited); g_assert (mountpoint != NULL); +} - g_test_init (&argc, &argv, NULL); - - g_test_add_func ("/db/create_doc", test_create_doc); - g_test_add_func ("/db/recursive_doc", test_recursive_doc); +static void +global_teardown (void) +{ + GError *error = NULL; - res = g_test_run (); + if (!have_fuse) + return; g_free (mountpoint); @@ -277,6 +301,23 @@ main (int argc, char **argv) sleep (1); glnx_shutil_rm_rf_at (-1, outdir, NULL, NULL); +} + +int +main (int argc, char **argv) +{ + int res; + + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/db/create_doc", test_create_doc); + g_test_add_func ("/db/recursive_doc", test_recursive_doc); + + global_setup (); + + res = g_test_run (); + + global_teardown (); return res; } |