q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=00f99a874d8c6c8a69909a78226d0c146d610ce0

commit 00f99a874d8c6c8a69909a78226d0c146d610ce0
Author: Daniel Kolesa <[email protected]>
Date:   Tue Jul 15 15:50:58 2014 +0100

    eolian: add test for extern
---
 src/tests/eolian/data/extern.eo   | 28 ++++++++++++++++++++++++++++
 src/tests/eolian/eolian_parsing.c | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+)

diff --git a/src/tests/eolian/data/extern.eo b/src/tests/eolian/data/extern.eo
new file mode 100644
index 0000000..b039b6c
--- /dev/null
+++ b/src/tests/eolian/data/extern.eo
@@ -0,0 +1,28 @@
+/* regular type */
+type Foo: int;
+
+/* extern type */
+type @extern Evas_Coord: int;
+
+/* regular struct */
+struct X
+{
+   field: int;
+}
+
+/* extern struct */
+struct @extern Y
+{
+   field: int;
+}
+
+class Dummy {
+   methods {
+      foo {
+         params {
+            int idx;
+         }
+         return own(char*);
+      }
+   }
+}
diff --git a/src/tests/eolian/eolian_parsing.c 
b/src/tests/eolian/eolian_parsing.c
index 1c80281..96334e4 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -543,6 +543,38 @@ START_TEST(eolian_struct)
 }
 END_TEST
 
+START_TEST(eolian_extern)
+{
+   const Eolian_Type *type = NULL;
+   const Eolian_Class *class;
+
+   eolian_init();
+
+   /* Parsing */
+   fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/extern.eo"));
+
+   /* Check that the class Dummy is still readable */
+   fail_if(!(class = eolian_class_find_by_name("Dummy")));
+   fail_if(!eolian_class_function_find_by_name(class, "foo", EOLIAN_METHOD));
+
+   /* regular type */
+   fail_if(eolian_typedef_is_extern("Foo"));
+
+   /* extern type */
+   fail_if(!eolian_typedef_is_extern("Evas_Coord"));
+
+   /* regular struct */
+   fail_if(!(type = eolian_type_struct_find_by_name("X")));
+   fail_if(eolian_type_struct_is_extern(type));
+
+   /* extern struct */
+   fail_if(!(type = eolian_type_struct_find_by_name("Y")));
+   fail_if(!eolian_type_struct_is_extern(type));
+
+   eolian_shutdown();
+}
+END_TEST
+
 void eolian_parsing_test(TCase *tc)
 {
    tcase_add_test(tc, eolian_simple_parsing);
@@ -555,5 +587,6 @@ void eolian_parsing_test(TCase *tc)
    tcase_add_test(tc, eolian_events);
    tcase_add_test(tc, eolian_namespaces);
    tcase_add_test(tc, eolian_struct);
+   tcase_add_test(tc, eolian_extern);
 }
 

-- 


Reply via email to