converted to a simple check for gnutls_global_init() as gnutls_global_init2() will...
[gnutls:gnutls.git] / tests / global-init.c
1 /*
2  * Copyright (C) 2008-2012 Free Software Foundation, Inc.
3  *
4  * Author: Joe Orton
5  *
6  * This file is part of GnuTLS.
7  *
8  * GnuTLS is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * GnuTLS is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with GnuTLS; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
21  */
22
23 /* Parts copied from GnuTLS example programs. */
24
25 #ifdef HAVE_CONFIG_H
26 #include <config.h>
27 #endif
28
29 #include <stdio.h>
30 #include <stdlib.h>
31 #include <string.h>
32 #include <sys/types.h>
33 #include <unistd.h>
34
35 #include <gnutls/gnutls.h>
36
37 #include "utils.h"
38
39 void doit(void)
40 {
41         int ret;
42
43         ret = gnutls_global_init();
44         if (ret < 0) {
45                 fail("Could not initialize\n");
46         }
47
48         /* That shouldn't crash */
49         gnutls_global_deinit();
50         gnutls_global_deinit();
51         gnutls_global_deinit();
52         gnutls_global_deinit();
53
54         ret = gnutls_global_init();
55         if (ret < 0) {
56                 fail("Could not initialize: %d\n", __LINE__);
57         }
58         
59         /* the rest shouldn't cause a leak */
60         ret = gnutls_global_init();
61         if (ret < 0) {
62                 fail("Could not initialize: %d\n", __LINE__);
63         }
64
65         ret = gnutls_global_init();
66         if (ret < 0) {
67                 fail("Could not initialize: %d\n", __LINE__);
68         }
69
70         gnutls_global_deinit();
71         gnutls_global_deinit();
72         gnutls_global_deinit();
73         gnutls_global_deinit();
74         gnutls_global_deinit();
75
76         /* This should fail */
77         ret = gnutls_global_init();
78         if (ret < 0) {
79                 fail("Could not initialize: %d\n", __LINE__);
80         }
81         
82         gnutls_global_deinit();
83 }