Skip to content

Commit

Permalink
Test List::execute
Browse files Browse the repository at this point in the history
  • Loading branch information
magicant committed Aug 24, 2021
1 parent 03fe0a2 commit 35742dc
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions yash-semantics/src/command_impl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,32 @@ impl Command for syntax::List {
Ok(())
}
}

#[cfg(test)]
mod tests {
use super::*;
use crate::tests::return_builtin;
use futures_executor::block_on;
use yash_env::exec::Divert;
use yash_env::exec::ExitStatus;

#[test]
fn list_execute_no_divert() {
let mut env = Env::new_virtual();
env.builtins.insert("return", return_builtin());
let list: syntax::List = "return -n 1; return -n 2; return -n 4".parse().unwrap();
let result = block_on(list.execute(&mut env));
assert_eq!(result, Ok(()));
assert_eq!(env.exit_status, ExitStatus(4));
}

#[test]
fn list_execute_divert() {
let mut env = Env::new_virtual();
env.builtins.insert("return", return_builtin());
let list: syntax::List = "return -n 1; return 2; return -n 4".parse().unwrap();
let result = block_on(list.execute(&mut env));
assert_eq!(result, Err(Divert::Return));
assert_eq!(env.exit_status, ExitStatus(2));
}
}

0 comments on commit 35742dc

Please sign in to comment.