summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2020-04-20 14:36:14 +0200
committerDaniel Kolesa <d.kolesa@samsung.com>2020-04-20 14:36:14 +0200
commitbbc006a3e72d323e73bb77ee546fd8f0f6d741a6 (patch)
treecbdab88aae5c066f85f5ecf7a8b0391433b0d4e1
parente565e989eee5846bc121ddff80ca75c3642d3427 (diff)
downloadefl-bbc006a3e72d323e73bb77ee546fd8f0f6d741a6.tar.gz
eolian: fix C type serialization of error()
-rw-r--r--src/lib/eolian/database_type.c2
-rw-r--r--src/tests/eolian/eolian_parsing.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/eolian/database_type.c b/src/lib/eolian/database_type.c
index 53d531cc54..0df427bf62 100644
--- a/src/lib/eolian/database_type.c
+++ b/src/lib/eolian/database_type.c
@@ -121,6 +121,8 @@ database_type_to_str(const Eolian_Type *tp,
else
eina_strbuf_append(buf, tp->base.c_name);
}
+ else if (tp->type == EOLIAN_TYPE_ERROR)
+ eina_strbuf_append(buf, "Eina_Error");
else if (tp->type == EOLIAN_TYPE_VOID)
eina_strbuf_append(buf, "void");
else if (tp->type == EOLIAN_TYPE_UNDEFINED)
diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c
index 60e24bda41..ae213b5a28 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -805,6 +805,7 @@ EFL_START_TEST(eolian_error)
const Eolian_Function *f1, *f2;
const Eolian_Type *rtp1, *rtp2;
const Eolian_Error *err1, *err2;
+ Eina_Stringshare *str;
Eolian_State *eos = eolian_state_new();
@@ -822,6 +823,9 @@ EFL_START_TEST(eolian_error)
fail_if(eolian_type_type_get(rtp1) != EOLIAN_TYPE_ERROR);
fail_if(eolian_type_next_type_get(rtp1) != NULL);
fail_if(strcmp(eolian_type_name_get(rtp1), "Foo"));
+ fail_if(!(str = eolian_type_c_type_get(rtp1)));
+ fail_if(strcmp(str, "Eina_Error"));
+ eina_stringshare_del(str);
fail_if(!(err1 = eolian_type_error_get(rtp1)));
fail_if(strcmp(eolian_error_message_get(err1), "something bad happened"));