gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-exchange] branch master updated: Artificial 'now'.


From: gnunet
Subject: [GNUnet-SVN] [taler-exchange] branch master updated: Artificial 'now'.
Date: Sat, 06 Apr 2019 13:11:34 +0200

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new fdeb6301 Artificial 'now'.
fdeb6301 is described below

commit fdeb6301606b09ee68ca5cdc208a44f07fe50ce4
Author: Marcello Stanisci <address@hidden>
AuthorDate: Sat Apr 6 12:55:13 2019 +0200

    Artificial 'now'.
    
    Getting to the point where "/keys" discards expired
    DKs due to the artificial 'now' given on the URL.
---
 src/exchange/taler-exchange-httpd_keystate.c       |  3 +-
 src/lib/test_exchange_api_keys_cherry_picking.conf | 19 +++++
 .../test_exchange_api_keys_cherry_picking_new.c    | 97 ++++++++++------------
 src/lib/testing_api_cmd_check_keys.c               | 14 +++-
 src/lib/testing_api_loop.c                         |  1 -
 5 files changed, 76 insertions(+), 58 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd_keystate.c 
b/src/exchange/taler-exchange-httpd_keystate.c
index ad1883ba..6cef785c 100644
--- a/src/exchange/taler-exchange-httpd_keystate.c
+++ b/src/exchange/taler-exchange-httpd_keystate.c
@@ -730,7 +730,8 @@ reload_keys_denom_iter (void *cls,
     return GNUNET_OK;
   }
 
-  horizon = GNUNET_TIME_relative_to_absolute 
(TALER_EXCHANGE_conf_duration_provide ());
+  horizon = GNUNET_TIME_absolute_add (rfc->now,
+                                      TALER_EXCHANGE_conf_duration_provide ());
   start = GNUNET_TIME_absolute_ntoh (dki->issue.properties.start);
   if (start.abs_value_us > horizon.abs_value_us)
   {
diff --git a/src/lib/test_exchange_api_keys_cherry_picking.conf 
b/src/lib/test_exchange_api_keys_cherry_picking.conf
index e8473d46..afa003fa 100644
--- a/src/lib/test_exchange_api_keys_cherry_picking.conf
+++ b/src/lib/test_exchange_api_keys_cherry_picking.conf
@@ -101,6 +101,15 @@ WIRE-FEE-2023 = EUR:0.01
 WIRE-FEE-2024 = EUR:0.01
 WIRE-FEE-2025 = EUR:0.01
 WIRE-FEE-2026 = EUR:0.01
+WIRE-FEE-2027 = EUR:0.01
+WIRE-FEE-2028 = EUR:0.01
+WIRE-FEE-2029 = EUR:0.01
+WIRE-FEE-2030 = EUR:0.01
+WIRE-FEE-2031 = EUR:0.01
+WIRE-FEE-2032 = EUR:0.01
+WIRE-FEE-2033 = EUR:0.01
+WIRE-FEE-2034 = EUR:0.01
+WIRE-FEE-2035 = EUR:0.01
 
 CLOSING-FEE-2017 = EUR:0.01
 CLOSING-FEE-2018 = EUR:0.01
@@ -112,6 +121,16 @@ CLOSING-FEE-2023 = EUR:0.01
 CLOSING-FEE-2024 = EUR:0.01
 CLOSING-FEE-2025 = EUR:0.01
 CLOSING-FEE-2026 = EUR:0.01
+CLOSING-FEE-2027 = EUR:0.01
+CLOSING-FEE-2028 = EUR:0.01
+CLOSING-FEE-2029 = EUR:0.01
+CLOSING-FEE-2030 = EUR:0.01
+CLOSING-FEE-2031 = EUR:0.01
+CLOSING-FEE-2032 = EUR:0.01
+CLOSING-FEE-2033 = EUR:0.01
+CLOSING-FEE-2034 = EUR:0.01
+CLOSING-FEE-2035 = EUR:0.01
+
 
 [fees-sepa]
 # Fees for the forseeable future...
diff --git a/src/lib/test_exchange_api_keys_cherry_picking_new.c 
b/src/lib/test_exchange_api_keys_cherry_picking_new.c
index ccfb93a3..53173aa6 100644
--- a/src/lib/test_exchange_api_keys_cherry_picking_new.c
+++ b/src/lib/test_exchange_api_keys_cherry_picking_new.c
@@ -60,8 +60,7 @@
 struct GNUNET_TIME_Absolute now;
 
 /**
- * Adds to the current time.  XXX, open question: shall  we
- * also _set_ the global current time after the faking?
+ * Adds to the current time.
  *
  * @param relative number of _seconds_ to add to the current time.
  * @return a new absolute time, modified according to @e relative.
@@ -71,6 +70,9 @@ struct GNUNET_TIME_Absolute now;
     (now, \
      GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, \
                                     secs))
+#define JAN1971 "1971-01-01"
+#define JAN2030 "2030-01-01"
+
 /**
  * Exchange base URL; mainly purpose is to make the compiler happy.
  */
@@ -82,6 +84,24 @@ static char *exchange_url;
 static char *auditor_url;
 
 /**
+ * Wrapper around the time parser.
+ *
+ * @param str human-readable time string.
+ * @return the parsed time from @a str.
+ */
+static struct GNUNET_TIME_Absolute
+TTH_parse_time (const char *str)
+{
+  struct GNUNET_TIME_Absolute ret;
+
+  GNUNET_assert
+    (GNUNET_OK == GNUNET_STRINGS_fancy_time_to_absolute (str,
+                                                         &ret));
+  return ret;
+}
+
+
+/**
  * Main function that will tell the interpreter what commands to
  * run.
  *
@@ -92,9 +112,11 @@ run (void *cls,
      struct TALER_TESTING_Interpreter *is)
 {
   struct TALER_TESTING_Command keys_serialization[] = {
+
     TALER_TESTING_cmd_serialize_keys ("serialize-keys"),
     TALER_TESTING_cmd_connect_with_state ("reconnect-with-state",
                                           "serialize-keys"),
+
     TALER_TESTING_cmd_wire ("verify-/wire-with-serialized-keys",
                             "x-taler-bank",
                             NULL,
@@ -104,25 +126,15 @@ run (void *cls,
      */
     TALER_TESTING_cmd_exec_keyup ("keyup-serialization",
                                   CONFIG_FILE_EXTENDED_2),
-    TALER_TESTING_cmd_exec_auditor_sign
-      ("auditor-sign-serialization",
-       CONFIG_FILE_EXTENDED_2),
 
-    TALER_TESTING_cmd_sleep ("sleep-serialization",
-                             3),
-    TALER_TESTING_cmd_signal ("reload-keys-serialization",
-                              is->exchanged,
-                              SIGUSR1),
-    TALER_TESTING_cmd_sleep ("sleep-serialization",
-                             3),
     #if 0
 
     FIXME: #5672
     
     The test below fails on different systems.  Infact, different
-    systems can generate different "anchors" values for their denoms,
-    therefore the fixed value required by the test below (45) is
-    condemned to fail.
+    systems can generate different "anchors" values for their
+    denoms, therefore the fixed value required by the test below
+    (45) is condemned to fail.
 
     However, this seems to happen only when very big values are
     used for the "lookahead_sign" value.  Here we use 3500 seconds,
@@ -159,59 +171,36 @@ run (void *cls,
                               is->exchanged,
                               SIGUSR1),
     /**
-     * 1 DK with 80s withdraw duration.  Lookahead_sign is 60s.
+     * 1 DK with 80s withdraw duration, lookahead_sign is 60s
+     * => expect 1 DK.
      */
     TALER_TESTING_cmd_check_keys ("check-keys-1",
                                   1, /* generation */
                                   1),
     /**
-     * We now set lookahead_sign to 90s, and expect a new DK
-     * to be created.  The first one lives (= has withdraw_duration of)
-     * only 80s.
+     * This has a lookahead_sign == 60, and DK withdraw_time == 80
+     * => one DK should be created.
      */
-    TALER_TESTING_cmd_exec_keyup ("keyup-2",
-                                  CONFIG_FILE_EXTENDED),
-
-    TALER_TESTING_cmd_exec_auditor_sign ("sign-keys-1",
-                                         CONFIG_FILE_EXTENDED),
-
-    TALER_TESTING_cmd_signal ("trigger-keys-reload-1",
-                              is->exchanged,
-                              SIGUSR1),
-    /**
-     * Total 2 DKs.
+    TALER_TESTING_cmd_exec_keyup_with_now ("keyup-serialization",
+                                           CONFIG_FILE,
+                                           TTH_parse_time (JAN2030)),
+     /**
+     * Should return 1 key, + the original one = 2.
      */
-    TALER_TESTING_cmd_check_keys ("check-keys-2",
-                                  2, /* generation */
-                                  2),
-
-    /* Nothing should happen now.  */
-    TALER_TESTING_cmd_exec_keyup ("keyup-3",
-                                  CONFIG_FILE_EXTENDED),
-    TALER_TESTING_cmd_exec_auditor_sign ("sign-keys-2",
-                                         CONFIG_FILE),
-    TALER_TESTING_cmd_signal ("trigger-keys-reload-2",
-                              is->exchanged,
-                              SIGUSR1),
+    TALER_TESTING_cmd_check_keys_with_now
+      ("check-keys-2",
+       2, /* generation */
+       2,
+       TTH_parse_time (JAN2030)),
 
-    /**
-     * Make 30s time lapse (by passing the "now" argument to
-     * "/keys").  First DK has 50s of remaining life
-     * (duration_withdraw).  The second DK has ~60s of remaining
-     * life, therefore two keys should be (still) returned.
-     */
-    TALER_TESTING_cmd_check_keys_with_now ("check-keys-3",
-                                           3,
-                                           2,
-                                           NOWPLUSSECS (30)),
     TALER_TESTING_cmd_end ()
   };
   struct TALER_TESTING_Command commands[] = {
 
     TALER_TESTING_cmd_batch ("ordinary-cherry-pick",
                              ordinary_cherry_pick),
-    TALER_TESTING_cmd_batch ("keys-serialization",
-                             keys_serialization),
+    /*TALER_TESTING_cmd_batch ("keys-serialization",
+                             keys_serialization),*/
     TALER_TESTING_cmd_end ()
   };
 
diff --git a/src/lib/testing_api_cmd_check_keys.c 
b/src/lib/testing_api_cmd_check_keys.c
index d6ab012d..ff9647ad 100644
--- a/src/lib/testing_api_cmd_check_keys.c
+++ b/src/lib/testing_api_cmd_check_keys.c
@@ -19,7 +19,14 @@
 
 /**
  * @file exchange-lib/testing_api_cmd_check_keys.c
- * @brief Implementation of "check keys" test command.
+ * @brief Implementation of "check keys" test command.  XXX-NOTE:
+ *        the number of 'expected keys' is NOT the number of the
+ *        downloaded keys, but rather the number of keys that the
+ *        libtalerutil library keeps locally.  As for the current
+ *        design, keys are _never_ discarded by the library,
+ *        therefore their (expected) number is monotonically
+ *        ascending.
+ *
  * @author Marcello Stanisci
  */
 
@@ -149,7 +156,7 @@ check_keys_run (void *cls,
     TALER_TESTING_interpreter_fail (is);
     return;
   }
-  /* /keys was updated, let's check they were OK! */
+  /* "/keys" was updated, let's check they were OK! */
   if (cks->num_denom_keys != is->keys->num_denom_keys)
   {
     /* Did not get the expected number of denomination keys! */
@@ -300,6 +307,9 @@ TALER_TESTING_cmd_check_keys_with_now
   cks->now = now;
   cks->with_now = GNUNET_YES;
 
+  /* Force to NOT cherry pick, otherwise they conflict.  */
+  cks->pull_all_keys = GNUNET_YES;
+
   struct TALER_TESTING_Command cmd = {
     .cls = cks,
     .label = label,
diff --git a/src/lib/testing_api_loop.c b/src/lib/testing_api_loop.c
index 39a9b71a..071388f2 100644
--- a/src/lib/testing_api_loop.c
+++ b/src/lib/testing_api_loop.c
@@ -620,7 +620,6 @@ TALER_TESTING_cert_cb
         (GNUNET_ERROR_TYPE_ERROR,
          "Got NULL response for /keys"
          " during execution!\n");
-
   }
   else
   {

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]