diff options
Diffstat (limited to 'src/wire-plugins/test_wire_plugin.c')
-rw-r--r-- | src/wire-plugins/test_wire_plugin.c | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/src/wire-plugins/test_wire_plugin.c b/src/wire-plugins/test_wire_plugin.c deleted file mode 100644 index 65867113f..000000000 --- a/src/wire-plugins/test_wire_plugin.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - This file is part of TALER - (C) 2015, 2016, 2017 GNUnet e.V. and Inria - - TALER is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> -*/ -/** - * @file wire/test_wire_plugin.c - * @brief Tests for wire plugins - * @author Christian Grothoff - * @author Sree Harsha Totakura <sreeharsha@totakura.in> - */ -#include "platform.h" -#include "taler_util.h" -#include "taler_wire_lib.h" -#include "taler_wire_plugin.h" -#include <gnunet/gnunet_json_lib.h> - - -/** - * Definitions for a test with a plugin. - */ -struct TestBlock -{ - - /** - * Name of the plugin to test. - */ - const char *plugin_name; - - /** - * Amount to give to the rounding function. - */ - const char *round_in; - - /** - * Expected result from rounding. - */ - const char *round_out; - - /** - * Currency to give to the plugin. - */ - const char *currency; -}; - - -/** - * List of plugins and (unsigned) JSON account definitions - * to use for the tests. - */ -static struct TestBlock tests[] = { -#if HAVE_LIBCURL - { - .plugin_name = "taler_bank", - .round_in = "KUDOS:0.123456", - .round_out = "KUDOS:0.12", - .currency = "KUDOS" - }, -#endif - { - NULL, NULL, NULL, NULL - } -}; - - -/** - * Our configuration. - */ -static struct GNUNET_CONFIGURATION_Handle *cfg; - - -/** - * Run the test. - * - * @param test details of the test - * @param plugin plugin to test - * @return #GNUNET_OK on success - */ -static int -run_test (const struct TestBlock *test, - struct TALER_WIRE_Plugin *plugin) -{ - struct GNUNET_HashCode salt; - struct TALER_Amount in; - struct TALER_Amount expect; - - GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_NONCE, - &salt, - sizeof (salt)); - GNUNET_assert (GNUNET_OK == - TALER_string_to_amount (test->round_in, - &in)); - GNUNET_assert (GNUNET_OK == - TALER_string_to_amount (test->round_out, - &expect)); - if (GNUNET_OK != - plugin->amount_round (plugin->cls, - &in)) - { - GNUNET_break (0); - return GNUNET_SYSERR; - } - if (0 != TALER_amount_cmp (&in, &expect)) - { - GNUNET_break (0); - return GNUNET_SYSERR; - } - if (GNUNET_NO != - plugin->amount_round (plugin->cls, - &in)) - { - GNUNET_break (0); - return GNUNET_SYSERR; - } - memset (&in, 0, sizeof (in)); - GNUNET_log_skip (GNUNET_ERROR_TYPE_ERROR, 1); - if (GNUNET_SYSERR != - plugin->amount_round (plugin->cls, - &in)) - { - GNUNET_break (0); - return GNUNET_SYSERR; - } - return GNUNET_OK; -} - - -int -main (int argc, - const char *const argv[]) -{ - int ret; - struct TALER_WIRE_Plugin *plugin; - const struct TestBlock *test; - - GNUNET_log_setup ("test-wire-plugin", - "WARNING", - NULL); - cfg = GNUNET_CONFIGURATION_create (); - GNUNET_assert (GNUNET_OK == - GNUNET_CONFIGURATION_load (cfg, - "test_wire_plugin.conf")); - ret = GNUNET_OK; - for (unsigned int i = 0; NULL != (test = &tests[i])->plugin_name; i++) - { - GNUNET_CONFIGURATION_set_value_string (cfg, - "taler", - "CURRENCY", - test->currency); - plugin = TALER_WIRE_plugin_load (cfg, - test->plugin_name); - if (NULL == plugin) - { - TALER_LOG_ERROR ("Could not load plugin `%s'\n", - test->plugin_name); - return 77; - } - - ret = run_test (test, plugin); - TALER_WIRE_plugin_unload (plugin); - if (GNUNET_OK != ret) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "%s FAILED\n", - test->plugin_name); - break; - } - else - { - GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, - "%s PASS\n", - test->plugin_name); - } - } - GNUNET_CONFIGURATION_destroy (cfg); - if (GNUNET_OK != ret) - return 1; - return 0; -} |