LCOV - code coverage report
Current view: top level - testing - test_auditor_api.c (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 127 127
Test Date: 2026-04-14 15:39:31 Functions: 100.0 % 2 2

            Line data    Source code
       1              : /*
       2              :   This file is part of TALER
       3              :   Copyright (C) 2014-2020 Taler Systems SA
       4              : 
       5              :   TALER is free software; you can redistribute it and/or modify
       6              :   it under the terms of the GNU General Public License as
       7              :   published by the Free Software Foundation; either version 3, or
       8              :   (at your option) any later version.
       9              : 
      10              :   TALER is distributed in the hope that it will be useful, but
      11              :   WITHOUT ANY WARRANTY; without even the implied warranty of
      12              :   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13              :   GNU General Public License for more details.
      14              : 
      15              :   You should have received a copy of the GNU General Public
      16              :   License along with TALER; see the file COPYING.  If not, see
      17              :   <http://www.gnu.org/licenses/>
      18              : */
      19              : /**
      20              :  * @file testing/test_auditor_api.c
      21              :  * @brief testcase to test auditor's HTTP API interface
      22              :  * @author Christian Grothoff
      23              :  * @author Marcello Stanisci
      24              :  */
      25              : #include "taler/taler_util.h"
      26              : #include "taler/taler_signatures.h"
      27              : #include "taler/taler_auditor_service.h"
      28              : #include "taler/taler_json_lib.h"
      29              : #include <gnunet/gnunet_util_lib.h>
      30              : #include <gnunet/gnunet_testing_lib.h>
      31              : #include <microhttpd.h>
      32              : #include "taler/taler_bank_service.h"
      33              : #include "taler/taler_testing_lib.h"
      34              : 
      35              : 
      36              : /**
      37              :  * Configuration file we use.  One (big) configuration is used
      38              :  * for the various components for this test.
      39              :  */
      40              : static char *config_file;
      41              : 
      42              : static char *config_file_expire_reserve_now;
      43              : 
      44              : /**
      45              :  * Our credentials.
      46              :  */
      47              : static struct TALER_TESTING_Credentials cred;
      48              : 
      49              : /**
      50              :  * Execute the taler-exchange-wirewatch command with
      51              :  * our configuration file.
      52              :  *
      53              :  * @param label label to use for the command.
      54              :  */
      55              : #define CMD_EXEC_WIREWATCH(label) \
      56              :         TALER_TESTING_cmd_exec_wirewatch2 (label, config_file, \
      57              :                                            "exchange-account-2")
      58              : 
      59              : /**
      60              :  * Execute the taler-exchange-aggregator, closer and transfer commands with
      61              :  * our configuration file.
      62              :  *
      63              :  * @param label label to use for the command.
      64              :  */
      65              : #define CMD_EXEC_AGGREGATOR(label) \
      66              :         TALER_TESTING_cmd_sleep (label "-sleep", 1), \
      67              :         TALER_TESTING_cmd_exec_aggregator (label, config_file), \
      68              :         TALER_TESTING_cmd_exec_transfer (label, config_file)
      69              : 
      70              : /**
      71              :  * Run wire transfer of funds from some user's account to the
      72              :  * exchange.
      73              :  *
      74              :  * @param label label to use for the command.
      75              :  * @param amount amount to transfer, i.e. "EUR:1"
      76              :  */
      77              : #define CMD_TRANSFER_TO_EXCHANGE(label,amount) \
      78              :         TALER_TESTING_cmd_admin_add_incoming (label, amount,           \
      79              :                                               &cred.ba,       \
      80              :                                               cred.user42_payto)
      81              : 
      82              : /**
      83              :  * Run the taler-auditor.
      84              :  *
      85              :  * @param label label to use for the command.
      86              :  */
      87              : #define CMD_RUN_AUDITOR(label) \
      88              :         TALER_TESTING_cmd_exec_auditor (label, config_file)
      89              : 
      90              : 
      91              : /**
      92              :  * Main function that will tell the interpreter what commands to
      93              :  * run.
      94              :  *
      95              :  * @param cls closure
      96              :  */
      97              : static void
      98            2 : run (void *cls,
      99              :      struct TALER_TESTING_Interpreter *is)
     100              : {
     101              :   /**
     102              :    * Test withdraw.
     103              :    */
     104              :   struct TALER_TESTING_Command withdraw[] = {
     105              :     /**
     106              :      * Move money to the exchange's bank account.
     107              :      */
     108            2 :     CMD_TRANSFER_TO_EXCHANGE ("create-reserve-1",
     109              :                               "EUR:5.01"),
     110            2 :     TALER_TESTING_cmd_check_bank_admin_transfer
     111              :       ("check-create-reserve-1",
     112              :       "EUR:5.01", cred.user42_payto, cred.exchange_payto,
     113              :       "create-reserve-1"),
     114              :     /**
     115              :      * Make a reserve exist, according to the previous transfer.
     116              :      */
     117            2 :     CMD_EXEC_WIREWATCH ("wirewatch-1"),
     118              :     /**
     119              :      * Withdraw EUR:5.
     120              :      */
     121            2 :     TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-1",
     122              :                                        "create-reserve-1",
     123              :                                        "EUR:5",
     124              :                                        0, /* age restriction off */
     125              :                                        MHD_HTTP_OK),
     126            2 :     TALER_TESTING_cmd_end ()
     127              :   };
     128              : 
     129              :   struct TALER_TESTING_Command spend[] = {
     130              :     /**
     131              :      * Spend the coin.
     132              :      */
     133            2 :     TALER_TESTING_cmd_deposit ("deposit-simple",
     134              :                                "withdraw-coin-1",
     135              :                                0,
     136              :                                cred.user42_payto,
     137              :                                "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     138            2 :                                GNUNET_TIME_UNIT_ZERO,
     139              :                                "EUR:5",
     140              :                                MHD_HTTP_OK),
     141            2 :     TALER_TESTING_cmd_end ()
     142              :   };
     143              : 
     144              :   struct TALER_TESTING_Command refresh[] = {
     145              :     /* Fill reserve with EUR:5, 1ct is for fees.  NOTE: the old
     146              :      * test-suite gave a account number of _424_ to the user at
     147              :      * this step; to type less, here the _42_ number is reused.
     148              :      * Does this change the tests semantics? *///
     149            2 :     CMD_TRANSFER_TO_EXCHANGE ("refresh-create-reserve-1",
     150              :                               "EUR:5.01"),
     151            2 :     TALER_TESTING_cmd_check_bank_admin_transfer
     152              :       ("check-refresh-create-reserve-1",
     153              :       "EUR:5.01", cred.user42_payto, cred.exchange_payto,
     154              :       "refresh-create-reserve-1"),
     155              :     /**
     156              :      * Make previous command effective.
     157              :      */
     158            2 :     CMD_EXEC_WIREWATCH ("wirewatch-2"),
     159              :     /**
     160              :      * Withdraw EUR:5.
     161              :      */
     162            2 :     TALER_TESTING_cmd_withdraw_amount ("refresh-withdraw-coin-1",
     163              :                                        "refresh-create-reserve-1",
     164              :                                        "EUR:5",
     165              :                                        0, /* age restriction off */
     166              :                                        MHD_HTTP_OK),
     167              :     /**
     168              :      * Try to partially spend (deposit) 1 EUR of the 5 EUR coin (in
     169              :      * full) Merchant receives EUR:0.99 due to 1 ct deposit fee.
     170              :      */
     171            2 :     TALER_TESTING_cmd_deposit ("refresh-deposit-partial",
     172              :                                "refresh-withdraw-coin-1",
     173              :                                0,
     174              :                                cred.user42_payto,
     175              :                                "{\"items\":[{\"name\":\"ice\",\"value\":\"EUR:1\"}]}",
     176            2 :                                GNUNET_TIME_UNIT_ZERO,
     177              :                                "EUR:1",
     178              :                                MHD_HTTP_OK),
     179              :     /**
     180              :      * Melt the rest of the coin's value (EUR:4.00 = 3x EUR:1.03 + 7x
     181              :      * EUR:0.13)
     182              :      */
     183            2 :     TALER_TESTING_cmd_melt_double ("refresh-melt-1",
     184              :                                    "refresh-withdraw-coin-1",
     185              :                                    MHD_HTTP_OK,
     186              :                                    NULL),
     187              :     /**
     188              :      * Complete (successful) melt operation, and withdraw the coins
     189              :      */
     190            2 :     TALER_TESTING_cmd_melt_reveal ("refresh-reveal-1",
     191              :                                    "refresh-melt-1",
     192              :                                    MHD_HTTP_OK),
     193              :     /**
     194              :      * Try to spend a refreshed EUR:0.1 coin
     195              :      */
     196            2 :     TALER_TESTING_cmd_deposit ("refresh-deposit-refreshed-1b",
     197              :                                "refresh-reveal-1",
     198              :                                3,
     199              :                                cred.user43_payto,
     200              :                                "{\"items\":[{\"name\":\"ice cream\",\"value\":3}]}",
     201            2 :                                GNUNET_TIME_UNIT_ZERO,
     202              :                                "EUR:0.1",
     203              :                                MHD_HTTP_OK),
     204            2 :     TALER_TESTING_cmd_end ()
     205              :   };
     206              : 
     207              :   struct TALER_TESTING_Command track[] = {
     208              :     /**
     209              :      * Run transfers. Note that _actual_ aggregation will NOT
     210              :      * happen here, as each deposit operation is run with a
     211              :      * fresh merchant public key! NOTE: this comment comes
     212              :      * "verbatim" from the old test-suite, and IMO does not explain
     213              :      * a lot! */
     214            2 :     CMD_EXEC_AGGREGATOR ("run-aggregator"),
     215              : 
     216              :     /**
     217              :      * Check all the transfers took place.
     218              :      */
     219            2 :     TALER_TESTING_cmd_check_bank_transfer (
     220              :       "check_bank_transfer-499c",
     221            2 :       cred.exchange_url,
     222              :       "EUR:4.98",
     223              :       cred.exchange_payto,
     224              :       cred.user42_payto),
     225            2 :     TALER_TESTING_cmd_check_bank_transfer (
     226              :       "check_bank_transfer-99c1",
     227            2 :       cred.exchange_url,
     228              :       "EUR:0.98",
     229              :       cred.exchange_payto,
     230              :       cred.user42_payto),
     231            2 :     TALER_TESTING_cmd_check_bank_transfer (
     232              :       "check_bank_transfer-99c",
     233            2 :       cred.exchange_url,
     234              :       "EUR:0.08",
     235              :       cred.exchange_payto,
     236              :       cred.user43_payto),
     237              : 
     238              :     /* The following transactions got originated within
     239              :      * the "massive deposit confirms" batch.  */
     240            2 :     TALER_TESTING_cmd_check_bank_transfer (
     241              :       "check-massive-transfer-1",
     242            2 :       cred.exchange_url,
     243              :       "EUR:0.98",
     244              :       cred.exchange_payto, cred.user43_payto),
     245            2 :     TALER_TESTING_cmd_check_bank_transfer
     246              :       ("check-massive-transfer-2",
     247            2 :       cred.exchange_url,
     248              :       "EUR:0.98",
     249              :       cred.exchange_payto, cred.user43_payto),
     250            2 :     TALER_TESTING_cmd_check_bank_transfer
     251              :       ("check-massive-transfer-3",
     252            2 :       cred.exchange_url,
     253              :       "EUR:0.98",
     254              :       cred.exchange_payto, cred.user43_payto),
     255            2 :     TALER_TESTING_cmd_check_bank_transfer
     256              :       ("check-massive-transfer-4",
     257            2 :       cred.exchange_url,
     258              :       "EUR:0.98",
     259              :       cred.exchange_payto, cred.user43_payto),
     260            2 :     TALER_TESTING_cmd_check_bank_transfer
     261              :       ("check-massive-transfer-5",
     262            2 :       cred.exchange_url,
     263              :       "EUR:0.98",
     264              :       cred.exchange_payto, cred.user43_payto),
     265            2 :     TALER_TESTING_cmd_check_bank_transfer
     266              :       ("check-massive-transfer-6",
     267            2 :       cred.exchange_url,
     268              :       "EUR:0.98",
     269              :       cred.exchange_payto, cred.user43_payto),
     270            2 :     TALER_TESTING_cmd_check_bank_transfer
     271              :       ("check-massive-transfer-7",
     272            2 :       cred.exchange_url,
     273              :       "EUR:0.98",
     274              :       cred.exchange_payto, cred.user43_payto),
     275            2 :     TALER_TESTING_cmd_check_bank_transfer
     276              :       ("check-massive-transfer-8",
     277            2 :       cred.exchange_url,
     278              :       "EUR:0.98",
     279              :       cred.exchange_payto, cred.user43_payto),
     280            2 :     TALER_TESTING_cmd_check_bank_transfer
     281              :       ("check-massive-transfer-9",
     282            2 :       cred.exchange_url,
     283              :       "EUR:0.98",
     284              :       cred.exchange_payto, cred.user43_payto),
     285            2 :     TALER_TESTING_cmd_check_bank_transfer
     286              :       ("check-massive-transfer-10",
     287            2 :       cred.exchange_url,
     288              :       "EUR:0.98",
     289              :       cred.exchange_payto, cred.user43_payto),
     290            2 :     TALER_TESTING_cmd_check_bank_empty ("check_bank_empty"),
     291            2 :     TALER_TESTING_cmd_end ()
     292              :   };
     293              : 
     294              :   /**
     295              :    * This block checks whether a wire deadline
     296              :    * very far in the future does NOT get aggregated now.
     297              :    */
     298              :   struct TALER_TESTING_Command unaggregation[] = {
     299            2 :     TALER_TESTING_cmd_check_bank_empty ("far-future-aggregation-a"),
     300            2 :     CMD_TRANSFER_TO_EXCHANGE ("create-reserve-unaggregated",
     301              :                               "EUR:5.01"),
     302            2 :     CMD_EXEC_WIREWATCH ("wirewatch-unaggregated"),
     303              :     /* "consume" reserve creation transfer.  */
     304            2 :     TALER_TESTING_cmd_check_bank_admin_transfer (
     305              :       "check_bank_transfer-unaggregated",
     306              :       "EUR:5.01",
     307              :       cred.user42_payto,
     308              :       cred.exchange_payto,
     309              :       "create-reserve-unaggregated"),
     310            2 :     TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-unaggregated",
     311              :                                        "create-reserve-unaggregated",
     312              :                                        "EUR:5",
     313              :                                        0, /* age restriction off */
     314              :                                        MHD_HTTP_OK),
     315            2 :     TALER_TESTING_cmd_deposit ("deposit-unaggregated",
     316              :                                "withdraw-coin-unaggregated",
     317              :                                0,
     318              :                                cred.user43_payto,
     319              :                                "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     320              :                                GNUNET_TIME_relative_multiply
     321              :                                  (GNUNET_TIME_UNIT_YEARS,
     322              :                                  3000),
     323              :                                "EUR:5",
     324              :                                MHD_HTTP_OK),
     325            2 :     CMD_EXEC_AGGREGATOR ("aggregation-attempt"),
     326            2 :     TALER_TESTING_cmd_check_bank_empty ("far-future-aggregation-b"),
     327            2 :     TALER_TESTING_cmd_end ()
     328              :   };
     329              : 
     330              :   struct TALER_TESTING_Command refund[] = {
     331              :     /**
     332              :      * Fill reserve with EUR:5.01, as withdraw fee is 1 ct per config.
     333              :      */
     334            2 :     CMD_TRANSFER_TO_EXCHANGE ("create-reserve-r1",
     335              :                               "EUR:5.01"),
     336              :     /**
     337              :      * Run wire-watch to trigger the reserve creation.
     338              :      */
     339            2 :     CMD_EXEC_WIREWATCH ("wirewatch-3"),
     340              :     /**
     341              :      * Withdraw a 5 EUR coin, at fee of 1 ct
     342              :      */
     343            2 :     TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-r1",
     344              :                                        "create-reserve-r1",
     345              :                                        "EUR:5",
     346              :                                        0, /* age restriction off */
     347              :                                        MHD_HTTP_OK),
     348              :     /**
     349              :      * Spend 5 EUR of the 5 EUR coin (in full). Merchant would
     350              :      * receive EUR:4.99 due to 1 ct deposit fee.
     351              :      */
     352            2 :     TALER_TESTING_cmd_deposit ("deposit-refund-1",
     353              :                                "withdraw-coin-r1",
     354              :                                0,
     355              :                                cred.user42_payto,
     356              :                                "{\"items\":[{\"name\":\"ice\",\"value\":\"EUR:5\"}]}",
     357              :                                GNUNET_TIME_UNIT_MINUTES,
     358              :                                "EUR:5",
     359              :                                MHD_HTTP_OK),
     360              : 
     361            2 :     TALER_TESTING_cmd_refund ("refund-ok",
     362              :                               MHD_HTTP_OK,
     363              :                               "EUR:5",
     364              :                               "deposit-refund-1"),
     365              :     /**
     366              :      * Spend 4.99 EUR of the refunded 4.99 EUR coin (1ct gone
     367              :      * due to refund) (merchant would receive EUR:4.98 due to
     368              :      * 1 ct deposit fee) */
     369            2 :     TALER_TESTING_cmd_deposit ("deposit-refund-2",
     370              :                                "withdraw-coin-r1",
     371              :                                0,
     372              :                                cred.user42_payto,
     373              :                                "{\"items\":[{\"name\":\"more\",\"value\":\"EUR:5\"}]}",
     374            2 :                                GNUNET_TIME_UNIT_ZERO,
     375              :                                "EUR:4.99",
     376              :                                MHD_HTTP_OK),
     377              :     /**
     378              :      * Run transfers. This will do the transfer as refund deadline was
     379              :      * 0.
     380              :      */
     381            2 :     CMD_EXEC_AGGREGATOR ("run-aggregator-3"),
     382            2 :     TALER_TESTING_cmd_end ()
     383              :   };
     384              : 
     385              : #if FIXME_9828
     386              :   struct TALER_TESTING_Command recoup[] = {
     387              :     /**
     388              :      * Fill reserve with EUR:5.01, as withdraw fee is 1 ct per
     389              :      * config.
     390              :      */
     391              :     CMD_TRANSFER_TO_EXCHANGE ("recoup-create-reserve-1",
     392              :                               "EUR:5.01"),
     393              :     /**
     394              :      * Run wire-watch to trigger the reserve creation.
     395              :      */
     396              :     CMD_EXEC_WIREWATCH ("wirewatch-4"),
     397              :     /**
     398              :      * Withdraw a 5 EUR coin, at fee of 1 ct
     399              :      */
     400              :     TALER_TESTING_cmd_withdraw_amount ("recoup-withdraw-coin-1",
     401              :                                        "recoup-create-reserve-1",
     402              :                                        "EUR:5",
     403              :                                        0, /* age restriction off */
     404              :                                        MHD_HTTP_OK),
     405              :     TALER_TESTING_cmd_revoke ("revoke-1",
     406              :                               MHD_HTTP_OK,
     407              :                               "recoup-withdraw-coin-1",
     408              :                               config_file),
     409              :     TALER_TESTING_cmd_recoup ("recoup-1",
     410              :                               MHD_HTTP_OK,
     411              :                               "recoup-withdraw-coin-1",
     412              :                               "EUR:5"),
     413              :     /**
     414              :      * Re-withdraw from this reserve
     415              :      */
     416              :     TALER_TESTING_cmd_withdraw_amount ("recoup-withdraw-coin-2",
     417              :                                        "recoup-create-reserve-1",
     418              :                                        "EUR:1",
     419              :                                        0, /* age restriction off */
     420              :                                        MHD_HTTP_OK),
     421              :     /**
     422              :      * These commands should close the reserve because the aggregator
     423              :      * is given a config file that overrides the reserve expiration
     424              :      * time (making it now-ish)
     425              :      */
     426              :     CMD_TRANSFER_TO_EXCHANGE ("short-lived-reserve",
     427              :                               "EUR:5.01"),
     428              :     TALER_TESTING_cmd_exec_wirewatch2 ("short-lived-aggregation",
     429              :                                        config_file_expire_reserve_now,
     430              :                                        "exchange-account-2"),
     431              :     TALER_TESTING_cmd_exec_aggregator ("close-reserves",
     432              :                                        config_file_expire_reserve_now),
     433              :     /**
     434              :      * Fill reserve with EUR:2.02, as withdraw fee is 1 ct per
     435              :      * config, then withdraw two coin, partially spend one, and
     436              :      * then have the rest paid back.  Check deposit of other coin
     437              :      * fails.  (Do not use EUR:5 here as the EUR:5 coin was
     438              :      * revoked and we did not bother to create a new one...)
     439              :      */CMD_TRANSFER_TO_EXCHANGE ("recoup-create-reserve-2",
     440              :                               "EUR:2.02"),
     441              :     /**
     442              :      * Make previous command effective.
     443              :      */
     444              :     CMD_EXEC_WIREWATCH ("wirewatch-5"),
     445              :     /**
     446              :      * Withdraw a 1 EUR coin, at fee of 1 ct
     447              :      */
     448              :     TALER_TESTING_cmd_withdraw_amount ("recoup-withdraw-coin-2a",
     449              :                                        "recoup-create-reserve-2",
     450              :                                        "EUR:1",
     451              :                                        0, /* age restriction off */
     452              :                                        MHD_HTTP_OK),
     453              :     /**
     454              :      * Withdraw a 1 EUR coin, at fee of 1 ct
     455              :      */
     456              :     TALER_TESTING_cmd_withdraw_amount ("recoup-withdraw-coin-2b",
     457              :                                        "recoup-create-reserve-2",
     458              :                                        "EUR:1",
     459              :                                        0, /* age restriction off */
     460              :                                        MHD_HTTP_OK),
     461              :     TALER_TESTING_cmd_deposit ("recoup-deposit-partial",
     462              :                                "recoup-withdraw-coin-2a",
     463              :                                0,
     464              :                                cred.user42_payto,
     465              :                                "{\"items\":[{\"name\":\"more ice cream\",\"value\":1}]}",
     466              :                                GNUNET_TIME_UNIT_ZERO,
     467              :                                "EUR:0.5",
     468              :                                MHD_HTTP_OK),
     469              :     TALER_TESTING_cmd_revoke ("revoke-2",
     470              :                               MHD_HTTP_OK,
     471              :                               "recoup-withdraw-coin-2a",
     472              :                               config_file),
     473              :     TALER_TESTING_cmd_recoup ("recoup-2",
     474              :                               MHD_HTTP_OK,
     475              :                               "recoup-withdraw-coin-2a",
     476              :                               "EUR:0.5"),
     477              :     TALER_TESTING_cmd_end ()
     478              :   };
     479              : #endif
     480              : 
     481              :   struct TALER_TESTING_Command massive_deposit_confirms[] = {
     482              : 
     483              :     /**
     484              :      * Move money to the exchange's bank account.
     485              :      */
     486            2 :     CMD_TRANSFER_TO_EXCHANGE ("massive-reserve",
     487              :                               "EUR:10.10"),
     488            2 :     TALER_TESTING_cmd_check_bank_admin_transfer (
     489              :       "check-massive-transfer",
     490              :       "EUR:10.10",
     491              :       cred.user42_payto,
     492              :       cred.exchange_payto,
     493              :       "massive-reserve"),
     494            2 :     CMD_EXEC_WIREWATCH ("massive-wirewatch"),
     495            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-1",
     496              :                                        "massive-reserve",
     497              :                                        "EUR:1",
     498              :                                        0, /* age restriction off */
     499              :                                        MHD_HTTP_OK),
     500            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-2",
     501              :                                        "massive-reserve",
     502              :                                        "EUR:1",
     503              :                                        0, /* age restriction off */
     504              :                                        MHD_HTTP_OK),
     505            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-3",
     506              :                                        "massive-reserve",
     507              :                                        "EUR:1",
     508              :                                        0, /* age restriction off */
     509              :                                        MHD_HTTP_OK),
     510            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-4",
     511              :                                        "massive-reserve",
     512              :                                        "EUR:1",
     513              :                                        0, /* age restriction off */
     514              :                                        MHD_HTTP_OK),
     515            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-5",
     516              :                                        "massive-reserve",
     517              :                                        "EUR:1",
     518              :                                        0, /* age restriction off */
     519              :                                        MHD_HTTP_OK),
     520            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-6",
     521              :                                        "massive-reserve",
     522              :                                        "EUR:1",
     523              :                                        0, /* age restriction off */
     524              :                                        MHD_HTTP_OK),
     525            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-7",
     526              :                                        "massive-reserve",
     527              :                                        "EUR:1",
     528              :                                        0, /* age restriction off */
     529              :                                        MHD_HTTP_OK),
     530            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-8",
     531              :                                        "massive-reserve",
     532              :                                        "EUR:1",
     533              :                                        0, /* age restriction off */
     534              :                                        MHD_HTTP_OK),
     535            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-9",
     536              :                                        "massive-reserve",
     537              :                                        "EUR:1",
     538              :                                        0, /* age restriction off */
     539              :                                        MHD_HTTP_OK),
     540            2 :     TALER_TESTING_cmd_withdraw_amount ("massive-withdraw-10",
     541              :                                        "massive-reserve",
     542              :                                        "EUR:1",
     543              :                                        0, /* age restriction off */
     544              :                                        MHD_HTTP_OK),
     545            2 :     TALER_TESTING_cmd_deposit (
     546              :       "massive-deposit-1",
     547              :       "massive-withdraw-1",
     548              :       0,
     549              :       cred.user43_payto,
     550              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     551            2 :       GNUNET_TIME_UNIT_ZERO,
     552              :       "EUR:1",
     553              :       MHD_HTTP_OK),
     554            2 :     TALER_TESTING_cmd_deposit
     555              :       ("massive-deposit-2",
     556              :       "massive-withdraw-2",
     557              :       0,
     558              :       cred.user43_payto,
     559              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     560            2 :       GNUNET_TIME_UNIT_ZERO,
     561              :       "EUR:1",
     562              :       MHD_HTTP_OK),
     563            2 :     TALER_TESTING_cmd_deposit
     564              :       ("massive-deposit-3",
     565              :       "massive-withdraw-3",
     566              :       0,
     567              :       cred.user43_payto,
     568              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     569            2 :       GNUNET_TIME_UNIT_ZERO,
     570              :       "EUR:1",
     571              :       MHD_HTTP_OK),
     572            2 :     TALER_TESTING_cmd_deposit
     573              :       ("massive-deposit-4",
     574              :       "massive-withdraw-4",
     575              :       0,
     576              :       cred.user43_payto,
     577              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     578            2 :       GNUNET_TIME_UNIT_ZERO,
     579              :       "EUR:1",
     580              :       MHD_HTTP_OK),
     581            2 :     TALER_TESTING_cmd_deposit
     582              :       ("massive-deposit-5",
     583              :       "massive-withdraw-5",
     584              :       0,
     585              :       cred.user43_payto,
     586              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     587            2 :       GNUNET_TIME_UNIT_ZERO,
     588              :       "EUR:1",
     589              :       MHD_HTTP_OK),
     590            2 :     TALER_TESTING_cmd_deposit
     591              :       ("massive-deposit-6",
     592              :       "massive-withdraw-6",
     593              :       0,
     594              :       cred.user43_payto,
     595              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     596            2 :       GNUNET_TIME_UNIT_ZERO,
     597              :       "EUR:1",
     598              :       MHD_HTTP_OK),
     599            2 :     TALER_TESTING_cmd_deposit
     600              :       ("massive-deposit-7",
     601              :       "massive-withdraw-7",
     602              :       0,
     603              :       cred.user43_payto,
     604              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     605            2 :       GNUNET_TIME_UNIT_ZERO,
     606              :       "EUR:1",
     607              :       MHD_HTTP_OK),
     608            2 :     TALER_TESTING_cmd_deposit
     609              :       ("massive-deposit-8",
     610              :       "massive-withdraw-8",
     611              :       0,
     612              :       cred.user43_payto,
     613              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     614            2 :       GNUNET_TIME_UNIT_ZERO,
     615              :       "EUR:1",
     616              :       MHD_HTTP_OK),
     617            2 :     TALER_TESTING_cmd_deposit
     618              :       ("massive-deposit-9",
     619              :       "massive-withdraw-9",
     620              :       0,
     621              :       cred.user43_payto,
     622              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     623            2 :       GNUNET_TIME_UNIT_ZERO,
     624              :       "EUR:1",
     625              :       MHD_HTTP_OK),
     626            2 :     TALER_TESTING_cmd_deposit (
     627              :       "massive-deposit-10",
     628              :       "massive-withdraw-10",
     629              :       0,
     630              :       cred.user43_payto,
     631              :       "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
     632            2 :       GNUNET_TIME_UNIT_ZERO,
     633              :       "EUR:1",
     634              :       MHD_HTTP_OK),
     635            2 :     TALER_TESTING_cmd_deposit_confirmation ("deposit-confirmation",
     636              :                                             "massive-deposit-10",
     637              :                                             1,
     638              :                                             "EUR:0.99",
     639              :                                             MHD_HTTP_OK),
     640              :     // CMD_RUN_AUDITOR ("massive-auditor"),
     641              : 
     642            2 :     TALER_TESTING_cmd_end ()
     643              :   };
     644              : 
     645              :   struct TALER_TESTING_Command commands[] = {
     646            2 :     TALER_TESTING_cmd_run_fakebank ("run-fakebank",
     647            2 :                                     cred.cfg,
     648              :                                     "exchange-account-2"),
     649            2 :     TALER_TESTING_cmd_system_start ("start-taler",
     650              :                                     config_file,
     651              :                                     "-u", "exchange-account-2",
     652              :                                     "-ea",
     653              :                                     NULL),
     654            2 :     TALER_TESTING_cmd_get_exchange ("get-exchange",
     655            2 :                                     cred.cfg,
     656              :                                     NULL,
     657              :                                     true,
     658              :                                     true),
     659            2 :     TALER_TESTING_cmd_get_auditor ("get-auditor",
     660            2 :                                    cred.cfg,
     661              :                                    true),
     662            2 :     TALER_TESTING_cmd_exec_auditor_offline ("auditor-offline",
     663              :                                             config_file),
     664              :     // CMD_RUN_AUDITOR ("virgin-auditor"),
     665            2 :     TALER_TESTING_cmd_batch ("massive-deposit-confirms",
     666              :                              massive_deposit_confirms),
     667            2 :     TALER_TESTING_cmd_batch ("withdraw",
     668              :                              withdraw),
     669            2 :     TALER_TESTING_cmd_batch ("spend",
     670              :                              spend),
     671            2 :     TALER_TESTING_cmd_batch ("refresh",
     672              :                              refresh),
     673            2 :     TALER_TESTING_cmd_batch ("track",
     674              :                              track),
     675            2 :     TALER_TESTING_cmd_batch ("unaggregation",
     676              :                              unaggregation),
     677            2 :     TALER_TESTING_cmd_batch ("refund",
     678              :                              refund),
     679              : #if FIXME_9828
     680              :     TALER_TESTING_cmd_batch ("recoup",
     681              :                              recoup),
     682              : #endif
     683              :     // CMD_RUN_AUDITOR ("normal-auditor"),
     684            2 :     TALER_TESTING_cmd_end ()
     685              :   };
     686              : 
     687              :   (void) cls;
     688            2 :   TALER_TESTING_run (is,
     689              :                      commands);
     690            2 : }
     691              : 
     692              : 
     693              : int
     694            2 : main (int argc,
     695              :       char *const *argv)
     696              : {
     697              :   (void) argc;
     698              :   {
     699              :     char *cipher;
     700              : 
     701            2 :     cipher = GNUNET_STRINGS_get_suffix_from_binary_name (argv[0]);
     702            2 :     GNUNET_assert (NULL != cipher);
     703            2 :     GNUNET_asprintf (&config_file,
     704              :                      "test_auditor_api-%s.conf",
     705              :                      cipher);
     706            2 :     GNUNET_asprintf (&config_file_expire_reserve_now,
     707              :                      "test_auditor_api_expire_reserve_now-%s.conf",
     708              :                      cipher);
     709            2 :     GNUNET_free (cipher);
     710              :   }
     711            2 :   return TALER_TESTING_main (argv,
     712              :                              "INFO",
     713              :                              config_file,
     714              :                              "exchange-account-2",
     715              :                              TALER_TESTING_BS_FAKEBANK,
     716              :                              &cred,
     717              :                              &run,
     718              :                              NULL);
     719              : }
     720              : 
     721              : 
     722              : /* end of test_auditor_api.c */
        

Generated by: LCOV version 2.0-1