diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/Makefile.in | 8 | ||||
-rw-r--r-- | src/test/test_libconfig.c | 155 | ||||
-rw-r--r-- | src/test/test_spinlock.c | 31 |
3 files changed, 118 insertions, 76 deletions
diff --git a/src/test/Makefile.in b/src/test/Makefile.in index 6d2187733..3e7549943 100644 --- a/src/test/Makefile.in +++ b/src/test/Makefile.in @@ -1,7 +1,7 @@ # This file is part of Hercules. # http://herc.ws - http://github.com/HerculesWS/Hercules # -# Copyright (C) 2012-2015 Hercules Dev Team +# Copyright (C) 2012-2016 Hercules Dev Team # Copyright (C) Athena Dev Teams # # Hercules is free software: you can redistribute it and/or modify @@ -23,7 +23,7 @@ CONFIG_D = ../config CONFIG_H = $(wildcard $(CONFIG_D)/*.h) $(wildcard $(CONFIG_D)/*/*.h) COMMON_D = ../common -COMMON_H = $(wildcard $(COMMON_D)/*.h) +COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h)) SYSINFO_INC = $(COMMON_D)/sysinfo.inc COMMON_INCLUDE = -I.. @@ -87,8 +87,8 @@ $(TESTS_ALL): test_%: ../../test_%@EXEEXT@ ../../test_%@EXEEXT@: obj/test_%.o $(TEST_DEPENDS) Makefile @echo " LD $(notdir $@)" - @$(CC) @STATIC@ @LDFLAGS@ -o $@ $< $(COMMON_D)/obj_sql/common_sql.a \ - $(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@ + @$(CC) @STATIC@ @LDFLAGS@ -o $@ $< $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a \ + $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@ # object files diff --git a/src/test/test_libconfig.c b/src/test/test_libconfig.c index ff742af71..e1a767195 100644 --- a/src/test/test_libconfig.c +++ b/src/test/test_libconfig.c @@ -71,7 +71,7 @@ static const char *test_libconfig_defaults(void) static const char *test_libconfig_init_destroy(void) { - config_t config; + struct config_t config; libconfig->init(&config); if (config.root == NULL || config.root != config_root_setting(&config)) { return "Unable to create config."; @@ -85,7 +85,9 @@ static const char *test_libconfig_init_destroy(void) static const char *test_libconfig_read_file_src(void) { - config_t config; + struct config_t config; + libconfig->init(&config); + #define FILENAME "src/test/libconfig/test.conf" if (libconfig->read_file_src(&config, FILENAME) == CONFIG_FALSE) { libconfig->destroy(&config); @@ -102,17 +104,21 @@ static const char *test_libconfig_read_file_src(void) static const char *test_libconfig_read(void) { - config_t config; + struct config_t config; #define FILENAME "src/test/libconfig/test.conf" FILE *fp = fopen(FILENAME, "r"); if (!fp) { return "File not found: '" FILENAME "'."; } + + libconfig->init(&config); + if (libconfig->read(&config, fp) == CONFIG_FALSE) { fclose(fp); libconfig->destroy(&config); return "Unable to read from file '" FILENAME "'."; } + fclose(fp); #undef FILENAME if (config.root == NULL) { libconfig->destroy(&config); @@ -122,11 +128,11 @@ static const char *test_libconfig_read(void) return NULL; } -static const char *test_libconfig_read_file(void) +static const char *test_libconfig_load_file(void) { - config_t config; + struct config_t config; #define FILENAME "src/test/libconfig/test.conf" - if (libconfig->read_file(&config, FILENAME) != 0) { + if (libconfig->load_file(&config, FILENAME) == CONFIG_FALSE) { return "Unable to read file '" FILENAME "'."; } #undef FILENAME @@ -140,19 +146,21 @@ static const char *test_libconfig_read_file(void) static const char *test_libconfig_write(void) { - //void (*write) (const config_t *config, FILE *stream); + //void (*write) (const struct config_t *config, FILE *stream); return "TEST NOT IMPLEMENTED"; } static const char *test_libconfig_write_file(void) { - //int (*write_file) (config_t *config, const char *filename); + //int (*write_file) (struct config_t *config, const char *filename); return "TEST NOT IMPLEMENTED"; } static const char *test_libconfig_read_string(void) { - config_t config; + struct config_t config; + libconfig->init(&config); + if (libconfig->read_string(&config, "") == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to read from string."; @@ -167,7 +175,7 @@ static const char *test_libconfig_read_string(void) static const char *test_libconfig_syntax(void) { - config_t config; + struct config_t config; const char *input = "/* Test File */\n" "Setting_Int: 1;\n" "Setting_Int64: 1L;\n" @@ -179,6 +187,8 @@ static const char *test_libconfig_syntax(void) "Setting_List: ( );\n" "/* End test file */\n"; + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to read from string."; @@ -193,14 +203,13 @@ static const char *test_libconfig_syntax(void) static const char *test_libconfig_set_include_dir(void) { - //void (*set_include_dir) (config_t *config, const char *include_dir); + //void (*set_include_dir) (struct config_t *config, const char *include_dir); return "TEST NOT IMPLEMENTED"; } static const char *test_libconfig_lookup(void) { - config_t config; - config_setting_t *t = NULL; + struct config_t config; int32 i32; int64 i64; double f; @@ -216,19 +225,21 @@ static const char *test_libconfig_lookup(void) "Setting_List: ( );\n" "/* End test file */\n"; + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; } - if ((t = libconfig->lookup(&config, "Setting_Int")) == NULL) { + if (libconfig->lookup(&config, "Setting_Int") == NULL) { libconfig->destroy(&config); return "libconfig->lookup failed."; } - if ((t = libconfig->lookup_from(config.root, "Setting_Int")) == NULL) { + if (libconfig->setting_lookup(config.root, "Setting_Int") == NULL) { libconfig->destroy(&config); - return "libconfig->lookup_from failed."; + return "libconfig->setting_lookup failed."; } if (libconfig->lookup_int(&config, "Setting_Int", &i32) == CONFIG_FALSE || i32 != 1) { @@ -263,8 +274,8 @@ static const char *test_libconfig_lookup(void) static const char *test_libconfig_setting_get(void) { - config_t config; - config_setting_t *t = NULL; + struct config_t config; + struct config_setting_t *t = NULL; double f; const char *str; const char *input = "/* Test File */\n" @@ -278,6 +289,8 @@ static const char *test_libconfig_setting_get(void) "Setting_List: ( );\n" "/* End test file */\n"; + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; @@ -366,17 +379,17 @@ static const char *test_libconfig_setting_get(void) static const char *test_libconfig_set(void) { - //int (*setting_set_int) (config_setting_t *setting ,int value); - //int (*setting_set_int64) (config_setting_t *setting, long long value); - //int (*setting_set_float) (config_setting_t *setting, double value); - //int (*setting_set_bool) (config_setting_t *setting, int value); - //int (*setting_set_string) (config_setting_t *setting, const char *value); + //int (*setting_set_int) (struct config_setting_t *setting, int value); + //int (*setting_set_int64) (struct config_setting_t *setting, int64 value); + //int (*setting_set_float) (struct config_setting_t *setting, double value); + //int (*setting_set_bool) (struct config_setting_t *setting, int value); + //int (*setting_set_string) (struct config_setting_t *setting, const char *value); return "TEST NOT IMPLEMENTED"; } static const char *test_libconfig_setting_lookup(void) { - config_t config; + struct config_t config; int32 i32; int64 i64; double f; @@ -392,6 +405,8 @@ static const char *test_libconfig_setting_lookup(void) "Setting_List: ( );\n" "/* End test file */\n"; + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; @@ -429,8 +444,8 @@ static const char *test_libconfig_setting_lookup(void) static const char *test_libconfig_setting_types(void) { - config_t config; - config_setting_t *t; + struct config_t config; + struct config_setting_t *t; const char *input = "/* Test File */\n" "Setting_Int: 1;\n" "Setting_Int64: 1L;\n" @@ -442,6 +457,8 @@ static const char *test_libconfig_setting_types(void) "Setting_List: ( );\n" "/* End test file */\n"; + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; @@ -523,7 +540,7 @@ static const char *test_libconfig_setting_types(void) static const char *test_libconfig_values(void) { - config_t config; + struct config_t config; int32 i32; int64 i64; const char *input = "/* Test File */\n" @@ -536,6 +553,8 @@ static const char *test_libconfig_values(void) "Setting_IntSignedMax: 0x7fffffff;\n" "/* End test file */\n"; + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; @@ -583,7 +602,7 @@ static const char *test_libconfig_values(void) static const char *test_libconfig_path_lookup(void) { - config_t config; + struct config_t config; int32 i32; const char *input = "/* Test File */\n" "Setting_Array: [1, 2, 3];\n" @@ -599,6 +618,9 @@ static const char *test_libconfig_path_lookup(void) " 10,\n" ");\n" "/* End test file */\n"; + + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; @@ -666,31 +688,37 @@ static const char *test_libconfig_path_lookup(void) static const char *test_libconfig_setting_names(void) { - config_t config; + struct config_t config; int32 i32; const char *input = "/* Test File */\n" - "Setting'with'apostrophes: 1;\n" + "1st_setting_with_numbers: 1;\n" "Setting.with.periods: 2;\n" "Setting: {\n" " with: {\n" " periods: 3;\n" + " 2nested: {\n" + " numbers1: 4;\n" + " };\n" " };\n" " nested: {\n" " in: {\n" - " groups: 4;\n" + " groups: 5;\n" " };\n" " };\n" "};\n" - "1st_setting_with_numbers: 5;\n" + "Setting_with_2_numbers_000: 6;\n" "/* End test file */\n"; + + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; } - if (libconfig->lookup_int(&config, "Setting'with'apostrophes", &i32) == CONFIG_FALSE || i32 != 1) { + if (libconfig->lookup_int(&config, "1st_setting_with_numbers", &i32) == CONFIG_FALSE || i32 != 1) { libconfig->destroy(&config); - return "Setting'with'apostrophes failed."; + return "1st_setting_with_numbers failed."; } if (libconfig->lookup_int(&config, "Setting.with.periods", &i32) == CONFIG_FALSE || i32 != 2) { @@ -703,19 +731,24 @@ static const char *test_libconfig_setting_names(void) return "Setting:with:periods failed."; } - if (libconfig->lookup_int(&config, "Setting:nested:in:groups", &i32) == CONFIG_FALSE || i32 != 4) { + if (libconfig->lookup_int(&config, "Setting/with/2nested/numbers1", &i32) == CONFIG_FALSE || i32 != 4) { + libconfig->destroy(&config); + return "Setting/with/2nested/numbers1 failed."; + } + + if (libconfig->lookup_int(&config, "Setting:nested:in:groups", &i32) == CONFIG_FALSE || i32 != 5) { libconfig->destroy(&config); return "Setting:nested:in:groups failed."; } - if (libconfig->lookup_int(&config, "Setting/nested/in/groups", &i32) == CONFIG_FALSE || i32 != 4) { + if (libconfig->lookup_int(&config, "Setting/nested/in/groups", &i32) == CONFIG_FALSE || i32 != 5) { libconfig->destroy(&config); return "Setting/nested/in/groups failed."; } - if (libconfig->lookup_int(&config, "1st_setting_with_numbers", &i32) == CONFIG_FALSE || i32 != 5) { + if (libconfig->lookup_int(&config, "Setting_with_2_numbers_000", &i32) == CONFIG_FALSE || i32 != 6) { libconfig->destroy(&config); - return "1st_setting_with_numbers failed."; + return "Setting_with_2_numbers_000 failed."; } libconfig->destroy(&config); @@ -724,9 +757,9 @@ static const char *test_libconfig_setting_names(void) static const char *test_libconfig_duplicate_keys(void) { - config_t config; + struct config_t config; int32 i32; - config_setting_t *t, *tt; + struct config_setting_t *t, *tt; int i = 0; const char *input = "/* Test File */\n" "Setting_Group: {\n" @@ -736,6 +769,9 @@ static const char *test_libconfig_duplicate_keys(void) " Duplicate: 4;\n" "};\n" "/* End test file */\n"; + + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; @@ -775,11 +811,14 @@ static const char *test_libconfig_duplicate_keys(void) static const char *test_libconfig_special_string_syntax(void) { - config_t config; + struct config_t config; const char *str; const char *input = "/* Test File */\n" "SpecialString: <\"This is an \"Item_Script\" Special String\n\tWith a line-break inside.\">;\n" "/* End test file */\n"; + + libconfig->init(&config); + if (libconfig->read_string(&config, input) == CONFIG_FALSE) { libconfig->destroy(&config); return "Unable to parse configuration."; @@ -809,33 +848,33 @@ int do_init(int argc, char **argv) TEST("libconfig->init and libconfig->destroy", test_libconfig_init_destroy); TEST("libconfig->read_file_src", test_libconfig_read_file_src); TEST("libconfig->read", test_libconfig_read); - TEST("libconfig->read_file", test_libconfig_read_file); + TEST("libconfig->load_file", test_libconfig_load_file); (void)test_libconfig_write; //TEST("libconfig->write", test_libconfig_write); (void)test_libconfig_write_file; //TEST("libconfig->write_file", test_libconfig_write_file); TEST("libconfig->read_string", test_libconfig_read_string); TEST("libconfig syntax", test_libconfig_syntax); (void)test_libconfig_set_include_dir; //TEST("libconfig->set_include_dir", test_libconfig_set_include_dir); - //int (*setting_set_format) (config_setting_t *setting, short format); - //short (*setting_get_format) (const config_setting_t *setting); - //config_setting_t * (*setting_set_int_elem) (config_setting_t *setting, int idx, int value); - //config_setting_t * (*setting_set_int64_elem) (config_setting_t *setting, int idx, long long value); - //config_setting_t * (*setting_set_float_elem) (config_setting_t *setting, int idx, double value); - //config_setting_t * (*setting_set_bool_elem) (config_setting_t *setting, int idx, int value); - //config_setting_t * (*setting_set_string_elem) (config_setting_t *setting, int idx, const char *value); - //config_setting_t * (*setting_add) (config_setting_t *parent, const char *name, int type); - //int (*setting_remove) (config_setting_t *parent, const char *name); - //int (*setting_remove_elem) (config_setting_t *parent, unsigned int idx); - //void (*setting_set_hook) (config_setting_t *setting, void *hook); - //void (*set_destructor) (config_t *config, void (*destructor)(void *)); + //int (*setting_set_format) (struct config_setting_t *setting, short format); + //short (*setting_get_format) (const struct config_setting_t *setting); + //struct config_setting_t * (*setting_set_int_elem) (struct config_setting_t *setting, int idx, int value); + //struct config_setting_t * (*setting_set_int64_elem) (struct config_setting_t *setting, int idx, int64 value); + //struct config_setting_t * (*setting_set_float_elem) (struct config_setting_t *setting, int idx, double value); + //struct config_setting_t * (*setting_set_bool_elem) (struct config_setting_t *setting, int idx, int value); + //struct config_setting_t * (*setting_set_string_elem) (struct config_setting_t *setting, int idx, const char *value); + //struct config_setting_t * (*setting_add) (struct config_setting_t *parent, const char *name, int type); + //int (*setting_remove) (struct config_setting_t *parent, const char *name); + //int (*setting_remove_elem) (struct config_setting_t *parent, unsigned int idx); + //void (*setting_set_hook) (struct config_setting_t *setting, void *hook); + //void (*set_destructor) (struct config_t *config, void (*destructor)(void *)); TEST("libconfig->lookup_*", test_libconfig_lookup); TEST("libconfig->setting_get_*", test_libconfig_setting_get); (void)test_libconfig_set; //TEST("libconfig->setting_set_*", test_libconfig_setting_set); TEST("libconfig->setting_lookup_*", test_libconfig_setting_lookup); TEST("setting types", test_libconfig_setting_types); - //void (*setting_copy_simple) (config_setting_t *parent, const config_setting_t *src); - //void (*setting_copy_elem) (config_setting_t *parent, const config_setting_t *src); - //void (*setting_copy_aggregate) (config_setting_t *parent, const config_setting_t *src); - //int (*setting_copy) (config_setting_t *parent, const config_setting_t *src); + //void (*setting_copy_simple) (struct config_setting_t *parent, const struct config_setting_t *src); + //void (*setting_copy_elem) (struct config_setting_t *parent, const struct config_setting_t *src); + //void (*setting_copy_aggregate) (struct config_setting_t *parent, const struct config_setting_t *src); + //int (*setting_copy) (struct config_setting_t *parent, const struct config_setting_t *src); TEST("values", test_libconfig_values); TEST("path lookup", test_libconfig_path_lookup); TEST("setting key names", test_libconfig_setting_names); diff --git a/src/test/test_spinlock.c b/src/test/test_spinlock.c index 38186a975..1c0390d66 100644 --- a/src/test/test_spinlock.c +++ b/src/test/test_spinlock.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2015 Hercules Dev Team + * Copyright (C) 2012-2016 Hercules Dev Team * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify @@ -38,7 +38,7 @@ #define PERINC 100000 #define LOOPS 47 -static SPIN_LOCK lock; +static struct spin_lock lock; static unsigned int val = 0; static volatile int32 done_threads = 0; @@ -60,13 +60,14 @@ static void *worker(void *p){ return NULL; }//end: worker() -int do_init(int argc, char **argv){ - rAthread *t[THRC]; +int do_init(int argc, char **argv) +{ + struct thread_handle *t[THRC]; int j, i; int ok; ShowStatus("==========\n"); - ShowStatus("TEST: %u Runs, (%u Threads)\n", LOOPS, THRC); + ShowStatus("TEST: %d Runs, (%d Threads)\n", LOOPS, THRC); ShowStatus("This can take a while\n"); ShowStatus("\n\n"); @@ -78,35 +79,35 @@ int do_init(int argc, char **argv){ InitializeSpinLock(&lock); for(i =0; i < THRC; i++){ - t[i] = rathread_createEx( worker, NULL, 1024*512, RAT_PRIO_NORMAL); + t[i] = thread->create_opt(worker, NULL, 1024*512, THREADPRIO_NORMAL); } + (void)t; while(1){ if(InterlockedCompareExchange(&done_threads, THRC, THRC) == THRC) break; - rathread_yield(); + thread->yield(); } FinalizeSpinLock(&lock); // Everything fine? if (val != (THRC*PERINC)) { - printf("FAILED! (Result: %u, Expected: %u)\n", val, (THRC*PERINC)); + printf("FAILED! (Result: %u, Expected: %d)\n", val, (THRC*PERINC)); } else { - printf("OK! (Result: %u, Expected: %u)\n", val, (THRC*PERINC)); + printf("OK! (Result: %u, Expected: %d)\n", val, (THRC*PERINC)); ok++; } } - if(ok != LOOPS){ + if (ok != LOOPS) { ShowFatalError("Test failed.\n"); exit(1); - }else{ - ShowStatus("Test passed.\n"); - exit(0); } - return 0; + + core->runflag = CORE_ST_STOP; + return EXIT_SUCCESS; }//end: do_init() void do_abort(void) { @@ -117,6 +118,8 @@ void set_server_type(void) { }//end: set_server_type() int do_final(void) { + ShowStatus("Test passed.\n"); + return EXIT_SUCCESS; }//end: do_final() |