eo: Fix override test case to match new policy
authorJean-Philippe Andre <jp.andre@samsung.com>
Thu, 21 Jul 2016 04:52:16 +0000 (13:52 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Thu, 21 Jul 2016 05:03:10 +0000 (14:03 +0900)
The new policy is a lot more restrictive.
Honestly, I don't like it.

src/tests/eo/suite/eo_test_general.c

index dcbf73f..de7c258 100644 (file)
@@ -88,17 +88,28 @@ START_TEST(eo_override_tests)
    EO_OVERRIDE_OPS_DEFINE(
             overrides2,
             EO_OP_FUNC_OVERRIDE(simple_a_set, _simple_obj_override_a_double_set));
+   fail_if(!eo_override(obj, NULL));
    fail_if(!eo_override(obj, &overrides2));
 
    simple_a_set(obj, OVERRIDE_A_SIMPLE);
-   ck_assert_int_eq(simple_a_get(obj), OVERRIDE_A + (OVERRIDE_A_SIMPLE * 2));
+   ck_assert_int_eq(simple_a_get(obj), OVERRIDE_A_SIMPLE * 2);
+
+   /* Try overriding again - not allowed by policy */
+   fail_if(eo_override(obj, &overrides));
+   ck_assert_int_eq(simple_a_get(obj), OVERRIDE_A_SIMPLE * 2);
 
    /* Try introducing a new function */
    EO_OVERRIDE_OPS_DEFINE(
             overrides3,
             EO_OP_FUNC(simple2_class_beef_get, _simple_obj_override_a_double_set));
+   fail_if(!eo_override(obj, NULL));
    fail_if(eo_override(obj, &overrides3));
 
+   /* Test override reset */
+   fail_if(!eo_override(obj, NULL));
+   simple_a_set(obj, 42 * OVERRIDE_A_SIMPLE);
+   ck_assert_int_eq(simple_a_get(obj), 42 * OVERRIDE_A_SIMPLE);
+
    eo_unref(obj);
 
    eo_shutdown();