/* Jungle Monkey * Copyright (C) 1999-2001 The Regents of the University of Michigan * * This program 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 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include "sha_cache.h" static int failed = 0; #define TEST(S, C) do { \ if (C) { /*g_print ("%s: PASS\n", (S));*/ } \ else { g_print ("%s: FAIL\n", (S)); failed = 1; } \ } while (0) int main (int argc, char* argv[]) { ShaCache* sc; FILE* file; GSHA* sha1; GSHA* sha2; GSHA* sha3; GSHA* sha; sha1 = gnet_sha_new_string ("ffffffffffffffffffffffffffffffffffffffff"); sha2 = gnet_sha_new_string ("cccccccccccccccccccccccccccccccccccccccc"); sha3 = gnet_sha_new_string ("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); file = fopen ("file1", "w"); fclose (file); file = fopen ("file2", "w"); fclose (file); file = fopen ("file3", "w"); fclose (file); sc = sha_cache_new (); TEST ("sha create", sc); sha = sha_cache_get (sc, "file1"); TEST ("sha get null", !sha); gnet_sha_delete (sha); sha_cache_add (sc, "file1", sha1); sha_cache_add (sc, "file2", sha2); sha = sha_cache_get (sc, "file3"); TEST ("sha get null 2", !sha); gnet_sha_delete (sha); sha = sha_cache_get (sc, "file1"); TEST ("sha get ok", sha); gnet_sha_delete (sha); sha_cache_add (sc, "file3", sha3); TEST ("cache has 3 things", sha_cache_size(sc) == 3); file = fopen ("sha.cache", "w"); sha_cache_write (sc, file); fclose (file); sha_cache_delete (sc); /* ********** */ /* Change file3 */ sleep(2); file = fopen ("file3", "w"); fclose (file); sc = sha_cache_new (); file = fopen ("sha.cache", "r"); sha_cache_read (sc, file); fclose (file); sha = sha_cache_get (sc, "file1"); TEST ("sha get file1 from vector", sha); gnet_sha_delete (sha); sha = sha_cache_get (sc, "file2"); TEST ("sha get file2 from vector", sha); gnet_sha_delete (sha); sha = sha_cache_get (sc, "file3"); TEST ("sha get file3 from vector (old)", !sha); gnet_sha_delete (sha); TEST ("vec has 2 things", sha_cache_size(sc) == 2); sha_cache_delete (sc); unlink ("file1"); unlink ("file2"); unlink ("file3"); unlink ("sha.cache"); if (failed) exit (1); gnet_sha_delete (sha1); gnet_sha_delete (sha2); gnet_sha_delete (sha3); exit (0); }