unix/coverage: Enable scheduler and add tests for it.
This commit is contained in:
parent
c772817dee
commit
74faf4c5fc
|
@ -46,6 +46,17 @@ Warning: test
|
|||
# binary
|
||||
122
|
||||
456
|
||||
# scheduler
|
||||
sched(0)=1
|
||||
sched(1)=1
|
||||
sched(2)=1
|
||||
sched(3)=1
|
||||
sched(4)=0
|
||||
unlocked
|
||||
3
|
||||
2
|
||||
1
|
||||
0
|
||||
0123456789 b'0123456789'
|
||||
7300
|
||||
7300
|
||||
|
|
|
@ -292,6 +292,35 @@ STATIC mp_obj_t extra_coverage(void) {
|
|||
mp_printf(&mp_plat_print, "%.0lf\n", dar[0]);
|
||||
}
|
||||
|
||||
// scheduler
|
||||
{
|
||||
mp_printf(&mp_plat_print, "# scheduler\n");
|
||||
|
||||
// lock scheduler
|
||||
mp_sched_lock();
|
||||
|
||||
// schedule multiple callbacks; last one should fail
|
||||
for (int i = 0; i < 5; ++i) {
|
||||
mp_printf(&mp_plat_print, "sched(%d)=%d\n", i, mp_sched_schedule(MP_OBJ_FROM_PTR(&mp_builtin_print_obj), MP_OBJ_NEW_SMALL_INT(i)));
|
||||
}
|
||||
|
||||
// test nested locking/unlocking
|
||||
mp_sched_lock();
|
||||
mp_sched_unlock();
|
||||
|
||||
// shouldn't do anything while scheduler is locked
|
||||
mp_handle_pending();
|
||||
|
||||
// unlock scheduler
|
||||
mp_sched_unlock();
|
||||
mp_printf(&mp_plat_print, "unlocked\n");
|
||||
|
||||
// drain pending callbacks
|
||||
while (mp_sched_num_pending()) {
|
||||
mp_handle_pending();
|
||||
}
|
||||
}
|
||||
|
||||
mp_obj_streamtest_t *s = m_new_obj(mp_obj_streamtest_t);
|
||||
s->base.type = &mp_type_stest_fileio;
|
||||
s->buf = NULL;
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include <mpconfigport.h>
|
||||
|
||||
#define MICROPY_ENABLE_SCHEDULER (1)
|
||||
#define MICROPY_PY_DELATTR_SETATTR (1)
|
||||
#define MICROPY_PY_BUILTINS_HELP (1)
|
||||
#define MICROPY_PY_BUILTINS_HELP_MODULES (1)
|
||||
|
|
Loading…
Reference in New Issue