three different test suites all set up and tear down the GnuPG homedir in the same way. By consolidating that code in testsuite.c we can improve it in a single place. --- tests/test-pgp.c | 10 ++-------- tests/test-pgpmime.c | 10 ++-------- tests/test-smime.c | 10 ++-------- tests/testsuite.c | 21 +++++++++++++++++++++ tests/testsuite.h | 3 +++ 5 files changed, 30 insertions(+), 24 deletions(-)
diff --git a/tests/test-pgp.c b/tests/test-pgp.c index 3e7a2a4..8fc755c 100644 --- a/tests/test-pgp.c +++ b/tests/test-pgp.c @@ -283,13 +283,7 @@ int main (int argc, char **argv) testsuite_init (argc, argv); - /* reset .gnupg config directory */ - if (system ("/bin/rm -rf ./tmp") != 0) - return EXIT_FAILURE; - if (system ("/bin/mkdir ./tmp") != 0) - return EXIT_FAILURE; - setenv ("GNUPGHOME", "./tmp/.gnupg", 1); - if (system ("gpg --list-keys > /dev/null 2>&1") != 0) + if (testsuite_setup_gpghome ()) return EXIT_FAILURE; for (i = 1; i < argc; i++) { @@ -404,7 +398,7 @@ int main (int argc, char **argv) g_mime_shutdown (); - if (system ("/bin/rm -rf ./tmp") != 0) + if (testsuite_destroy_gpghome ()) return EXIT_FAILURE; return testsuite_exit (); diff --git a/tests/test-pgpmime.c b/tests/test-pgpmime.c index b5a8b21..4cead27 100644 --- a/tests/test-pgpmime.c +++ b/tests/test-pgpmime.c @@ -419,13 +419,7 @@ int main (int argc, char *argv[]) testsuite_init (argc, argv); - /* reset .gnupg config directory */ - if (system ("/bin/rm -rf ./tmp") != 0) - return EXIT_FAILURE; - if (system ("/bin/mkdir ./tmp") != 0) - return EXIT_FAILURE; - setenv ("GNUPGHOME", "./tmp/.gnupg", 1); - if (system ("gpg --list-keys > /dev/null 2>&1") != 0) + if (testsuite_setup_gpghome ()) return EXIT_FAILURE; for (i = 1; i < argc; i++) { @@ -489,7 +483,7 @@ int main (int argc, char *argv[]) g_mime_shutdown (); - if (system ("/bin/rm -rf ./tmp") != 0) + if (testsuite_destroy_gpghome ()) return EXIT_FAILURE; return testsuite_exit (); diff --git a/tests/test-smime.c b/tests/test-smime.c index f05e03a..f35fbb7 100644 --- a/tests/test-smime.c +++ b/tests/test-smime.c @@ -420,13 +420,7 @@ int main (int argc, char *argv[]) testsuite_init (argc, argv); - /* reset .gnupg config directory */ - if (system ("/bin/rm -rf ./tmp") != 0) - return EXIT_FAILURE; - if (system ("/bin/mkdir ./tmp") != 0) - return EXIT_FAILURE; - g_setenv ("GNUPGHOME", "./tmp/.gnupg", 1); - if (system ("gpg --list-keys > /dev/null 2>&1") != 0) + if (testsuite_setup_gpghome ()) return EXIT_FAILURE; for (i = 1; i < argc; i++) { @@ -490,7 +484,7 @@ int main (int argc, char *argv[]) g_mime_shutdown (); - if (system ("/bin/rm -rf ./tmp") != 0) + if (testsuite_destroy_gpghome ()) return EXIT_FAILURE; return testsuite_exit (); diff --git a/tests/testsuite.c b/tests/testsuite.c index 2b72301..acd36a5 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -346,6 +346,27 @@ g_throw (Exception *ex) longjmp (env->env, 1); } +int +testsuite_setup_gpghome () +{ + /* reset .gnupg config directory */ + if (system ("/bin/rm -rf ./tmp") != 0) + return EXIT_FAILURE; + if (system ("/bin/mkdir ./tmp") != 0) + return EXIT_FAILURE; + g_setenv ("GNUPGHOME", "./tmp/.gnupg", 1); + if (system ("gpg --list-keys > /dev/null 2>&1") != 0) + return EXIT_FAILURE; + return EXIT_SUCCESS; +} + +int +testsuite_destroy_gpghome () +{ + if (system ("/bin/rm -rf ./tmp") != 0) + return EXIT_FAILURE; + return EXIT_SUCCESS; +} #ifdef BUILD int main (int argc, char **argv) diff --git a/tests/testsuite.h b/tests/testsuite.h index ece9014..6c92a5a 100644 --- a/tests/testsuite.h +++ b/tests/testsuite.h @@ -45,6 +45,9 @@ void testsuite_check_passed (void); int testsuite_total_errors (void); +/* for those parts of the test suite that use GnuPG */ +int testsuite_setup_gpghome (void); +int testsuite_destroy_gpghome (void); /*#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) #define G_GNUC_NORETURN __attribute__((noreturn)) -- 2.10.2 _______________________________________________ gmime-devel-list mailing list gmime-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gmime-devel-list