From 31ad6aaf116d00cafa29efe659c3076da0d09692 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 2 May 2016 08:46:17 +0200 Subject: separate interpreter from the rest of the test logic --- src/bank-lib/test_bank_interpreter.h | 127 +++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 src/bank-lib/test_bank_interpreter.h (limited to 'src/bank-lib/test_bank_interpreter.h') diff --git a/src/bank-lib/test_bank_interpreter.h b/src/bank-lib/test_bank_interpreter.h new file mode 100644 index 000000000..35873840a --- /dev/null +++ b/src/bank-lib/test_bank_interpreter.h @@ -0,0 +1,127 @@ +/* + This file is part of TALER + Copyright (C) 2016 GNUnet e.V. + + 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, If not, see +*/ +/** + * @file bank/test_bank_interpreter.h + * @brief interpreter for tests of the bank's HTTP API interface + * @author Christian Grothoff + */ +#ifndef TEST_BANK_INTERPRETER_H +#define TEST_BANK_INTERPRETER_H + +#include "taler_util.h" +#include "taler_signatures.h" +#include "taler_bank_service.h" +#include +#include +#include + + +/** + * Opcodes for the interpreter. + */ +enum TBI_OpCode +{ + /** + * Termination code, stops the interpreter loop (with success). + */ + TBI_OC_END = 0, + + /** + * Add funds to a reserve by (faking) incoming wire transfer. + */ + TBI_OC_ADMIN_ADD_INCOMING + +}; + + +/** + * Details for a bank operation to execute. + */ +struct TBI_Command +{ + /** + * Opcode of the command. + */ + enum TBI_OpCode oc; + + /** + * Label for the command, can be NULL. + */ + const char *label; + + /** + * Which response code do we expect for this command? + */ + unsigned int expected_response_code; + + /** + * Details about the command. + */ + union + { + + /** + * Information for a #TBI_OC_ADMIN_ADD_INCOMING command. + */ + struct + { + + /** + * String describing the amount to add to the reserve. + */ + const char *amount; + + /** + * Credited account number. + */ + uint64_t credit_account_no; + + /** + * Debited account number. + */ + uint64_t debit_account_no; + + /** + * Wire transfer identifier to use. Initialized to + * a random value. + */ + struct TALER_WireTransferIdentifierRawP wtid; + + /** + * Set to the API's handle during the operation. + */ + struct TALER_BANK_AdminAddIncomingHandle *aih; + + } admin_add_incoming; + + } details; + +}; + + +/** + * Entry point to the interpeter. + * + * @param resultp where to store the final result + * @param bank_port on which port to launch the bank, 0 for none + * @param commands list of commands to run + */ +void +TBI_run_interpreter (int *resultp, + uint16_t bank_port, + struct TBI_Command *commands); + +#endif -- cgit v1.2.3