From 15f55fea6e6d2d1656e345eab131887efbd937b4 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 19 Jun 2012 13:33:19 +0000 Subject: [PATCH] -fixing IO-error bug in namestore tests on buildbots, simplifying testcases by using new testing API, eliminating dead code --- src/namestore/test_namestore_api.c | 22 +- src/namestore/test_namestore_api_create.c | 180 +++------- .../test_namestore_api_create_update.c | 331 ++---------------- src/namestore/test_namestore_api_lookup.c | 150 +++----- .../test_namestore_api_lookup_specific_type.c | 198 ++++------- src/namestore/test_namestore_api_put.c | 19 - src/namestore/test_namestore_api_remove.c | 150 +++----- ...namestore_api_remove_not_existing_record.c | 151 +++----- .../test_namestore_api_sign_verify.c | 38 +- .../test_namestore_api_zone_iteration.c | 151 +++----- ...mestore_api_zone_iteration_specific_zone.c | 158 +++------ .../test_namestore_api_zone_iteration_stop.c | 156 +++------ .../test_namestore_api_zone_to_name.c | 134 ++----- .../test_namestore_record_serialization.c | 4 +- 14 files changed, 474 insertions(+), 1368 deletions(-) diff --git a/src/namestore/test_namestore_api.c b/src/namestore/test_namestore_api.c index 55601390a..9e56e569d 100644 --- a/src/namestore/test_namestore_api.c +++ b/src/namestore/test_namestore_api.c @@ -27,11 +27,14 @@ #include "gnunet_testing_lib-new.h" #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle *nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; @@ -117,24 +120,6 @@ put_cont (void *cls, int32_t success, const char *emsg) } -static void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } -} - - static void run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) @@ -144,7 +129,6 @@ run (void *cls, char *hostkey_file; const char * name = "dummy.dummy.gnunet"; - delete_existing_db(cfg); endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, diff --git a/src/namestore/test_namestore_api_create.c b/src/namestore/test_namestore_api_create.c index 131c934cb..916168738 100644 --- a/src/namestore/test_namestore_api_create.c +++ b/src/namestore/test_namestore_api_create.c @@ -24,65 +24,50 @@ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" +#include "gnunet_testing_lib-new.h" #include "namestore.h" #include "gnunet_signatures.h" -#define VERBOSE GNUNET_NO #define RECORDS 1 + #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TEST_CREATE_RECORD_TYPE 4321 + #define TEST_CREATE_RECORD_DATALEN 255 + #define TEST_CREATE_RECORD_DATA 'b' #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; -struct GNUNET_CRYPTO_RsaSignature *s_signature; -struct GNUNET_CRYPTO_RsaSignature *s_signature_updated; + +static struct GNUNET_CRYPTO_RsaSignature *s_signature; + +static struct GNUNET_CRYPTO_RsaSignature *s_signature_updated; + static struct GNUNET_CRYPTO_ShortHashCode s_zone; -struct GNUNET_NAMESTORE_RecordData *s_first_record; -struct GNUNET_NAMESTORE_RecordData *s_second_record; -static char *s_name; +static struct GNUNET_NAMESTORE_RecordData *s_first_record; +static struct GNUNET_NAMESTORE_RecordData *s_second_record; + +static char *s_name; static int res; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} - -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -96,14 +81,9 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -116,30 +96,26 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - GNUNET_free ((void *) s_first_record->data); GNUNET_free (s_first_record); GNUNET_free_non_null (s_second_record); - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - if (NULL != arm) - stop_arm(); } -void name_lookup_second_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) + +static void +name_lookup_second_proc (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *n, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { static int found = GNUNET_NO; int failed = GNUNET_NO; @@ -219,10 +195,11 @@ void name_lookup_second_proc (void *cls, } -void +static void create_second_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Create second record for `%s': %s\n", name, (success == GNUNET_OK) ? "SUCCESS" : "FAIL"); if (success == GNUNET_OK) { @@ -235,16 +212,17 @@ create_second_cont (void *cls, int32_t success, const char *emsg) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to put records for name `%s'\n", name); GNUNET_SCHEDULER_add_now(&end, NULL); } - } -void name_lookup_initial_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) + +static void +name_lookup_initial_proc (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *n, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { char * name = cls; static int found = GNUNET_NO; @@ -323,7 +301,8 @@ void name_lookup_initial_proc (void *cls, } } -void + +static void create_first_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; @@ -340,25 +319,8 @@ create_first_cont (void *cls, int32_t success, const char *emsg) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to put records for name `%s'\n", name); GNUNET_SCHEDULER_add_now(&end, NULL); } - } -void -put_cont (void *cls, int32_t success, const char *emsg) -{ - char *name = cls; - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Name store added record for `%s': %s\n", name, (success == GNUNET_OK) ? "SUCCESS" : "FAIL"); - if (success == GNUNET_OK) - { - - } - else - { - res = 1; - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to put records for name `%s'\n", name); - GNUNET_SCHEDULER_add_now(&end, NULL); - } -} static struct GNUNET_NAMESTORE_RecordData * create_record (int count) @@ -379,35 +341,16 @@ create_record (int count) return rd; } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); size_t rd_ser_len; + char *hostkey_file; + endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,endbadly, NULL); /* load privat key */ - char *hostkey_file; GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); @@ -430,10 +373,6 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Name: `%s' Zone: `%s' \n", s_name, GNUNET_short_h2s (&s_zone)); - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); @@ -444,35 +383,20 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_NAMESTORE_record_create (nsh, privkey, s_name, s_first_record, &create_first_cont, s_name); } -static int -check () -{ - static char *const argv[] = { "test-namestore-api", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-create", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; GNUNET_free (s_signature); - return ret; + return res; } -/* end of test_namestore_api.c */ +/* end of test_namestore_api_create.c */ diff --git a/src/namestore/test_namestore_api_create_update.c b/src/namestore/test_namestore_api_create_update.c index 93570e458..e898a3050 100644 --- a/src/namestore/test_namestore_api_create_update.c +++ b/src/namestore/test_namestore_api_create_update.c @@ -24,65 +24,48 @@ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" +#include "gnunet_testing_lib-new.h" #include "namestore.h" #include "gnunet_signatures.h" -#define VERBOSE GNUNET_NO #define RECORDS 1 + #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TEST_CREATE_RECORD_TYPE 4321 + #define TEST_CREATE_RECORD_DATALEN 255 + #define TEST_CREATE_RECORD_DATA 'b' #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; -struct GNUNET_CRYPTO_RsaSignature *s_signature; -struct GNUNET_CRYPTO_RsaSignature *s_signature_updated; + +static struct GNUNET_CRYPTO_RsaSignature *s_signature; + static struct GNUNET_CRYPTO_ShortHashCode s_zone; -struct GNUNET_NAMESTORE_RecordData *s_first_record; -struct GNUNET_NAMESTORE_RecordData *s_second_record; -static char *s_name; +static struct GNUNET_NAMESTORE_RecordData *s_first_record; +static struct GNUNET_NAMESTORE_RecordData *s_second_record; -static int res; +static char *s_name; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} +static int res; -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -96,14 +79,9 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -116,208 +94,19 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - GNUNET_free ((void *) s_first_record->data); GNUNET_free (s_first_record); GNUNET_free_non_null (s_second_record); - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - if (NULL != arm) - stop_arm(); } -void name_lookup_second_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) -{ - static int found = GNUNET_NO; - int failed = GNUNET_NO; - int c; - - if (n != NULL) - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Checking returned results\n"); - if (0 != memcmp (zone_key, &pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded))) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - if (0 != strcmp(n, s_name)) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - if (2 != rd_count) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - for (c = 0; c < rd_count; c++) - { - if ((GNUNET_NO == GNUNET_NAMESTORE_records_cmp(&rd[c], s_first_record)) && - (GNUNET_NO == GNUNET_NAMESTORE_records_cmp(&rd[c], s_second_record))) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - } - - if (GNUNET_OK != GNUNET_NAMESTORE_verify_signature(&pubkey, expire, n, rd_count, rd, signature)) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - struct GNUNET_NAMESTORE_RecordData rd_new[2]; - rd_new[0] = *s_first_record; - rd_new[1] = *s_second_record; - s_signature_updated = GNUNET_NAMESTORE_create_signature(privkey, expire, s_name, rd_new, 2); - - if (0 != memcmp (s_signature_updated, signature, sizeof (struct GNUNET_CRYPTO_RsaSignature))) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - found = GNUNET_YES; - if (failed == GNUNET_NO) - res = 0; - else - res = 1; - } - else - { - if (found != GNUNET_YES) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to lookup records for name `%s'\n", s_name); - res = 1; - } - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Lookup done for name %s'\n", s_name); - } - GNUNET_SCHEDULER_add_now(&end, NULL); -} - - -void -create_second_cont (void *cls, int32_t success, const char *emsg) -{ - char *name = cls; - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Create second record for `%s': %s\n", name, (success == GNUNET_OK) ? "SUCCESS" : "FAIL"); - if (success == GNUNET_OK) - { - res = 0; - GNUNET_NAMESTORE_lookup_record (nsh, &s_zone, name, 0, &name_lookup_second_proc, name); - } - else - { - res = 1; - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to put records for name `%s'\n", name); - GNUNET_SCHEDULER_add_now(&end, NULL); - } -} - -void name_lookup_initial_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) -{ - char * name = cls; - static int found = GNUNET_NO; - int failed = GNUNET_NO; - int c; - - if (n != NULL) - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Checking returned results\n"); - if (0 != memcmp (zone_key, &pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded))) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - if (0 != strcmp(n, s_name)) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - if (RECORDS != rd_count) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - for (c = 0; c < RECORDS; c++) - { - if (GNUNET_NO == GNUNET_NAMESTORE_records_cmp(&rd[c], &s_first_record[c])) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - } - - if (GNUNET_OK != GNUNET_NAMESTORE_verify_signature(&pubkey, expire, n, rd_count, rd, signature)) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - if (0 != memcmp (s_signature, signature, sizeof (struct GNUNET_CRYPTO_RsaSignature))) - { - GNUNET_break (0); - failed = GNUNET_YES; - } - - found = GNUNET_YES; - if (failed == GNUNET_NO) - res = 0; - else - res = 1; - - /* create a second record */ - s_second_record = GNUNET_malloc(sizeof (struct GNUNET_NAMESTORE_RecordData) + TEST_CREATE_RECORD_DATALEN); - s_second_record->expiration = GNUNET_TIME_UNIT_FOREVER_ABS; - s_second_record->record_type = TEST_CREATE_RECORD_TYPE; - s_second_record->flags = GNUNET_NAMESTORE_RF_AUTHORITY; - s_second_record->data = &s_second_record[1]; - s_second_record->data_size = TEST_CREATE_RECORD_DATALEN; - memset ((char *) s_second_record->data, TEST_CREATE_RECORD_DATA, TEST_CREATE_RECORD_DATALEN); - - GNUNET_NAMESTORE_record_create (nsh, privkey, name, s_second_record, &create_second_cont, name); - - } - else - { - if (found != GNUNET_YES) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to lookup records for name `%s'\n", s_name); - res = 1; - } - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Lookup done for name %s'\n", s_name); - GNUNET_SCHEDULER_add_now (&end, NULL); - } -} - - -void +static void create_updated_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; @@ -340,7 +129,8 @@ create_updated_cont (void *cls, int32_t success, const char *emsg) GNUNET_SCHEDULER_add_now(&end, NULL); } -void + +static void create_identical_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; @@ -360,7 +150,8 @@ create_identical_cont (void *cls, int32_t success, const char *emsg) } -void + +static void create_first_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; @@ -380,22 +171,6 @@ create_first_cont (void *cls, int32_t success, const char *emsg) } -void -put_cont (void *cls, int32_t success, const char *emsg) -{ - char *name = cls; - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Name store added record for `%s': %s `%s'\n", name, (success == GNUNET_OK) ? "SUCCESS" : "FAIL", emsg); - if (success == GNUNET_OK) - { - - } - else - { - res = 1; - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to put records for name `%s'\n", name); - GNUNET_SCHEDULER_add_now(&end, NULL); - } -} static struct GNUNET_NAMESTORE_RecordData * create_record (int count) @@ -416,41 +191,22 @@ create_record (int count) return rd; } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); + size_t rd_ser_len; + char *hostkey_file; endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); - size_t rd_ser_len; /* load privat key */ - char *hostkey_file; GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); privkey = GNUNET_CRYPTO_rsa_key_create_from_file(hostkey_file); GNUNET_free (hostkey_file); - GNUNET_assert (privkey != NULL); /* get public key */ GNUNET_CRYPTO_rsa_key_get_public(privkey, &pubkey); @@ -469,10 +225,6 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Name: `%s' Zone: `%s' \n", s_name, GNUNET_short_h2s (&s_zone)); - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); @@ -483,35 +235,20 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_NAMESTORE_record_create (nsh, privkey, s_name, s_first_record, &create_first_cont, s_name); } -static int -check () -{ - static char *const argv[] = { "test-namestore-api", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); - GNUNET_free (s_signature); - return ret; + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-create-update", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + GNUNET_free_non_null (s_signature); + return res; } -/* end of test_namestore_api.c */ +/* end of test_namestore_api_create_update.c */ diff --git a/src/namestore/test_namestore_api_lookup.c b/src/namestore/test_namestore_api_lookup.c index 818e7108d..1cf9ec864 100644 --- a/src/namestore/test_namestore_api_lookup.c +++ b/src/namestore/test_namestore_api_lookup.c @@ -24,59 +24,41 @@ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" +#include "gnunet_testing_lib-new.h" #include "namestore.h" #include "gnunet_signatures.h" #define VERBOSE GNUNET_NO #define RECORDS 5 + #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; -struct GNUNET_CRYPTO_RsaSignature *s_signature; + +static struct GNUNET_CRYPTO_RsaSignature *s_signature; + static struct GNUNET_CRYPTO_ShortHashCode s_zone; -struct GNUNET_NAMESTORE_RecordData *s_rd; -static char *s_name; +static struct GNUNET_NAMESTORE_RecordData *s_rd; +static char *s_name; static int res; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} - -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -90,14 +72,9 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -105,36 +82,33 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) static void end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { + int c; + if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) { GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - - int c; for (c = 0; c < RECORDS; c++) GNUNET_free_non_null((void *) s_rd[c].data); GNUNET_free (s_rd); - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - if (NULL != arm) - stop_arm(); } -void name_lookup_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) + +static void +name_lookup_proc (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *n, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { static int found = GNUNET_NO; int c; @@ -146,22 +120,18 @@ void name_lookup_proc (void *cls, { GNUNET_break (0); } - if (0 != memcmp (signature, s_signature, sizeof (struct GNUNET_CRYPTO_RsaSignature))) { GNUNET_break (0); } - if (0 != strcmp(n, s_name)) { GNUNET_break (0); } - if (RECORDS != rd_count) { GNUNET_break (0); } - for (c = 0; c < RECORDS; c++) { if (GNUNET_NO == GNUNET_NAMESTORE_records_cmp (&rd[c], &s_rd[c])) @@ -184,7 +154,8 @@ void name_lookup_proc (void *cls, GNUNET_SCHEDULER_add_now(&end, NULL); } -void + +static void put_cont (void *cls, int32_t success, const char *emsg) { char * name = cls; @@ -203,6 +174,7 @@ put_cont (void *cls, int32_t success, const char *emsg) } } + static struct GNUNET_NAMESTORE_RecordData * create_record (int count) { @@ -212,43 +184,25 @@ create_record (int count) for (c = 0; c < RECORDS; c++) { - rd[c].expiration = GNUNET_TIME_absolute_get(); - rd[c].record_type = TEST_RECORD_TYPE; - rd[c].data_size = TEST_RECORD_DATALEN; - rd[c].data = GNUNET_malloc(TEST_RECORD_DATALEN); - memset ((char *) rd[c].data, TEST_RECORD_DATA, TEST_RECORD_DATALEN); + rd[c].expiration = GNUNET_TIME_absolute_get(); + rd[c].record_type = TEST_RECORD_TYPE; + rd[c].data_size = TEST_RECORD_DATALEN; + rd[c].data = GNUNET_malloc(TEST_RECORD_DATALEN); + memset ((char *) rd[c].data, TEST_RECORD_DATA, TEST_RECORD_DATALEN); } return rd; } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); - size_t rd_ser_len; + endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); + /* load privat key from file not included in zonekey dir */ privkey = GNUNET_CRYPTO_rsa_key_create_from_file("test_hostkey"); GNUNET_assert (privkey != NULL); @@ -268,9 +222,6 @@ run (void *cls, char *const *args, const char *cfgfile, /* create random zone hash */ GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone); - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); @@ -283,35 +234,20 @@ run (void *cls, char *const *args, const char *cfgfile, } -static int -check () +int +main (int argc, char *argv[]) { - static char *const argv[] = { "test-namestore-api", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api", - "nohelp", options, &run, &res); + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-lookup", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + GNUNET_free_non_null (s_signature); return res; } -int -main (int argc, char *argv[]) -{ - int ret; - - ret = check (); - GNUNET_free (s_signature); - return ret; -} /* end of test_namestore_api.c */ diff --git a/src/namestore/test_namestore_api_lookup_specific_type.c b/src/namestore/test_namestore_api_lookup_specific_type.c index 981e252de..e2ac2588d 100644 --- a/src/namestore/test_namestore_api_lookup_specific_type.c +++ b/src/namestore/test_namestore_api_lookup_specific_type.c @@ -24,62 +24,44 @@ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" +#include "gnunet_testing_lib-new.h" #include "namestore.h" #include "gnunet_signatures.h" -#define VERBOSE GNUNET_NO #define RECORDS 5 + #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TEST_RECORD_LOOKUP_TYPE_NOT_EXISTING 11111 + #define TEST_RECORD_LOOKUP_TYPE_EXISTING 22222 #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; -struct GNUNET_CRYPTO_RsaSignature *s_signature; + +static struct GNUNET_CRYPTO_RsaSignature *s_signature; + static struct GNUNET_CRYPTO_ShortHashCode s_zone; -struct GNUNET_NAMESTORE_RecordData *s_rd; -static char *s_name; +static struct GNUNET_NAMESTORE_RecordData *s_rd; +static char *s_name; static int res; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} - -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -93,14 +75,9 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -108,13 +85,13 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) static void end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { + int c; + if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) { GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - - int c; for (c = 0; c < RECORDS; c++) { GNUNET_free_non_null((void *) s_rd[c].data); @@ -124,23 +101,20 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - if (NULL != arm) - stop_arm(); } -void name_lookup_existing_record_type (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) +static void +name_lookup_existing_record_type (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *n, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { int failed = GNUNET_NO; @@ -171,7 +145,6 @@ void name_lookup_existing_record_type (void *cls, GNUNET_break(0); failed = GNUNET_YES; } - if (failed == GNUNET_YES) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Namestore returned invalid response\n"); @@ -181,18 +154,18 @@ void name_lookup_existing_record_type (void *cls, { res = 0; } - GNUNET_SCHEDULER_add_now(&end, NULL); } -void name_lookup_non_existing_record_type (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) +static void +name_lookup_non_existing_record_type (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *n, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { int failed = GNUNET_NO; /* We expect zone key != NULL, name != NULL, rd_count 0, rd NULL, signature NULL */ @@ -250,7 +223,8 @@ void name_lookup_non_existing_record_type (void *cls, } } -void + +static void put_cont (void *cls, int32_t success, const char *emsg) { char * name = cls; @@ -270,13 +244,14 @@ put_cont (void *cls, int32_t success, const char *emsg) } } + static struct GNUNET_NAMESTORE_RecordData * create_record (int count) { int c; struct GNUNET_NAMESTORE_RecordData * rd; - rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData)); + rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData)); for (c = 0; c < RECORDS-1; c++) { rd[c].expiration = GNUNET_TIME_UNIT_ZERO_ABS; @@ -285,46 +260,25 @@ create_record (int count) rd[c].data = GNUNET_malloc(TEST_RECORD_DATALEN); memset ((char *) rd[c].data, TEST_RECORD_DATA, TEST_RECORD_DATALEN); } - rd[c].expiration = GNUNET_TIME_absolute_get(); rd[c].record_type = TEST_RECORD_LOOKUP_TYPE_EXISTING; rd[c].data_size = TEST_RECORD_DATALEN; rd[c].data = GNUNET_malloc(TEST_RECORD_DATALEN); memset ((char *) rd[c].data, TEST_RECORD_DATA, TEST_RECORD_DATALEN); - return rd; } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); - size_t rd_ser_len; + char *hostkey_file; + endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); /* load privat key */ - char *hostkey_file; GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); @@ -339,61 +293,39 @@ run (void *cls, char *const *args, const char *cfgfile, s_rd = create_record (RECORDS); rd_ser_len = GNUNET_NAMESTORE_records_get_size(RECORDS, s_rd); - char rd_ser[rd_ser_len]; - GNUNET_NAMESTORE_records_serialize(RECORDS, s_rd, rd_ser_len, rd_ser); - - /* sign */ - s_signature = GNUNET_NAMESTORE_create_signature(privkey, s_rd[RECORDS -1].expiration, s_name, s_rd, RECORDS); - - /* create random zone hash */ - GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone); - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - - nsh = GNUNET_NAMESTORE_connect (cfg); - GNUNET_break (NULL != nsh); - - GNUNET_break (s_rd != NULL); - GNUNET_break (s_name != NULL); - - GNUNET_NAMESTORE_record_put (nsh, &pubkey, s_name, - GNUNET_TIME_UNIT_FOREVER_ABS, - RECORDS, s_rd, s_signature, put_cont, s_name); - - - + { + char rd_ser[rd_ser_len]; + GNUNET_NAMESTORE_records_serialize(RECORDS, s_rd, rd_ser_len, rd_ser); + + /* sign */ + s_signature = GNUNET_NAMESTORE_create_signature(privkey, s_rd[RECORDS -1].expiration, s_name, s_rd, RECORDS); + + /* create random zone hash */ + GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone); + nsh = GNUNET_NAMESTORE_connect (cfg); + GNUNET_break (NULL != nsh); + GNUNET_break (s_rd != NULL); + GNUNET_break (s_name != NULL); + GNUNET_NAMESTORE_record_put (nsh, &pubkey, s_name, + GNUNET_TIME_UNIT_FOREVER_ABS, + RECORDS, s_rd, s_signature, put_cont, s_name); + } } -static int -check () -{ - static char *const argv[] = { "test-namestore-api", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); - GNUNET_free (s_signature); - return ret; + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-lookup-specific-type", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + GNUNET_free_non_null (s_signature); + return res; } -/* end of test_namestore_api.c */ +/* end of test_namestore_api_lookup_specific_type.c */ diff --git a/src/namestore/test_namestore_api_put.c b/src/namestore/test_namestore_api_put.c index 438c49243..5ad5a87cd 100644 --- a/src/namestore/test_namestore_api_put.c +++ b/src/namestore/test_namestore_api_put.c @@ -131,24 +131,6 @@ create_record (int count) } -static void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } -} - - static void run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) @@ -158,7 +140,6 @@ run (void *cls, int c; char *hostkey_file; - delete_existing_db(cfg); endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); /* load privat key */ GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, diff --git a/src/namestore/test_namestore_api_remove.c b/src/namestore/test_namestore_api_remove.c index 57bb4a822..1d57e70f9 100644 --- a/src/namestore/test_namestore_api_remove.c +++ b/src/namestore/test_namestore_api_remove.c @@ -24,63 +24,45 @@ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" +#include "gnunet_testing_lib-new.h" #include "namestore.h" #include "gnunet_signatures.h" -#define VERBOSE GNUNET_NO - #define RECORDS 5 + #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TEST_REMOVE_RECORD_TYPE 4321 + #define TEST_REMOVE_RECORD_DATALEN 255 + #define TEST_REMOVE_RECORD_DATA 'b' #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; -struct GNUNET_CRYPTO_RsaSignature *s_signature; + +static struct GNUNET_CRYPTO_RsaSignature *s_signature; + static struct GNUNET_CRYPTO_ShortHashCode s_zone; -struct GNUNET_NAMESTORE_RecordData *s_rd; -static char *s_name; +static struct GNUNET_NAMESTORE_RecordData *s_rd; +static char *s_name; static int res; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} - -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -94,14 +76,9 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -109,36 +86,33 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) static void end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { + int c; + if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) { GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - - int c; for (c = 0; c < RECORDS; c++) GNUNET_free_non_null((void *) s_rd[c].data); GNUNET_free (s_rd); - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - if (NULL != arm) - stop_arm(); } -void name_lookup_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) + +static void +name_lookup_proc (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *n, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { static int found = GNUNET_NO; int failed = GNUNET_NO; @@ -197,7 +171,8 @@ void name_lookup_proc (void *cls, GNUNET_SCHEDULER_add_now(&end, NULL); } -void + +static void remove_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; @@ -216,7 +191,8 @@ remove_cont (void *cls, int32_t success, const char *emsg) } -void + +static void put_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; @@ -236,6 +212,7 @@ put_cont (void *cls, int32_t success, const char *emsg) } } + static struct GNUNET_NAMESTORE_RecordData * create_record (int count) { @@ -261,34 +238,16 @@ create_record (int count) return rd; } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); size_t rd_ser_len; + char *hostkey_file; + endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); /* load privat key */ - char *hostkey_file; GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); @@ -313,54 +272,29 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Name: `%s' Zone: `%s' \n", s_name, GNUNET_short_h2s (&s_zone)); - - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); - GNUNET_break (s_rd != NULL); GNUNET_break (s_name != NULL); - GNUNET_NAMESTORE_record_put (nsh, &pubkey, s_name, GNUNET_TIME_UNIT_FOREVER_ABS, RECORDS, s_rd, s_signature, put_cont, s_name); - - - } -static int -check () -{ - static char *const argv[] = { "test-namestore-api", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); - GNUNET_free (s_signature); - return ret; + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-remove", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + GNUNET_free_non_null (s_signature); + return res; } /* end of test_namestore_api.c */ diff --git a/src/namestore/test_namestore_api_remove_not_existing_record.c b/src/namestore/test_namestore_api_remove_not_existing_record.c index 329602d41..5dfe8e220 100644 --- a/src/namestore/test_namestore_api_remove_not_existing_record.c +++ b/src/namestore/test_namestore_api_remove_not_existing_record.c @@ -18,69 +18,51 @@ Boston, MA 02111-1307, USA. */ /** - * @file namestore/test_namestore_api.c + * @file namestore/test_namestore_api_remove_not_existing_record.c * @brief testcase for namestore_api.c */ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" +#include "gnunet_testing_lib-new.h" #include "namestore.h" #include "gnunet_signatures.h" -#define VERBOSE GNUNET_NO - #define RECORDS 5 + #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TEST_REMOVE_RECORD_TYPE 4321 + #define TEST_REMOVE_RECORD_DATALEN 255 + #define TEST_REMOVE_RECORD_DATA 'b' #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; -struct GNUNET_CRYPTO_RsaSignature *s_signature; + +static struct GNUNET_CRYPTO_RsaSignature *s_signature; + static struct GNUNET_HashCode s_zone; -struct GNUNET_NAMESTORE_RecordData *s_rd; -static char *s_name; +static struct GNUNET_NAMESTORE_RecordData *s_rd; +static char *s_name; static int res; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} - -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -94,14 +76,9 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -109,13 +86,13 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) static void end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { + int c; + if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) { GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - - int c; for (c = 0; c < RECORDS; c++) GNUNET_free_non_null((void *) s_rd[c].data); GNUNET_free (s_rd); @@ -123,19 +100,17 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - if (NULL != arm) - stop_arm(); } -void + +static void remove_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Remove record for `%s': %s `%s'\n", name, (success == GNUNET_YES) ? "SUCCESS" : "FAIL", emsg); if (GNUNET_NO == success) { @@ -149,7 +124,8 @@ remove_cont (void *cls, int32_t success, const char *emsg) GNUNET_SCHEDULER_add_now(&end, NULL); } -void + +static void put_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; @@ -176,53 +152,36 @@ put_cont (void *cls, int32_t success, const char *emsg) } } + static struct GNUNET_NAMESTORE_RecordData * create_record (int count) { int c; struct GNUNET_NAMESTORE_RecordData * rd; - rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData)); + rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData)); for (c = 0; c < RECORDS; c++) { - rd[c].expiration = GNUNET_TIME_absolute_get(); - rd[c].record_type = TEST_RECORD_TYPE; - rd[c].data_size = TEST_RECORD_DATALEN; - rd[c].data = GNUNET_malloc(TEST_RECORD_DATALEN); - memset ((char *) rd[c].data, TEST_RECORD_DATA, TEST_RECORD_DATALEN); + rd[c].expiration = GNUNET_TIME_absolute_get(); + rd[c].record_type = TEST_RECORD_TYPE; + rd[c].data_size = TEST_RECORD_DATALEN; + rd[c].data = GNUNET_malloc(TEST_RECORD_DATALEN); + memset ((char *) rd[c].data, TEST_RECORD_DATA, TEST_RECORD_DATALEN); } - return rd; } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); + char *hostkey_file; size_t rd_ser_len; + endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); + /* load privat key */ - char *hostkey_file; GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); @@ -247,53 +206,29 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_CRYPTO_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Name: `%s' Zone: `%s' \n", s_name, GNUNET_h2s_full(&s_zone)); - - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); - GNUNET_break (s_rd != NULL); GNUNET_break (s_name != NULL); - GNUNET_NAMESTORE_record_put (nsh, &pubkey, s_name, GNUNET_TIME_UNIT_FOREVER_ABS, RECORDS, s_rd, s_signature, put_cont, s_name); - - } -static int -check () -{ - static char *const argv[] = { "test-namestore-api", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); - GNUNET_free (s_signature); - return ret; + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-remove-not-existing-record", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + GNUNET_free_non_null (s_signature); + return res; } -/* end of test_namestore_api.c */ +/* end of test_namestore_api_remove_not_existing_record.c */ diff --git a/src/namestore/test_namestore_api_sign_verify.c b/src/namestore/test_namestore_api_sign_verify.c index 17bfb1eff..95d222c6d 100644 --- a/src/namestore/test_namestore_api_sign_verify.c +++ b/src/namestore/test_namestore_api_sign_verify.c @@ -27,25 +27,32 @@ #include "namestore.h" #include "gnunet_signatures.h" -#define VERBOSE GNUNET_NO - #define RECORDS 5 + #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TEST_REMOVE_RECORD_TYPE 4321 + #define TEST_REMOVE_RECORD_DATALEN 255 + #define TEST_REMOVE_RECORD_DATA 'b' + static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; -struct GNUNET_CRYPTO_RsaSignature s_signature; -struct GNUNET_NAMESTORE_RecordData *s_rd; + +static struct GNUNET_NAMESTORE_RecordData *s_rd; + static char *s_name; static int res; + static struct GNUNET_NAMESTORE_RecordData * create_record (int count) { @@ -66,7 +73,6 @@ create_record (int count) } - static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) @@ -116,15 +122,13 @@ run (void *cls, char *const *args, const char *cfgfile, } -static int -check () + +int +main (int argc, char *argv[]) { - static char *const argv[] = { "test-namestore-api", + static char *const argvx[] = { "test-namestore-api", "-c", "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif NULL }; static struct GNUNET_GETOPT_CommandLineOption options[] = { @@ -132,19 +136,9 @@ check () }; res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api", + GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, argvx, "test-namestore-api", "nohelp", options, &run, &res); return res; } -int -main (int argc, char *argv[]) -{ - int ret; - - ret = check (); - - return ret; -} - /* end of test_namestore_api_sign_verify.c */ diff --git a/src/namestore/test_namestore_api_zone_iteration.c b/src/namestore/test_namestore_api_zone_iteration.c index f18aad93f..9a2c2d0ab 100644 --- a/src/namestore/test_namestore_api_zone_iteration.c +++ b/src/namestore/test_namestore_api_zone_iteration.c @@ -24,67 +24,55 @@ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" +#include "gnunet_testing_lib-new.h" #include "namestore.h" -#define VERBOSE GNUNET_NO #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; + static GNUNET_SCHEDULER_TaskIdentifier stopiteration_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; + static struct GNUNET_HashCode zone; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey2; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey2; + static struct GNUNET_HashCode zone2; static struct GNUNET_NAMESTORE_ZoneIterator *zi; + static int res; + static int returned_records; -struct GNUNET_CRYPTO_RsaSignature *sig_1; -char * s_name_1; -struct GNUNET_NAMESTORE_RecordData *s_rd_1; +static struct GNUNET_CRYPTO_RsaSignature *sig_1; -struct GNUNET_CRYPTO_RsaSignature *sig_2; -char * s_name_2; -struct GNUNET_NAMESTORE_RecordData *s_rd_2; +static char * s_name_1; -struct GNUNET_CRYPTO_RsaSignature *sig_3; -char * s_name_3; -struct GNUNET_NAMESTORE_RecordData *s_rd_3; +static struct GNUNET_NAMESTORE_RecordData *s_rd_1; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} +static struct GNUNET_CRYPTO_RsaSignature *sig_2; + +static char * s_name_2; + +static struct GNUNET_NAMESTORE_RecordData *s_rd_2; + +static struct GNUNET_CRYPTO_RsaSignature *sig_3; + +static char * s_name_3; + +static struct GNUNET_NAMESTORE_RecordData *s_rd_3; -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -135,10 +123,6 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (privkey2 != NULL) GNUNET_CRYPTO_rsa_key_free (privkey2); privkey2 = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -187,23 +171,20 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_free ((void *)s_rd_3->data); GNUNET_free (s_rd_3); } - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - - if (NULL != arm) - stop_arm(); } -void zone_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *name, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) + +static void +zone_proc (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *name, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { int failed = GNUNET_NO; if ((zone_key == NULL) && (name == NULL)) @@ -322,25 +303,8 @@ void zone_proc (void *cls, } } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} -void +static void put_cont (void *cls, int32_t success, const char *emsg) { static int c = 0; @@ -379,6 +343,7 @@ put_cont (void *cls, int32_t success, const char *emsg) } } + static struct GNUNET_NAMESTORE_RecordData * create_record (int count) { @@ -397,14 +362,14 @@ create_record (int count) return rd; } + static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,&endbadly, NULL); - char *hostkey_file; + + endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,&endbadly, NULL); GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); @@ -424,11 +389,6 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_assert (privkey2 != NULL); GNUNET_CRYPTO_rsa_key_get_public(privkey2, &pubkey2); GNUNET_CRYPTO_hash(&pubkey2, sizeof (pubkey), &zone2); - - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); @@ -455,35 +415,20 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_NAMESTORE_record_put (nsh, &pubkey2, s_name_3, GNUNET_TIME_UNIT_FOREVER_ABS, 1, s_rd_3, sig_3, &put_cont, NULL); } -static int -check () -{ - static char *const argv[] = { "test_namestore_api_zone_iteration", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test_namestore_api_zone_iteration", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); - - return ret; + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-zone-iteration", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + return res; } + /* end of test_namestore_api_zone_iteration.c */ diff --git a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c index b21c860c8..b76acb4dd 100644 --- a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c +++ b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c @@ -23,68 +23,56 @@ */ #include "platform.h" #include "gnunet_common.h" +#include "gnunet_testing_lib-new.h" #include "gnunet_namestore_service.h" #include "namestore.h" -#define VERBOSE GNUNET_NO #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; + static GNUNET_SCHEDULER_TaskIdentifier stopiteration_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; + static struct GNUNET_CRYPTO_ShortHashCode zone; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey2; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey2; + static struct GNUNET_CRYPTO_ShortHashCode zone2; static struct GNUNET_NAMESTORE_ZoneIterator *zi; + static int res; + static int returned_records; -struct GNUNET_CRYPTO_RsaSignature *sig_1; -char * s_name_1; -struct GNUNET_NAMESTORE_RecordData *s_rd_1; +static struct GNUNET_CRYPTO_RsaSignature *sig_1; -struct GNUNET_CRYPTO_RsaSignature *sig_2; -char * s_name_2; -struct GNUNET_NAMESTORE_RecordData *s_rd_2; +static char * s_name_1; -struct GNUNET_CRYPTO_RsaSignature *sig_3; -char * s_name_3; -struct GNUNET_NAMESTORE_RecordData *s_rd_3; +static struct GNUNET_NAMESTORE_RecordData *s_rd_1; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} +static struct GNUNET_CRYPTO_RsaSignature *sig_2; + +static char * s_name_2; + +static struct GNUNET_NAMESTORE_RecordData *s_rd_2; + +static struct GNUNET_CRYPTO_RsaSignature *sig_3; + +static char * s_name_3; + +static struct GNUNET_NAMESTORE_RecordData *s_rd_3; -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -104,14 +92,12 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - GNUNET_free_non_null(sig_1); GNUNET_free_non_null(sig_2); GNUNET_free_non_null(sig_3); GNUNET_free_non_null(s_name_1); GNUNET_free_non_null(s_name_2); GNUNET_free_non_null(s_name_3); - if (s_rd_1 != NULL) { GNUNET_free ((void *)s_rd_1->data); @@ -135,10 +121,6 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (privkey2 != NULL) GNUNET_CRYPTO_rsa_key_free (privkey2); privkey2 = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -151,17 +133,14 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_SCHEDULER_cancel (stopiteration_task); stopiteration_task = GNUNET_SCHEDULER_NO_TASK; } - if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) { GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (privkey2 != NULL) GNUNET_CRYPTO_rsa_key_free (privkey2); privkey2 = NULL; @@ -187,23 +166,20 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_free ((void *)s_rd_3->data); GNUNET_free (s_rd_3); } - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - - if (NULL != arm) - stop_arm(); } -void zone_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *name, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) + +static void +zone_proc (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *name, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { int failed = GNUNET_NO; GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for zone `%s'\n", GNUNET_short_h2s (&zone)); @@ -285,25 +261,8 @@ void zone_proc (void *cls, } } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} -void +static void put_cont (void *cls, int32_t success, const char *emsg) { static int c = 0; @@ -343,6 +302,7 @@ put_cont (void *cls, int32_t success, const char *emsg) } } + static struct GNUNET_NAMESTORE_RecordData * create_record (int count) { @@ -361,14 +321,14 @@ create_record (int count) return rd; } + static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,&endbadly, NULL); - char *hostkey_file; + + endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,&endbadly, NULL); GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); @@ -386,26 +346,18 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_assert (privkey2 != NULL); GNUNET_CRYPTO_rsa_key_get_public(privkey2, &pubkey2); GNUNET_CRYPTO_short_hash (&pubkey2, sizeof (pubkey), &zone2); - - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 1\n"); - GNUNET_asprintf(&s_name_1, "dummy1"); s_rd_1 = create_record(1); sig_1 = GNUNET_NAMESTORE_create_signature(privkey, s_rd_1[0].expiration ,s_name_1, s_rd_1, 1); GNUNET_NAMESTORE_record_create(nsh, privkey, s_name_1, s_rd_1, &put_cont, NULL); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 2 \n"); GNUNET_asprintf(&s_name_2, "dummy2"); s_rd_2 = create_record(1); - sig_2 = GNUNET_NAMESTORE_create_signature(privkey, s_rd_2[0].expiration, s_name_2, s_rd_2, 1); GNUNET_NAMESTORE_record_create(nsh, privkey, s_name_2, s_rd_2, &put_cont, NULL); @@ -417,35 +369,19 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_NAMESTORE_record_put (nsh, &pubkey2, s_name_3, GNUNET_TIME_UNIT_FOREVER_ABS, 1, s_rd_3, sig_3, &put_cont, NULL); } -static int -check () -{ - static char *const argv[] = { "test_namestore_api_zone_iteration", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test_namestore_api_zone_iteration", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); - - return ret; + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-zone-iteration-specific-zone", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + return res; } /* end of test_namestore_api_zone_iteration_specific_zone.c */ diff --git a/src/namestore/test_namestore_api_zone_iteration_stop.c b/src/namestore/test_namestore_api_zone_iteration_stop.c index 90031edc7..71ae43362 100644 --- a/src/namestore/test_namestore_api_zone_iteration_stop.c +++ b/src/namestore/test_namestore_api_zone_iteration_stop.c @@ -23,68 +23,55 @@ */ #include "platform.h" #include "gnunet_common.h" +#include "gnunet_testing_lib-new.h" #include "gnunet_namestore_service.h" #include "namestore.h" -#define VERBOSE GNUNET_NO #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 15) static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; + static GNUNET_SCHEDULER_TaskIdentifier stopiteration_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; + static struct GNUNET_HashCode zone; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey2; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey2; + static struct GNUNET_HashCode zone2; static struct GNUNET_NAMESTORE_ZoneIterator *zi; + static int res; + static int returned_records; -struct GNUNET_CRYPTO_RsaSignature *sig_1; -char * s_name_1; -struct GNUNET_NAMESTORE_RecordData *s_rd_1; +static struct GNUNET_CRYPTO_RsaSignature *sig_1; -struct GNUNET_CRYPTO_RsaSignature *sig_2; -char * s_name_2; -struct GNUNET_NAMESTORE_RecordData *s_rd_2; +static char * s_name_1; -struct GNUNET_CRYPTO_RsaSignature *sig_3; -char * s_name_3; -struct GNUNET_NAMESTORE_RecordData *s_rd_3; +static struct GNUNET_NAMESTORE_RecordData *s_rd_1; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} +static struct GNUNET_CRYPTO_RsaSignature *sig_2; + +static char * s_name_2; + +static struct GNUNET_NAMESTORE_RecordData *s_rd_2; + +static struct GNUNET_CRYPTO_RsaSignature *sig_3; + +static char * s_name_3; + +static struct GNUNET_NAMESTORE_RecordData *s_rd_3; -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -100,18 +87,15 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_SCHEDULER_cancel (stopiteration_task); stopiteration_task = GNUNET_SCHEDULER_NO_TASK; } - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - GNUNET_free_non_null(sig_1); GNUNET_free_non_null(sig_2); GNUNET_free_non_null(sig_3); GNUNET_free_non_null(s_name_1); GNUNET_free_non_null(s_name_2); GNUNET_free_non_null(s_name_3); - if (s_rd_1 != NULL) { GNUNET_free ((void *)s_rd_1->data); @@ -127,7 +111,6 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_free ((void *)s_rd_3->data); GNUNET_free (s_rd_3); } - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; @@ -135,10 +118,6 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (privkey2 != NULL) GNUNET_CRYPTO_rsa_key_free (privkey2); privkey2 = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -157,11 +136,9 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (privkey2 != NULL) GNUNET_CRYPTO_rsa_key_free (privkey2); privkey2 = NULL; @@ -187,13 +164,9 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_free ((void *)s_rd_3->data); GNUNET_free (s_rd_3); } - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - if (NULL != arm) - stop_arm(); if (returned_records == 1) res = 0; else @@ -201,13 +174,15 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) } -void zone_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *name, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) + +static void +zone_proc (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *name, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { int failed = GNUNET_NO; @@ -336,25 +311,8 @@ void zone_proc (void *cls, } } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} -void +static void put_cont (void *cls, int32_t success, const char *emsg) { static int c = 0; @@ -393,6 +351,7 @@ put_cont (void *cls, int32_t success, const char *emsg) } } + static struct GNUNET_NAMESTORE_RecordData * create_record (int count) { @@ -411,14 +370,14 @@ create_record (int count) return rd; } + static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,&endbadly, NULL); - char *hostkey_file; + + endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,&endbadly, NULL); GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); @@ -437,10 +396,6 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_CRYPTO_rsa_key_get_public(privkey2, &pubkey2); GNUNET_CRYPTO_hash(&pubkey2, sizeof (pubkey), &zone2); - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); @@ -467,35 +422,20 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_NAMESTORE_record_put (nsh, &pubkey2, s_name_3, GNUNET_TIME_UNIT_FOREVER_ABS, 1, s_rd_3, sig_3, &put_cont, NULL); } -static int -check () -{ - static char *const argv[] = { "test_namestore_api_zone_iteration", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test_namestore_api_zone_iteration", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); - - return ret; + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-zone-iteration-stop", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + return res; } -/* end of test_namestore_api_zone_iteration.c */ + +/* end of test_namestore_api_zone_iteration_stop.c */ diff --git a/src/namestore/test_namestore_api_zone_to_name.c b/src/namestore/test_namestore_api_zone_to_name.c index 6efbaf534..e5db28165 100644 --- a/src/namestore/test_namestore_api_zone_to_name.c +++ b/src/namestore/test_namestore_api_zone_to_name.c @@ -24,63 +24,41 @@ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" +#include "gnunet_testing_lib-new.h" #include "namestore.h" #include "gnunet_signatures.h" -#define VERBOSE GNUNET_NO - #define RECORDS 5 + #define TEST_RECORD_TYPE 1234 + #define TEST_RECORD_DATALEN 123 + #define TEST_RECORD_DATA 'a' #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) + static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; -static struct GNUNET_OS_Process *arm; static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; + static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; -struct GNUNET_TIME_Absolute expire; +static struct GNUNET_TIME_Absolute expire; static struct GNUNET_CRYPTO_ShortHashCode s_zone; + static struct GNUNET_CRYPTO_ShortHashCode s_zone_value; -char * s_name; +static char * s_name; -struct GNUNET_NAMESTORE_RecordData *s_rd; -struct GNUNET_CRYPTO_RsaSignature *s_signature; +static struct GNUNET_CRYPTO_RsaSignature *s_signature; static int res; -static void -start_arm (const char *cfgname) -{ - arm = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", "-c", cfgname, -#if VERBOSE_PEERS - "-L", "DEBUG", -#else - "-L", "ERROR", -#endif - NULL); -} - -static void -stop_arm () -{ - if (NULL != arm) - { - if (0 != GNUNET_OS_process_kill (arm, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - GNUNET_OS_process_wait (arm); - GNUNET_OS_process_destroy (arm); - arm = NULL; - } -} /** * Re-establish the connection to the service. @@ -94,14 +72,9 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - - if (NULL != arm) - stop_arm(); - res = 1; } @@ -114,26 +87,23 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_NO_TASK; } - if (privkey != NULL) GNUNET_CRYPTO_rsa_key_free (privkey); privkey = NULL; - if (nsh != NULL) GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); nsh = NULL; - - if (NULL != arm) - stop_arm(); } -void zone_to_name_proc (void *cls, - const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, - struct GNUNET_TIME_Absolute expire, - const char *n, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd, - const struct GNUNET_CRYPTO_RsaSignature *signature) + +static void +zone_to_name_proc (void *cls, + const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key, + struct GNUNET_TIME_Absolute expire, + const char *n, + unsigned int rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd, + const struct GNUNET_CRYPTO_RsaSignature *signature) { int fail = GNUNET_NO; @@ -169,26 +139,7 @@ void zone_to_name_proc (void *cls, } -void -delete_existing_db (const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - char *afsdir; - - if (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_filename (cfg, "namestore-sqlite", - "FILENAME", &afsdir)) - { - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_file_test (afsdir)) - if (GNUNET_OK == GNUNET_DISK_directory_remove(afsdir)) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleted existing database `%s' \n", afsdir); - GNUNET_free (afsdir); - } - -} - - -void +static void put_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; @@ -209,16 +160,13 @@ put_cont (void *cls, int32_t success, const char *emsg) } } + static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) { - delete_existing_db(cfg); - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); GNUNET_asprintf(&s_name, "dummy"); - - /* load privat key */ char *hostkey_file; GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, @@ -241,10 +189,6 @@ run (void *cls, char *const *args, const char *cfgfile, rd.data_size = sizeof (struct GNUNET_CRYPTO_ShortHashCode); rd.data = GNUNET_malloc(sizeof (struct GNUNET_CRYPTO_ShortHashCode)); memcpy ((char *) rd.data, &s_zone_value, sizeof (struct GNUNET_CRYPTO_ShortHashCode)); - - start_arm (cfgfile); - GNUNET_assert (arm != NULL); - nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); @@ -255,34 +199,20 @@ run (void *cls, char *const *args, const char *cfgfile, GNUNET_free ((void *) rd.data); } -static int -check () -{ - static char *const argv[] = { "test-namestore-api", - "-c", - "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif - NULL - }; - static struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - res = 1; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api", - "nohelp", options, &run, &res); - return res; -} int main (int argc, char *argv[]) { - int ret; - - ret = check (); - return ret; + res = 1; + if (0 != + GNUNET_TESTING_service_run ("test-namestore-api-zone-to-name", + "namestore", + "test_namestore_api.conf", + &run, + NULL)) + return 1; + return res; } -/* end of test_namestore_api.c */ +/* end of test_namestore_api_zone_to_name.c */ diff --git a/src/namestore/test_namestore_record_serialization.c b/src/namestore/test_namestore_record_serialization.c index 5e952539b..48560aee9 100644 --- a/src/namestore/test_namestore_record_serialization.c +++ b/src/namestore/test_namestore_record_serialization.c @@ -32,6 +32,7 @@ static int res; + static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) @@ -128,9 +129,6 @@ check () static char *const argv[] = { "test_namestore_record_serialization", "-c", "test_namestore_api.conf", -#if VERBOSE - "-L", "DEBUG", -#endif NULL }; static struct GNUNET_GETOPT_CommandLineOption options[] = { -- 2.25.1