[test/unicode] Test is/make_immutable()
This commit is contained in:
parent
6af9cff5e1
commit
da96ee072f
|
@ -36,6 +36,8 @@ test_unicode_nil (void)
|
||||||
{
|
{
|
||||||
hb_unicode_funcs_t *uf = hb_unicode_funcs_create (NULL);
|
hb_unicode_funcs_t *uf = hb_unicode_funcs_create (NULL);
|
||||||
|
|
||||||
|
g_assert (!hb_unicode_funcs_is_immutable (uf));
|
||||||
|
|
||||||
g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_UNKNOWN);
|
g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_UNKNOWN);
|
||||||
|
|
||||||
hb_unicode_funcs_destroy (uf);
|
hb_unicode_funcs_destroy (uf);
|
||||||
|
@ -46,6 +48,8 @@ test_unicode_glib (void)
|
||||||
{
|
{
|
||||||
hb_unicode_funcs_t *uf = hb_glib_get_unicode_funcs ();
|
hb_unicode_funcs_t *uf = hb_glib_get_unicode_funcs ();
|
||||||
|
|
||||||
|
g_assert (hb_unicode_funcs_is_immutable (uf));
|
||||||
|
|
||||||
g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_LATIN);
|
g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_LATIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +58,8 @@ test_unicode_default (void)
|
||||||
{
|
{
|
||||||
hb_unicode_funcs_t *uf = hb_unicode_funcs_get_default ();
|
hb_unicode_funcs_t *uf = hb_unicode_funcs_get_default ();
|
||||||
|
|
||||||
|
g_assert (hb_unicode_funcs_is_immutable (uf));
|
||||||
|
|
||||||
g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_LATIN);
|
g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_LATIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,22 +112,6 @@ simple_get_script (hb_unicode_funcs_t *ufuncs,
|
||||||
return HB_SCRIPT_UNKNOWN;
|
return HB_SCRIPT_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
test_unicode_custom (data_fixture_t *f, gconstpointer user_data)
|
|
||||||
{
|
|
||||||
hb_unicode_funcs_t *uf = hb_unicode_funcs_create (NULL);
|
|
||||||
|
|
||||||
hb_unicode_funcs_set_script_func (uf, simple_get_script,
|
|
||||||
&f->data[0], free_up);
|
|
||||||
|
|
||||||
g_assert_cmpint (hb_unicode_get_script (uf, 'a'), ==, HB_SCRIPT_LATIN);
|
|
||||||
g_assert_cmpint (hb_unicode_get_script (uf, '0'), ==, HB_SCRIPT_UNKNOWN);
|
|
||||||
|
|
||||||
g_assert (!f->data[0].freed && !f->data[1].freed);
|
|
||||||
hb_unicode_funcs_destroy (uf);
|
|
||||||
g_assert (f->data[0].freed && !f->data[1].freed);
|
|
||||||
}
|
|
||||||
|
|
||||||
static hb_script_t
|
static hb_script_t
|
||||||
a_is_for_arabic_get_script (hb_unicode_funcs_t *ufuncs,
|
a_is_for_arabic_get_script (hb_unicode_funcs_t *ufuncs,
|
||||||
hb_codepoint_t codepoint,
|
hb_codepoint_t codepoint,
|
||||||
|
@ -142,6 +132,30 @@ a_is_for_arabic_get_script (hb_unicode_funcs_t *ufuncs,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_unicode_custom (data_fixture_t *f, gconstpointer user_data)
|
||||||
|
{
|
||||||
|
hb_unicode_funcs_t *uf = hb_unicode_funcs_create (NULL);
|
||||||
|
|
||||||
|
hb_unicode_funcs_set_script_func (uf, simple_get_script,
|
||||||
|
&f->data[0], free_up);
|
||||||
|
|
||||||
|
g_assert_cmpint (hb_unicode_get_script (uf, 'a'), ==, HB_SCRIPT_LATIN);
|
||||||
|
g_assert_cmpint (hb_unicode_get_script (uf, '0'), ==, HB_SCRIPT_UNKNOWN);
|
||||||
|
|
||||||
|
g_assert (!hb_unicode_funcs_is_immutable (uf));
|
||||||
|
hb_unicode_funcs_make_immutable (uf);
|
||||||
|
g_assert (hb_unicode_funcs_is_immutable (uf));
|
||||||
|
|
||||||
|
/* Since uf is immutable now, the following setter should do nothing. */
|
||||||
|
hb_unicode_funcs_set_script_func (uf, a_is_for_arabic_get_script,
|
||||||
|
&f->data[1], free_up);
|
||||||
|
|
||||||
|
g_assert (!f->data[0].freed && !f->data[1].freed);
|
||||||
|
hb_unicode_funcs_destroy (uf);
|
||||||
|
g_assert (f->data[0].freed && !f->data[1].freed);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_unicode_subclassing_nil (data_fixture_t *f, gconstpointer user_data)
|
test_unicode_subclassing_nil (data_fixture_t *f, gconstpointer user_data)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue