Files
OpenCellular/cts/gpio/th.c
Chris Chen 7bd4984b01 cts: Added parsing for cts suites
Added test recording when calling reset from command
line. These results are printed on the screen and
saved in /tmp/results/<board>/<module>.txt

BRANCH=None
BUG=None
TEST=Manual
- Connect, build and flash boards
- Navigate to ec/cts
- ./cts.py --run
- Find test results /tmp/results/<board>/<module>.txt
- Tests names should be left aligned in one column
  and their results right aligned in a 2nd column

Change-Id: I3429d6092f2bd5d5f6825245f5439ace3f47f1fa
Reviewed-on: https://chromium-review.googlesource.com/360653
Commit-Ready: Chris Chen <twothreecc@google.com>
Tested-by: Chris Chen <twothreecc@google.com>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2016-07-26 19:42:33 -07:00

90 lines
1.7 KiB
C

/* 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 "watchdog.h"
#include "uart.h"
#include "timer.h"
#include "watchdog.h"
#include "dut_common.h"
#include "cts_common.h"
enum cts_rc sync_test(void)
{
return CTS_RC_SUCCESS;
}
enum cts_rc set_high_test(void)
{
int level;
gpio_set_flags(GPIO_INPUT_TEST, GPIO_INPUT | GPIO_PULL_UP);
msleep(READ_WAIT_TIME_MS);
level = gpio_get_level(GPIO_INPUT_TEST);
if (level)
return CTS_RC_SUCCESS;
else
return CTS_RC_FAILURE;
}
enum cts_rc set_low_test(void)
{
int level;
gpio_set_flags(GPIO_INPUT_TEST, GPIO_INPUT | GPIO_PULL_UP);
msleep(READ_WAIT_TIME_MS);
level = gpio_get_level(GPIO_INPUT_TEST);
if (!level)
return CTS_RC_SUCCESS;
else
return CTS_RC_FAILURE;
}
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_RC_SUCCESS;
}
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_RC_SUCCESS;
}
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_RC_SUCCESS;
}
#include "cts_testlist.h"
void cts_task(void)
{
enum cts_rc result;
int i;
uart_flush_output();
for (i = 0; i < CTS_TEST_ID_COUNT; i++) {
sync();
result = tests[i].run();
CPRINTF("\n%s %d\n", tests[i].name, result);
uart_flush_output();
}
CPRINTS("GPIO test suite finished");
uart_flush_output();
while (1) {
watchdog_reload();
sleep(1);
}
}