Add test for memory-mapped switch information

This checks power button and lid switch states are updated correctly to
memory-mapped region.

BUG=chrome-os-partner:19236
TEST=Pass power_button and lid_sw tests
BRANCH=None

Change-Id: Ia49b5a3142b5fd47985bc6f53b1bbffd6d4bbeac
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/170438
Reviewed-by: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
Vic Yang
2013-09-25 20:28:19 +08:00
committed by chrome-internal-fetch
parent 20724deae6
commit 45bcffd91a
3 changed files with 21 additions and 0 deletions

View File

@@ -15,6 +15,7 @@
#define CONFIG_POWER_BUTTON
#undef CONFIG_WATCHDOG
#define CONFIG_PWM
#define CONFIG_SWITCH
#undef CONFIG_CONSOLE_HISTORY
#define CONFIG_CONSOLE_HISTORY 4

View File

@@ -30,6 +30,12 @@ static void lid_change_hook(void)
}
DECLARE_HOOK(HOOK_LID_CHANGE, lid_change_hook, HOOK_PRIO_DEFAULT);
int lid_memmap_state(void)
{
uint8_t *memmap = host_get_memmap(EC_MEMMAP_SWITCHES);
return *memmap & EC_SWITCH_LID_OPEN;
}
static int test_hook(void)
{
/* Close lid for testing */
@@ -44,6 +50,7 @@ static int test_hook(void)
msleep(50);
TEST_ASSERT(lid_hook_count == 1);
TEST_ASSERT(lid_is_open());
TEST_ASSERT(lid_memmap_state());
TEST_ASSERT(host_get_events() &
EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN));
@@ -52,6 +59,7 @@ static int test_hook(void)
msleep(50);
TEST_ASSERT(lid_hook_count == 2);
TEST_ASSERT(!lid_is_open());
TEST_ASSERT(!lid_memmap_state());
TEST_ASSERT(host_get_events() &
EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED));
@@ -72,6 +80,7 @@ static int test_debounce(void)
msleep(20);
TEST_ASSERT(lid_hook_count == 0);
TEST_ASSERT(!lid_is_open());
TEST_ASSERT(!lid_memmap_state());
TEST_ASSERT(!(host_get_events() &
EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN)));
@@ -80,6 +89,7 @@ static int test_debounce(void)
msleep(50);
TEST_ASSERT(lid_hook_count == 0);
TEST_ASSERT(!lid_is_open());
TEST_ASSERT(!lid_memmap_state());
TEST_ASSERT(!(host_get_events() &
EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN)));

View File

@@ -36,6 +36,12 @@ static void pb_change_hook(void)
}
DECLARE_HOOK(HOOK_POWER_BUTTON_CHANGE, pb_change_hook, HOOK_PRIO_DEFAULT);
int pb_memmap_state(void)
{
uint8_t *memmap = host_get_memmap(EC_MEMMAP_SWITCHES);
return *memmap & EC_SWITCH_POWER_BUTTON_PRESSED;
}
static int test_hook(void)
{
/* Release power button for testing */
@@ -50,6 +56,7 @@ static int test_hook(void)
msleep(50);
TEST_ASSERT(pb_hook_count == 1);
TEST_ASSERT(power_button_is_pressed());
TEST_ASSERT(pb_memmap_state());
TEST_ASSERT(host_get_events() &
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON));
host_clear_events(0xffffffff);
@@ -59,6 +66,7 @@ static int test_hook(void)
msleep(50);
TEST_ASSERT(pb_hook_count == 2);
TEST_ASSERT(!power_button_is_pressed());
TEST_ASSERT(!pb_memmap_state());
TEST_ASSERT(!(host_get_events() &
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON)));
@@ -79,6 +87,7 @@ static int test_debounce(void)
msleep(20);
TEST_ASSERT(pb_hook_count == 0);
TEST_ASSERT(!power_button_is_pressed());
TEST_ASSERT(!pb_memmap_state());
TEST_ASSERT(!(host_get_events() &
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON)));
@@ -87,6 +96,7 @@ static int test_debounce(void)
msleep(50);
TEST_ASSERT(pb_hook_count == 0);
TEST_ASSERT(!power_button_is_pressed());
TEST_ASSERT(!pb_memmap_state());
TEST_ASSERT(!(host_get_events() &
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON)));