111 lines
2.8 KiB
C
111 lines
2.8 KiB
C
|
/*
|
||
|
This file is part of TALER
|
||
|
Copyright (C) 2014-2021 Taler Systems SA
|
||
|
|
||
|
TALER 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, or (at your option) any later version.
|
||
|
|
||
|
TALER 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
|
||
|
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
||
|
*/
|
||
|
/**
|
||
|
* @file exchangedb/bench_db.c
|
||
|
* @brief test cases for DB interaction functions
|
||
|
* @author Sree Harsha Totakura
|
||
|
* @author Christian Grothoff
|
||
|
* @author Marcello Stanisci
|
||
|
*/
|
||
|
#include "platform.h"
|
||
|
#include <gnunet/gnunet_pq_lib.h>
|
||
|
|
||
|
/**
|
||
|
* Global result from the testcase.
|
||
|
*/
|
||
|
static int result;
|
||
|
|
||
|
/**
|
||
|
* Initializes @a ptr with random data.
|
||
|
*/
|
||
|
#define RND_BLK(ptr) \
|
||
|
GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_WEAK, ptr, sizeof (*ptr))
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Main function that will be run by the scheduler.
|
||
|
*
|
||
|
* @param cls closure with config
|
||
|
*/
|
||
|
static void
|
||
|
run (void *cls)
|
||
|
{
|
||
|
struct GNUNET_CONFIGURATION_Handle *cfg = cls;
|
||
|
struct GNUNET_PQ_Context *conn;
|
||
|
|
||
|
conn = GNUNET_PQ_connect_with_cfg (cfg,
|
||
|
"bench-db-postgres",
|
||
|
"benchmark-",
|
||
|
NULL,
|
||
|
NULL);
|
||
|
if (NULL == conn)
|
||
|
{
|
||
|
result = EXIT_FAILURE;
|
||
|
GNUNET_break (0);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
GNUNET_PQ_disconnect (conn);
|
||
|
}
|
||
|
|
||
|
|
||
|
int
|
||
|
main (int argc,
|
||
|
char *const argv[])
|
||
|
{
|
||
|
const char *plugin_name;
|
||
|
char *config_filename;
|
||
|
char *testname;
|
||
|
struct GNUNET_CONFIGURATION_Handle *cfg;
|
||
|
|
||
|
(void) argc;
|
||
|
result = -1;
|
||
|
if (NULL == (plugin_name = strrchr (argv[0], (int) '-')))
|
||
|
{
|
||
|
GNUNET_break (0);
|
||
|
return -1;
|
||
|
}
|
||
|
GNUNET_log_setup (argv[0],
|
||
|
"WARNING",
|
||
|
NULL);
|
||
|
plugin_name++;
|
||
|
(void) GNUNET_asprintf (&testname,
|
||
|
"bench-db-%s",
|
||
|
plugin_name);
|
||
|
(void) GNUNET_asprintf (&config_filename,
|
||
|
"%s.conf",
|
||
|
testname);
|
||
|
cfg = GNUNET_CONFIGURATION_create ();
|
||
|
if (GNUNET_OK !=
|
||
|
GNUNET_CONFIGURATION_parse (cfg,
|
||
|
config_filename))
|
||
|
{
|
||
|
GNUNET_break (0);
|
||
|
GNUNET_free (config_filename);
|
||
|
GNUNET_free (testname);
|
||
|
return 2;
|
||
|
}
|
||
|
GNUNET_SCHEDULER_run (&run,
|
||
|
cfg);
|
||
|
GNUNET_CONFIGURATION_destroy (cfg);
|
||
|
GNUNET_free (config_filename);
|
||
|
GNUNET_free (testname);
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
|
||
|
/* end of bench_db.c */
|