Merge branch 'master' of ssh://gnunet.org/gnunet
[oweals/gnunet.git] / src / psyc / psyc_test_lib.h
1 /*
2  * This file is part of GNUnet
3  * Copyright (C) 2013 GNUnet e.V.
4  *
5  * GNUnet is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published
7  * by the Free Software Foundation; either version 3, or (at your
8  * option) any later version.
9  *
10  * GNUnet is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with GNUnet; see the file COPYING.  If not, write to the
17  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20
21 /**
22  * @file psyc/test_psyc_api_join.c
23  * @brief library for writing psyc tests
24  * @author xrs
25  */
26
27 #define MAX_TESTBED_OPS 32
28
29 struct pctx
30 {
31   int idx;
32   
33   struct GNUNET_TESTBED_Peer *testbed_peer;
34   
35   const struct GNUNET_PeerIdentity *peer_id;
36
37   const struct GNUNET_PeerIdentity *peer_id_master;
38
39   /**
40    * Used to simulate egos (not peerid)
41    */
42   const struct GNUNET_CRYPTO_EcdsaPrivateKey *id_key;
43
44   const struct GNUNET_CRYPTO_EcdsaPublicKey *id_pub_key;
45
46   /**
47    * Used to store either GNUNET_PSYC_Master or GNUNET_PSYC_Slave handle
48    */
49   void *psyc;
50
51   struct GNUNET_PSYC_Channel *channel;
52
53   const struct GNUNET_CRYPTO_EddsaPrivateKey *channel_key;
54
55   struct GNUNET_CRYPTO_EddsaPublicKey *channel_pub_key;
56
57   int test_ok;
58 };
59
60 static struct GNUNET_SCHEDULER_Task *timeout_task_id;
61
62 static int result = GNUNET_SYSERR;
63
64 static struct GNUNET_TESTBED_Operation *op[MAX_TESTBED_OPS];
65
66 static int op_cnt = 0;
67