Skip to content
Snippets Groups Projects
Commit 34b744be authored by Simon Glass's avatar Simon Glass
Browse files

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: default avatarSimon Glass <sjg@chromium.org>
parent a40cc8e1
No related branches found
No related tags found
No related merge requests found
...@@ -351,6 +351,16 @@ bool state_get_skip_delays(void) ...@@ -351,6 +351,16 @@ bool state_get_skip_delays(void)
return state->skip_delays; 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) int state_init(void)
{ {
state = &main_state; state = &main_state;
...@@ -359,10 +369,7 @@ int state_init(void) ...@@ -359,10 +369,7 @@ int state_init(void)
state->ram_buf = os_malloc(state->ram_size); state->ram_buf = os_malloc(state->ram_size);
assert(state->ram_buf); assert(state->ram_buf);
/* No reset yet, so mark it as such. Always allow power reset */ state_reset_for_test(state);
state->last_sysreset = SYSRESET_COUNT;
state->sysreset_allowed[SYSRESET_POWER] = true;
/* /*
* Example of how to use GPIOs: * Example of how to use GPIOs:
* *
......
...@@ -213,6 +213,13 @@ void state_set_skip_delays(bool skip_delays); ...@@ -213,6 +213,13 @@ void state_set_skip_delays(bool skip_delays);
*/ */
bool state_get_skip_delays(void); 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 * Initialize the test system state
*/ */
......
...@@ -29,6 +29,7 @@ static int dm_test_init(struct unit_test_state *uts) ...@@ -29,6 +29,7 @@ static int dm_test_init(struct unit_test_state *uts)
memset(dms, '\0', sizeof(*dms)); memset(dms, '\0', sizeof(*dms));
gd->dm_root = NULL; gd->dm_root = NULL;
memset(dm_testdrv_op_count, '\0', sizeof(dm_testdrv_op_count)); memset(dm_testdrv_op_count, '\0', sizeof(dm_testdrv_op_count));
state_reset_for_test(state_get_current());
ut_assertok(dm_init(false)); ut_assertok(dm_init(false));
dms->root = dm_root(); dms->root = dm_root();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment