mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-29 23:53:33 +08:00
sandbox: Add a way to reset sandbox state for tests
Running a new test should reset the sandbox state to avoid tests interferring with each other. Move the existing state-reset code into a function so it can be used from tests. Also update the code to reset the SPI devices and adjust the test code to call it. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a40cc8e123
commit
34b744beb8
@ -351,6 +351,16 @@ bool state_get_skip_delays(void)
|
||||
return state->skip_delays;
|
||||
}
|
||||
|
||||
void state_reset_for_test(struct sandbox_state *state)
|
||||
{
|
||||
/* No reset yet, so mark it as such. Always allow power reset */
|
||||
state->last_sysreset = SYSRESET_COUNT;
|
||||
state->sysreset_allowed[SYSRESET_POWER] = true;
|
||||
|
||||
memset(&state->wdt, '\0', sizeof(state->wdt));
|
||||
memset(state->spi, '\0', sizeof(state->spi));
|
||||
}
|
||||
|
||||
int state_init(void)
|
||||
{
|
||||
state = &main_state;
|
||||
@ -359,10 +369,7 @@ int state_init(void)
|
||||
state->ram_buf = os_malloc(state->ram_size);
|
||||
assert(state->ram_buf);
|
||||
|
||||
/* No reset yet, so mark it as such. Always allow power reset */
|
||||
state->last_sysreset = SYSRESET_COUNT;
|
||||
state->sysreset_allowed[SYSRESET_POWER] = true;
|
||||
|
||||
state_reset_for_test(state);
|
||||
/*
|
||||
* Example of how to use GPIOs:
|
||||
*
|
||||
|
@ -213,6 +213,13 @@ void state_set_skip_delays(bool skip_delays);
|
||||
*/
|
||||
bool state_get_skip_delays(void);
|
||||
|
||||
/**
|
||||
* state_reset_for_test() - Reset ready to re-run tests
|
||||
*
|
||||
* This clears out any test state ready for another test run.
|
||||
*/
|
||||
void state_reset_for_test(struct sandbox_state *state);
|
||||
|
||||
/**
|
||||
* Initialize the test system state
|
||||
*/
|
||||
|
@ -29,6 +29,7 @@ static int dm_test_init(struct unit_test_state *uts)
|
||||
memset(dms, '\0', sizeof(*dms));
|
||||
gd->dm_root = NULL;
|
||||
memset(dm_testdrv_op_count, '\0', sizeof(dm_testdrv_op_count));
|
||||
state_reset_for_test(state_get_current());
|
||||
|
||||
ut_assertok(dm_init(false));
|
||||
dms->root = dm_root();
|
||||
|
Loading…
Reference in New Issue
Block a user