X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fpeerstore%2Ftest_plugin_peerstore.c;h=62c06be8e6f15826745ad2ab4f6aae8bcd51ea62;hb=79fb947eb8fba243ea65e19b40b65e04f8806865;hp=da78b3f759edeff981764d62531e3475fb9f8dd9;hpb=0623fdd510f1dacd25f1b8ff592ff6de038c51dc;p=oweals%2Fgnunet.git diff --git a/src/peerstore/test_plugin_peerstore.c b/src/peerstore/test_plugin_peerstore.c index da78b3f75..62c06be8e 100644 --- a/src/peerstore/test_plugin_peerstore.c +++ b/src/peerstore/test_plugin_peerstore.c @@ -36,6 +36,11 @@ static int ok; static const char *plugin_name; +static struct GNUNET_PEERSTORE_PluginFunctions *psp; + +static struct GNUNET_PeerIdentity p1; + + /** * Function called when the service shuts down. Unloads our namestore * plugin. @@ -47,8 +52,12 @@ unload_plugin (struct GNUNET_PEERSTORE_PluginFunctions *api) { char *libname; - GNUNET_asprintf (&libname, "libgnunet_plugin_peer_%s", plugin_name); - GNUNET_break (NULL == GNUNET_PLUGIN_unload (libname, api)); + GNUNET_asprintf (&libname, + "libgnunet_plugin_peer_%s", + plugin_name); + GNUNET_break (NULL == + GNUNET_PLUGIN_unload (libname, + api)); GNUNET_free (libname); } @@ -65,12 +74,18 @@ load_plugin (const struct GNUNET_CONFIGURATION_Handle *cfg) struct GNUNET_PEERSTORE_PluginFunctions *ret; char *libname; - GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Loading `%s' peer plugin\n"), + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + _("Loading `%s' peer plugin\n"), plugin_name); - GNUNET_asprintf (&libname, "libgnunet_plugin_peerstore_%s", plugin_name); - if (NULL == (ret = GNUNET_PLUGIN_load (libname, (void*) cfg))) + GNUNET_asprintf (&libname, + "libgnunet_plugin_peerstore_%s", + plugin_name); + if (NULL == (ret = GNUNET_PLUGIN_load (libname, + (void*) cfg))) { - FPRINTF (stderr, "Failed to load plugin `%s'!\n", plugin_name); + FPRINTF (stderr, + "Failed to load plugin `%s'!\n", + plugin_name); GNUNET_free (libname); return NULL; } @@ -79,22 +94,30 @@ load_plugin (const struct GNUNET_CONFIGURATION_Handle *cfg) } -static int +static void test_record (void *cls, - const struct GNUNET_PEERSTORE_Record *record, - const char *error) + const struct GNUNET_PEERSTORE_Record *record, + const char *error) { - struct GNUNET_PeerIdentity *id = cls; - char* testval = "test_val"; + const struct GNUNET_PeerIdentity *id = cls; + const char* testval = "test_val"; if (NULL == record) - return GNUNET_NO; - - GNUNET_assert (0 == memcmp (record->peer, id, sizeof (struct GNUNET_PeerIdentity))); - GNUNET_assert (0 == strcmp ("subsys", record->sub_system)); - GNUNET_assert (0 == strcmp ("key", record->key)); - GNUNET_assert (0 == memcmp (testval, record->value, strlen (testval))); - return GNUNET_YES; + { + unload_plugin (psp); + return; + } + GNUNET_assert (0 == memcmp (&record->peer, + id, + sizeof (struct GNUNET_PeerIdentity))); + GNUNET_assert (0 == strcmp ("subsys", + record->sub_system)); + GNUNET_assert (0 == strcmp ("key", + record->key)); + GNUNET_assert (0 == memcmp (testval, + record->value, + strlen (testval))); + ok = 0; } @@ -102,38 +125,52 @@ static void get_record (struct GNUNET_PEERSTORE_PluginFunctions *psp, const struct GNUNET_PeerIdentity *identity) { - GNUNET_assert (GNUNET_OK == psp->iterate_records (psp->cls, - "subsys", identity, "key", &test_record, (void*)identity)); + GNUNET_assert (GNUNET_OK == + psp->iterate_records (psp->cls, + "subsys", + identity, + "key", + &test_record, + (void*)identity)); } + static void -store_cont (void *cls, int status) +store_cont (void *cls, + int status) { GNUNET_assert (GNUNET_OK == status); + get_record (psp, + &p1); } + static void -put_record (struct GNUNET_PEERSTORE_PluginFunctions *psp, struct GNUNET_PeerIdentity *identity) +put_record (struct GNUNET_PEERSTORE_PluginFunctions *psp, + const struct GNUNET_PeerIdentity *identity) { - GNUNET_assert (GNUNET_OK == psp->store_record (psp->cls, - "subsys", - identity, - "key", "test_value", strlen ("test_value"), - GNUNET_TIME_absolute_get (), - GNUNET_PEERSTORE_STOREOPTION_REPLACE, - &store_cont, - identity)); + GNUNET_assert (GNUNET_OK == + psp->store_record (psp->cls, + "subsys", + identity, + "key", + "test_value", + strlen ("test_value"), + GNUNET_TIME_absolute_get (), + GNUNET_PEERSTORE_STOREOPTION_REPLACE, + &store_cont, + NULL)); } static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, + char *const *args, + const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { - struct GNUNET_PEERSTORE_PluginFunctions *psp; - struct GNUNET_PeerIdentity p1; - ok = 0; + ok = 1; psp = load_plugin (cfg); if (NULL == psp) { @@ -143,10 +180,8 @@ run (void *cls, char *const *args, const char *cfgfile, return; } memset (&p1, 1, sizeof (p1)); - put_record (psp, &p1); - get_record (psp, &p1); - - unload_plugin (psp); + put_record (psp, + &p1); } @@ -164,19 +199,26 @@ main (int argc, char *argv[]) GNUNET_GETOPT_OPTION_END }; - //GNUNET_DISK_directory_remove ("/tmp/gnunet-test-plugin-namestore-sqlite"); GNUNET_log_setup ("test-plugin-peerstore", "WARNING", NULL); plugin_name = GNUNET_TESTING_get_testname_from_underscore (argv[0]); - GNUNET_snprintf (cfg_name, sizeof (cfg_name), "test_plugin_peerstore_%s.conf", + GNUNET_snprintf (cfg_name, + sizeof (cfg_name), + "test_plugin_peerstore_%s.conf", plugin_name); - GNUNET_PROGRAM_run ((sizeof (xargv) / sizeof (char *)) - 1, xargv, - "test-plugin-peerstore", "nohelp", options, &run, NULL); + GNUNET_PROGRAM_run ((sizeof (xargv) / sizeof (char *)) - 1, + xargv, + "test-plugin-peerstore", + "nohelp", + options, + &run, + NULL); if (ok != 0) - FPRINTF (stderr, "Missed some testcases: %d\n", ok); - //GNUNET_DISK_directory_remove ("/tmp/gnunet-test-plugin-namestore-sqlite"); + FPRINTF (stderr, + "Missed some testcases: %d\n", + ok); return ok; } -/* end of test_plugin_namestore.c */ +/* end of test_plugin_peerstore.c */