diff options
author | Chris Chen <twothreecc@google.com> | 2016-07-29 10:13:26 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-08-10 15:30:26 -0700 |
commit | 59342032e522842566370cdedbee77394e1092ea (patch) | |
tree | 3df49c58c815e5e4ed4044003368f433e83f389e /cts | |
parent | 67f6964aefccb60eb7e1284da2186cb5d3b3dfbd (diff) | |
download | chrome-ec-59342032e522842566370cdedbee77394e1092ea.tar.gz |
cts: Added meta tests (testing cts suite itself)
This is a test suite with certain expected failures.
If making any changes to cts code other than simply
adding a test suite, run this to make sure you
didn't break cts.
BRANCH=None
BUG=None
TEST=Manual
- Build with "./cts.py -b --debug -m meta"
- Flash with "./cts.py -f -m meta"
- View results at /tmp/cts_results/<board_name>/meta.html
- Results should match debug descriptions
Change-Id: Ia5c10c7ce0e0d852fe6b14e481798eaff2a82c9c
Reviewed-on: https://chromium-review.googlesource.com/364273
Commit-Ready: Chris Chen <twothreecc@google.com>
Tested-by: Chris Chen <twothreecc@google.com>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'cts')
-rw-r--r-- | cts/meta/cts.testlist | 64 | ||||
-rw-r--r-- | cts/meta/dut.c | 89 | ||||
-rw-r--r-- | cts/meta/th.c | 96 |
3 files changed, 249 insertions, 0 deletions
diff --git a/cts/meta/cts.testlist b/cts/meta/cts.testlist new file mode 100644 index 0000000000..778b0f62cc --- /dev/null +++ b/cts/meta/cts.testlist @@ -0,0 +1,64 @@ +/* Copyright 2016 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* Currently tests will execute in the order they are listed here */ + +/* Test should succeed show the following debug output: + * You should see #'s 1-4 on sequential lines: + * 1 + * 2 + * 3 + * 4 + */ +CTS_TEST(debug_test) + +/* Test should succeed if both report success + * (expected result: success) + */ +CTS_TEST(success_test) + +/* Test should fail if one reports success and + * (one reports failure (expected result: failure) + */ +CTS_TEST(fail_dut_test) + +/* Test should fail if one reports success and + * (one reports failure (expected result: failure) + */ +CTS_TEST(fail_th_test) + +/* Test should fail when both boards report failure + * (expected result: failure) + */ +CTS_TEST(fail_both_test) + +/* Test should fail with bad sync if one reports bad + * sync and the other reports success (expected result: + * bad_sync) + */ +CTS_TEST(bad_sync_and_success_test) + +/* Test should fail with bad sync if both boards report + * bad sync (expected result: bad_sync) + */ +CTS_TEST(bad_sync_both_test) + +/* Test should report conflict if one reports bad sync + * and the other reports failure + * (expected result: conflict) + */ +CTS_TEST(bad_sync_failure_test) + +/* Test should be listed as corrupted if one test hangs, + * regardless of what the other test outputs + * (expected result: corrupted) + */ +CTS_TEST(hang_test) + +/* Test should be corrupted if it follows a corrupted + * test, regardless of what the actual result was + * reported as + */ +CTS_TEST(post_corruption_success)
\ No newline at end of file diff --git a/cts/meta/dut.c b/cts/meta/dut.c new file mode 100644 index 0000000000..ad772bc10b --- /dev/null +++ b/cts/meta/dut.c @@ -0,0 +1,89 @@ +/* Copyright 2016 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "common.h" +#include "uart.h" +#include "timer.h" +#include "watchdog.h" +#include "dut_common.h" +#include "cts_common.h" + +enum cts_rc debug_test(void) +{ + return CTS_RC_SUCCESS; +} + +enum cts_rc success_test(void) +{ + return CTS_RC_SUCCESS; +} + +enum cts_rc fail_dut_test(void) +{ + return CTS_RC_FAILURE; +} + +enum cts_rc fail_th_test(void) +{ + return CTS_RC_SUCCESS; +} + +enum cts_rc fail_both_test(void) +{ + return CTS_RC_FAILURE; +} + +enum cts_rc bad_sync_and_success_test(void) +{ + return CTS_RC_BAD_SYNC; +} + +enum cts_rc bad_sync_both_test(void) +{ + return CTS_RC_BAD_SYNC; +} + +enum cts_rc bad_sync_failure_test(void) +{ + return CTS_RC_BAD_SYNC; +} + +enum cts_rc hang_test(void) +{ + while (1) { + watchdog_reload(); + sleep(1); + } + + return CTS_RC_SUCCESS; +} + +enum cts_rc post_corruption_success(void) +{ + return CTS_RC_SUCCESS; +} + +#include "cts_testlist.h" + +void cts_task(void) +{ + enum cts_rc result; + int i; + + cflush(); + for (i = 0; i < CTS_TEST_ID_COUNT; i++) { + sync(); + result = tests[i].run(); + CPRINTF("\n%s %d\n", tests[i].name, result); + cflush(); + } + + CPRINTS("GPIO test suite finished"); + cflush(); + while (1) { + watchdog_reload(); + sleep(1); + } +} diff --git a/cts/meta/th.c b/cts/meta/th.c new file mode 100644 index 0000000000..bdab9ce6f1 --- /dev/null +++ b/cts/meta/th.c @@ -0,0 +1,96 @@ +/* Copyright 2016 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "common.h" +#include "uart.h" +#include "timer.h" +#include "watchdog.h" +#include "dut_common.h" +#include "cts_common.h" + +enum cts_rc debug_test(void) +{ + CTS_DEBUG_PRINTF("You should see #'s 1-4 on sequential lines:"); + CTS_DEBUG_PRINTF("1"); + CTS_DEBUG_PRINTF("2\n3"); + CTS_DEBUG_PRINTF("4"); + return CTS_RC_SUCCESS; +} + +enum cts_rc success_test(void) +{ + CTS_DEBUG_PRINTF("Expect: Success"); + return CTS_RC_SUCCESS; +} + +enum cts_rc fail_dut_test(void) +{ + CTS_DEBUG_PRINTF("Expect: Failure"); + return CTS_RC_SUCCESS; +} + +enum cts_rc fail_th_test(void) +{ + CTS_DEBUG_PRINTF("Expect: Failure"); + return CTS_RC_FAILURE; +} + +enum cts_rc fail_both_test(void) +{ + CTS_DEBUG_PRINTF("Expect: Failure"); + return CTS_RC_FAILURE; +} + +enum cts_rc bad_sync_and_success_test(void) +{ + CTS_DEBUG_PRINTF("Expect: Bad Sync"); + return CTS_RC_BAD_SYNC; +} + +enum cts_rc bad_sync_both_test(void) +{ + CTS_DEBUG_PRINTF("Expect: Bad Sync"); + return CTS_RC_BAD_SYNC; +} + +enum cts_rc bad_sync_failure_test(void) +{ + CTS_DEBUG_PRINTF("Expect: Conflict"); + return CTS_RC_FAILURE; +} + +enum cts_rc hang_test(void) +{ + CTS_DEBUG_PRINTF("This and next, expect: Corrupted"); + return CTS_RC_SUCCESS; +} + +enum cts_rc post_corruption_success(void) +{ + return CTS_RC_SUCCESS; +} + +#include "cts_testlist.h" + +void cts_task(void) +{ + enum cts_rc result; + int i; + + cflush(); + for (i = 0; i < CTS_TEST_ID_COUNT; i++) { + sync(); + result = tests[i].run(); + CPRINTF("\n%s %d\n", tests[i].name, result); + cflush(); + } + + CPRINTS("GPIO test suite finished"); + cflush(); + while (1) { + watchdog_reload(); + sleep(1); + } +} |