eolian: is_beta API plus tests
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Fri, 8 May 2015 13:12:27 +0000 (14:12 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Fri, 8 May 2015 13:12:27 +0000 (14:12 +0100)
src/lib/eolian/Eolian.h
src/lib/eolian/database_function_api.c
src/tests/eolian/data/class_simple.eo
src/tests/eolian/eolian_parsing.c

index c2e07c5..6223000 100644 (file)
@@ -884,6 +884,16 @@ EAPI Eina_Bool eolian_function_is_class(const Eolian_Function *function_id);
 EAPI Eina_Bool eolian_function_is_c_only(const Eolian_Function *function_id);
 
 /*
+ * @brief Get whether a function is beta.
+ *
+ * @param[in] function_id Id of the function
+ * @return EINA_TRUE and EINA_FALSE respectively
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Bool eolian_function_is_beta(const Eolian_Function *function_id);
+
+/*
  * @brief Indicates if a function is a constructing function of a given class.
  *
  * @param[in] klass the class
index fd78fef..d29b9d4 100644 (file)
@@ -264,6 +264,13 @@ eolian_function_is_c_only(const Eolian_Function *fid)
    return fid->is_c_only;
 }
 
+EAPI Eina_Bool
+eolian_function_is_beta(const Eolian_Function *fid)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
+   return fid->is_beta;
+}
+
 EAPI Eina_Bool eolian_function_is_implemented(
       const Eolian_Function *function_id, Eolian_Function_Type func_type,
       const Eolian_Class *klass)
index d4b4fc8..adbbbbc 100644 (file)
@@ -4,7 +4,7 @@ class Class_Simple {
    eo_prefix: evas_obj_simple;
    data: Evas_Simple_Data;
    methods {
-      @property a {
+      @property a @beta {
          /*@ Common desc for a */
          set {
             /*@
@@ -22,7 +22,7 @@ class Class_Simple {
            eo: null;
         }
       }
-      foo {
+      foo @beta {
          /*@ comment foo */
          params {
             @in int a; /*@ a */
index 8269c2c..e9d35d2 100644 (file)
@@ -565,6 +565,7 @@ START_TEST(eolian_simple_parsing)
    /* Property */
    fail_if(!(fid = eolian_class_function_get_by_name(class, "a", EOLIAN_PROPERTY)));
    fail_if(strcmp(eolian_function_name_get(fid), "a"));
+   fail_if(!eolian_function_is_beta(fid));
    string = eolian_function_description_get(fid, EOLIAN_PROPERTY);
    fail_if(!string);
    fail_if(strcmp(string, "Common desc for a"));
@@ -611,9 +612,11 @@ START_TEST(eolian_simple_parsing)
    fail_if(eolian_function_is_legacy_only(fid, EOLIAN_PROP_GET));
    fail_if(!eolian_function_is_legacy_only(fid, EOLIAN_PROP_SET));
    fail_if(!eolian_function_is_c_only(fid));
+   fail_if(eolian_function_is_beta(fid));
 
    /* Method */
    fail_if(!(fid = eolian_class_function_get_by_name(class, "foo", EOLIAN_METHOD)));
+   fail_if(!eolian_function_is_beta(fid));
    string = eolian_function_description_get(fid, EOLIAN_METHOD);
    fail_if(!string);
    fail_if(strcmp(string, "comment foo"));
@@ -663,6 +666,7 @@ START_TEST(eolian_simple_parsing)
    fail_if(!(fid = eolian_class_function_get_by_name(class, "bar", EOLIAN_METHOD)));
    fail_if(!eolian_function_is_legacy_only(fid, EOLIAN_METHOD));
    fail_if(!eolian_function_is_c_only(fid));
+   fail_if(eolian_function_is_beta(fid));
 
    eolian_shutdown();
 }