cts: Added file to list error codes as integers

BRANCH=None
BUG=None
TEST=Manual
- Connect handshake and gpio test lines between th
  and dut
- Build tests
- run 'cat /dev/ttyACM0' in one terminal
- run 'cat /def/ttyACM1' in another
- Flash boards
- All test results print their test name followed
  by a space and and integer error code

Change-Id: If52e9b50705779b3a291e2d0f6b0721a5b6197d8
Reviewed-on: https://chromium-review.googlesource.com/359988
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:
Chris Chen
2016-07-11 14:52:05 -07:00
committed by chrome-bot
parent 5df351f63c
commit 3e98dec612
9 changed files with 57 additions and 89 deletions

10
cts/common/cts.rc Normal file
View File

@@ -0,0 +1,10 @@
/* 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.
*/
/* This file is included by cts_common.h as an enumeration of error codes. */
CTS_RC_SUCCESS,
CTS_RC_FAILURE,
CTS_RC_BAD_SYNC,
CTS_RC_UNKNOWN

View File

@@ -18,11 +18,9 @@
/* In a single test, only one board can return unknown, the other must
* return a useful result (i.e. success, failure, etc)
*/
enum cts_error_code {
CTS_SUCCESS,
CTS_ERROR_FAILURE,
CTS_ERROR_BAD_SYNC,
CTS_ERROR_UNKNOWN
enum cts_rc {
#include "cts.rc"
};
#endif

View File

@@ -4,7 +4,7 @@
*/
struct cts_test {
enum cts_error_code (*run)(void);
enum cts_rc (*run)(void);
char *name;
};

View File

@@ -12,7 +12,7 @@
/* Returns unknown because TH could potentially still get stuck
* even if the DUT completes the sync
*/
enum cts_error_code sync(void)
enum cts_rc sync(void)
{
int input_level;
@@ -28,5 +28,5 @@ enum cts_error_code sync(void)
} while (input_level);
gpio_set_level(GPIO_HANDSHAKE_OUTPUT, 0);
return CTS_ERROR_UNKNOWN;
return CTS_RC_UNKNOWN;
}

View File

@@ -8,6 +8,6 @@
#include "cts_common.h"
enum cts_error_code sync(void);
enum cts_rc sync(void);
#endif

View File

@@ -12,7 +12,7 @@
/* Return SUCCESS if and only if we reach end of function
* Returning success here means sync was successful
*/
enum cts_error_code sync(void)
enum cts_rc sync(void)
{
int input_level;
@@ -32,5 +32,5 @@ enum cts_error_code sync(void)
input_level = gpio_get_level(GPIO_HANDSHAKE_INPUT);
} while (input_level);
return CTS_SUCCESS;
return CTS_RC_SUCCESS;
}

View File

@@ -8,6 +8,6 @@
#include "cts_common.h"
enum cts_error_code sync(void);
enum cts_rc sync(void);
#endif

View File

@@ -11,28 +11,28 @@
#include "dut_common.h"
#include "cts_common.h"
enum cts_error_code sync_test(void)
enum cts_rc sync_test(void)
{
return CTS_SUCCESS;
return CTS_RC_SUCCESS;
}
enum cts_error_code set_high_test(void)
enum cts_rc set_high_test(void)
{
gpio_set_flags(GPIO_OUTPUT_TEST, GPIO_ODR_LOW);
gpio_set_level(GPIO_OUTPUT_TEST, 1);
msleep(READ_WAIT_TIME_MS*2);
return CTS_ERROR_UNKNOWN;
return CTS_RC_UNKNOWN;
}
enum cts_error_code set_low_test(void)
enum cts_rc set_low_test(void)
{
gpio_set_flags(GPIO_OUTPUT_TEST, GPIO_ODR_LOW);
gpio_set_level(GPIO_OUTPUT_TEST, 0);
msleep(READ_WAIT_TIME_MS*2);
return CTS_ERROR_UNKNOWN;
return CTS_RC_UNKNOWN;
}
enum cts_error_code read_high_test(void)
enum cts_rc read_high_test(void)
{
int level;
@@ -40,12 +40,12 @@ enum cts_error_code read_high_test(void)
msleep(READ_WAIT_TIME_MS);
level = gpio_get_level(GPIO_INPUT_TEST);
if (level)
return CTS_SUCCESS;
return CTS_RC_SUCCESS;
else
return CTS_ERROR_FAILURE;
return CTS_RC_FAILURE;
}
enum cts_error_code read_low_test(void)
enum cts_rc read_low_test(void)
{
int level;
@@ -53,12 +53,12 @@ enum cts_error_code read_low_test(void)
msleep(READ_WAIT_TIME_MS);
level = gpio_get_level(GPIO_INPUT_TEST);
if (!level)
return CTS_SUCCESS;
return CTS_RC_SUCCESS;
else
return CTS_ERROR_FAILURE;
return CTS_RC_FAILURE;
}
enum cts_error_code od_read_high_test(void)
enum cts_rc od_read_high_test(void)
{
int level;
@@ -66,47 +66,27 @@ enum cts_error_code od_read_high_test(void)
msleep(READ_WAIT_TIME_MS);
level = gpio_get_level(GPIO_OUTPUT_TEST);
if (!level)
return CTS_SUCCESS;
return CTS_RC_SUCCESS;
else
return CTS_ERROR_FAILURE;
return CTS_RC_FAILURE;
}
#include "cts_testlist.h"
void cts_task(void)
{
enum cts_error_code results[CTS_TEST_ID_COUNT];
enum cts_rc result;
int i;
for (i = 0; i < CTS_TEST_ID_COUNT; i++) {
sync();
results[i] = tests[i].run();
result = tests[i].run();
CPRINTF("\n%s %d\n", tests[i].name, result);
uart_flush_output();
}
CPRINTS("GPIO test suite finished");
uart_flush_output();
CPRINTS("Results:");
for (i = 0; i < CTS_TEST_ID_COUNT; i++) {
switch (results[i]) {
case CTS_SUCCESS:
CPRINTS("%s) Passed", tests[i].name);
break;
case CTS_ERROR_FAILURE:
CPRINTS("%s) Failed", tests[i].name);
break;
case CTS_ERROR_BAD_SYNC:
CPRINTS("%s) Bad sync", tests[i].name);
break;
case CTS_ERROR_UNKNOWN:
CPRINTS("%s) Test result unknown", tests[i].name);
break;
default:
CPRINTS("%s) ErrorCode (%d) not recognized",
tests[i].name, results[i]);
break;
}
}
while (1) {
watchdog_reload();
sleep(1);

View File

@@ -11,12 +11,12 @@
#include "dut_common.h"
#include "cts_common.h"
enum cts_error_code sync_test(void)
enum cts_rc sync_test(void)
{
return CTS_SUCCESS;
return CTS_RC_SUCCESS;
}
enum cts_error_code set_high_test(void)
enum cts_rc set_high_test(void)
{
int level;
@@ -24,12 +24,12 @@ enum cts_error_code set_high_test(void)
msleep(READ_WAIT_TIME_MS);
level = gpio_get_level(GPIO_INPUT_TEST);
if (level)
return CTS_SUCCESS;
return CTS_RC_SUCCESS;
else
return CTS_ERROR_FAILURE;
return CTS_RC_FAILURE;
}
enum cts_error_code set_low_test(void)
enum cts_rc set_low_test(void)
{
int level;
@@ -37,70 +37,50 @@ enum cts_error_code set_low_test(void)
msleep(READ_WAIT_TIME_MS);
level = gpio_get_level(GPIO_INPUT_TEST);
if (!level)
return CTS_SUCCESS;
return CTS_RC_SUCCESS;
else
return CTS_ERROR_FAILURE;
return CTS_RC_FAILURE;
}
enum cts_error_code read_high_test(void)
enum cts_rc read_high_test(void)
{
gpio_set_flags(GPIO_OUTPUT_TEST, GPIO_ODR_LOW);
gpio_set_level(GPIO_OUTPUT_TEST, 1);
msleep(READ_WAIT_TIME_MS*2);
return CTS_ERROR_UNKNOWN;
return CTS_RC_UNKNOWN;
}
enum cts_error_code read_low_test(void)
enum cts_rc read_low_test(void)
{
gpio_set_flags(GPIO_OUTPUT_TEST, GPIO_ODR_LOW);
gpio_set_level(GPIO_OUTPUT_TEST, 0);
msleep(READ_WAIT_TIME_MS*2);
return CTS_ERROR_UNKNOWN;
return CTS_RC_UNKNOWN;
}
enum cts_error_code od_read_high_test(void)
enum cts_rc od_read_high_test(void)
{
gpio_set_flags(GPIO_INPUT_TEST, GPIO_OUTPUT | GPIO_ODR_LOW);
msleep(READ_WAIT_TIME_MS*2);
return CTS_ERROR_UNKNOWN;
return CTS_RC_UNKNOWN;
}
#include "cts_testlist.h"
void cts_task(void)
{
enum cts_error_code results[CTS_TEST_ID_COUNT];
enum cts_rc result;
int i;
for (i = 0; i < CTS_TEST_ID_COUNT; i++) {
sync();
results[i] = tests[i].run();
result = tests[i].run();
CPRINTF("\n%s %d\n", tests[i].name, result);
uart_flush_output();
}
CPRINTS("GPIO test suite finished");
uart_flush_output();
CPRINTS("Results:");
for (i = 0; i < CTS_TEST_ID_COUNT; i++) {
switch (results[i]) {
case CTS_SUCCESS:
CPRINTS("%s) Passed", tests[i].name);
break;
case CTS_ERROR_FAILURE:
CPRINTS("%s) Failed", tests[i].name);
break;
case CTS_ERROR_BAD_SYNC:
CPRINTS("%s) Bad sync", tests[i].name);
break;
case CTS_ERROR_UNKNOWN:
CPRINTS("%s) Test result unknown", tests[i].name);
break;
default:
CPRINTS("%s) ErrorCode (%d) not recognized",
tests[i].name, results[i]);
break;
}
}
while (1) {
watchdog_reload();
sleep(1);