aboutsummaryrefslogtreecommitdiff
path: root/src/testing/testing_api_cmd_connect_with_state.c
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2023-07-10 10:25:29 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2023-07-10 10:25:29 +0200
commit6107e995595d4057afaa0431f3af9afdce32feea (patch)
tree80879300924d0f7d574741bb4059d4b7645fbe6d /src/testing/testing_api_cmd_connect_with_state.c
parent3024dc9fa54e8677b4816e56f8d215556a7d5561 (diff)
parentc05f832048f06dfcd0a7fd003c0b7033df07c3c4 (diff)
Merge branch 'master' of ssh://git.taler.net/exchange
Diffstat (limited to 'src/testing/testing_api_cmd_connect_with_state.c')
-rw-r--r--src/testing/testing_api_cmd_connect_with_state.c208
1 files changed, 0 insertions, 208 deletions
diff --git a/src/testing/testing_api_cmd_connect_with_state.c b/src/testing/testing_api_cmd_connect_with_state.c
deleted file mode 100644
index caeef90bf..000000000
--- a/src/testing/testing_api_cmd_connect_with_state.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- This file is part of TALER
- (C) 2018-2023 Taler Systems SA
-
- 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 testing/testing_api_cmd_connect_with_state.c
- * @brief Lets tests use the keys deserialization API.
- * @author Marcello Stanisci
- */
-#include "platform.h"
-#include <jansson.h>
-#include "taler_testing_lib.h"
-
-
-// FIXME: this is now duplicated with testing_api_cmd_check_keys!
-// FIXME: this is now duplicated with testing_api_cmd_get_exchange!
-
-/**
- * Internal state for a connect-with-state CMD.
- */
-struct ConnectWithStateState
-{
-
- /**
- * Reference to a CMD that offers a serialized key-state
- * that will be used in the reconnection.
- */
- const char *state_reference;
-
- /**
- * Interpreter state.
- */
- struct TALER_TESTING_Interpreter *is;
-
- /**
- * New exchange handle.
- */
- struct TALER_EXCHANGE_GetKeysHandle *exchange;
-
- /**
- * Keys handle.
- */
- struct TALER_EXCHANGE_Keys *keys;
-};
-
-
-static void
-cert_cb (void *cls,
- const struct TALER_EXCHANGE_KeysResponse *kr,
- struct TALER_EXCHANGE_Keys *keys)
-{
- struct ConnectWithStateState *cwss = cls;
- struct TALER_TESTING_Interpreter *is = cwss->is;
- const struct TALER_EXCHANGE_HttpResponse *hr = &kr->hr;
-
- cwss->exchange = NULL;
- switch (hr->http_status)
- {
- case MHD_HTTP_OK:
- /* dealt with below */
- break;
- default:
- GNUNET_break (0);
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- "Got failure response %u/%d for /keys!\n",
- hr->http_status,
- (int) hr->ec);
- TALER_TESTING_interpreter_fail (is);
- return;
- }
- cwss->keys = keys;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Got %d DK from /keys\n",
- kr->details.ok.keys->num_denom_keys);
- TALER_TESTING_interpreter_next (is);
-}
-
-
-/**
- * Run the command.
- *
- * @param cls closure.
- * @param cmd the command to execute.
- * @param is the interpreter state.
- */
-static void
-connect_with_state_run (void *cls,
- const struct TALER_TESTING_Command *cmd,
- struct TALER_TESTING_Interpreter *is)
-{
- struct ConnectWithStateState *cwss = cls;
- const struct TALER_TESTING_Command *state_cmd;
- const json_t *serialized_keys;
- const char *exchange_url;
-
- cwss->is = is;
- state_cmd = TALER_TESTING_interpreter_lookup_command (is,
- cwss->state_reference);
- if (NULL == state_cmd)
- {
- /* Command providing serialized keys not found. */
- GNUNET_break (0);
- TALER_TESTING_interpreter_fail (is);
- return;
- }
- GNUNET_assert (GNUNET_OK ==
- TALER_TESTING_get_trait_exchange_keys (state_cmd,
- &serialized_keys));
- GNUNET_assert (GNUNET_OK ==
- TALER_TESTING_get_trait_exchange_url (state_cmd,
- &exchange_url));
- cwss->exchange
- = TALER_EXCHANGE_get_keys (
- TALER_TESTING_interpreter_get_context (is),
- exchange_url,
- TALER_EXCHANGE_keys_from_json (serialized_keys),
- &cert_cb,
- cwss);
-}
-
-
-/**
- * Offer exchange connection as trait.
- *
- * @param cls closure.
- * @param[out] ret result.
- * @param trait name of the trait.
- * @param index index number of the object to offer.
- * @return #GNUNET_OK on success.
- */
-static enum GNUNET_GenericReturnValue
-connect_with_state_traits (void *cls,
- const void **ret,
- const char *trait,
- unsigned int index)
-{
- struct ConnectWithStateState *cwss = cls;
- struct TALER_TESTING_Trait traits[] = {
- TALER_TESTING_make_trait_keys (cwss->keys),
- // FIXME: also expose exchange_url as trait
- TALER_TESTING_trait_end ()
- };
-
- return TALER_TESTING_get_trait (traits,
- ret,
- trait,
- index);
-}
-
-
-/**
- * Cleanup the state of a "connect with state" CMD. Just
- * a placeholder to avoid jumping on an invalid address.
- *
- * @param cls closure.
- * @param cmd the command which is being cleaned up.
- */
-static void
-connect_with_state_cleanup (void *cls,
- const struct TALER_TESTING_Command *cmd)
-{
- struct ConnectWithStateState *cwss = cls;
-
- TALER_EXCHANGE_keys_decref (cwss->keys);
- cwss->keys = NULL;
- if (NULL != cwss->exchange)
- {
- TALER_EXCHANGE_get_keys_cancel (cwss->exchange);
- cwss->exchange = NULL;
- }
- GNUNET_free (cwss);
-}
-
-
-struct TALER_TESTING_Command
-TALER_TESTING_cmd_connect_with_state (const char *label,
- const char *state_reference)
-{
- struct ConnectWithStateState *cwss;
-
- cwss = GNUNET_new (struct ConnectWithStateState);
- cwss->state_reference = state_reference;
- {
- struct TALER_TESTING_Command cmd = {
- .cls = cwss,
- .label = label,
- .run = connect_with_state_run,
- .cleanup = connect_with_state_cleanup,
- .traits = connect_with_state_traits
- };
-
- return cmd;
- }
-}