summaryrefslogtreecommitdiff
path: root/test/stress.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/stress.c')
-rw-r--r--test/stress.c143
1 files changed, 0 insertions, 143 deletions
diff --git a/test/stress.c b/test/stress.c
deleted file mode 100644
index 91a65197f8..0000000000
--- a/test/stress.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/* Peripheral stress tests */
-
-#include "console.h"
-#include "ec_commands.h"
-#include "i2c.h"
-#include "test_util.h"
-#include "timer.h"
-#include "util.h"
-
-#ifdef CONFIG_ADC
-#include "adc.h"
-#endif
-
-static int error_count;
-
-/*****************************************************************************/
-/* Test parameters */
-
-/* I2C test */
-#define I2C_TEST_ITERATION 2000
-
-struct i2c_test_param_t {
- int width; /* 8 or 16 bits */
- int port;
- int addr;
- int offset;
- int data; /* Non-negative represents data to write. -1 to read. */
-} i2c_test_params[];
-
-/* Disable I2C test for boards without test configuration */
-#if defined(BOARD_BDS) || defined(BOARD_AURON)
-#undef CONFIG_I2C
-#endif
-
-/* ADC test */
-#define ADC_TEST_ITERATION 2000
-
-/*****************************************************************************/
-/* Test utilities */
-
-/* period between 500us and 32ms */
-#define RAND_US() (((prng_no_seed() % 64) + 1) * 500)
-
-static int stress(const char *name,
- int (*test_routine)(void),
- const int iteration)
-{
- int i;
-
- for (i = 0; i < iteration; ++i) {
- if (i % 10 == 0) {
- ccprintf("\r%s...%d/%d", name, i, iteration);
- usleep(RAND_US());
- }
- if (test_routine() != EC_SUCCESS)
- return EC_ERROR_UNKNOWN;
- }
-
- ccprintf("\r%s...%d/%d\n", name, iteration, iteration);
- return EC_SUCCESS;
-}
-
-#define RUN_STRESS_TEST(n, r, iter) \
- do { \
- if (stress(n, r, iter) != EC_SUCCESS) { \
- ccputs("Fail\n"); \
- error_count++; \
- } \
- } while (0)
-
-/*****************************************************************************/
-/* Tests */
-#ifdef CONFIG_I2C_CONTROLLER
-static int test_i2c(void)
-{
- int res = EC_ERROR_UNKNOWN;
- int mock_data;
- struct i2c_test_param_t *param;
- param = i2c_test_params + (prng_no_seed() % (sizeof(i2c_test_params) /
- sizeof(struct i2c_test_param_t)));
- if (param->width == 8 && param->data == -1)
- res = i2c_read8(param->port, param->addr,
- param->offset, &mock_data);
- else if (param->width == 8 && param->data >= 0)
- res = i2c_write8(param->port, param->addr,
- param->offset, param->data);
- else if (param->width == 16 && param->data == -1)
- res = i2c_read16(param->port, param->addr,
- param->offset, &mock_data);
- else if (param->width == 16 && param->data >= 0)
- res = i2c_write16(param->port, param->addr,
- param->offset, param->data);
- else if (param->width == 32 && param->data == -1)
- res = i2c_read32(param->port, param->addr,
- param->offset, &mock_data);
- else if (param->width == 32 && param->data >= 0)
- res = i2c_write32(param->port, param->addr,
- param->offset, param->data);
-
- return res;
-}
-#endif
-
-#ifdef CONFIG_ADC
-__attribute__((weak)) int adc_read_all_channels(int *data)
-{
- int i;
- int rv = EC_SUCCESS;
-
- for (i = 0; i < ADC_CH_COUNT; ++i) {
- data[i] = adc_read_channel(i);
- if (data[i] == ADC_READ_ERROR)
- rv = EC_ERROR_UNKNOWN;
- }
-
- return rv;
-}
-
-static int test_adc(void)
-{
- int data[ADC_CH_COUNT];
- return adc_read_all_channels(data);
-}
-#endif
-
-void run_test(int argc, char **argv)
-{
- test_reset();
-
-#ifdef CONFIG_I2C_CONTROLLER
- RUN_STRESS_TEST("I2C Stress Test", test_i2c, I2C_TEST_ITERATION);
-#endif
-#ifdef CONFIG_ADC
- RUN_STRESS_TEST("ADC Stress Test", test_adc, ADC_TEST_ITERATION);
-#endif
-
- test_print_result();
-}