Skip to content

Commit 1f7db17

Browse files
committed
[opentitanlib] remove impossible exit statuses from UartConsole
With stdin handling removed, these exit statuses are not longer possible. Signed-off-by: Gary Guo <[email protected]>
1 parent f00747a commit 1f7db17

File tree

9 files changed

+23
-22
lines changed

9 files changed

+23
-22
lines changed

sw/host/opentitanlib/src/test_utils/rpc.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright lowRISC contributors (OpenTitan project).
22
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
33
// SPDX-License-Identifier: Apache-2.0
4-
use anyhow::{Result, anyhow};
4+
use anyhow::Result;
55
use crc::{CRC_32_ISO_HDLC, Crc};
66
use regex::Regex;
77
use serde::Serialize;
@@ -100,7 +100,6 @@ where
100100
Err(err.into())
101101
}
102102
ExitStatus::Timeout => Err(ConsoleError::GenericError("Timed Out".into()).into()),
103-
_ => Err(anyhow!("Impossible result: {:?}", result)),
104103
}
105104
}
106105
}

sw/host/opentitanlib/src/uart/console.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ pub struct UartConsole {
2323

2424
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
2525
pub enum ExitStatus {
26-
None,
27-
CtrlC,
2826
Timeout,
2927
ExitSuccess,
3028
ExitFailure,

sw/host/opentitantool/src/command/console.rs

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ const CTRL_B: u8 = 2;
5959
const CTRL_C: u8 = 3;
6060

6161
/// Takes input from an input stream and send it to a console device. Breaks are handled.
62-
async fn process_input<T, R: AsyncRead + Unpin>(device: &T, stdin: &mut R) -> Result<ExitStatus>
62+
async fn process_input<T, R: AsyncRead + Unpin>(device: &T, stdin: &mut R) -> Result<()>
6363
where
6464
T: ConsoleDevice + ?Sized,
6565
{
@@ -69,7 +69,7 @@ where
6969
let len = stdin.read(&mut buf).await?;
7070
if len == 1 {
7171
if buf[0] == CTRL_C {
72-
return Ok(ExitStatus::CtrlC);
72+
return Ok(());
7373
}
7474
if buf[0] == CTRL_B {
7575
break_en = !break_en;
@@ -147,10 +147,10 @@ impl CommandDispatch for Console {
147147

148148
let rx = console.interact_async(&*uart, Some(&mut stdout));
149149

150-
tokio::select! {
151-
v = tx => v,
152-
v = rx => v,
153-
}
150+
Result::<_>::Ok(tokio::select! {
151+
v = tx => Err(v?),
152+
v = rx => Ok(v?),
153+
})
154154
})
155155
})??
156156
};
@@ -159,8 +159,8 @@ impl CommandDispatch for Console {
159159
}
160160

161161
match status {
162-
ExitStatus::None | ExitStatus::CtrlC => Ok(None),
163-
ExitStatus::Timeout => {
162+
Err(()) => Ok(None),
163+
Ok(ExitStatus::Timeout) => {
164164
if self.exit_success.is_some() {
165165
// If there was a console exit success condition, then a timeout
166166
// represents an error.
@@ -171,17 +171,27 @@ impl CommandDispatch for Console {
171171
Ok(None)
172172
}
173173
}
174-
ExitStatus::ExitSuccess => {
174+
Ok(ExitStatus::ExitSuccess) => {
175175
log::info!(
176176
"ExitSuccess({:?})",
177-
console.captures(status).unwrap().get(0).unwrap().as_str()
177+
console
178+
.captures(ExitStatus::ExitSuccess)
179+
.unwrap()
180+
.get(0)
181+
.unwrap()
182+
.as_str()
178183
);
179184
Ok(None)
180185
}
181-
ExitStatus::ExitFailure => {
186+
Ok(ExitStatus::ExitFailure) => {
182187
log::info!(
183188
"ExitFailure({:?})",
184-
console.captures(status).unwrap().get(0).unwrap().as_str()
189+
console
190+
.captures(ExitStatus::ExitFailure)
191+
.unwrap()
192+
.get(0)
193+
.unwrap()
194+
.as_str()
185195
);
186196
Err(anyhow!("Matched exit_failure expression"))
187197
}

sw/host/tests/chip/power_virus/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ fn power_virus_systemtest(opts: &Opts, transport: &TransportWrapper) -> Result<(
3434
let mut stdout = std::io::stdout();
3535
let result = console.interact(&*uart, Some(&mut stdout))?;
3636
match result {
37-
ExitStatus::None | ExitStatus::CtrlC => Ok(()),
3837
ExitStatus::Timeout => Err(anyhow!("Console timeout exceeded")),
3938
ExitStatus::ExitSuccess => {
4039
log::info!(

sw/host/tests/chip/rv_core_ibex_epmp/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ fn ibex_epmp_test(opts: &Opts, transport: &TransportWrapper) -> Result<()> {
7272
let mut stdout = std::io::stdout();
7373
let result = console.interact(&*uart, Some(&mut stdout))?;
7474
match result {
75-
ExitStatus::None | ExitStatus::CtrlC => Ok(()),
7675
ExitStatus::Timeout => Err(anyhow!("Console timeout exceeded")),
7776
ExitStatus::ExitSuccess => {
7877
log::info!(

sw/host/tests/chip/spi_device_ottf_console/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ fn spi_device_console_test(opts: &Opts, transport: &TransportWrapper) -> Result<
9595

9696
let result = console.interact(&spi_console_device, Some(&mut stdout))?;
9797
match result {
98-
ExitStatus::None | ExitStatus::CtrlC => Ok(()),
9998
ExitStatus::Timeout => Err(anyhow!("Console timeout exceeded")),
10099
ExitStatus::ExitSuccess => {
101100
log::info!(

sw/host/tests/manuf/individualize_sw_cfg_functest/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ fn individualize_sw_cfg(opts: &Opts, transport: &TransportWrapper) -> Result<()>
6363
let mut stdout = std::io::stdout();
6464
let result = console.interact(&*uart, Some(&mut stdout))?;
6565
match result {
66-
ExitStatus::None | ExitStatus::CtrlC => Ok(()),
6766
ExitStatus::Timeout => Err(anyhow!("Console timeout exceeded")),
6867
ExitStatus::ExitSuccess => {
6968
log::info!(

sw/host/tests/manuf/manuf_cp_ast_test_execution/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ fn manuf_cp_ast_text_execution_write_otp(opts: &Opts, transport: &TransportWrapp
9797
let mut stdout = std::io::stdout();
9898
let result = console.interact(&*uart, Some(&mut stdout))?;
9999
match result {
100-
ExitStatus::None | ExitStatus::CtrlC => Ok(()),
101100
ExitStatus::Timeout => Err(anyhow!("Console timeout exceeded")),
102101
ExitStatus::ExitSuccess => {
103102
log::info!(

sw/host/tests/manuf/manuf_cp_device_info_flash_wr/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ fn manuf_cp_device_info_flash_wr(opts: &Opts, transport: &TransportWrapper) -> R
113113
let mut stdout = std::io::stdout();
114114
let result = console.interact(&*uart, Some(&mut stdout))?;
115115
match result {
116-
ExitStatus::None | ExitStatus::CtrlC => Ok(()),
117116
ExitStatus::Timeout => Err(anyhow!("Console timeout exceeded")),
118117
ExitStatus::ExitSuccess => {
119118
log::info!(

0 commit comments

Comments
 (0)