mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-28 02:35:28 +00:00
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>
This commit is contained in:
64
cts/meta/cts.testlist
Normal file
64
cts/meta/cts.testlist
Normal file
@@ -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)
|
||||
89
cts/meta/dut.c
Normal file
89
cts/meta/dut.c
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
96
cts/meta/th.c
Normal file
96
cts/meta/th.c
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user