diff options
author | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2015-05-13 17:15:20 +0100 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2015-05-13 17:15:45 +0100 |
commit | e90e3af8b5cd9f54d8f2d4c5dee0f1142d3bce71 (patch) | |
tree | 5857fc34d23b78604705daf0906c876a774eaae3 /src/tests | |
parent | e6ed156e390919b8cd4fef4145cbc3abf075ebbf (diff) | |
download | efl-e90e3af8b5cd9f54d8f2d4c5dee0f1142d3bce71.tar.gz |
eolian: fix evaluation of "undefined" enum fields
Diffstat (limited to 'src/tests')
-rw-r--r-- | src/tests/eolian/data/enum.eo | 11 | ||||
-rw-r--r-- | src/tests/eolian/eolian_parsing.c | 7 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/tests/eolian/data/enum.eo b/src/tests/eolian/data/enum.eo index 49bc3697e1..3b16a2ac98 100644 --- a/src/tests/eolian/data/enum.eo +++ b/src/tests/eolian/data/enum.eo @@ -16,6 +16,17 @@ enum Baz { flag3 = 1 << 2 } +enum Value { + foo, + bar, + baz = 2, + bah, + bam, + pants +} + +const Pants: int = Value.pants; + const Bah: int = Baz.flag1; class Enum { diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c index c94248d1a3..5eefe74d3f 100644 --- a/src/tests/eolian/eolian_parsing.c +++ b/src/tests/eolian/eolian_parsing.c @@ -916,6 +916,13 @@ START_TEST(eolian_enum) fail_if(v.type != EOLIAN_EXPR_INT); fail_if(v.value.i != (1 << 0)); + fail_if(!(var = eolian_variable_constant_get_by_name("Pants"))); + fail_if(eolian_variable_type_get(var) != EOLIAN_VAR_CONSTANT); + fail_if(!(exp = eolian_variable_value_get(var))); + v = eolian_expression_eval(exp, EOLIAN_MASK_ALL); + fail_if(v.type != EOLIAN_EXPR_INT); + fail_if(v.value.i != 5); + eolian_shutdown(); } END_TEST |