mirror of
https://github.com/ouch-org/ouch.git
synced 2025-06-06 11:35:45 +00:00
Replace shell commands with File::create
This commit is contained in:
parent
5954e98427
commit
63ad6b419c
10
tests/ui.rs
10
tests/ui.rs
@ -11,7 +11,7 @@ use std::{ffi::OsStr, io, path::Path, process::Output};
|
|||||||
use insta::assert_display_snapshot as ui;
|
use insta::assert_display_snapshot as ui;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
|
|
||||||
use crate::utils::run_in;
|
use crate::utils::create_files_in;
|
||||||
|
|
||||||
fn testdir() -> io::Result<(tempfile::TempDir, &'static Path)> {
|
fn testdir() -> io::Result<(tempfile::TempDir, &'static Path)> {
|
||||||
let dir = tempfile::tempdir()?;
|
let dir = tempfile::tempdir()?;
|
||||||
@ -54,7 +54,7 @@ fn ui_test_err_compress_missing_extension() {
|
|||||||
let (_dropper, dir) = testdir().unwrap();
|
let (_dropper, dir) = testdir().unwrap();
|
||||||
|
|
||||||
// prepare
|
// prepare
|
||||||
run_in(dir, "touch", "input").unwrap();
|
create_files_in(dir, &["input"]);
|
||||||
|
|
||||||
ui!(run_ouch("ouch compress input output", dir));
|
ui!(run_ouch("ouch compress input output", dir));
|
||||||
}
|
}
|
||||||
@ -63,7 +63,7 @@ fn ui_test_err_compress_missing_extension() {
|
|||||||
fn ui_test_err_decompress_missing_extension() {
|
fn ui_test_err_decompress_missing_extension() {
|
||||||
let (_dropper, dir) = testdir().unwrap();
|
let (_dropper, dir) = testdir().unwrap();
|
||||||
|
|
||||||
run_in(dir, "touch", "a b.unknown").unwrap();
|
create_files_in(dir, &["a", "b.unknown"]);
|
||||||
|
|
||||||
let name = {
|
let name = {
|
||||||
let suffix = if cfg!(feature = "unrar") {
|
let suffix = if cfg!(feature = "unrar") {
|
||||||
@ -92,7 +92,7 @@ fn ui_test_ok_compress() {
|
|||||||
let (_dropper, dir) = testdir().unwrap();
|
let (_dropper, dir) = testdir().unwrap();
|
||||||
|
|
||||||
// prepare
|
// prepare
|
||||||
run_in(dir, "touch", "input").unwrap();
|
create_files_in(dir, &["input"]);
|
||||||
|
|
||||||
ui!(run_ouch("ouch compress input output.zip", dir));
|
ui!(run_ouch("ouch compress input output.zip", dir));
|
||||||
ui!(run_ouch("ouch compress input output.gz", dir));
|
ui!(run_ouch("ouch compress input output.gz", dir));
|
||||||
@ -103,7 +103,7 @@ fn ui_test_ok_decompress() {
|
|||||||
let (_dropper, dir) = testdir().unwrap();
|
let (_dropper, dir) = testdir().unwrap();
|
||||||
|
|
||||||
// prepare
|
// prepare
|
||||||
run_in(dir, "touch", "input").unwrap();
|
create_files_in(dir, &["input"]);
|
||||||
run_ouch("ouch compress input output.zst", dir);
|
run_ouch("ouch compress input output.zst", dir);
|
||||||
|
|
||||||
ui!(run_ouch("ouch decompress output.zst", dir));
|
ui!(run_ouch("ouch decompress output.zst", dir));
|
||||||
|
@ -3,11 +3,8 @@
|
|||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
env,
|
env,
|
||||||
ffi::OsStr,
|
|
||||||
io,
|
|
||||||
io::Write,
|
io::Write,
|
||||||
path::{Path, PathBuf},
|
path::{Path, PathBuf},
|
||||||
process::Output,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use assert_cmd::Command;
|
use assert_cmd::Command;
|
||||||
@ -38,15 +35,19 @@ pub fn cargo_bin() -> Command {
|
|||||||
.unwrap_or_else(|| Command::cargo_bin("ouch").expect("Failed to find ouch executable"))
|
.unwrap_or_else(|| Command::cargo_bin("ouch").expect("Failed to find ouch executable"))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Run a command inside of another folder.
|
/// Creates files in the specified directory.
|
||||||
///
|
///
|
||||||
/// example: `run_in("/tmp", "touch", "a b c")`
|
/// ## Example
|
||||||
pub fn run_in(folder: impl AsRef<Path>, bin: impl AsRef<OsStr>, args: &str) -> io::Result<Output> {
|
///
|
||||||
Command::new(bin)
|
/// ```no_run
|
||||||
.args(args.split_whitespace())
|
/// let (_dropper, dir) = testdir().unwrap();
|
||||||
.current_dir(folder)
|
/// create_files_in(dir, &["file1.txt", "file2.txt"]);
|
||||||
.output()
|
/// ```
|
||||||
}
|
pub fn create_files_in(dir: &Path, files: &[&str]) {
|
||||||
|
for f in files {
|
||||||
|
std::fs::File::create(dir.join(f)).unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// write random content to a file
|
// write random content to a file
|
||||||
pub fn write_random_content(file: &mut impl Write, rng: &mut impl RngCore) {
|
pub fn write_random_content(file: &mut impl Write, rng: &mut impl RngCore) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user