Add thread test for RP_CONCURRENT
This commit is contained in:
1 parent
95fcd054a3
commit
c269a36e8b
1 file changed
+33
-2
@@ -82,6 +82,8 @@ ARRAY_DEF(key_list, string_t)
|
|||||||
#define M_OPL_key_list_t() ARRAY_OPLIST(key_list, STRING_OPLIST)
|
#define M_OPL_key_list_t() ARRAY_OPLIST(key_list, STRING_OPLIST)
|
||||||
CONCURRENT_DEF(key_list_ts, key_list_t)
|
CONCURRENT_DEF(key_list_ts, key_list_t)
|
||||||
|
|
||||||
|
CONCURRENT_RP_DEF(rparray1, array1_t, ARRAY_OPLIST(array1))
|
||||||
|
|
||||||
CONCURRENT_RP_DEF(rpdict1, dict1_t, DICT_OPLIST(dict1))
|
CONCURRENT_RP_DEF(rpdict1, dict1_t, DICT_OPLIST(dict1))
|
||||||
|
|
||||||
static inline bool int_oor_equal_p(int s, unsigned char n)
|
static inline bool int_oor_equal_p(int s, unsigned char n)
|
||||||
@@ -111,7 +113,7 @@ static void conso(void *p)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test(void)
|
static void test_thread(void)
|
||||||
{
|
{
|
||||||
m_thread_t idx;
|
m_thread_t idx;
|
||||||
parray1_init(arr);
|
parray1_init(arr);
|
||||||
@@ -152,6 +154,34 @@ static void test_basic(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rparray1_t rarr;
|
||||||
|
|
||||||
|
static void conso_rp(void *p)
|
||||||
|
{
|
||||||
|
assert (p == NULL);
|
||||||
|
for(int i = 0; i < 1000; i++) {
|
||||||
|
int j;
|
||||||
|
bool b = rparray1_pop_blocking(&j, rarr, true);
|
||||||
|
assert (b);
|
||||||
|
assert (j == i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_rp_thread(void)
|
||||||
|
{
|
||||||
|
m_thread_t idx;
|
||||||
|
rparray1_init(rarr);
|
||||||
|
m_thread_create (idx, conso_rp, NULL);
|
||||||
|
m_thread_sleep(1000);
|
||||||
|
for(int i = 0; i < 1000; i++) {
|
||||||
|
rparray1_push (rarr, i);
|
||||||
|
while (!rparray1_empty_p(rarr));
|
||||||
|
}
|
||||||
|
m_thread_join(idx);
|
||||||
|
rparray1_clear(rarr);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_rp_basic(void)
|
static void test_rp_basic(void)
|
||||||
{
|
{
|
||||||
rpdict1_t dict;
|
rpdict1_t dict;
|
||||||
@@ -172,6 +202,7 @@ int main(void)
|
|||||||
{
|
{
|
||||||
test_basic();
|
test_basic();
|
||||||
test_rp_basic();
|
test_rp_basic();
|
||||||
test();
|
test_thread();
|
||||||
|
test_rp_thread();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user