Test that g_slice_set_config() works

For a while it didn't work, due to the ctor-based initialisation of
gslice.

https://bugzilla.gnome.org/show_bug.cgi?id=660887
This commit is contained in:
Ryan Lortie 2011-10-04 16:36:53 -04:00
parent 5bfb64d507
commit bb5d90a768
3 changed files with 32 additions and 0 deletions

View File

@ -45,6 +45,7 @@ rwlock
scannerapi
sequence
shell
slice
slist
sort
strfuncs

View File

@ -212,6 +212,9 @@ private_LDADD = $(progs_ldadd)
TEST_PROGS += thread
thread_LDADD = $(progs_ldadd)
TEST_PROGS += slice
slice_LDADD = $(progs_ldadd)
if OS_UNIX
TEST_PROGS += unix

28
glib/tests/slice.c Normal file
View File

@ -0,0 +1,28 @@
#include <glib.h>
void
test_slice_config (void)
{
if (g_test_trap_fork (1000000, G_TEST_TRAP_SILENCE_STDERR))
g_slice_set_config (G_SLICE_CONFIG_ALWAYS_MALLOC, TRUE);
g_test_trap_assert_failed ();
}
int
main (int argc, char **argv)
{
/* have to do this before using gtester since it uses gslice */
gboolean was;
was = g_slice_get_config (G_SLICE_CONFIG_ALWAYS_MALLOC);
g_slice_set_config (G_SLICE_CONFIG_ALWAYS_MALLOC, !was);
g_assert_cmpint (g_slice_get_config (G_SLICE_CONFIG_ALWAYS_MALLOC), !=, was);
g_slice_set_config (G_SLICE_CONFIG_ALWAYS_MALLOC, was);
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/slice/config", test_slice_config);
return g_test_run ();
}