diff options
Diffstat (limited to 'src/json/test_json.c')
-rw-r--r-- | src/json/test_json.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/json/test_json.c b/src/json/test_json.c index ffc5b33c7..a8c1c6d8e 100644 --- a/src/json/test_json.c +++ b/src/json/test_json.c @@ -330,6 +330,40 @@ test_contract (void) } +static int +test_rfc8785 (void) +{ + struct TALER_PrivateContractHash h1; + json_t *c1; + + c1 = json_pack ("{s:s}", + "k1", "\x08\x0B\t\1\\\x0d"); + GNUNET_assert (GNUNET_OK == + TALER_JSON_contract_hash (c1, + &h1)); + { + char *s; + + s = GNUNET_STRINGS_data_to_string_alloc (&h1, + sizeof (h1)); + if (0 != + strcmp (s, + "J678K3PW9Y3DG63Z3T7ZYR2P7CEXMVZ2SFPQMABACK9TJRYREPP82542PCJ0P7Y7FAQAMWECDX50XH1RBTWHX6SSJHH6FXRV0JCS6R8")) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Invalid reference hash: %s\n", + s); + GNUNET_free (s); + json_decref (c1); + return 1; + } + GNUNET_free (s); + } + json_decref (c1); + return 0; +} + + int main (int argc, const char *const argv[]) @@ -343,6 +377,8 @@ main (int argc, return 1; if (0 != test_contract ()) return 2; + if (0 != test_rfc8785 ()) + return 2; return 0; } |