/* This file is part of libbrandt. * Copyright (C) 2016 GNUnet e.V. * * libbrandt 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 of the License, or (at your option) any later * version. * * libbrandt 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 * libbrandt. If not, see . */ /** * @file test_brandt.c * @brief testing API functions. * @author Markus Teich */ #include "platform.h" #include #include "brandt.h" #include "crypto.h" #include "test.h" #include "util.h" static void run_new_join (void *arg) { int *ret = arg; const char description[] = "test description for test_new_join"; struct BRANDT_Auction *ad_seller; struct BRANDT_Auction *ad_bidder; void *desc; size_t desc_len; ad_seller = BRANDT_new (NULL, NULL, NULL, NULL, &desc, &desc_len, description, sizeof (description), GNUNET_TIME_absolute_get (), GNUNET_TIME_UNIT_MINUTES, 8, 0, 1); if (!ad_seller) { weprintf ("BRANDT_new() failed."); *ret = 0; return; } ad_bidder = BRANDT_join (NULL, NULL, NULL, NULL, desc, desc_len, description, sizeof (description)); if (!ad_bidder) { weprintf ("BRANDT_join() failed."); *ret = 0; return; } if (ad_seller->k != ad_bidder->k || ad_seller->m != ad_bidder->m || ad_seller->outcome_public != ad_bidder->outcome_public || ad_seller->time_start.abs_value_us != ad_bidder->time_start.abs_value_us || ad_seller->time_round.rel_value_us != ad_bidder->time_round.rel_value_us || !ad_seller->seller_mode || ad_bidder->seller_mode) { weprintf ("error/mismatch in basic auction data"); *ret = 0; return; } BRANDT_destroy (ad_seller); BRANDT_destroy (ad_bidder); *ret = 1; } static int test_new_join () { int ret = 0; GNUNET_SCHEDULER_run (&run_new_join, &ret); return ret; } int main (int argc, char *argv[]) { struct GNUNET_CRYPTO_EccDlogContext *edc; edc = GNUNET_CRYPTO_ecc_dlog_prepare (1024, 16); BRANDT_init (edc); RUN (test_new_join); GNUNET_CRYPTO_ecc_dlog_release (edc); return ret; }