fix shutdown logic of test

This commit is contained in:
Christian Grothoff 2020-03-15 00:36:15 +01:00
parent b3a52548fd
commit f8095d7297
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC

View File

@ -71,6 +71,24 @@ static char *config_filename;
TALER_TESTING_cmd_exec_transfer (label "-transfer", cfg_fn) TALER_TESTING_cmd_exec_transfer (label "-transfer", cfg_fn)
/**
* Function run on shutdown to unload the DB plugin.
*
* @param cls NULL
*/
static void
unload_db (void *cls)
{
(void) cls;
if (NULL != dbc.plugin)
{
dbc.plugin->drop_tables (dbc.plugin->cls);
TALER_EXCHANGEDB_plugin_unload (dbc.plugin);
dbc.plugin = NULL;
}
}
/** /**
* Collects all the tests. * Collects all the tests.
*/ */
@ -431,6 +449,8 @@ run (void *cls,
TALER_TESTING_cmd_end () TALER_TESTING_cmd_end ()
}; };
GNUNET_SCHEDULER_add_shutdown (&unload_db,
NULL);
TALER_TESTING_run_with_fakebank (is, TALER_TESTING_run_with_fakebank (is,
all, all,
bc.exchange_auth.wire_gateway_url); bc.exchange_auth.wire_gateway_url);
@ -473,8 +493,6 @@ prepare_database (void *cls,
cfg, cfg,
NULL, // no exchange process handle. NULL, // no exchange process handle.
GNUNET_NO); // do not try to connect to the exchange GNUNET_NO); // do not try to connect to the exchange
return GNUNET_OK; return GNUNET_OK;
} }
@ -524,18 +542,16 @@ main (int argc,
return 77; return 77;
} }
if (GNUNET_OK != GNUNET_CONFIGURATION_parse_and_run (config_filename, if (GNUNET_OK !=
GNUNET_CONFIGURATION_parse_and_run (config_filename,
&prepare_database, &prepare_database,
NULL)) NULL))
{ {
TALER_LOG_WARNING ("Could not prepare database for tests.\n"); TALER_LOG_WARNING ("Could not prepare database for tests.\n");
return result; return result;
} }
GNUNET_free (config_filename); GNUNET_free (config_filename);
GNUNET_free (testname); GNUNET_free (testname);
dbc.plugin->drop_tables (dbc.plugin->cls);
TALER_EXCHANGEDB_plugin_unload (dbc.plugin);
return GNUNET_OK == result ? 0 : 1; return GNUNET_OK == result ? 0 : 1;
} }