machinarium: add machinarium_stat() test

This commit is contained in:
Dmitry Simonenko 2018-01-09 17:11:25 +03:00
parent 2d73372f03
commit 1579b3d926
3 changed files with 54 additions and 0 deletions

View File

@ -21,6 +21,8 @@ extern void test_join(void);
extern void test_condition0(void);
extern void test_condition1(void);
extern void test_stat(void);
extern void test_signal0(void);
extern void test_signal1(void);
extern void test_signal2(void);
@ -86,6 +88,7 @@ main(int argc, char *argv[])
machinarium_test(test_join);
machinarium_test(test_condition0);
machinarium_test(test_condition1);
machinarium_test(test_stat);
machinarium_test(test_signal0);
machinarium_test(test_signal1);
machinarium_test(test_signal2);

View File

@ -15,6 +15,7 @@ OBJECTS = machinarium_test.o \
test_join.o \
test_condition0.o \
test_condition1.o \
test_stat.o \
test_signal0.o \
test_signal1.o \
test_signal2.o \

50
tests/test_stat.c Normal file
View File

@ -0,0 +1,50 @@
/*
* machinarium.
*
* Cooperative multitasking engine.
*/
#include <machinarium.h>
#include <machinarium_test.h>
static void
coroutine(void *arg)
{
machine_sleep(100);
}
void
test_stat(void)
{
machinarium_init();
int count_machine = 0;
int count_coroutine = 0;
int count_coroutine_cache = 0;
machinarium_stat(&count_machine, &count_coroutine,
&count_coroutine_cache);
test(count_machine == 3); /* thread pool */
int id;
id = machine_create("test", coroutine, NULL);
test(id != -1);
machinarium_stat(&count_machine, &count_coroutine,
&count_coroutine_cache);
test(count_machine == 4);
int rc;
rc = machine_wait(id);
test(rc != -1);
machinarium_stat(&count_machine, &count_coroutine,
&count_coroutine_cache);
test(count_machine == 3);
machinarium_free();
}