From 5e87b47c487ccf29ac907d922bef39bc74867af7 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 18 Jun 2015 14:25:09 +0200 Subject: add test mode option to mint --- contrib/mint-template/config/mint-common.conf | 3 ++- src/mint-lib/test-mint-home/master.priv | 1 + src/mint-lib/test_mint_api.c | 11 +++++++++++ src/mint/taler-mint-httpd.c | 26 ++++++++++++++++++++++++++ src/mint/taler-mint-httpd.h | 5 +++++ src/mint/taler-mint-httpd_db.c | 12 ++++++------ 6 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 src/mint-lib/test-mint-home/master.priv diff --git a/contrib/mint-template/config/mint-common.conf b/contrib/mint-template/config/mint-common.conf index 918f0f62a..e222a36a1 100644 --- a/contrib/mint-template/config/mint-common.conf +++ b/contrib/mint-template/config/mint-common.conf @@ -14,7 +14,8 @@ MASTER_PUBLIC_KEY = NEGTF62MNGVPZNW19V7S3CRS9D7K04MAHDGX3N6WY2NXREN26J80 # How to access our database DB = postgres +TESTRUN = YES [mintdb-postgres] -DB_CONN_STR = "postgres:///taler" +DB_CONN_STR = "postgres:///talercheck" diff --git a/src/mint-lib/test-mint-home/master.priv b/src/mint-lib/test-mint-home/master.priv new file mode 100644 index 000000000..394926938 --- /dev/null +++ b/src/mint-lib/test-mint-home/master.priv @@ -0,0 +1 @@ +p^-33XX!\0qmU_ \ No newline at end of file diff --git a/src/mint-lib/test_mint_api.c b/src/mint-lib/test_mint_api.c index f80b32066..7252337f9 100644 --- a/src/mint-lib/test_mint_api.c +++ b/src/mint-lib/test_mint_api.c @@ -204,11 +204,22 @@ int main (int argc, char * const *argv) { + struct GNUNET_OS_Process *proc; struct GNUNET_OS_Process *mintd; GNUNET_log_setup ("test-mint-api", "WARNING", NULL); + proc = GNUNET_OS_start_process (GNUNET_NO, + GNUNET_OS_INHERIT_STD_ALL, + NULL, NULL, NULL, + "taler-mint-keyup", + "taler-mint-keyup", + "-d", "test-mint-home", + "-m", "test-mint-home/master.priv", + NULL); + GNUNET_OS_process_wait (proc); + GNUNET_OS_process_destroy (proc); mintd = GNUNET_OS_start_process (GNUNET_NO, GNUNET_OS_INHERIT_STD_ALL, NULL, NULL, NULL, diff --git a/src/mint/taler-mint-httpd.c b/src/mint/taler-mint-httpd.c index 0d221444f..d74ecf022 100644 --- a/src/mint/taler-mint-httpd.c +++ b/src/mint/taler-mint-httpd.c @@ -68,6 +68,11 @@ char *TMH_expected_wire_format; */ struct TALER_MINTDB_Plugin *TMH_plugin; +/** + * Are we running in test mode? + */ +int TMH_test_mode; + /** * The HTTP Daemon. */ @@ -368,6 +373,17 @@ mint_serve_process_config (const char *mint_directory) "Failed to initialize DB subsystem\n"); return GNUNET_SYSERR; } + if (GNUNET_YES == + GNUNET_CONFIGURATION_get_value_yesno (cfg, + "mint", + "TESTRUN")) + { + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "Running in TEST mode! Database contents will not persist!\n"); + TMH_test_mode = GNUNET_YES; + TMH_plugin->create_tables (TMH_plugin->cls, + GNUNET_YES); + } if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, @@ -452,6 +468,16 @@ main (int argc, char *const *argv) ret = TMH_KS_loop (); MHD_stop_daemon (mydaemon); + if (GNUNET_YES == TMH_test_mode) + { + struct TALER_MINTDB_Session *session; + + session = TMH_plugin->get_session (TMH_plugin->cls, + GNUNET_YES); + TMH_plugin->drop_temporary (TMH_plugin->cls, + session); + } + TALER_MINTDB_plugin_unload (TMH_plugin); return (GNUNET_OK == ret) ? 0 : 1; } diff --git a/src/mint/taler-mint-httpd.h b/src/mint/taler-mint-httpd.h index c674a9daa..a54e5aa2e 100644 --- a/src/mint/taler-mint-httpd.h +++ b/src/mint/taler-mint-httpd.h @@ -37,6 +37,11 @@ extern char *TMH_mint_currency_string; */ extern struct GNUNET_CONFIGURATION_Handle *cfg; +/** + * Are we running in test mode? + */ +extern int TMH_test_mode; + /** * Main directory with mint data. */ diff --git a/src/mint/taler-mint-httpd_db.c b/src/mint/taler-mint-httpd_db.c index 8a46a1839..c51f58205 100644 --- a/src/mint/taler-mint-httpd_db.c +++ b/src/mint/taler-mint-httpd_db.c @@ -107,7 +107,7 @@ TMH_DB_execute_deposit (struct MHD_Connection *connection, int ret; if (NULL == (session = TMH_plugin->get_session (TMH_plugin->cls, - GNUNET_NO))) + TMH_test_mode))) { GNUNET_break (0); return TMH_RESPONSE_reply_internal_db_error (connection); @@ -222,7 +222,7 @@ TMH_DB_execute_withdraw_status (struct MHD_Connection *connection, int res; if (NULL == (session = TMH_plugin->get_session (TMH_plugin->cls, - GNUNET_NO))) + TMH_test_mode))) { GNUNET_break (0); return TMH_RESPONSE_reply_internal_db_error (connection); @@ -288,7 +288,7 @@ TMH_DB_execute_withdraw_sign (struct MHD_Connection *connection, &h_blind); if (NULL == (session = TMH_plugin->get_session (TMH_plugin->cls, - GNUNET_NO))) + TMH_test_mode))) { GNUNET_break (0); return TMH_RESPONSE_reply_internal_db_error (connection); @@ -615,7 +615,7 @@ TMH_DB_execute_refresh_melt (struct MHD_Connection *connection, if (NULL == (session = TMH_plugin->get_session (TMH_plugin->cls, - GNUNET_NO))) + TMH_test_mode))) { GNUNET_break (0); return TMH_RESPONSE_reply_internal_db_error (connection); @@ -1071,7 +1071,7 @@ TMH_DB_execute_refresh_reveal (struct MHD_Connection *connection, unsigned int off; if (NULL == (session = TMH_plugin->get_session (TMH_plugin->cls, - GNUNET_NO))) + TMH_test_mode))) { GNUNET_break (0); return TMH_RESPONSE_reply_internal_db_error (connection); @@ -1335,7 +1335,7 @@ TMH_DB_execute_refresh_link (struct MHD_Connection *connection, unsigned int i; if (NULL == (ctx.session = TMH_plugin->get_session (TMH_plugin->cls, - GNUNET_NO))) + TMH_test_mode))) { GNUNET_break (0); return TMH_RESPONSE_reply_internal_db_error (connection); -- cgit v1.2.3