Terminate gpg-agent after using it for tests

Signed-off-by: Simon McVittie <smcv@debian.org>
tingping/wmclass
Simon McVittie 2016-09-07 22:07:07 +01:00
parent 0160ed937d
commit 57bfce9a55
3 changed files with 27 additions and 0 deletions

View File

@ -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
}

View File

@ -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

View File

@ -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", "<placeholder>", "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);
}