summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@osg.samsung.com>2015-05-08 14:12:27 +0100
committerDaniel Kolesa <d.kolesa@osg.samsung.com>2015-05-08 14:12:27 +0100
commit0c07b9bea41e7d49d0477b80d19f31ea9264ada6 (patch)
tree78dc945f1615ef0883934969a74225534b5dba2d
parentb33e2b21a161f3aa3509826ec9501f93ddfc25e6 (diff)
downloadefl-0c07b9bea41e7d49d0477b80d19f31ea9264ada6.tar.gz
eolian: is_beta API plus tests
-rw-r--r--src/lib/eolian/Eolian.h10
-rw-r--r--src/lib/eolian/database_function_api.c7
-rw-r--r--src/tests/eolian/data/class_simple.eo4
-rw-r--r--src/tests/eolian/eolian_parsing.c4
4 files changed, 23 insertions, 2 deletions
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index c2e07c5456..6223000484 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -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
diff --git a/src/lib/eolian/database_function_api.c b/src/lib/eolian/database_function_api.c
index fd78fef459..d29b9d4304 100644
--- a/src/lib/eolian/database_function_api.c
+++ b/src/lib/eolian/database_function_api.c
@@ -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)
diff --git a/src/tests/eolian/data/class_simple.eo b/src/tests/eolian/data/class_simple.eo
index d4b4fc8756..adbbbbc900 100644
--- a/src/tests/eolian/data/class_simple.eo
+++ b/src/tests/eolian/data/class_simple.eo
@@ -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 */
diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c
index 8269c2c68e..e9d35d25b9 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -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();
}