aboutsummaryrefslogtreecommitdiffstats
path: root/util/flashrom_tester/src/tests.rs
diff options
context:
space:
mode:
authorPeter Marheine <pmarheine@chromium.org>2020-02-12 15:37:28 +1100
committerEdward O'Callaghan <quasisec@chromium.org>2021-02-11 00:13:04 +0000
commit32aa933b1da48b0730dd79fbb15d864643391072 (patch)
treedb07d4760fa59b59c5a5c0ba9989c24499cdc134 /util/flashrom_tester/src/tests.rs
parent4e31838eb1fabdf22cb1b0b6f4b63f126f8818a5 (diff)
downloadflashrom-32aa933b1da48b0730dd79fbb15d864643391072.tar.gz
flashrom-32aa933b1da48b0730dd79fbb15d864643391072.tar.bz2
flashrom-32aa933b1da48b0730dd79fbb15d864643391072.zip
CHROMIUM: avl_tool: more gracefully handle termination by SIGINT
Since interrupting the test process may be dangerous (leaving the flash in an inconsistent state), we'll catch SIGINT and print a warning the first time, also using it as a signal that we should stop at a convenient time. Any following SIGINT will be handled as normal (killing the process). BUG=b:143251344 TEST=Run tool and verify it exits after a test with a single ^C, exits immediately given two. BRANCH=None Original-Cq-Depend: chromium:2059548 Original-Change-Id: Ib8a7799cba6dbca57dc7f1d3c87521f132c21818 Original-Signed-off-by: Peter Marheine <pmarheine@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+/2050050 Original-Tested-by: Edward O'Callaghan <quasisec@chromium.org> Original-Reviewed-by: Edward O'Callaghan <quasisec@chromium.org> Change-Id: If43aea0580fcc7e698daad2ffe085a3c9da5bc41 Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/49915 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'util/flashrom_tester/src/tests.rs')
-rw-r--r--util/flashrom_tester/src/tests.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/util/flashrom_tester/src/tests.rs b/util/flashrom_tester/src/tests.rs
index dd756893..9ef98e5c 100644
--- a/util/flashrom_tester/src/tests.rs
+++ b/util/flashrom_tester/src/tests.rs
@@ -40,6 +40,7 @@ use flashrom::{FlashChip, Flashrom, FlashromCmd};
use std::collections::{HashMap, HashSet};
use std::fs::File;
use std::io::{BufRead, Write};
+use std::sync::atomic::AtomicBool;
const LAYOUT_FILE: &'static str = "/tmp/layout.file";
@@ -82,6 +83,7 @@ pub fn generic<'a, TN: Iterator<Item = &'a str>>(
print_layout: bool,
output_format: OutputFormat,
test_names: Option<TN>,
+ terminate_flag: Option<&AtomicBool>,
) -> Result<(), Box<dyn std::error::Error>> {
let p = path.to_string();
let cmd = FlashromCmd { path: p, fc };
@@ -142,7 +144,7 @@ pub fn generic<'a, TN: Iterator<Item = &'a str>>(
// ------------------------.
// Run all the tests and collate the findings:
- let results = tester::run_all_tests(fc, &cmd, tests);
+ let results = tester::run_all_tests(fc, &cmd, tests, terminate_flag);
// Any leftover filtered names were specified to be run but don't exist
for leftover in filter_names.iter().flatten() {