diff options
author | Scott Collyer <scollyer@google.com> | 2019-10-01 16:50:33 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-02 11:08:29 +0000 |
commit | 63f8741f4605b163c06a3629da890c12051c3d7f (patch) | |
tree | 2ebe99ac47f62e35bf7cc45045e479d957ec91ee /test | |
parent | 8989576dae8b5f45d2b591b5d76bb320a5ecffb1 (diff) | |
download | chrome-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.mk | 3 | ||||
-rw-r--r-- | test/motion_sense_fifo.c | 328 | ||||
-rw-r--r-- | test/motion_sense_fifo.tasklist | 10 | ||||
-rw-r--r-- | test/test_config.h | 8 |
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, |