diff options
author | Peter Marheine <pmarheine@chromium.org> | 2020-02-12 15:37:28 +1100 |
---|---|---|
committer | Edward O'Callaghan <quasisec@chromium.org> | 2021-02-11 00:13:04 +0000 |
commit | 32aa933b1da48b0730dd79fbb15d864643391072 (patch) | |
tree | db07d4760fa59b59c5a5c0ba9989c24499cdc134 /util/flashrom_tester/src/tests.rs | |
parent | 4e31838eb1fabdf22cb1b0b6f4b63f126f8818a5 (diff) | |
download | flashrom-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.rs | 4 |
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() { |