summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2020-05-29 15:37:29 -0700
committerCommit Bot <commit-bot@chromium.org>2020-06-16 02:11:59 +0000
commitac4562e9be368bca4ba00622a2ca2b2378e0decf (patch)
tree72b6a94753bb5348ea225262686c6b4a2212f950
parent64ec4195a99fc396ac5be5e4b93581e150b14ddd (diff)
downloadchrome-ec-ac4562e9be368bca4ba00622a2ca2b2378e0decf.tar.gz
test: Use arguments to determine which rollback region to test
BRANCH=none BUG=b:155229277, b:151105339 TEST=With dragonclaw v0.2 connected to Segger J-Trace and servo micro: ./test/run_device_tests.py -t rollback_region0 rollback_region1 => PASS Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: Ibb0512d9ea3fa84334b5ba080243f6eef7031c4d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2231724 Commit-Queue: Craig Hesling <hesling@chromium.org> Reviewed-by: Craig Hesling <hesling@chromium.org>
-rw-r--r--test/rollback.c32
-rwxr-xr-xtest/run_device_tests.py11
2 files changed, 26 insertions, 17 deletions
diff --git a/test/rollback.c b/test/rollback.c
index 77a3bff1d6..50c65e876d 100644
--- a/test/rollback.c
+++ b/test/rollback.c
@@ -6,6 +6,7 @@
#include <stdbool.h>
#include "flash.h"
#include "mpu.h"
+#include "string.h"
#include "test_util.h"
struct rollback_info {
@@ -93,32 +94,33 @@ test_static int _test_lock_rollback(const struct rollback_info *info,
test_static int test_lock_rollback_region_0(void)
{
+ /* This call should never return due to panic. */
return _test_lock_rollback(&rollback_info, 0);
}
test_static int test_lock_rollback_region_1(void)
{
+ /* This call should never return due to panic. */
return _test_lock_rollback(&rollback_info, 1);
}
-test_static int test_lock_rollback(void)
+void run_test(int argc, char **argv)
{
- /* This call should never return due to panic.
- * TODO(b/156112448): For now you have to manually test each region
- * by itself.
- */
- test_lock_rollback_region_0();
+ if (argc < 2) {
+ ccprintf("usage: runtest [region0|region1]\n");
+ return;
+ }
-#if 0
- test_lock_rollback_region_1();
-#endif
+ ccprintf("Running rollback test\n");
- return EC_ERROR_UNKNOWN;
-}
+ /*
+ * TODO(b/156112448): For now you have to run the test separately for
+ * each region.
+ */
+ if (strncmp(argv[1], "region0", 7) == 0)
+ RUN_TEST(test_lock_rollback_region_0);
+ else if (strncmp(argv[1], "region1", 7) == 0)
+ RUN_TEST(test_lock_rollback_region_1);
-void run_test(int argc, char **argv)
-{
- ccprintf("Running rollback test\n");
- RUN_TEST(test_lock_rollback);
test_print_result();
}
diff --git a/test/run_device_tests.py b/test/run_device_tests.py
index be5e3b2395..3d9b71ea58 100755
--- a/test/run_device_tests.py
+++ b/test/run_device_tests.py
@@ -36,6 +36,8 @@ SINGLE_CHECK_FAILED_REGEX = re.compile(r'.*failed:.*')
DATA_ACCESS_VIOLATION_8020000_REGEX = re.compile(
r'Data access violation, mfar = 8020000\r\n')
+DATA_ACCESS_VIOLATION_8040000_REGEX = re.compile(
+ r'Data access violation, mfar = 8040000\r\n')
DATA_ACCESS_VIOLATION_20000000_REGEX = re.compile(
r'Data access violation, mfar = 20000000\r\n')
@@ -98,9 +100,14 @@ ALL_TESTS = {
TestConfig(name='mutex'),
'pingpong':
TestConfig(name='pingpong'),
- 'rollback':
+ 'rollback_region0':
TestConfig(name='rollback', finish_regexes=[
- DATA_ACCESS_VIOLATION_8020000_REGEX]),
+ DATA_ACCESS_VIOLATION_8020000_REGEX],
+ test_args=['region0']),
+ 'rollback_region1':
+ TestConfig(name='rollback', finish_regexes=[
+ DATA_ACCESS_VIOLATION_8040000_REGEX],
+ test_args=['region1']),
'rollback_entropy':
TestConfig(name='rollback_entropy', image_to_use=ImageType.RO),
'rtc':