summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorScott Collyer <scollyer@google.com>2019-10-01 16:50:33 -0700
committerCommit Bot <commit-bot@chromium.org>2019-10-02 11:08:29 +0000
commit63f8741f4605b163c06a3629da890c12051c3d7f (patch)
tree2ebe99ac47f62e35bf7cc45045e479d957ec91ee /test
parent8989576dae8b5f45d2b591b5d76bb320a5ecffb1 (diff)
downloadchrome-ec-63f8741f4605b163c06a3629da890c12051c3d7f.tar.gz
Revert "common: Refactor motion_sense_fifo"
This reverts commit 36b47ab3c06e477f5e95d6d9e84a5220248784e6. With this CL the lid angle calculation on hatch devices reports 500 which is what's used for can't caluclate a meaninfgul value. BUG=b:141840539 BRANCH=None TEST=On helios tested with this CL and saw that lid angle calculations returned 500 for lid angle. Then reverted the CL and verifed that lid angle calculations were correct. Used 'accelinfo on 10000' to check the EC reported lid angle. Change-Id: Id4e36219792d00357d2885e9944c58fe0e15c5ca Signed-off-by: Scott Collyer <scollyer@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1834705 Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Yuval Peress <peress@chromium.org> Reviewed-by: Furquan Shaikh <furquan@chromium.org> Commit-Queue: Scott Collyer <scollyer@chromium.org>
Diffstat (limited to 'test')
-rw-r--r--test/build.mk3
-rw-r--r--test/motion_sense_fifo.c328
-rw-r--r--test/motion_sense_fifo.tasklist10
-rw-r--r--test/test_config.h8
4 files changed, 2 insertions, 347 deletions
diff --git a/test/build.mk b/test/build.mk
index 9e139995a4..ea0fef7fc1 100644
--- a/test/build.mk
+++ b/test/build.mk
@@ -46,7 +46,6 @@ test-list-host += math_util
test-list-host += motion_angle
test-list-host += motion_angle_tablet
test-list-host += motion_lid
-test-list-host += motion_sense_fifo
test-list-host += mutex
test-list-host += nvmem
test-list-host += pingpong
@@ -85,6 +84,7 @@ test-list-host += vboot
test-list-host += x25519
endif
+
aes-y=aes.o
base32-y=base32.o
battery_get_params_smart-y=battery_get_params_smart.o
@@ -118,7 +118,6 @@ math_util-y=math_util.o
motion_angle-y=motion_angle.o motion_angle_data_literals.o motion_common.o
motion_angle_tablet-y=motion_angle_tablet.o motion_angle_data_literals_tablet.o motion_common.o
motion_lid-y=motion_lid.o
-motion_sense_fifo-y=motion_sense_fifo.o
mutex-y=mutex.o
nvmem-y=nvmem.o nvmem_tpm2_mock.o
pingpong-y=pingpong.o
diff --git a/test/motion_sense_fifo.c b/test/motion_sense_fifo.c
deleted file mode 100644
index 84f52d614c..0000000000
--- a/test/motion_sense_fifo.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/* Copyright 2019 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.
- *
- * Test motion_sense_fifo.
- */
-
-#include "stdio.h"
-#include "motion_sense_fifo.h"
-#include "test_util.h"
-#include "util.h"
-#include "hwtimer.h"
-
-struct motion_sensor_t motion_sensors[] = {
- [BASE] = {},
- [LID] = {},
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-uint32_t mkbp_last_event_time;
-
-static struct ec_response_motion_sensor_data data[CONFIG_ACCEL_FIFO_SIZE];
-static uint16_t data_bytes_read;
-
-static int test_insert_async_event(void)
-{
- int read_count;
-
- motion_sense_fifo_insert_async_event(motion_sensors, ASYNC_EVENT_FLUSH);
- motion_sense_fifo_insert_async_event(motion_sensors + 1,
- ASYNC_EVENT_ODR);
-
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
- TEST_EQ(read_count, 2, "%d");
- TEST_EQ(data_bytes_read,
- 2 * sizeof(struct ec_response_motion_sensor_data), "%d");
-
- TEST_BITS_SET(data[0].flags, ASYNC_EVENT_FLUSH);
- TEST_BITS_CLEARED(data[0].flags, MOTIONSENSE_SENSOR_FLAG_ODR);
- TEST_EQ(data[0].sensor_num, 0, "%d");
-
- TEST_BITS_SET(data[1].flags, ASYNC_EVENT_ODR);
- TEST_BITS_CLEARED(data[1].flags, MOTIONSENSE_SENSOR_FLAG_FLUSH);
- TEST_EQ(data[1].sensor_num, 1, "%d");
-
- return EC_SUCCESS;
-}
-
-static int test_wake_up_needed(void)
-{
- data[0].flags = MOTIONSENSE_SENSOR_FLAG_WAKEUP;
-
- motion_sense_fifo_stage_data(data, motion_sensors, 0, 100);
- TEST_EQ(motion_sense_fifo_wake_up_needed, 0, "%d");
-
- motion_sense_fifo_commit_data();
- TEST_EQ(motion_sense_fifo_wake_up_needed, 1, "%d");
-
- return EC_SUCCESS;
-}
-
-static int test_wake_up_needed_overflow(void)
-{
- int i;
-
- data[0].flags = MOTIONSENSE_SENSOR_FLAG_WAKEUP;
- motion_sense_fifo_stage_data(data, motion_sensors, 0, 100);
-
- data[0].flags = 0;
- /*
- * Using CONFIG_ACCEL_FIFO_SIZE / 2 since 2 entries are inserted per
- * 'data':
- * - a timestamp
- * - the data
- */
- for (i = 0; i < (CONFIG_ACCEL_FIFO_SIZE / 2); i++)
- motion_sense_fifo_stage_data(data, motion_sensors, 0, 101 + i);
-
- TEST_EQ(motion_sense_fifo_wake_up_needed, 1, "%d");
- return EC_SUCCESS;
-}
-
-static int test_adding_timestamp(void)
-{
- int read_count;
-
- motion_sense_fifo_add_timestamp(100);
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
-
- TEST_EQ(read_count, 1, "%d");
- TEST_BITS_SET(data[0].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[0].timestamp, 100, "%u");
- return EC_SUCCESS;
-}
-
-static int test_stage_data_sets_xyz(void)
-{
- motion_sensors->oversampling_ratio = 1;
- motion_sensors->oversampling = 0;
- data->data[0] = 1;
- data->data[1] = 2;
- data->data[2] = 3;
- motion_sense_fifo_stage_data(data, motion_sensors, 3, 100);
-
- TEST_EQ(motion_sensors->xyz[0], 1, "%d");
- TEST_EQ(motion_sensors->xyz[1], 2, "%d");
- TEST_EQ(motion_sensors->xyz[2], 3, "%d");
-
- return EC_SUCCESS;
-}
-
-static int test_stage_data_removed_oversample(void)
-{
- int read_count;
-
- motion_sensors->oversampling_ratio = 2;
- motion_sensors->oversampling = 0;
- data->data[0] = 1;
- data->data[1] = 2;
- data->data[2] = 3;
- motion_sense_fifo_stage_data(data, motion_sensors, 3, 100);
-
- data->data[0] = 4;
- data->data[1] = 5;
- data->data[2] = 6;
- motion_sense_fifo_stage_data(data, motion_sensors, 3, 110);
- motion_sense_fifo_commit_data();
-
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
- TEST_EQ(read_count, 3, "%d");
- TEST_BITS_SET(data[0].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[0].timestamp, 100, "%u");
- TEST_BITS_CLEARED(data[1].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[1].data[0], 1, "%d");
- TEST_EQ(data[1].data[1], 2, "%d");
- TEST_EQ(data[1].data[2], 3, "%d");
- TEST_BITS_SET(data[2].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[2].timestamp, 110, "%u");
-
- return EC_SUCCESS;
-}
-
-static int test_stage_data_remove_all_oversampling(void)
-{
- int read_count;
-
- motion_sensors->oversampling_ratio = 0;
- motion_sensors->oversampling = 0;
- data->data[0] = 1;
- data->data[1] = 2;
- data->data[2] = 3;
- motion_sense_fifo_stage_data(data, motion_sensors, 3, 100);
-
- data->data[0] = 4;
- data->data[1] = 5;
- data->data[2] = 6;
- motion_sense_fifo_stage_data(data, motion_sensors, 3, 110);
- motion_sense_fifo_commit_data();
-
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
- TEST_EQ(read_count, 2, "%d");
- TEST_BITS_SET(data[0].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[0].timestamp, 100, "%u");
- TEST_BITS_SET(data[1].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[1].timestamp, 110, "%u");
-
- return EC_SUCCESS;
-}
-
-static int test_stage_data_evicts_data_with_timestamp(void)
-{
- int i, read_count;
-
- /* Fill the fifo */
- motion_sensors->oversampling_ratio = 1;
- for (i = 0; i < CONFIG_ACCEL_FIFO_SIZE / 2; i++)
- motion_sense_fifo_stage_data(data, motion_sensors,
- 3, i * 100);
-
- /* Add a single entry (should evict 2) */
- motion_sense_fifo_add_timestamp(CONFIG_ACCEL_FIFO_SIZE * 100);
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
- TEST_EQ(read_count, CONFIG_ACCEL_FIFO_SIZE - 1, "%d");
- TEST_BITS_SET(data->flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data->timestamp, 100, "%u");
- TEST_BITS_SET(data[CONFIG_ACCEL_FIFO_SIZE - 2].flags,
- MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[CONFIG_ACCEL_FIFO_SIZE - 2].timestamp,
- CONFIG_ACCEL_FIFO_SIZE * 100, "%u");
-
- return EC_SUCCESS;
-}
-
-static int test_add_data_no_spreading_when_different_sensors(void)
-{
- int read_count;
-
- motion_sensors[0].oversampling_ratio = 1;
- motion_sensors[1].oversampling_ratio = 1;
-
- motion_sense_fifo_stage_data(data, motion_sensors, 3, 100);
- motion_sense_fifo_stage_data(data, motion_sensors + 1, 3, 100);
- motion_sense_fifo_commit_data();
-
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
- TEST_EQ(read_count, 4, "%d");
- TEST_BITS_SET(data[0].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[0].timestamp, 100, "%u");
- TEST_BITS_SET(data[2].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[2].timestamp, 100, "%u");
-
- return EC_SUCCESS;
-}
-
-static int test_add_data_no_spreading_different_timestamps(void)
-{
- int read_count;
-
- motion_sensors[0].oversampling_ratio = 1;
-
- motion_sense_fifo_stage_data(data, motion_sensors, 3, 100);
- motion_sense_fifo_stage_data(data, motion_sensors, 3, 120);
- motion_sense_fifo_commit_data();
-
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
- TEST_EQ(read_count, 4, "%d");
- TEST_BITS_SET(data[0].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[0].timestamp, 100, "%u");
- TEST_BITS_SET(data[2].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[2].timestamp, 120, "%u");
-
- return EC_SUCCESS;
-}
-
-static int test_spread_data_in_window(void)
-{
- uint32_t now;
- int read_count;
-
- motion_sensors[0].oversampling_ratio = 1;
- motion_sensors[0].collection_rate = 20000; /* ns */
- now = __hw_clock_source_read();
-
- motion_sense_fifo_stage_data(data, motion_sensors, 3,
- now - 18000);
- motion_sense_fifo_stage_data(data, motion_sensors, 3,
- now - 18000);
- motion_sense_fifo_commit_data();
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
- TEST_EQ(read_count, 4, "%d");
- TEST_BITS_SET(data[0].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[0].timestamp, now - 18000, "%u");
- TEST_BITS_SET(data[2].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[2].timestamp, now, "%u");
-
- return EC_SUCCESS;
-}
-
-static int test_spread_data_by_collection_rate(void)
-{
- const uint32_t now = __hw_clock_source_read();
- int read_count;
-
- motion_sensors[0].oversampling_ratio = 1;
- motion_sensors[0].collection_rate = 20000; /* ns */
- motion_sense_fifo_stage_data(data, motion_sensors, 3,
- now - 20500);
- motion_sense_fifo_stage_data(data, motion_sensors, 3,
- now - 20500);
- motion_sense_fifo_commit_data();
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE,
- data, &data_bytes_read);
- TEST_EQ(read_count, 4, "%d");
- TEST_BITS_SET(data[0].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[0].timestamp, now - 20500, "%u");
- TEST_BITS_SET(data[2].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[2].timestamp, now - 500, "%u");
-
- return EC_SUCCESS;
-}
-
-void before_test(void)
-{
- motion_sense_fifo_commit_data();
- motion_sense_fifo_read(sizeof(data), CONFIG_ACCEL_FIFO_SIZE, &data,
- &data_bytes_read);
- motion_sense_fifo_wake_up_needed = 0;
- memset(data, 0, sizeof(data));
-}
-
-void run_test(void)
-{
- test_reset();
-
- RUN_TEST(test_insert_async_event);
- RUN_TEST(test_wake_up_needed);
- RUN_TEST(test_wake_up_needed_overflow);
- RUN_TEST(test_adding_timestamp);
- RUN_TEST(test_stage_data_sets_xyz);
- RUN_TEST(test_stage_data_removed_oversample);
- RUN_TEST(test_stage_data_remove_all_oversampling);
- RUN_TEST(test_stage_data_evicts_data_with_timestamp);
- RUN_TEST(test_add_data_no_spreading_when_different_sensors);
- RUN_TEST(test_add_data_no_spreading_different_timestamps);
- RUN_TEST(test_spread_data_in_window);
- RUN_TEST(test_spread_data_by_collection_rate);
-
- test_print_result();
-}
-
diff --git a/test/motion_sense_fifo.tasklist b/test/motion_sense_fifo.tasklist
deleted file mode 100644
index 0e3696c3f0..0000000000
--- a/test/motion_sense_fifo.tasklist
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TEST_TASK_LIST \
- TASK_TEST(MOTIONSENSE, motion_sense_task, NULL, TASK_STACK_SIZE)
diff --git a/test/test_config.h b/test/test_config.h
index 89c928f1f0..b83d834056 100644
--- a/test/test_config.h
+++ b/test/test_config.h
@@ -82,14 +82,8 @@
#define CONFIG_SHA256
#endif
-#ifdef TEST_MOTION_SENSE_FIFO
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES 10
-#endif
-
#if defined(TEST_MOTION_LID) || defined(TEST_MOTION_ANGLE) || \
- defined(TEST_MOTION_ANGLE_TABLET) || defined(TEST_MOTION_SENSE_FIFO)
+ defined(TEST_MOTION_ANGLE_TABLET)
enum sensor_id {
BASE,
LID,