mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-07-23 09:21:56 +08:00
Fix sporadic test failures via uma_timeout()
This commit is contained in:
parent
94b5368388
commit
6fb003f588
@ -695,4 +695,7 @@ struct uma_percpu_stat {
|
||||
void uma_reclaim_wakeup(void);
|
||||
void uma_reclaim_worker(void *);
|
||||
|
||||
#ifdef __rtems__
|
||||
void rtems_uma_drain_timeout(void);
|
||||
#endif /* __rtems__ */
|
||||
#endif /* _VM_UMA_H_ */
|
||||
|
@ -3814,3 +3814,15 @@ DB_SHOW_COMMAND(umacache, db_show_umacache)
|
||||
}
|
||||
#endif /* DDB */
|
||||
#endif /* __rtems__ */
|
||||
#ifdef __rtems__
|
||||
/*
|
||||
* This is a helper routine for test programs. The uma_timeout() may need some
|
||||
* dynamic memory. This could disturb out of memory tests.
|
||||
*/
|
||||
void
|
||||
rtems_uma_drain_timeout(void)
|
||||
{
|
||||
|
||||
callout_drain(&uma_callout);
|
||||
}
|
||||
#endif /* __rtems__ */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2013 embedded brains GmbH. All rights reserved.
|
||||
* Copyright (c) 2013, 2018 embedded brains GmbH. All rights reserved.
|
||||
*
|
||||
* embedded brains GmbH
|
||||
* Dornierstr. 4
|
||||
@ -38,6 +38,7 @@
|
||||
#include <sys/socket.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/filio.h>
|
||||
#include <vm/uma.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <err.h>
|
||||
@ -1599,23 +1600,15 @@ test_setgethostname(void)
|
||||
assert(in[sizeof(in) - 1] == '\0');
|
||||
}
|
||||
|
||||
static void set_self_prio(rtems_task_priority prio)
|
||||
{
|
||||
rtems_status_code sc;
|
||||
|
||||
sc = rtems_task_set_priority(RTEMS_SELF, prio, &prio);
|
||||
assert(sc == RTEMS_SUCCESSFUL);
|
||||
}
|
||||
|
||||
static void
|
||||
test_main(void)
|
||||
{
|
||||
|
||||
/*
|
||||
* No interruptions by the timer server. The uma_timeout() may need
|
||||
* some dynamic memory. This could disturb the no memory tests.
|
||||
* Stop interferences of uma_timeout() which may need some dynamic
|
||||
* memory. This could disturb the no memory tests.
|
||||
*/
|
||||
set_self_prio(1);
|
||||
rtems_uma_drain_timeout();
|
||||
|
||||
/* Must be first test to ensure resource checks work */
|
||||
test_sockets();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2013-2014 embedded brains GmbH. All rights reserved.
|
||||
* Copyright (c) 2013, 2018 embedded brains GmbH. All rights reserved.
|
||||
*
|
||||
* embedded brains GmbH
|
||||
* Dornierstr. 4
|
||||
@ -43,6 +43,8 @@
|
||||
#include <sys/kthread.h>
|
||||
#include <sys/errno.h>
|
||||
|
||||
#include <vm/uma.h>
|
||||
|
||||
#include <rtems/bsd/bsd.h>
|
||||
|
||||
#include <rtems.h>
|
||||
@ -284,8 +286,15 @@ test_rtems_bsd_get_curthread_or_null(void)
|
||||
static void
|
||||
test_main(void)
|
||||
{
|
||||
|
||||
main_task_id = rtems_task_self();
|
||||
|
||||
/*
|
||||
* Stop interferences of uma_timeout() which may need some dynamic
|
||||
* memory. This could disturb the no memory tests.
|
||||
*/
|
||||
rtems_uma_drain_timeout();
|
||||
|
||||
test_non_bsd_thread();
|
||||
test_kproc_start();
|
||||
test_kthread_start();
|
||||
|
Loading…
x
Reference in New Issue
Block a user