2 This file is part of GNUnet.
3 (C) 2009 Christian Grothoff (and other contributing authors)
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 2, or (at your
8 option) any later version.
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.
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., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
22 * @file util/test_bio.c
23 * @brief testcase for the buffered IO module
27 #include "gnunet_util_lib.h"
29 #define TESTSTRING "testString"
30 #define TESTNUMBER64 100000L
33 main (int argc, char *argv[])
35 char *readResultString;
36 int64_t testNumber = (int64_t)TESTNUMBER64;
40 struct GNUNET_BIO_ReadHandle *fileR;
41 struct GNUNET_BIO_WriteHandle *fileW;
42 struct GNUNET_CONTAINER_MetaData *metaDataW;
43 struct GNUNET_CONTAINER_MetaData *metaDataR;
45 fileName = GNUNET_DISK_mktemp ("gnunet_bio");
46 metaDataR = GNUNET_CONTAINER_meta_data_create();
47 metaDataW = GNUNET_CONTAINER_meta_data_create();
48 GNUNET_CONTAINER_meta_data_add_publication_date(metaDataW);
49 fileW = GNUNET_BIO_write_open(fileName);
50 GNUNET_assert(NULL!=fileW);
51 GNUNET_assert(GNUNET_OK == GNUNET_BIO_write_string(fileW, TESTSTRING));
52 GNUNET_assert(GNUNET_OK == GNUNET_BIO_write_meta_data(fileW,metaDataW));
53 GNUNET_assert(GNUNET_OK == GNUNET_BIO_write_int64(fileW,testNumber));
54 GNUNET_assert(GNUNET_OK == GNUNET_BIO_write_close(fileW));
55 fileR = GNUNET_BIO_read_open (fileName);
56 GNUNET_assert(NULL!=fileR);
57 GNUNET_assert(GNUNET_OK == GNUNET_BIO_read_string(fileR, "Read string error", &readResultString, 200));
58 GNUNET_BIO_read_meta_data(fileR, "Read meta error", &metaDataR);
59 GNUNET_assert(GNUNET_YES == GNUNET_CONTAINER_meta_data_test_equal(metaDataR,metaDataW));
60 GNUNET_assert(GNUNET_OK == GNUNET_BIO_read_int64(fileR, &testNum));
61 GNUNET_BIO_read_close(fileR,&msg);
62 GNUNET_CONTAINER_meta_data_destroy(metaDataW);
63 GNUNET_CONTAINER_meta_data_destroy(metaDataR);
64 GNUNET_DISK_directory_remove (fileName);