mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 15:06:14 +01:00
testing.c: added tests for the g_test_rand*() API.
svn path=/trunk/; revision=5882
This commit is contained in:
parent
e47c4253f9
commit
b2a4c8bae2
@ -112,6 +112,42 @@ fixturetest_teardown (Fixturetest *fix)
|
|||||||
g_free (fix->msg);
|
g_free (fix->msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct {
|
||||||
|
int bit, vint1, vint2, irange;
|
||||||
|
long double vdouble, drange;
|
||||||
|
} shared_rand_state;
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_rand1 (void)
|
||||||
|
{
|
||||||
|
shared_rand_state.bit = g_test_rand_bit();
|
||||||
|
shared_rand_state.vint1 = g_test_rand_int();
|
||||||
|
shared_rand_state.vint2 = g_test_rand_int();
|
||||||
|
g_assert_cmpint (shared_rand_state.vint1, !=, shared_rand_state.vint2);
|
||||||
|
shared_rand_state.irange = g_test_rand_int_range (17, 35);
|
||||||
|
g_assert_cmpint (shared_rand_state.irange, >=, 17);
|
||||||
|
g_assert_cmpint (shared_rand_state.irange, <=, 35);
|
||||||
|
shared_rand_state.vdouble = g_test_rand_double();
|
||||||
|
shared_rand_state.drange = g_test_rand_double_range (-999, +17);
|
||||||
|
g_assert_cmpfloat (shared_rand_state.drange, >=, -999);
|
||||||
|
g_assert_cmpfloat (shared_rand_state.drange, <=, +17);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_rand2 (void)
|
||||||
|
{
|
||||||
|
/* this test only works if run after test1.
|
||||||
|
* we do this to check that random number generators
|
||||||
|
* are reseeded upon fixture setup.
|
||||||
|
*/
|
||||||
|
g_assert_cmpint (shared_rand_state.bit, ==, g_test_rand_bit());
|
||||||
|
g_assert_cmpint (shared_rand_state.vint1, ==, g_test_rand_int());
|
||||||
|
g_assert_cmpint (shared_rand_state.vint2, ==, g_test_rand_int());
|
||||||
|
g_assert_cmpint (shared_rand_state.irange, ==, g_test_rand_int_range (17, 35));
|
||||||
|
g_assert_cmpfloat (shared_rand_state.vdouble, ==, g_test_rand_double());
|
||||||
|
g_assert_cmpfloat (shared_rand_state.drange, ==, g_test_rand_double_range (-999, +17));
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc,
|
main (int argc,
|
||||||
char *argv[])
|
char *argv[])
|
||||||
@ -123,6 +159,8 @@ main (int argc,
|
|||||||
g_test_suite_add_suite (rootsuite, miscsuite);
|
g_test_suite_add_suite (rootsuite, miscsuite);
|
||||||
GTestSuite *forksuite = g_test_create_suite ("fork");
|
GTestSuite *forksuite = g_test_create_suite ("fork");
|
||||||
g_test_suite_add_suite (rootsuite, forksuite);
|
g_test_suite_add_suite (rootsuite, forksuite);
|
||||||
|
GTestSuite *randsuite = g_test_create_suite ("rand");
|
||||||
|
g_test_suite_add_suite (rootsuite, randsuite);
|
||||||
|
|
||||||
tc = g_test_create_case ("fail assertion", 0, NULL, test_fork_fail, NULL);
|
tc = g_test_create_case ("fail assertion", 0, NULL, test_fork_fail, NULL);
|
||||||
g_test_suite_add (forksuite, tc);
|
g_test_suite_add (forksuite, tc);
|
||||||
@ -131,6 +169,11 @@ main (int argc,
|
|||||||
tc = g_test_create_case ("timeout", 0, NULL, test_fork_timeout, NULL);
|
tc = g_test_create_case ("timeout", 0, NULL, test_fork_timeout, NULL);
|
||||||
g_test_suite_add (forksuite, tc);
|
g_test_suite_add (forksuite, tc);
|
||||||
|
|
||||||
|
tc = g_test_create_case ("rand-1", 0, NULL, test_rand1, NULL);
|
||||||
|
g_test_suite_add (randsuite, tc);
|
||||||
|
tc = g_test_create_case ("rand-2", 0, NULL, test_rand2, NULL);
|
||||||
|
g_test_suite_add (randsuite, tc);
|
||||||
|
|
||||||
tc = g_test_create_case ("assertions", 0, NULL, test_assertions, NULL);
|
tc = g_test_create_case ("assertions", 0, NULL, test_assertions, NULL);
|
||||||
g_test_suite_add (miscsuite, tc);
|
g_test_suite_add (miscsuite, tc);
|
||||||
tc = g_test_create_case ("primetoul", sizeof (Fixturetest),
|
tc = g_test_create_case ("primetoul", sizeof (Fixturetest),
|
||||||
|
Loading…
Reference in New Issue
Block a user