mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-02 19:37:14 +08:00
Remove principal_parser() from the last of the tests
This commit is contained in:
parent
fd84dc4cdd
commit
dbf54f49ff
|
@ -1,5 +1,6 @@
|
||||||
use crate::ast::{self, Ast, List, Node, Traversal};
|
use crate::ast::{self, Ast, List, Node, Traversal};
|
||||||
use crate::common::ScopeGuard;
|
use crate::common::ScopeGuard;
|
||||||
|
use crate::env::EnvStack;
|
||||||
use crate::expand::ExpandFlags;
|
use crate::expand::ExpandFlags;
|
||||||
use crate::io::{IoBufferfill, IoChain};
|
use crate::io::{IoBufferfill, IoChain};
|
||||||
use crate::parse_constants::{
|
use crate::parse_constants::{
|
||||||
|
@ -14,6 +15,7 @@ use crate::threads::iothread_perform;
|
||||||
use crate::wchar::prelude::*;
|
use crate::wchar::prelude::*;
|
||||||
use crate::wcstringutil::join_strings;
|
use crate::wcstringutil::join_strings;
|
||||||
use libc::SIGINT;
|
use libc::SIGINT;
|
||||||
|
use std::rc::Rc;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -685,7 +687,7 @@ fn test_expand_argument_list() {
|
||||||
assert_eq!(comps, &[L!("alpha"), L!("beta gamma"), L!("delta"),]);
|
assert_eq!(comps, &[L!("alpha"), L!("beta gamma"), L!("delta"),]);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_1_cancellation(src: &wstr) {
|
fn test_1_cancellation(parser: &Parser, src: &wstr) {
|
||||||
let filler = IoBufferfill::create().unwrap();
|
let filler = IoBufferfill::create().unwrap();
|
||||||
let delay = Duration::from_millis(100);
|
let delay = Duration::from_millis(100);
|
||||||
let thread = unsafe { libc::pthread_self() } as usize;
|
let thread = unsafe { libc::pthread_self() } as usize;
|
||||||
|
@ -698,7 +700,7 @@ fn test_1_cancellation(src: &wstr) {
|
||||||
});
|
});
|
||||||
let mut io = IoChain::new();
|
let mut io = IoChain::new();
|
||||||
io.push(filler.clone());
|
io.push(filler.clone());
|
||||||
let res = Parser::principal_parser().eval(src, &io);
|
let res = parser.eval(src, &io);
|
||||||
let buffer = IoBufferfill::finish(filler);
|
let buffer = IoBufferfill::finish(filler);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
buffer.len(),
|
buffer.len(),
|
||||||
|
@ -714,7 +716,8 @@ fn test_1_cancellation(src: &wstr) {
|
||||||
#[serial]
|
#[serial]
|
||||||
fn test_cancellation() {
|
fn test_cancellation() {
|
||||||
let _cleanup = test_init();
|
let _cleanup = test_init();
|
||||||
reader_push(Parser::principal_parser(), L!(""), ReaderConfig::default());
|
let parser = Parser::new(Rc::new(EnvStack::new()), true);
|
||||||
|
reader_push(&parser, L!(""), ReaderConfig::default());
|
||||||
let _pop = ScopeGuard::new((), |()| reader_pop());
|
let _pop = ScopeGuard::new((), |()| reader_pop());
|
||||||
|
|
||||||
println!("Testing Ctrl-C cancellation. If this hangs, that's a bug!");
|
println!("Testing Ctrl-C cancellation. If this hangs, that's a bug!");
|
||||||
|
@ -727,15 +730,16 @@ fn test_cancellation() {
|
||||||
|
|
||||||
// Here the command substitution is an infinite loop. echo never even gets its argument, so when
|
// Here the command substitution is an infinite loop. echo never even gets its argument, so when
|
||||||
// we cancel we expect no output.
|
// we cancel we expect no output.
|
||||||
test_1_cancellation(L!("echo (while true ; echo blah ; end)"));
|
test_1_cancellation(&parser, L!("echo (while true ; echo blah ; end)"));
|
||||||
|
|
||||||
// Nasty infinite loop that doesn't actually execute anything.
|
// Nasty infinite loop that doesn't actually execute anything.
|
||||||
test_1_cancellation(L!(
|
test_1_cancellation(
|
||||||
"echo (while true ; end) (while true ; end) (while true ; end)"
|
&parser,
|
||||||
));
|
L!("echo (while true ; end) (while true ; end) (while true ; end)"),
|
||||||
test_1_cancellation(L!("while true ; end"));
|
);
|
||||||
test_1_cancellation(L!("while true ; echo nothing > /dev/null; end"));
|
test_1_cancellation(&parser, L!("while true ; end"));
|
||||||
test_1_cancellation(L!("for i in (while true ; end) ; end"));
|
test_1_cancellation(&parser, L!("while true ; echo nothing > /dev/null; end"));
|
||||||
|
test_1_cancellation(&parser, L!("for i in (while true ; end) ; end"));
|
||||||
|
|
||||||
signal_reset_handlers();
|
signal_reset_handlers();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user