diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2018-06-12 10:27:46 +0200 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2018-06-12 10:27:46 +0200 |
commit | f7be081ad266ee9ea11047033599d30b90fb5f32 (patch) | |
tree | 396118bfc2ff0eb1c8d6f33c7378a10b9a36c100 /src | |
parent | fcefedff112660cb33d407eb97bf139e52e9c2c7 (diff) |
Dynamic currency at the generator.
Moving currency-dependant strings allocation
above the run method.
Diffstat (limited to 'src')
-rw-r--r-- | src/merchant-tools/taler-merchant-generate-payments_new.c | 165 |
1 files changed, 88 insertions, 77 deletions
diff --git a/src/merchant-tools/taler-merchant-generate-payments_new.c b/src/merchant-tools/taler-merchant-generate-payments_new.c index 986ddc73..b910d81f 100644 --- a/src/merchant-tools/taler-merchant-generate-payments_new.c +++ b/src/merchant-tools/taler-merchant-generate-payments_new.c @@ -127,58 +127,38 @@ static char *merchant_url; static char *currency; /** - * Actual commands collection. + * Convenience macros to allocate all the currency-dependant + * strings; note that the argument list of the macro is ignored. + * It is kept as a way to make the macro more auto-descriptive + * where it is called. */ -static void -run (void *cls, - struct TALER_TESTING_Interpreter *is) -{ - /* Currency strings. */ - char *CURRENCY_25_05; - char *CURRENCY_10; - char *CURRENCY_9_98; - char *CURRENCY_5; - char *CURRENCY_4_99; - char *CURRENCY_0_02; - char *CURRENCY_0_01; - - GNUNET_asprintf (&CURRENCY_25_05, - "%s:25.05", - currency); - - GNUNET_asprintf (&CURRENCY_10, - "%s:10", +#define ALLOCATE_AMOUNTS(...) \ + GNUNET_asprintf (&CURRENCY_25_05, \ + "%s:25.05", \ + currency); \ + GNUNET_asprintf (&CURRENCY_10, \ + "%s:10", \ + currency); \ + GNUNET_asprintf (&CURRENCY_9_98, \ + "%s:9.98", \ + currency); \ + GNUNET_asprintf (&CURRENCY_5, \ + "%s:5", \ + currency); \ + GNUNET_asprintf (&CURRENCY_4_99, \ + "%s:4.99", \ + currency); \ + GNUNET_asprintf (&CURRENCY_0_02, \ + "%s:0.02", \ + currency); \ + GNUNET_asprintf (&CURRENCY_0_01, \ + "%s:0.01", \ currency); - GNUNET_asprintf (&CURRENCY_9_98, - "%s:9.98", - currency); - - GNUNET_asprintf (&CURRENCY_5, - "%s:5", - currency); - - GNUNET_asprintf (&CURRENCY_4_99, - "%s:4.99", - currency); - - GNUNET_asprintf (&CURRENCY_0_02, - "%s:0.02", - currency); - - GNUNET_asprintf (&CURRENCY_0_01, - "%s:0.01", - currency); - - /* Orders. */ - char *order_worth_5; - char *order_worth_10_2coins; - char *order_worth_5_track; - char *order_worth_5_unaggregated; - - GNUNET_asprintf - (&order_worth_5, +#define ALLOCATE_ORDERS(...) \ + GNUNET_asprintf \ + (&order_worth_5, \ "{\"max_fee\":\ {\"currency\":\"%s\",\ \"value\":0,\ @@ -192,14 +172,12 @@ run (void *cls, \"summary\": \"merchant-lib testcase\",\ \"fulfillment_url\": \"https://example.com/\",\ \"products\": [ {\"description\":\"ice cream\",\ - \"value\":\"{%s:5}\"} ]\ - }", - currency, - currency, - currency); - - GNUNET_asprintf - (&order_worth_10_2coins, + \"value\":\"{%s:5}\"} ] }", \ + currency, \ + currency, \ + currency); \ + GNUNET_asprintf \ + (&order_worth_10_2coins, \ "{\"max_fee\":\ {\"currency\":\"%s\",\ \"value\":0,\ @@ -213,14 +191,12 @@ run (void *cls, \"summary\": \"2-coins untracked payment\",\ \"fulfillment_url\": \"https://example.com/\",\ \"products\": [ {\"description\":\"2-coins payment\",\ - \"value\":\"{%s:10}\"} ]\ - }", - currency, - currency, - currency); - - GNUNET_asprintf - (&order_worth_5_track, + \"value\":\"{%s:10}\"} ] }", \ + currency, \ + currency, \ + currency); \ + GNUNET_asprintf \ + (&order_worth_5_track, \ "{\"max_fee\":\ {\"currency\":\"%s\",\ \"value\":0,\ @@ -234,15 +210,12 @@ run (void *cls, \"summary\": \"ice track cream!\",\ \"fulfillment_url\": \"https://example.com/\",\ \"products\": [ {\"description\":\"ice track cream\",\ - \"value\":\"{%s:5}\"} ]\ - }", - currency, - currency, - currency); - - - GNUNET_asprintf - (&order_worth_5_unaggregated, + \"value\":\"{%s:5}\"} ] }", \ + currency, \ + currency, \ + currency); \ + GNUNET_asprintf \ + (&order_worth_5_unaggregated, \ "{\"max_fee\":\ {\"currency\":\"%s\",\ \"value\":0,\ @@ -256,12 +229,50 @@ run (void *cls, \"summary\": \"unaggregated deposit!\",\ \"fulfillment_url\": \"https://example.com/\",\ \"products\": [ {\"description\":\"unaggregated cream\",\ - \"value\":\"{%s:5}\"} ]\ - }", - currency, - currency, + \"value\":\"{%s:5}\"} ] }", \ + currency, \ + currency, \ currency); +/** + * Actual commands collection. + */ +static void +run (void *cls, + struct TALER_TESTING_Interpreter *is) +{ + + /* Currency strings. */ + char *CURRENCY_25_05; + char *CURRENCY_10; + char *CURRENCY_9_98; + char *CURRENCY_5; + char *CURRENCY_4_99; + char *CURRENCY_0_02; + char *CURRENCY_0_01; + + ALLOCATE_AMOUNTS + (CURRENCY_25_05, + CURRENCY_10, + CURRENCY_9_98, + CURRENCY_5, + CURRENCY_4_99, + CURRENCY_0_02, + CURRENCY_0_01); + + + /* Orders. */ + char *order_worth_5; + char *order_worth_10_2coins; + char *order_worth_5_track; + char *order_worth_5_unaggregated; + + ALLOCATE_ORDERS + (order_worth_5, + order_worth_10_2coins, + order_worth_5_track, + order_worth_5_unaggregated); + struct TALER_TESTING_Command commands[] = { CMD_TRANSFER_TO_EXCHANGE |