mirror of
https://github.com/nushell/nushell.git
synced 2025-08-16 17:51:42 +02:00
Fix up some warnings and move integration tests to correct dir
This commit is contained in:
@ -35,7 +35,7 @@ impl<T> MaybeOwned<'a, T> {
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn cli() -> Result<(), Box<Error>> {
|
||||
pub async fn cli() -> Result<(), Box<dyn Error>> {
|
||||
let mut context = Context::basic()?;
|
||||
|
||||
{
|
||||
|
@ -12,7 +12,7 @@ pub struct Context {
|
||||
}
|
||||
|
||||
impl Context {
|
||||
crate fn basic() -> Result<Context, Box<Error>> {
|
||||
crate fn basic() -> Result<Context, Box<dyn Error>> {
|
||||
Ok(Context {
|
||||
commands: indexmap::IndexMap::new(),
|
||||
host: Arc::new(Mutex::new(crate::env::host::BasicHost)),
|
||||
|
@ -17,13 +17,12 @@ mod parser;
|
||||
mod prelude;
|
||||
mod shell;
|
||||
mod stream;
|
||||
mod tests;
|
||||
|
||||
use clap::{App, Arg};
|
||||
use log::LevelFilter;
|
||||
use std::error::Error;
|
||||
|
||||
fn main() -> Result<(), Box<Error>> {
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let matches = App::new("nu shell")
|
||||
.version("0.5")
|
||||
.arg(
|
||||
|
86
src/tests.rs
86
src/tests.rs
@ -1,86 +0,0 @@
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use std::path::PathBuf;
|
||||
use std::io::prelude::*;
|
||||
use std::process::{Command, Stdio};
|
||||
use std::error::Error;
|
||||
|
||||
fn test_helper(test_name: &str) {
|
||||
let mut baseline_path = PathBuf::new();
|
||||
baseline_path.push("tests");
|
||||
baseline_path.push(test_name);
|
||||
baseline_path.set_extension("out");
|
||||
|
||||
let mut txt_path = PathBuf::new();
|
||||
txt_path.push("tests");
|
||||
txt_path.push(test_name);
|
||||
txt_path.set_extension("txt");
|
||||
|
||||
let executable = {
|
||||
let mut buf = PathBuf::new();
|
||||
buf.push("target");
|
||||
buf.push("debug");
|
||||
buf.push("nu");
|
||||
buf
|
||||
};
|
||||
|
||||
let process = match Command::new(executable)
|
||||
.stdin(Stdio::piped())
|
||||
.stdout(Stdio::piped())
|
||||
.spawn() {
|
||||
|
||||
Ok(process) => process,
|
||||
Err(why) => panic!("Can't run test {}", why.description())
|
||||
};
|
||||
|
||||
let baseline_out = std::fs::read_to_string(baseline_path).unwrap();
|
||||
let baseline_out = baseline_out.replace("\r\n", "\n");
|
||||
let input_commands = std::fs::read_to_string(txt_path).unwrap();
|
||||
|
||||
match process.stdin.unwrap().write_all(input_commands.as_bytes()) {
|
||||
Err(why) => panic!("couldn't write to wc stdin: {}",
|
||||
why.description()),
|
||||
Ok(_) => {},
|
||||
}
|
||||
|
||||
let mut s = String::new();
|
||||
match process.stdout.unwrap().read_to_string(&mut s) {
|
||||
Err(why) => panic!("couldn't read stdout: {}",
|
||||
why.description()),
|
||||
Ok(_) => {
|
||||
let s = s.replace("\r\n", "\n");
|
||||
assert_eq!(s, baseline_out);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn open_toml() {
|
||||
test_helper("open_toml");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn open_json() {
|
||||
test_helper("open_json");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn json_roundtrip() {
|
||||
test_helper("json_roundtrip");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn toml_roundtrip() {
|
||||
test_helper("toml_roundtrip");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sort_by() {
|
||||
test_helper("sort_by");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn split() {
|
||||
test_helper("split");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user