124 lines
2.9 KiB
C
124 lines
2.9 KiB
C
/* 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 <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/**
|
|
* @file test_brandt.c
|
|
* @brief testing API functions.
|
|
* @author Markus Teich
|
|
*/
|
|
|
|
#include "platform.h"
|
|
|
|
#include <gnunet/gnunet_util_lib.h>
|
|
|
|
#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;
|
|
}
|