From: Behdad Esfahbod Date: Mon, 2 May 2011 18:33:53 +0000 (-0400) Subject: [test/unicode] Better test chainup X-Git-Tag: 2.0_alpha~7^2~282 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7cda65935c73c277550f6ac12f6730e96d4852a7;p=apps%2Fcore%2Fpreloaded%2Fvideo-player.git [test/unicode] Better test chainup --- diff --git a/test/test-unicode.c b/test/test-unicode.c index 68cb320..19bd387 100644 --- a/test/test-unicode.c +++ b/test/test-unicode.c @@ -514,13 +514,10 @@ default_value (hb_codepoint_t default_value, hb_codepoint_t unicode) } static void -test_unicode_properties_nil (void) +_test_unicode_properties_nil (hb_unicode_funcs_t *uf) { - hb_unicode_funcs_t *uf = hb_unicode_funcs_create (NULL); unsigned int i, j; - g_assert (!hb_unicode_funcs_is_immutable (uf)); - for (i = 0; i < G_N_ELEMENTS (properties); i++) { const property_t *p = &properties[i]; const test_pair_t *tests; @@ -537,8 +534,54 @@ test_unicode_properties_nil (void) g_assert_cmphex (p->getter (uf, tests[j].unicode), ==, default_value (p->default_value, tests[j].unicode)); } } +} + +static void +test_unicode_properties_nil (void) +{ + hb_unicode_funcs_t *uf = hb_unicode_funcs_create (NULL); + + g_assert (!hb_unicode_funcs_is_immutable (uf)); + _test_unicode_properties_nil (uf); + + hb_unicode_funcs_destroy (uf); +} + + +static void +test_unicode_chainup (void) +{ + hb_unicode_funcs_t *uf, *uf2; + + /* Chain-up to nil */ + + uf = hb_unicode_funcs_create (NULL); + g_assert (!hb_unicode_funcs_is_immutable (uf)); + + uf2 = hb_unicode_funcs_create (uf); + g_assert (hb_unicode_funcs_is_immutable (uf)); + hb_unicode_funcs_destroy (uf); + + g_assert (!hb_unicode_funcs_is_immutable (uf2)); + _test_unicode_properties_nil (uf2); + hb_unicode_funcs_destroy (uf2); + + /* Chain-up to default */ + + uf = hb_unicode_funcs_create (hb_unicode_funcs_get_default ()); + g_assert (!hb_unicode_funcs_is_immutable (uf)); + + uf2 = hb_unicode_funcs_create (uf); + g_assert (hb_unicode_funcs_is_immutable (uf)); hb_unicode_funcs_destroy (uf); + + g_assert (!hb_unicode_funcs_is_immutable (uf2)); + hb_unicode_funcs_make_immutable (uf2); + test_unicode_properties (uf2); + + hb_unicode_funcs_destroy (uf2); + } static void @@ -682,13 +725,14 @@ main (int argc, char **argv) hb_test_add_data_flavor (hb_icu_get_unicode_funcs (), "icu", test_unicode_properties); #endif + hb_test_add (test_unicode_chainup); + hb_test_add (test_unicode_setters); hb_test_add_fixture (data_fixture, NULL, test_unicode_subclassing_nil); hb_test_add_fixture (data_fixture, NULL, test_unicode_subclassing_default); hb_test_add_fixture (data_fixture, NULL, test_unicode_subclassing_deep); - /* XXX test chainup */ /* XXX test glib & icu two-way script conversion */ return hb_test_run ();