add separate commands for closer/transfer steps, modify test cases to use new commands
This commit is contained in:
parent
b91fcbb92f
commit
8d5f42fe0c
@ -1100,32 +1100,57 @@ TALER_TESTING_cmd_exec_wirewatch (const char *label,
|
||||
* @param label command label.
|
||||
* @param config_filename configuration file for the
|
||||
* aggregator to use.
|
||||
*
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
TALER_TESTING_cmd_exec_aggregator (const char *label,
|
||||
const char *config_filename);
|
||||
|
||||
|
||||
/**
|
||||
* Make a "closer" CMD.
|
||||
*
|
||||
* @param label command label.
|
||||
* @param config_filename configuration file for the
|
||||
* closer to use.
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
TALER_TESTING_cmd_exec_closer (const char *label,
|
||||
const char *config_filename);
|
||||
|
||||
|
||||
/**
|
||||
* Make a "transfer" CMD.
|
||||
*
|
||||
* @param label command label.
|
||||
* @param config_filename configuration file for the
|
||||
* transfer to use.
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
TALER_TESTING_cmd_exec_transfer (const char *label,
|
||||
const char *config_filename);
|
||||
|
||||
|
||||
/**
|
||||
* Make the "keyup" CMD.
|
||||
*
|
||||
* @param label command label.
|
||||
* @param config_filename configuration filename.
|
||||
*
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
TALER_TESTING_cmd_exec_keyup (const char *label,
|
||||
const char *config_filename);
|
||||
|
||||
|
||||
/**
|
||||
* Make the "keyup" CMD, with "--timestamp" option.
|
||||
*
|
||||
* @param label command label.
|
||||
* @param config_filename configuration filename.
|
||||
* @param now Unix timestamp representing the fake "now".
|
||||
*
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
@ -1161,7 +1186,6 @@ TALER_TESTING_cmd_check_keys_with_now (const char *label,
|
||||
*
|
||||
* @param label command label
|
||||
* @param config_filename configuration filename
|
||||
*
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
@ -1196,7 +1220,6 @@ TALER_TESTING_cmd_withdraw_amount (const char *label,
|
||||
* from; will provide reserve priv to sign the request.
|
||||
* @param dk denomination public key.
|
||||
* @param expected_response_code expected HTTP response code.
|
||||
*
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
@ -1228,7 +1251,6 @@ TALER_TESTING_cmd_withdraw_with_retry (struct TALER_TESTING_Command cmd);
|
||||
* @param expected_fee the fee the exchange should charge.
|
||||
* @param expected_response_code the HTTP response the exchange
|
||||
* should return.
|
||||
*
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
@ -1239,13 +1261,12 @@ TALER_TESTING_cmd_wire (const char *label,
|
||||
|
||||
|
||||
/**
|
||||
* Create a "reserve status" command.
|
||||
* Create a GET "reserves" command.
|
||||
*
|
||||
* @param label the command label.
|
||||
* @param reserve_reference reference to the reserve to check.
|
||||
* @param expected_balance expected balance for the reserve.
|
||||
* @param expected_response_code expected HTTP response code.
|
||||
*
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
@ -1271,7 +1292,6 @@ TALER_TESTING_cmd_status (const char *label,
|
||||
* @param refund_deadline refund deadline, zero means 'no refunds'.
|
||||
* @param amount how much is going to be deposited.
|
||||
* @param expected_response_code expected HTTP response code.
|
||||
*
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
|
@ -51,9 +51,11 @@ libtalertesting_la_SOURCES = \
|
||||
testing_api_cmd_check_keys.c \
|
||||
testing_api_cmd_deposit.c \
|
||||
testing_api_cmd_exec_aggregator.c \
|
||||
testing_api_cmd_exec_wirewatch.c \
|
||||
testing_api_cmd_exec_keyup.c \
|
||||
testing_api_cmd_exec_auditor-sign.c \
|
||||
testing_api_cmd_exec_closer.c \
|
||||
testing_api_cmd_exec_keyup.c \
|
||||
testing_api_cmd_exec_transfer.c \
|
||||
testing_api_cmd_exec_wirewatch.c \
|
||||
testing_api_cmd_recoup.c \
|
||||
testing_api_cmd_refund.c \
|
||||
testing_api_cmd_refresh.c \
|
||||
|
@ -64,13 +64,15 @@ static struct TALER_TESTING_BankConfiguration bc;
|
||||
TALER_TESTING_cmd_exec_wirewatch (label, CONFIG_FILE)
|
||||
|
||||
/**
|
||||
* Execute the taler-exchange-aggregator command with
|
||||
* Execute the taler-exchange-aggregator, closer and transfer commands with
|
||||
* our configuration file.
|
||||
*
|
||||
* @param label label to use for the command.
|
||||
*/
|
||||
#define CMD_EXEC_AGGREGATOR(label) \
|
||||
TALER_TESTING_cmd_exec_aggregator (label, CONFIG_FILE)
|
||||
TALER_TESTING_cmd_exec_aggregator (label, CONFIG_FILE), \
|
||||
TALER_TESTING_cmd_exec_closer (label, CONFIG_FILE), \
|
||||
TALER_TESTING_cmd_exec_transfer (label, CONFIG_FILE)
|
||||
|
||||
/**
|
||||
* Run wire transfer of funds from some user's account to the
|
||||
|
@ -65,13 +65,16 @@ static struct TALER_TESTING_BankConfiguration bc;
|
||||
TALER_TESTING_cmd_exec_wirewatch (label, CONFIG_FILE)
|
||||
|
||||
/**
|
||||
* Execute the taler-exchange-aggregator command with
|
||||
* Execute the taler-exchange-aggregator, closer and transfer commands with
|
||||
* our configuration file.
|
||||
*
|
||||
* @param label label to use for the command.
|
||||
*/
|
||||
#define CMD_EXEC_AGGREGATOR(label) \
|
||||
TALER_TESTING_cmd_exec_aggregator (label, CONFIG_FILE)
|
||||
TALER_TESTING_cmd_exec_aggregator (label "-aggregator", CONFIG_FILE), \
|
||||
TALER_TESTING_cmd_exec_closer (label "-closer", CONFIG_FILE), \
|
||||
TALER_TESTING_cmd_exec_transfer (label "-transfer", CONFIG_FILE)
|
||||
|
||||
|
||||
/**
|
||||
* Run wire transfer of funds from some user's account to the
|
||||
@ -547,7 +550,8 @@ run (void *cls,
|
||||
* Run transfers. This will do the transfer as refund deadline
|
||||
* was 0, except of course because the refund succeeded, the
|
||||
* transfer should no longer be done.
|
||||
*/CMD_EXEC_AGGREGATOR ("run-aggregator-3b"),
|
||||
*///
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-3b"),
|
||||
/* check that aggregator didn't do anything, as expected */
|
||||
TALER_TESTING_cmd_check_bank_empty ("check-refund-fast-not-run"),
|
||||
TALER_TESTING_cmd_end ()
|
||||
@ -621,8 +625,10 @@ run (void *cls,
|
||||
TALER_TESTING_cmd_exec_wirewatch ("short-lived-aggregation",
|
||||
CONFIG_FILE_EXPIRE_RESERVE_NOW),
|
||||
|
||||
TALER_TESTING_cmd_exec_aggregator ("close-reserves",
|
||||
CONFIG_FILE_EXPIRE_RESERVE_NOW),
|
||||
TALER_TESTING_cmd_exec_closer ("close-reserves",
|
||||
CONFIG_FILE_EXPIRE_RESERVE_NOW),
|
||||
TALER_TESTING_cmd_exec_transfer ("close-reserves-transfer",
|
||||
CONFIG_FILE_EXPIRE_RESERVE_NOW),
|
||||
|
||||
TALER_TESTING_cmd_status ("short-lived-status",
|
||||
"short-lived-reserve",
|
||||
@ -740,8 +746,8 @@ run (void *cls,
|
||||
= TALER_TESTING_cmd_exec_wirewatch ("reserve-open-close-wirewatch",
|
||||
CONFIG_FILE_EXPIRE_RESERVE_NOW);
|
||||
reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 2]
|
||||
= TALER_TESTING_cmd_exec_aggregator ("reserve-open-close-aggregation",
|
||||
CONFIG_FILE_EXPIRE_RESERVE_NOW);
|
||||
= TALER_TESTING_cmd_exec_closer ("reserve-open-close-aggregation",
|
||||
CONFIG_FILE_EXPIRE_RESERVE_NOW);
|
||||
reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 3]
|
||||
= TALER_TESTING_cmd_status ("reserve-open-close-status",
|
||||
"reserve-open-close-key",
|
||||
|
@ -58,6 +58,19 @@ static char *config_filename;
|
||||
#define USER42_ACCOUNT "42"
|
||||
|
||||
|
||||
/**
|
||||
* Execute the taler-exchange-aggregator, closer and transfer commands with
|
||||
* our configuration file.
|
||||
*
|
||||
* @param label label to use for the command.
|
||||
* @param cfg_fn configuration file to use
|
||||
*/
|
||||
#define CMD_EXEC_AGGREGATOR(label, cfg_fn) \
|
||||
TALER_TESTING_cmd_exec_aggregator (label "-aggregator", cfg_fn), \
|
||||
TALER_TESTING_cmd_exec_closer (label "-closer", cfg_fn), \
|
||||
TALER_TESTING_cmd_exec_transfer (label "-transfer", cfg_fn)
|
||||
|
||||
|
||||
/**
|
||||
* Collects all the tests.
|
||||
*/
|
||||
@ -68,8 +81,8 @@ run (void *cls,
|
||||
struct TALER_TESTING_Command all[] = {
|
||||
|
||||
// check no aggregation happens on a empty database
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-on-empty-db",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-on-empty-db",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-on-start"),
|
||||
|
||||
/* check aggregation happens on the simplest case:
|
||||
@ -81,8 +94,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:1",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-on-deposit-1",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-on-deposit-1",
|
||||
config_filename),
|
||||
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-1",
|
||||
ec.exchange_url,
|
||||
@ -108,8 +121,8 @@ run (void *cls,
|
||||
"EUR:1",
|
||||
"EUR:0.1"),
|
||||
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-2",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-2",
|
||||
config_filename),
|
||||
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-2",
|
||||
ec.exchange_url,
|
||||
@ -140,8 +153,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:1",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-3",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-3",
|
||||
config_filename),
|
||||
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-3a",
|
||||
ec.exchange_url,
|
||||
@ -179,15 +192,15 @@ run (void *cls,
|
||||
5),
|
||||
"EUR:0.2",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-4-early",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-4-early",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-4-fast"),
|
||||
|
||||
TALER_TESTING_cmd_sleep ("wait (5s)", 5),
|
||||
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-4-delayed",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-4-delayed",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-4",
|
||||
ec.exchange_url,
|
||||
"EUR:0.19",
|
||||
@ -214,15 +227,15 @@ run (void *cls,
|
||||
5),
|
||||
"EUR:0.2",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-5-early",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-5-early",
|
||||
config_filename),
|
||||
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-5-early"),
|
||||
TALER_TESTING_cmd_sleep ("wait (5s)", 5),
|
||||
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-5-delayed",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-5-delayed",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-5",
|
||||
ec.exchange_url,
|
||||
"EUR:0.19",
|
||||
@ -236,8 +249,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.102",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-6a-tiny",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-6a-tiny",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-6a-tiny"),
|
||||
TALER_TESTING_cmd_insert_deposit ("do-deposit-6b",
|
||||
@ -254,8 +267,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.102",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-6c-tiny",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-6c-tiny",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-6c-tiny"),
|
||||
TALER_TESTING_cmd_insert_deposit ("do-deposit-6d",
|
||||
@ -265,8 +278,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.102",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-6d-tiny",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-6d-tiny",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-6d-tiny"),
|
||||
TALER_TESTING_cmd_insert_deposit ("do-deposit-6e",
|
||||
@ -276,8 +289,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.112",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-6e",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-6e",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-6",
|
||||
ec.exchange_url,
|
||||
"EUR:0.01",
|
||||
@ -292,8 +305,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.109",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-7a-tiny",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-7a-tiny",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-7a-tiny"),
|
||||
TALER_TESTING_cmd_insert_deposit ("do-deposit-7b",
|
||||
@ -303,8 +316,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.119",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-7-profit",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-7-profit",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-7",
|
||||
ec.exchange_url,
|
||||
"EUR:0.01",
|
||||
@ -319,8 +332,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.122",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-7-loss",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-7-loss",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-7",
|
||||
ec.exchange_url,
|
||||
"EUR:0.01",
|
||||
@ -337,8 +350,8 @@ run (void *cls,
|
||||
5),
|
||||
"EUR:0.109",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-8a-tiny",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-8a-tiny",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-8a-tiny"),
|
||||
TALER_TESTING_cmd_insert_deposit ("do-deposit-8b",
|
||||
@ -350,8 +363,8 @@ run (void *cls,
|
||||
5),
|
||||
"EUR:0.109",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-8b-tiny",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-8b-tiny",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-8b-tiny"),
|
||||
|
||||
@ -363,8 +376,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.122",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-8",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-8",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-8",
|
||||
ec.exchange_url,
|
||||
"EUR:0.03",
|
||||
@ -381,8 +394,8 @@ run (void *cls,
|
||||
5),
|
||||
"EUR:0.104",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-9a-tiny",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-9a-tiny",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-9a-tiny"),
|
||||
TALER_TESTING_cmd_insert_deposit ("do-deposit-9b",
|
||||
@ -394,8 +407,8 @@ run (void *cls,
|
||||
5),
|
||||
"EUR:0.105",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-9b-tiny",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-9b-tiny",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty (
|
||||
"expect-empty-transactions-after-9b-tiny"),
|
||||
|
||||
@ -407,8 +420,8 @@ run (void *cls,
|
||||
GNUNET_TIME_UNIT_ZERO,
|
||||
"EUR:0.112",
|
||||
"EUR:0.1"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-9",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-deposit-9",
|
||||
config_filename),
|
||||
/* 0.009 + 0.009 + 0.022 - 0.001 - 0.002 - 0.008 = 0.029 => 0.02 */
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-9",
|
||||
ec.exchange_url,
|
||||
|
@ -48,6 +48,19 @@ static struct TALER_TESTING_ExchangeConfiguration ec;
|
||||
*/
|
||||
static char *config_filename;
|
||||
|
||||
|
||||
/**
|
||||
* Execute the taler-exchange-aggregator, closer and transfer commands with
|
||||
* our configuration file.
|
||||
*
|
||||
* @param label label to use for the command.
|
||||
*/
|
||||
#define CMD_EXEC_AGGREGATOR(label) \
|
||||
TALER_TESTING_cmd_exec_aggregator (label "-aggregator", config_filename), \
|
||||
TALER_TESTING_cmd_exec_closer (label "-closer", config_filename), \
|
||||
TALER_TESTING_cmd_exec_transfer (label "-transfer", config_filename)
|
||||
|
||||
|
||||
static struct TALER_TESTING_Command
|
||||
transfer_to_exchange (const char *label,
|
||||
const char *amount)
|
||||
@ -71,8 +84,7 @@ run (void *cls,
|
||||
{
|
||||
struct TALER_TESTING_Command all[] = {
|
||||
TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-on-start"),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-on-empty",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-on-empty"),
|
||||
TALER_TESTING_cmd_exec_wirewatch ("run-wirewatch-on-empty",
|
||||
config_filename),
|
||||
TALER_TESTING_cmd_check_bank_empty ("expect-transfers-empty-after-dry-run"),
|
||||
@ -89,14 +101,12 @@ run (void *cls,
|
||||
bc.exchange_payto, // credit
|
||||
"run-transfer-good-to-exchange"),
|
||||
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-non-expired-reserve",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-non-expired-reserve"),
|
||||
|
||||
TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-1"),
|
||||
TALER_TESTING_cmd_sleep ("wait (5s)",
|
||||
5),
|
||||
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-on-expired-reserve",
|
||||
config_filename),
|
||||
CMD_EXEC_AGGREGATOR ("run-aggregator-on-expired-reserve"),
|
||||
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-1",
|
||||
ec.exchange_url,
|
||||
"EUR:4.99",
|
||||
|
166
src/testing/testing_api_cmd_exec_closer.c
Normal file
166
src/testing/testing_api_cmd_exec_closer.c
Normal file
@ -0,0 +1,166 @@
|
||||
/*
|
||||
This file is part of TALER
|
||||
Copyright (C) 2018 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_exec_closer.c
|
||||
* @brief run the taler-exchange-closer command
|
||||
* @author Marcello Stanisci
|
||||
*/
|
||||
#include "platform.h"
|
||||
#include "taler_json_lib.h"
|
||||
#include <gnunet/gnunet_curl_lib.h>
|
||||
#include "taler_signatures.h"
|
||||
#include "taler_testing_lib.h"
|
||||
|
||||
|
||||
/**
|
||||
* State for a "closer" CMD.
|
||||
*/
|
||||
struct CloserState
|
||||
{
|
||||
|
||||
/**
|
||||
* Closer process.
|
||||
*/
|
||||
struct GNUNET_OS_Process *closer_proc;
|
||||
|
||||
/**
|
||||
* Configuration file used by the closer.
|
||||
*/
|
||||
const char *config_filename;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Run the command. Use the `taler-exchange-closer' program.
|
||||
*
|
||||
* @param cls closure.
|
||||
* @param cmd command being run.
|
||||
* @param is interpreter state.
|
||||
*/
|
||||
static void
|
||||
closer_run (void *cls,
|
||||
const struct TALER_TESTING_Command *cmd,
|
||||
struct TALER_TESTING_Interpreter *is)
|
||||
{
|
||||
struct CloserState *as = cls;
|
||||
|
||||
as->closer_proc
|
||||
= GNUNET_OS_start_process (GNUNET_NO,
|
||||
GNUNET_OS_INHERIT_STD_ALL,
|
||||
NULL, NULL, NULL,
|
||||
"taler-exchange-closer",
|
||||
"taler-exchange-closer",
|
||||
"-c", as->config_filename,
|
||||
"-t", /* exit when done */
|
||||
NULL);
|
||||
if (NULL == as->closer_proc)
|
||||
{
|
||||
GNUNET_break (0);
|
||||
TALER_TESTING_interpreter_fail (is);
|
||||
return;
|
||||
}
|
||||
TALER_TESTING_wait_for_sigchld (is);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Free the state of a "closer" CMD, and possibly kill its
|
||||
* process if it did not terminate correctly.
|
||||
*
|
||||
* @param cls closure.
|
||||
* @param cmd the command being freed.
|
||||
*/
|
||||
static void
|
||||
closer_cleanup (void *cls,
|
||||
const struct TALER_TESTING_Command *cmd)
|
||||
{
|
||||
struct CloserState *as = cls;
|
||||
|
||||
if (NULL != as->closer_proc)
|
||||
{
|
||||
GNUNET_break (0 ==
|
||||
GNUNET_OS_process_kill (as->closer_proc,
|
||||
SIGKILL));
|
||||
GNUNET_OS_process_wait (as->closer_proc);
|
||||
GNUNET_OS_process_destroy (as->closer_proc);
|
||||
as->closer_proc = NULL;
|
||||
}
|
||||
GNUNET_free (as);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Offer "closer" CMD internal data to other commands.
|
||||
*
|
||||
* @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 int
|
||||
closer_traits (void *cls,
|
||||
const void **ret,
|
||||
const char *trait,
|
||||
unsigned int index)
|
||||
{
|
||||
struct CloserState *as = cls;
|
||||
struct TALER_TESTING_Trait traits[] = {
|
||||
TALER_TESTING_make_trait_process (0, &as->closer_proc),
|
||||
TALER_TESTING_trait_end ()
|
||||
};
|
||||
|
||||
return TALER_TESTING_get_trait (traits,
|
||||
ret,
|
||||
trait,
|
||||
index);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Make a "closer" CMD.
|
||||
*
|
||||
* @param label command label.
|
||||
* @param config_filename configuration file for the
|
||||
* closer to use.
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
TALER_TESTING_cmd_exec_closer (const char *label,
|
||||
const char *config_filename)
|
||||
{
|
||||
struct CloserState *as;
|
||||
|
||||
as = GNUNET_new (struct CloserState);
|
||||
as->config_filename = config_filename;
|
||||
{
|
||||
struct TALER_TESTING_Command cmd = {
|
||||
.cls = as,
|
||||
.label = label,
|
||||
.run = &closer_run,
|
||||
.cleanup = &closer_cleanup,
|
||||
.traits = &closer_traits
|
||||
};
|
||||
|
||||
return cmd;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* end of testing_api_cmd_exec_closer.c */
|
166
src/testing/testing_api_cmd_exec_transfer.c
Normal file
166
src/testing/testing_api_cmd_exec_transfer.c
Normal file
@ -0,0 +1,166 @@
|
||||
/*
|
||||
This file is part of TALER
|
||||
Copyright (C) 2018 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_exec_transfer.c
|
||||
* @brief run the taler-exchange-transfer command
|
||||
* @author Marcello Stanisci
|
||||
*/
|
||||
#include "platform.h"
|
||||
#include "taler_json_lib.h"
|
||||
#include <gnunet/gnunet_curl_lib.h>
|
||||
#include "taler_signatures.h"
|
||||
#include "taler_testing_lib.h"
|
||||
|
||||
|
||||
/**
|
||||
* State for a "transfer" CMD.
|
||||
*/
|
||||
struct TransferState
|
||||
{
|
||||
|
||||
/**
|
||||
* Transfer process.
|
||||
*/
|
||||
struct GNUNET_OS_Process *transfer_proc;
|
||||
|
||||
/**
|
||||
* Configuration file used by the transfer.
|
||||
*/
|
||||
const char *config_filename;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Run the command. Use the `taler-exchange-transfer' program.
|
||||
*
|
||||
* @param cls closure.
|
||||
* @param cmd command being run.
|
||||
* @param is interpreter state.
|
||||
*/
|
||||
static void
|
||||
transfer_run (void *cls,
|
||||
const struct TALER_TESTING_Command *cmd,
|
||||
struct TALER_TESTING_Interpreter *is)
|
||||
{
|
||||
struct TransferState *as = cls;
|
||||
|
||||
as->transfer_proc
|
||||
= GNUNET_OS_start_process (GNUNET_NO,
|
||||
GNUNET_OS_INHERIT_STD_ALL,
|
||||
NULL, NULL, NULL,
|
||||
"taler-exchange-transfer",
|
||||
"taler-exchange-transfer",
|
||||
"-c", as->config_filename,
|
||||
"-t", /* exit when done */
|
||||
NULL);
|
||||
if (NULL == as->transfer_proc)
|
||||
{
|
||||
GNUNET_break (0);
|
||||
TALER_TESTING_interpreter_fail (is);
|
||||
return;
|
||||
}
|
||||
TALER_TESTING_wait_for_sigchld (is);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Free the state of a "transfer" CMD, and possibly kill its
|
||||
* process if it did not terminate correctly.
|
||||
*
|
||||
* @param cls closure.
|
||||
* @param cmd the command being freed.
|
||||
*/
|
||||
static void
|
||||
transfer_cleanup (void *cls,
|
||||
const struct TALER_TESTING_Command *cmd)
|
||||
{
|
||||
struct TransferState *as = cls;
|
||||
|
||||
if (NULL != as->transfer_proc)
|
||||
{
|
||||
GNUNET_break (0 ==
|
||||
GNUNET_OS_process_kill (as->transfer_proc,
|
||||
SIGKILL));
|
||||
GNUNET_OS_process_wait (as->transfer_proc);
|
||||
GNUNET_OS_process_destroy (as->transfer_proc);
|
||||
as->transfer_proc = NULL;
|
||||
}
|
||||
GNUNET_free (as);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Offer "transfer" CMD internal data to other commands.
|
||||
*
|
||||
* @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 int
|
||||
transfer_traits (void *cls,
|
||||
const void **ret,
|
||||
const char *trait,
|
||||
unsigned int index)
|
||||
{
|
||||
struct TransferState *as = cls;
|
||||
struct TALER_TESTING_Trait traits[] = {
|
||||
TALER_TESTING_make_trait_process (0, &as->transfer_proc),
|
||||
TALER_TESTING_trait_end ()
|
||||
};
|
||||
|
||||
return TALER_TESTING_get_trait (traits,
|
||||
ret,
|
||||
trait,
|
||||
index);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Make a "transfer" CMD.
|
||||
*
|
||||
* @param label command label.
|
||||
* @param config_filename configuration file for the
|
||||
* transfer to use.
|
||||
* @return the command.
|
||||
*/
|
||||
struct TALER_TESTING_Command
|
||||
TALER_TESTING_cmd_exec_transfer (const char *label,
|
||||
const char *config_filename)
|
||||
{
|
||||
struct TransferState *as;
|
||||
|
||||
as = GNUNET_new (struct TransferState);
|
||||
as->config_filename = config_filename;
|
||||
{
|
||||
struct TALER_TESTING_Command cmd = {
|
||||
.cls = as,
|
||||
.label = label,
|
||||
.run = &transfer_run,
|
||||
.cleanup = &transfer_cleanup,
|
||||
.traits = &transfer_traits
|
||||
};
|
||||
|
||||
return cmd;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* end of testing_api_cmd_exec_transfer.c */
|
Loading…
Reference in New Issue
Block a user