GNUnet 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 2, or (at your
+ by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
struct GNUNET_BIO_ReadHandle *fileR;
struct GNUNET_CONTAINER_MetaData *metaDataW;
struct GNUNET_CONTAINER_MetaData *metaDataR;
+
metaDataW = GNUNET_CONTAINER_meta_data_create ();
metaDataR = NULL;
GNUNET_CONTAINER_meta_data_add_publication_date (metaDataW);
GNUNET_assert (GNUNET_OK ==
GNUNET_BIO_read_string (fileR, "Read string error",
&readResultString, 200));
+ GNUNET_assert (NULL != readResultString);
GNUNET_assert (0 == strcmp (TESTSTRING, readResultString));
GNUNET_free (readResultString);
GNUNET_assert (GNUNET_OK ==
GNUNET_BIO_read_meta_data (fileR, "Read meta error",
&metaDataR));
GNUNET_assert (GNUNET_YES ==
- GNUNET_CONTAINER_meta_data_test_equal (metaDataR,
- metaDataW));
+ GNUNET_CONTAINER_meta_data_test_equal (metaDataR, metaDataW));
GNUNET_assert (GNUNET_OK == GNUNET_BIO_read_int64 (fileR, &testNum));
GNUNET_BIO_read_close (fileR, &msg);
GNUNET_CONTAINER_meta_data_destroy (metaDataW);
{
char *msg;
static char meta[1024 * 1024 * 10];
- memset (meta, 'b', sizeof (meta));
- meta[sizeof (meta) - 1] = '\0';
struct GNUNET_BIO_WriteHandle *fileW;
struct GNUNET_BIO_ReadHandle *fileR;
char *fileName = GNUNET_DISK_mktemp ("gnunet_bio");
- struct GNUNET_CONTAINER_MetaData *metaDataW;
struct GNUNET_CONTAINER_MetaData *metaDataR;
- metaDataW = GNUNET_CONTAINER_meta_data_create ();
- GNUNET_CONTAINER_meta_data_add_publication_date (metaDataW);
- GNUNET_assert (GNUNET_OK ==
- GNUNET_CONTAINER_meta_data_insert (metaDataW,
- EXTRACTOR_COMMENT, meta));
+ memset (meta, 'b', sizeof (meta));
+ meta[sizeof (meta) - 1] = '\0';
fileW = GNUNET_BIO_write_open (fileName);
GNUNET_assert (NULL != fileW);
- GNUNET_assert (GNUNET_OK == GNUNET_BIO_write_meta_data (fileW, metaDataW));
+ GNUNET_assert (GNUNET_OK == GNUNET_BIO_write_int32 (fileW, sizeof (meta)));
+ GNUNET_assert (GNUNET_OK == GNUNET_BIO_write (fileW, meta, sizeof (meta)));
GNUNET_assert (GNUNET_OK == GNUNET_BIO_write_close (fileW));
fileR = GNUNET_BIO_read_open (fileName);
GNUNET_assert (NULL != fileR);
metaDataR = NULL;
- GNUNET_log_skip (1, GNUNET_NO);
GNUNET_assert (GNUNET_SYSERR ==
GNUNET_BIO_read_meta_data (fileR, "Read meta error",
&metaDataR));
- GNUNET_log_skip (0, GNUNET_YES);
msg = NULL;
GNUNET_BIO_read_close (fileR, &msg);
GNUNET_free (msg);
GNUNET_assert (GNUNET_OK == GNUNET_DISK_directory_remove (fileName));
GNUNET_assert (NULL == metaDataR);
- GNUNET_CONTAINER_meta_data_destroy (metaDataW);
GNUNET_free (fileName);
return 0;
}
static int
test_directory_r ()
{
+#if LINUX || DARWIN
char *msg;
char readResult[200];
struct GNUNET_BIO_ReadHandle *fileR;
fileR = GNUNET_BIO_read_open ("/dev");
GNUNET_assert (NULL != fileR);
GNUNET_assert (GNUNET_SYSERR ==
- GNUNET_BIO_read (fileR, "Read error", readResult, 65537));
+ GNUNET_BIO_read (fileR, "Read error", readResult,
+ sizeof (readResult)));
msg = NULL;
GNUNET_BIO_read_close (fileR, &msg);
GNUNET_free (msg);
+#endif
return 0;
}
static int
test_nullfile_rw ()
{
- char *msg;
- int64_t testNum;
- char *readResultString;
static char fileNameNO[102401];
- char readResult[200];
- struct GNUNET_BIO_WriteHandle *fileW, *fileWNO;
- struct GNUNET_BIO_ReadHandle *fileR, *fileRNO;
- struct GNUNET_CONTAINER_MetaData *metaDataW;
- struct GNUNET_CONTAINER_MetaData *metaDataR;
+ struct GNUNET_BIO_WriteHandle *fileWNO;
+ struct GNUNET_BIO_ReadHandle *fileRNO;
memset (fileNameNO, 'a', sizeof (fileNameNO));
fileNameNO[sizeof (fileNameNO) - 1] = '\0';
- metaDataW = GNUNET_CONTAINER_meta_data_create ();
- metaDataR = GNUNET_CONTAINER_meta_data_create ();
- GNUNET_CONTAINER_meta_data_add_publication_date (metaDataW);
-
+
GNUNET_log_skip (1, GNUNET_NO);
fileWNO = GNUNET_BIO_write_open (fileNameNO);
GNUNET_log_skip (0, GNUNET_YES);
fileRNO = GNUNET_BIO_read_open (fileNameNO);
GNUNET_log_skip (0, GNUNET_YES);
GNUNET_assert (NULL == fileRNO);
+ return 0;
+}
+
+
+static int
+test_fullfile_rw ()
+{
+#ifdef LINUX
+ /* /dev/full only seems to exist on Linux */
+ char *msg;
+ int64_t testNum;
+ char *readResultString;
+ char readResult[200];
+ struct GNUNET_BIO_WriteHandle *fileW;
+ struct GNUNET_BIO_ReadHandle *fileR;
+ struct GNUNET_CONTAINER_MetaData *metaDataW;
+ struct GNUNET_CONTAINER_MetaData *metaDataR;
+
+ metaDataW = GNUNET_CONTAINER_meta_data_create ();
+ GNUNET_CONTAINER_meta_data_add_publication_date (metaDataW);
-#ifdef LINUX /* is /dev/full present on any other OS than linux, really */
fileW = GNUNET_BIO_write_open ("/dev/full");
GNUNET_assert (NULL != fileW);
- GNUNET_assert (GNUNET_SYSERR ==
- GNUNET_BIO_write (fileW, fileNameNO, sizeof (fileNameNO)));
- GNUNET_assert (GNUNET_SYSERR ==
- GNUNET_BIO_write_string (fileW, TESTSTRING));
- GNUNET_assert (GNUNET_SYSERR ==
- GNUNET_BIO_write_meta_data (fileW, metaDataW));
+ (void) GNUNET_BIO_write (fileW, TESTSTRING, strlen (TESTSTRING));
+ (void) GNUNET_BIO_write_string (fileW, TESTSTRING);
+ (void) GNUNET_BIO_write_meta_data (fileW, metaDataW);
GNUNET_assert (GNUNET_SYSERR == GNUNET_BIO_write_close (fileW));
+ GNUNET_CONTAINER_meta_data_destroy (metaDataW);
fileW = GNUNET_BIO_write_open ("/dev/full");
GNUNET_assert (NULL != fileW);
fileR = GNUNET_BIO_read_open ("/dev/null");
GNUNET_assert (NULL != fileR);
GNUNET_assert (GNUNET_SYSERR ==
- GNUNET_BIO_read (fileR, "Read error", readResult, 65537));
+ GNUNET_BIO_read (fileR, "Read error", readResult,
+ sizeof (readResult)));
readResultString = NULL;
GNUNET_assert (GNUNET_SYSERR ==
GNUNET_BIO_read_string (fileR, "Read string error",
&readResultString, 200));
GNUNET_assert (NULL == readResultString);
GNUNET_assert (GNUNET_SYSERR == GNUNET_BIO_read_int64 (fileR, &testNum));
+ metaDataR = NULL;
GNUNET_assert (GNUNET_SYSERR ==
GNUNET_BIO_read_meta_data (fileR, "Read meta error",
&metaDataR));
msg = NULL;
GNUNET_BIO_read_close (fileR, &msg);
GNUNET_free (msg);
- GNUNET_CONTAINER_meta_data_destroy (metaDataR);
- GNUNET_CONTAINER_meta_data_destroy (metaDataW);
+ GNUNET_assert (NULL == metaDataR);
#endif
return 0;
}
{
GNUNET_assert (0 == test_normal_rw ());
GNUNET_assert (0 == test_nullfile_rw ());
+ GNUNET_assert (0 == test_fullfile_rw ());
GNUNET_assert (0 == test_directory_r ());
return 0;
}
GNUNET_assert (0 == check_metadata_rw ());
GNUNET_assert (0 == check_string_rw ());
return 0;
-} /* end of main */
+}
+
+/* end of test_bio.c */