X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Futil%2Ftest_disk.c;h=3f8188d677763fb9c911e5af4eceb5d2e71ed264;hb=4a25afcbc1cd57637f340a5b5369b999429b79f9;hp=f89b1de255d775e73a621028b498422bd5810d71;hpb=dc6e9887c24209d0e3dfb6cfb30fbde6ae3b47e9;p=oweals%2Fgnunet.git diff --git a/src/util/test_disk.c b/src/util/test_disk.c index f89b1de25..3f8188d67 100644 --- a/src/util/test_disk.c +++ b/src/util/test_disk.c @@ -1,10 +1,10 @@ /* This file is part of GNUnet. - (C) 2001, 2002, 2003, 2005, 2006 Christian Grothoff (and other contributing authors) + (C) 2001, 2002, 2003, 2005, 2006, 2009 Christian Grothoff (and other contributing authors) 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 @@ -24,9 +24,7 @@ * @author Christian Grothoff */ #include "platform.h" -#include "gnunet_common.h" -#include "gnunet_disk_lib.h" -#include "gnunet_scheduler_lib.h" +#include "gnunet_util_lib.h" #define TESTSTRING "Hello World\0" @@ -36,43 +34,42 @@ testReadWrite () char tmp[100 + 1]; int ret; - if (GNUNET_OK != GNUNET_DISK_fn_write (".testfile", TESTSTRING, strlen ( - TESTSTRING), GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE)) + if (strlen (TESTSTRING) != + GNUNET_DISK_fn_write (".testfile", TESTSTRING, strlen (TESTSTRING), + GNUNET_DISK_PERM_USER_READ | + GNUNET_DISK_PERM_USER_WRITE)) return 1; if (GNUNET_OK != GNUNET_DISK_file_test (".testfile")) return 1; ret = GNUNET_DISK_fn_read (".testfile", tmp, sizeof (tmp) - 1); if (ret < 0) - { - fprintf (stderr, - "Error reading file `%s' in testReadWrite\n", ".testfile"); - return 1; - } + { + FPRINTF (stderr, "Error reading file `%s' in testReadWrite\n", ".testfile"); + return 1; + } tmp[ret] = '\0'; if (0 != memcmp (tmp, TESTSTRING, strlen (TESTSTRING) + 1)) - { - fprintf (stderr, - "Error in testReadWrite: *%s* != *%s* for file %s\n", - tmp, TESTSTRING, ".testfile"); - return 1; - } + { + FPRINTF (stderr, "Error in testReadWrite: *%s* != *%s* for file %s\n", tmp, + TESTSTRING, ".testfile"); + return 1; + } GNUNET_DISK_file_copy (".testfile", ".testfile2"); memset (tmp, 0, sizeof (tmp)); ret = GNUNET_DISK_fn_read (".testfile2", tmp, sizeof (tmp) - 1); if (ret < 0) - { - fprintf (stderr, - "Error reading file `%s' in testReadWrite\n", ".testfile2"); - return 1; - } + { + FPRINTF (stderr, "Error reading file `%s' in testReadWrite\n", + ".testfile2"); + return 1; + } tmp[ret] = '\0'; if (0 != memcmp (tmp, TESTSTRING, strlen (TESTSTRING) + 1)) - { - fprintf (stderr, - "Error in testReadWrite: *%s* != *%s* for file %s\n", - tmp, TESTSTRING, ".testfile2"); - return 1; - } + { + FPRINTF (stderr, "Error in testReadWrite: *%s* != *%s* for file %s\n", tmp, + TESTSTRING, ".testfile2"); + return 1; + } GNUNET_break (0 == UNLINK (".testfile")); GNUNET_break (0 == UNLINK (".testfile2")); @@ -85,41 +82,23 @@ testReadWrite () static int testOpenClose () { - struct GNUNET_IO_Handle *fh; - unsigned long long size; - long avail; - - fh = GNUNET_DISK_file_open (".testfile", GNUNET_DISK_OPEN_READWRITE - | GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_PERM_USER_READ - | GNUNET_DISK_PERM_USER_WRITE); + struct GNUNET_DISK_FileHandle *fh; + uint64_t size; + + fh = GNUNET_DISK_file_open (".testfile", + GNUNET_DISK_OPEN_READWRITE | + GNUNET_DISK_OPEN_CREATE, + GNUNET_DISK_PERM_USER_READ | + GNUNET_DISK_PERM_USER_WRITE); GNUNET_assert (GNUNET_NO == GNUNET_DISK_handle_invalid (fh)); GNUNET_break (5 == GNUNET_DISK_file_write (fh, "Hello", 5)); - GNUNET_DISK_file_close (&fh); + GNUNET_DISK_file_close (fh); GNUNET_break (GNUNET_OK == - GNUNET_DISK_file_size (".testfile", &size, GNUNET_NO)); + GNUNET_DISK_file_size (".testfile", &size, GNUNET_NO, GNUNET_YES)); if (size != 5) return 1; GNUNET_break (0 == UNLINK (".testfile")); - /* test that avail goes down as we fill the disk... */ - GNUNET_log_skip (1); - avail = GNUNET_DISK_get_blocks_available (".testfile"); - GNUNET_log_skip (0); - fh = GNUNET_DISK_file_open (".testfile", GNUNET_DISK_OPEN_READWRITE - | GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_PERM_USER_WRITE - | GNUNET_DISK_PERM_USER_READ); - GNUNET_assert (GNUNET_NO == GNUNET_DISK_handle_invalid (fh)); - while ((avail == GNUNET_DISK_get_blocks_available (".testfile")) && - (avail != -1)) - if (16 != GNUNET_DISK_file_write (fh, "HelloWorld123456", 16)) - { - GNUNET_DISK_file_close (&fh); - GNUNET_break (0 == UNLINK (".testfile")); - return 1; - } - GNUNET_DISK_file_close (&fh); - GNUNET_break (0 == UNLINK (".testfile")); - return 0; } @@ -136,11 +115,14 @@ scan_callback (void *want, const char *filename) static int testDirScan () { - if (GNUNET_OK != GNUNET_DISK_directory_create ("test/entry")) + if (GNUNET_OK != + GNUNET_DISK_directory_create ("test" DIR_SEPARATOR_STR "entry")) return 1; - if (GNUNET_OK != GNUNET_DISK_directory_create ("test/entry_more")) + if (GNUNET_OK != + GNUNET_DISK_directory_create ("test" DIR_SEPARATOR_STR "entry_more")) return 1; - GNUNET_DISK_directory_scan ("test", &scan_callback, "test/entry"); + GNUNET_DISK_directory_scan ("test", &scan_callback, + "test" DIR_SEPARATOR_STR "entry"); if (GNUNET_OK != GNUNET_DISK_directory_remove ("test")) return 1; if (ok < 2) @@ -149,11 +131,11 @@ testDirScan () } static void -iter_callback (void *cls, - struct GNUNET_DISK_DirectoryIterator *di, +iter_callback (void *cls, struct GNUNET_DISK_DirectoryIterator *di, const char *filename, const char *dirname) { int *i = cls; + (*i)++; GNUNET_DISK_directory_iterator_next (di, GNUNET_NO); } @@ -161,8 +143,7 @@ iter_callback (void *cls, static void iter_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { - GNUNET_DISK_directory_iterator_start (tc->sched, - GNUNET_SCHEDULER_PRIORITY_DEFAULT, + GNUNET_DISK_directory_iterator_start (GNUNET_SCHEDULER_PRIORITY_DEFAULT, "test", &iter_callback, cls); } @@ -187,35 +168,17 @@ testDirIter () } -static int -testGetHome () -{ - struct GNUNET_CONFIGURATION_Handle *cfg; - char *fn; - int ret; - - cfg = GNUNET_CONFIGURATION_create (); - GNUNET_assert (cfg != NULL); - GNUNET_CONFIGURATION_set_value_string (cfg, "service", "HOME", - "/tmp/a/b/c"); - fn = GNUNET_DISK_get_home_filename (cfg, "service", "d", "e", NULL); - GNUNET_assert (fn != NULL); - GNUNET_CONFIGURATION_destroy (cfg); - ret = strcmp ("/tmp/a/b/c/d/e", fn); - GNUNET_free (fn); - return ret; -} - static int testCanonicalize () { char *fn = GNUNET_strdup ("ab?><|cd*ef:/g\""); + GNUNET_DISK_filename_canonicalize (fn); if (0 != strcmp (fn, "ab____cd_ef__g_")) - { - GNUNET_free (fn); - return 1; - } + { + GNUNET_free (fn); + return 1; + } GNUNET_free (fn); return 0; } @@ -223,9 +186,11 @@ testCanonicalize () static int testChangeOwner () { - GNUNET_log_skip (1); +#ifndef WINDOWS + GNUNET_log_skip (1, GNUNET_NO); if (GNUNET_OK == GNUNET_DISK_file_change_owner ("/dev/null", "unknownuser")) return 1; +#endif return 0; } @@ -242,7 +207,7 @@ testDirMani () return 1; if (GNUNET_OK != GNUNET_DISK_directory_create ("test")) return 1; - if (GNUNET_YES != GNUNET_DISK_directory_test ("test")) + if (GNUNET_YES != GNUNET_DISK_directory_test ("test", GNUNET_YES)) return 1; if (GNUNET_OK != GNUNET_DISK_directory_remove ("test")) return 1; @@ -262,14 +227,13 @@ main (int argc, char *argv[]) failureCount += testOpenClose (); failureCount += testDirScan (); failureCount += testDirIter (); - failureCount += testGetHome (); failureCount += testCanonicalize (); failureCount += testChangeOwner (); failureCount += testDirMani (); if (failureCount != 0) - { - fprintf (stderr, "\n%u TESTS FAILED!\n", failureCount); - return -1; - } + { + FPRINTF (stderr, "\n%u TESTS FAILED!\n", failureCount); + return -1; + } return 0; } /* end of main */