From: Enlightenment S. <no-...@en...> - 2010-12-12 08:16:27
|
Log: convert huge stupid macro to nice function, use eina colors, add a bunch more tests Author: discomfitor Date: 2010-12-12 00:16:20 -0800 (Sun, 12 Dec 2010) New Revision: 55507 Trac: http://trac.enlightenment.org/e/changeset/55507 Modified: trunk/PROTO/azy/src/tests/unit/t001_content.c trunk/PROTO/azy/src/tests/unit/tests.h Modified: trunk/PROTO/azy/src/tests/unit/t001_content.c =================================================================== --- trunk/PROTO/azy/src/tests/unit/t001_content.c 2010-12-12 08:15:26 UTC (rev 55506) +++ trunk/PROTO/azy/src/tests/unit/t001_content.c 2010-12-12 08:16:20 UTC (rev 55507) @@ -16,172 +16,273 @@ #define MEMBER(name, value) \ "<member><name>" #name "</name>" value "</member>" +static void +print_result(Eina_Bool result, int line, const char *cond) +{ + printf(" " EINA_COLOR_WHITE __FILE__"[%-3i]: %-48s [%s"EINA_COLOR_WHITE"]\n" EINA_COLOR_RESET, + line, cond, (!result) ? + EINA_COLOR_RED "FAILED" : + EINA_COLOR_GREEN "PASSED" ); +} + /* tests */ - -static int constructCall() +static Eina_Bool +constructCall(void) { - Azy_Content* content = azy_content_new("test.test"); - const char* method = azy_content_method_get(content); - TEST_ASSERT(method != 0); - int method_match = !strcmp(method, "test"); - TEST_ASSERT(method_match); - azy_content_free(content); - return EINA_TRUE; + Azy_Content *content = azy_content_new("test.test"); + const char *method = azy_content_method_get(content); + TEST_ASSERT(method != 0); + int method_match = !strcmp(method, "test"); + TEST_ASSERT(method_match); + azy_content_free(content); + return EINA_TRUE; } -static int constructCallNoMethod() +static Eina_Bool +constructCallNoMethod(void) { - Azy_Content* content = azy_content_new(NULL); - const char* method = azy_content_method_get(content); - TEST_ASSERT(method == 0); - azy_content_free(content); - return EINA_TRUE; + Azy_Content *content = azy_content_new(NULL); + const char *method = azy_content_method_get(content); + TEST_ASSERT(method == 0); + azy_content_free(content); + return EINA_TRUE; } -static int requestUnserialize1() +static Eina_Bool +requestUnserialize1(void) { - Azy_Content* content = azy_content_new(NULL); - Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, "<->", 3); - TEST_ASSERT(!rs); - azy_content_free(content); - return EINA_TRUE; + Azy_Content *content = azy_content_new(NULL); + Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, "<->", 3); + TEST_ASSERT(!rs); + azy_content_free(content); + return EINA_TRUE; } -static int requestUnserialize2() +static Eina_Bool +requestUnserialize2(void) { - Azy_Content* content = azy_content_new(NULL); - Eina_Strbuf *str = eina_strbuf_new(); - eina_strbuf_append(str, REQUEST("", - PARAM(VALUE(string, "s1")) - PARAM(VALUE(string, "s2")) - )); - Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); - TEST_ASSERT(!rs); - eina_strbuf_free(str); - azy_content_free(content); - return EINA_TRUE; + Azy_Content *content = azy_content_new(NULL); + Eina_Strbuf *str = eina_strbuf_new(); + eina_strbuf_append(str, REQUEST("", + PARAM(VALUE(string, "s1")) + PARAM(VALUE(string, "s2")) + )); + Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); + TEST_ASSERT(!rs); + eina_strbuf_free(str); + azy_content_free(content); + return EINA_TRUE; } -static int requestUnserialize3() +static Eina_Bool +requestUnserialize3(void) { - Azy_Content* content = azy_content_new(NULL); - Eina_Strbuf *str = eina_strbuf_new(); - eina_strbuf_append(str, - REQUEST("test.test", - PARAM(VALUE(string, "")) - PARAM(VALUE(string, "s2")) - )); + Azy_Content *content = azy_content_new(NULL); + Eina_Strbuf *str = eina_strbuf_new(); + eina_strbuf_append(str, + REQUEST("test.test", + PARAM(VALUE(string, "")) + PARAM(VALUE(string, "s2")) + )); - Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); - TEST_ASSERT(rs); + Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); + TEST_ASSERT(rs); - const char* method = azy_content_method_get(content); - TEST_ASSERT(method != 0); - int method_match = !strcmp(method, "test"); - TEST_ASSERT(method_match); + const char *method = azy_content_method_get(content); + TEST_ASSERT(method != 0); + int method_match = !strcmp(method, "test"); + TEST_ASSERT(method_match); - Azy_Value* val = azy_content_param_get(content, 0); - TEST_ASSERT(val != 0); - TEST_ASSERT(azy_value_type_get(val) == AZY_VALUE_STRING); - const char* str_val = 0; - rs = azy_value_string_get(val, &str_val); - TEST_ASSERT(rs); - TEST_ASSERT(str_val != 0); - int param_match = !strcmp(str_val, ""); - TEST_ASSERT(param_match); - eina_stringshare_del(str_val); + Azy_Value *val = azy_content_param_get(content, 0); + TEST_ASSERT(val != 0); + TEST_ASSERT(azy_value_type_get(val) == AZY_VALUE_STRING); + const char *str_val = 0; + rs = azy_value_string_get(val, &str_val); + TEST_ASSERT(rs); + TEST_ASSERT(str_val != 0); + int param_match = !strcmp(str_val, ""); + TEST_ASSERT(param_match); + eina_stringshare_del(str_val); - val = azy_content_param_get(content, 1); - TEST_ASSERT(val != 0); - TEST_ASSERT(azy_value_type_get(val) == AZY_VALUE_STRING); - str_val = 0; - rs = azy_value_string_get(val, &str_val); - TEST_ASSERT(rs); - TEST_ASSERT(str_val != 0); - param_match = !strcmp(str_val, "s2"); - TEST_ASSERT(param_match); - eina_stringshare_del(str_val); - eina_strbuf_free(str); - azy_content_free(content); - return EINA_TRUE; + val = azy_content_param_get(content, 1); + TEST_ASSERT(val != 0); + TEST_ASSERT(azy_value_type_get(val) == AZY_VALUE_STRING); + str_val = 0; + rs = azy_value_string_get(val, &str_val); + TEST_ASSERT(rs); + TEST_ASSERT(str_val != 0); + param_match = !strcmp(str_val, "s2"); + TEST_ASSERT(param_match); + eina_stringshare_del(str_val); + eina_strbuf_free(str); + azy_content_free(content); + return EINA_TRUE; } -static int _assert_param_type(Azy_Content* content, int no, int type) +static Eina_Bool +_assert_param_type(Azy_Content *content, + int no, + Azy_Value_Type type) { - Azy_Value* val = azy_content_param_get(content, no); - TEST_ASSERT(val != 0); - TEST_ASSERT(azy_value_type_get(val) == type); - return azy_value_type_get(val) == type; + Azy_Value *val = azy_content_param_get(content, no); + TEST_ASSERT(val); + TEST_ASSERT(azy_value_type_get(val) == type); + return azy_value_type_get(val) == type; } -static int requestUnserialize4() +static Eina_Bool +requestUnserialize4(void) { - Azy_Content* content = azy_content_new(NULL); - Eina_Strbuf *str = eina_strbuf_new(); - eina_strbuf_append(str, REQUEST("test.test", - PARAM(VALUE(int, "1")) - PARAM(VALUE(int, "-1")) - PARAM(VALUE(string, "some string")) - PARAM(VALUE(boolean, "1")) - PARAM(VALUE(double, "1.2323")) - PARAM(VALUE(dateTime.iso8601, "2006-04-04")) - PARAM(VALUE(base64, "bGlieHJpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9saWJ4cgoKbGlieHJpbmNsdWRlX0hF\n" - "QURFUlMgPSBcCiAgeHItdmFsdWUuaCBcCiAgeHItY2FsbC5oIFwKICB4ci1jbGllbnQuaCBc\n" - "CiAgeHItc2VydmVyLmgK")) - PARAM(ARRAY( - VALUE(string, "f1") - VALUE(string, "f2") - )) - PARAM(VALUE(struct, - MEMBER(m1, VALUE(string, "s1")) - MEMBER(m2, VALUE(string, "")) - )) - )); - printf("%s\n",eina_strbuf_string_get(str)); - Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); -/* - { - char *d; - d = azy_content_dump_string(content, 0); - if (d) - { - DBG("%s\n", d); - free(d); - } -*/ - TEST_ASSERT(rs); - TEST_ASSERT(_assert_param_type(content, 0, AZY_VALUE_INT)); - TEST_ASSERT(_assert_param_type(content, 1, AZY_VALUE_INT)); - TEST_ASSERT(_assert_param_type(content, 2, AZY_VALUE_STRING)); - TEST_ASSERT(_assert_param_type(content, 3, AZY_VALUE_BOOL)); - TEST_ASSERT(_assert_param_type(content, 4, AZY_VALUE_DOUBLE)); - TEST_ASSERT(_assert_param_type(content, 5, AZY_VALUE_TIME)); - TEST_ASSERT(_assert_param_type(content, 7, AZY_VALUE_ARRAY)); - TEST_ASSERT(_assert_param_type(content, 8, AZY_VALUE_STRUCT)); - eina_strbuf_free(str); - azy_content_free(content); - return EINA_TRUE; + Azy_Content *content = azy_content_new(NULL); + Eina_Strbuf *str = eina_strbuf_new(); + eina_strbuf_append(str, REQUEST("test.test", + PARAM(VALUE(int, "1")) + PARAM(VALUE(int, "-1")) + PARAM(VALUE(string, "some string")) + PARAM(VALUE(boolean, "1")) + PARAM(VALUE(double, "1.2323")) + PARAM(VALUE(dateTime.iso8601, "2006-04-04")) + PARAM(VALUE(base64, "bGlieHJpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9saWJ4cgoKbGlieHJpbmNsdWRlX0hF\n" + "QURFUlMgPSBcCiAgeHItdmFsdWUuaCBcCiAgeHItY2FsbC5oIFwKICB4ci1jbGllbnQuaCBc\n" + "CiAgeHItc2VydmVyLmgK")) + PARAM(ARRAY( + VALUE(string, "f1") + VALUE(string, "f2") + )) + PARAM(VALUE(struct, + MEMBER(m1, VALUE(string, "s1")) + MEMBER(m2, VALUE(string, "")) + )) + )); + //printf("%s\n", eina_strbuf_string_get(str)); + Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); + + TEST_ASSERT(rs); + TEST_ASSERT(_assert_param_type(content, 0, AZY_VALUE_INT)); + TEST_ASSERT(_assert_param_type(content, 1, AZY_VALUE_INT)); + TEST_ASSERT(_assert_param_type(content, 2, AZY_VALUE_STRING)); + TEST_ASSERT(_assert_param_type(content, 3, AZY_VALUE_BOOL)); + TEST_ASSERT(_assert_param_type(content, 4, AZY_VALUE_DOUBLE)); + TEST_ASSERT(_assert_param_type(content, 5, AZY_VALUE_TIME)); + TEST_ASSERT(_assert_param_type(content, 7, AZY_VALUE_ARRAY)); + TEST_ASSERT(_assert_param_type(content, 8, AZY_VALUE_STRUCT)); + eina_strbuf_free(str); + azy_content_free(content); + return EINA_TRUE; } -/* testsuite */ +static Eina_Bool +requestUnserialize5(void) +{ + Azy_Content *content = azy_content_new(NULL); + Eina_Strbuf *str = eina_strbuf_new(); + eina_strbuf_append(str, REQUEST("test.test", + PARAM(VALUE(int, "1")) + PARAM(VALUE(int, "-1")) + "<string>some string</string>\n" /* invalid! */ + PARAM(VALUE(boolean, "1")) + PARAM(VALUE(double, "1.2323")) + PARAM(VALUE(dateTime.iso8601, "2006-04-04")) + PARAM(VALUE(base64, "bGlieHJpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9saWJ4cgoKbGlieHJpbmNsdWRlX0hF\n" + "QURFUlMgPSBcCiAgeHItdmFsdWUuaCBcCiAgeHItY2FsbC5oIFwKICB4ci1jbGllbnQuaCBc\n" + "CiAgeHItc2VydmVyLmgK")) + PARAM(ARRAY( + VALUE(string, "f1") + VALUE(string, "f2") + )) + PARAM(VALUE(struct, + MEMBER(m1, VALUE(string, "s1")) + MEMBER(m2, VALUE(string, "")) + )) + )); + //printf("%s\n", eina_strbuf_string_get(str)); + Eina_Bool rs = azy_content_unserialize_request(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); -int main() + TEST_ASSERT(!rs); + eina_strbuf_free(str); + azy_content_free(content); + return EINA_TRUE; +} + +static Eina_Bool +responseUnserialize1(void) { - eina_init(); - eina_threads_init(); + Azy_Content *content = azy_content_new(NULL); + Eina_Strbuf *str = eina_strbuf_new(); + eina_strbuf_append(str, "<?xml version=\"1.0\"?>" +"<methodResponse>" +" <fault>" +" <value>" +" <struct>" +" <member>" +" <name>faultCode</name>" +" <value><int>4</int></value>" +" </member>" +" <member>" +" <name>faultString</name>" +" <value><string>Too many parameters.</string></value>" +" </member>" +" </struct>" +" </value>" +" </fault>" +" </methodResponse>"); + //printf("%s\n", eina_strbuf_string_get(str)); + Eina_Bool rs = azy_content_unserialize_response(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); - Eina_Counter *c = eina_counter_new("t001-content"); - eina_counter_start(c); + TEST_ASSERT(rs); + eina_strbuf_free(str); + azy_content_free(content); + return EINA_TRUE; +} - int failed = EINA_FALSE; - RUN_TEST(constructCall); - RUN_TEST(constructCallNoMethod); - RUN_TEST(requestUnserialize1); - RUN_TEST(requestUnserialize2); - RUN_TEST(requestUnserialize3); - RUN_TEST(requestUnserialize4); - eina_counter_stop(c, 1); - printf("%s", eina_counter_dump(c)); - eina_counter_free(c); - return failed ? 1 : 0; +static Eina_Bool +responseUnserialize2(void) +{ + Azy_Content *content = azy_content_new(NULL); + Eina_Strbuf *str = eina_strbuf_new(); + eina_strbuf_append(str, +"<?xml version=\"1.0\"?>" +"<methodResponse>" +" <params>" +" <param>" +" <value><string>South Dakota</string></value>" +" </param>" +" <param>" +" <value><string>South Dakota</string></value>" +" </param>" +" </params>" +" </methodResponse>" +); + //printf("%s\n", eina_strbuf_string_get(str)); + Eina_Bool rs = azy_content_unserialize_response(content, AZY_NET_TRANSPORT_XML, eina_strbuf_string_get(str), eina_strbuf_length_get(str)); + + TEST_ASSERT(!rs); + eina_strbuf_free(str); + azy_content_free(content); + return EINA_TRUE; } + +int +main() +{ + eina_init(); + azy_init(); + Eina_Counter *c = eina_counter_new("t001-content"); + eina_counter_start(c); + + int failed = EINA_FALSE; + RUN_TEST(constructCall); + RUN_TEST(constructCallNoMethod); + RUN_TEST(requestUnserialize1); + RUN_TEST(requestUnserialize2); + RUN_TEST(requestUnserialize3); + RUN_TEST(requestUnserialize4); + RUN_TEST(requestUnserialize5); + RUN_TEST(responseUnserialize1); + RUN_TEST(responseUnserialize2); + eina_counter_stop(c, 1); + printf("%s", eina_counter_dump(c)); + eina_counter_free(c); + return failed ? 1 : 0; +} + Modified: trunk/PROTO/azy/src/tests/unit/tests.h =================================================================== --- trunk/PROTO/azy/src/tests/unit/tests.h 2010-12-12 08:15:26 UTC (rev 55506) +++ trunk/PROTO/azy/src/tests/unit/tests.h 2010-12-12 08:16:20 UTC (rev 55507) @@ -2,22 +2,19 @@ * Copyright 2010 Mike Blumenkrantz <mi...@ze...> */ -#include <string.h> +#include <Eina.h> -#define RED "\033[1;31m" -#define GREEN "\033[1;32m" -#define YELLOW "\033[1;33m" -#define NORMAL "\033[0;39m" -#define WHITE "\033[1;37m" #define ST(X) #X #define STR(X) ST(X) #define RUN_TEST(func) { \ - printf("Running " WHITE "%-70s\n" NORMAL, __FILE__ ": " #func); \ - int rs = func(); if (!rs) failed = EINA_TRUE; \ - printf("Done " WHITE "%-70s[%s]\n" NORMAL, __FILE__ ": " #func, !rs ? RED "FAILED" NORMAL : GREEN "PASSED" NORMAL); } + printf("Running " EINA_COLOR_WHITE "%-70s\n" EINA_COLOR_RESET, __FILE__ ": " #func); \ + if (!func()) failed = EINA_TRUE; \ + printf("Done " EINA_COLOR_WHITE "%-70s[%s]\n" EINA_COLOR_RESET, \ + __FILE__ ": " #func, failed ? EINA_COLOR_RED "FAILED" EINA_COLOR_RESET : EINA_COLOR_GREEN "PASSED" EINA_COLOR_RESET); \ + } -#define TEST_ASSERT(cond) { \ - int result = (cond); \ - printf(" " WHITE "%-70s[%s]\n" NORMAL, __FILE__ "["STR(__LINE__)"]: " #cond, !(result) ? RED "FAILED" NORMAL : GREEN "PASSED" NORMAL); \ - if (!result) \ - return EINA_FALSE; } +#define TEST_ASSERT(cond) do { \ + Eina_Bool result = (cond); \ + print_result(result, __LINE__, #cond); \ + if (!result) return EINA_FALSE;\ +} while (0) |