From 57bfce9a55a2046e7200e700db775352f8972cf0 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 7 Sep 2016 22:07:07 +0100 Subject: [PATCH] Terminate gpg-agent after using it for tests Signed-off-by: Simon McVittie --- tests/libtest.sh | 1 + tests/make-test-bundles.sh | 2 ++ tests/testlibrary.c | 24 ++++++++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/tests/libtest.sh b/tests/libtest.sh index cf74760d..6b4414a9 100644 --- a/tests/libtest.sh +++ b/tests/libtest.sh @@ -264,6 +264,7 @@ fi cleanup () { /bin/kill $DBUS_SESSION_BUS_PID + gpg-connect-agent --homedir "${FL_GPG_HOMEDIR}" killagent /bye || true fusermount -u $XDG_RUNTIME_DIR/doc || : rm -rf $TEST_DATA_DIR } diff --git a/tests/make-test-bundles.sh b/tests/make-test-bundles.sh index fda23135..7b7ea64b 100755 --- a/tests/make-test-bundles.sh +++ b/tests/make-test-bundles.sh @@ -25,3 +25,5 @@ flatpak build-bundle repo --repo-url=${URL} --gpg-keys=test-keyring/pubring.gpg REF=`(cd repo/refs/heads; echo runtime/org.test.Platform/*/master)` ostree gpg-sign --repo=repo --gpg-homedir=test-keyring ${REF} 7B0961FD flatpak build-bundle --runtime repo --repo-url=${URL} --gpg-keys=test-keyring/pubring.gpg platform.flatpak org.test.Platform + +gpg-connect-agent --homedir test-keyring killagent /bye || true diff --git a/tests/testlibrary.c b/tests/testlibrary.c index e6baf44c..6a7db875 100644 --- a/tests/testlibrary.c +++ b/tests/testlibrary.c @@ -668,9 +668,33 @@ global_setup (void) static void global_teardown (void) { + int status; + g_autoptr (GError) error = NULL; + char *argv[] = { "gpg-connect-agent", "--homedir", "", "killagent", "/bye", NULL }; + GSpawnFlags flags = G_SPAWN_SEARCH_PATH; + if (g_getenv ("SKIP_TEARDOWN")) return; + argv[2] = gpg_homedir; + + if (g_test_verbose ()) + { + g_autofree char *commandline = g_strjoinv (" ", argv); + g_print ("running %s\n", commandline); + } + else + { + flags |= G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL; + } + + /* mostly ignore failure here */ + if (!g_spawn_sync (NULL, (char **)argv, NULL, flags, NULL, NULL, NULL, NULL, &status, &error) || + !g_spawn_check_exit_status (status, &error)) + { + g_print ("# failed to run gpg-connect-agent to stop gpg-agent: %s\n", error->message); + } + glnx_shutil_rm_rf_at (-1, testdir, NULL, NULL); g_free (testdir); }