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_condition0(void);
|
||||||
extern void test_condition1(void);
|
extern void test_condition1(void);
|
||||||
|
|
||||||
|
extern void test_stat(void);
|
||||||
|
|
||||||
extern void test_signal0(void);
|
extern void test_signal0(void);
|
||||||
extern void test_signal1(void);
|
extern void test_signal1(void);
|
||||||
extern void test_signal2(void);
|
extern void test_signal2(void);
|
||||||
|
@ -86,6 +88,7 @@ main(int argc, char *argv[])
|
||||||
machinarium_test(test_join);
|
machinarium_test(test_join);
|
||||||
machinarium_test(test_condition0);
|
machinarium_test(test_condition0);
|
||||||
machinarium_test(test_condition1);
|
machinarium_test(test_condition1);
|
||||||
|
machinarium_test(test_stat);
|
||||||
machinarium_test(test_signal0);
|
machinarium_test(test_signal0);
|
||||||
machinarium_test(test_signal1);
|
machinarium_test(test_signal1);
|
||||||
machinarium_test(test_signal2);
|
machinarium_test(test_signal2);
|
||||||
|
|
|
@ -15,6 +15,7 @@ OBJECTS = machinarium_test.o \
|
||||||
test_join.o \
|
test_join.o \
|
||||||
test_condition0.o \
|
test_condition0.o \
|
||||||
test_condition1.o \
|
test_condition1.o \
|
||||||
|
test_stat.o \
|
||||||
test_signal0.o \
|
test_signal0.o \
|
||||||
test_signal1.o \
|
test_signal1.o \
|
||||||
test_signal2.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