mirror of https://github.com/yandex/odyssey.git
machinarium: add machinarium_stat() test
This commit is contained in:
parent
2d73372f03
commit
1579b3d926
|
@ -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);
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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();
|
||||
}
|
Loading…
Reference in New Issue