aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven-Hendrik Haase <svenstaro@gmail.com>2025-02-06 03:30:28 +0000
committerSven-Hendrik Haase <svenstaro@gmail.com>2025-02-06 03:30:28 +0000
commitf0eb61436e62d0d0d755ac8280bf97b4b52d4e0b (patch)
treeb6a27e61b6a0084b4944613c61d7392ccca55bbb
parentMake clippy happy (diff)
downloadminiserve-f0eb61436e62d0d0d755ac8280bf97b4b52d4e0b.tar.gz
miniserve-f0eb61436e62d0d0d755ac8280bf97b4b52d4e0b.zip
Get rid of server_no_stderr
We'll now always just pipe the contents of the child to the parent.
-rw-r--r--tests/auth.rs8
-rw-r--r--tests/auth_file.rs4
-rw-r--r--tests/fixtures/mod.rs30
-rw-r--r--tests/serve_request.rs26
-rw-r--r--tests/upload_files.rs8
-rw-r--r--tests/webdav.rs6
6 files changed, 28 insertions, 54 deletions
diff --git a/tests/auth.rs b/tests/auth.rs
index 6c5a6ad..545bcbf 100644
--- a/tests/auth.rs
+++ b/tests/auth.rs
@@ -5,7 +5,7 @@ use select::{document::Document, predicate::Text};
mod fixtures;
-use crate::fixtures::{server, server_no_stderr, Error, FILES};
+use crate::fixtures::{server, Error, FILES};
#[rstest(
cli_auth_arg, client_username, client_password,
@@ -75,7 +75,7 @@ fn auth_rejects(
client_username: &str,
client_password: &str,
) -> Result<(), Error> {
- let server = server_no_stderr(&["-a", cli_auth_arg]);
+ let server = server(&["-a", cli_auth_arg]);
let client = Client::new();
let status = client
.get(server.url())
@@ -138,7 +138,7 @@ fn auth_multiple_accounts_pass(username: &str, password: &str) -> Result<(), Err
#[rstest]
fn auth_multiple_accounts_wrong_username() -> Result<(), Error> {
- let server = server_no_stderr(ACCOUNTS);
+ let server = server(ACCOUNTS);
let client = Client::new();
let status = client
@@ -163,7 +163,7 @@ fn auth_multiple_accounts_wrong_username() -> Result<(), Error> {
case("usr5", "pwd0")
)]
fn auth_multiple_accounts_wrong_password(username: &str, password: &str) -> Result<(), Error> {
- let server = server_no_stderr(ACCOUNTS);
+ let server = server(ACCOUNTS);
let client = Client::new();
let status = client
diff --git a/tests/auth_file.rs b/tests/auth_file.rs
index 10a94ed..eb40d2c 100644
--- a/tests/auth_file.rs
+++ b/tests/auth_file.rs
@@ -4,7 +4,7 @@ use select::{document::Document, predicate::Text};
mod fixtures;
-use crate::fixtures::{server, server_no_stderr, Error, FILES};
+use crate::fixtures::{server, Error, FILES};
#[rstest(
cli_auth_file_arg,
@@ -51,7 +51,7 @@ fn auth_file_rejects(
client_username: &str,
client_password: &str,
) -> Result<(), Error> {
- let server = server_no_stderr(&["--auth-file", cli_auth_file_arg]);
+ let server = server(&["--auth-file", cli_auth_file_arg]);
let client = Client::new();
let status = client
.get(server.url())
diff --git a/tests/fixtures/mod.rs b/tests/fixtures/mod.rs
index a96a5b7..f95d4f6 100644
--- a/tests/fixtures/mod.rs
+++ b/tests/fixtures/mod.rs
@@ -121,34 +121,8 @@ where
.arg("-p")
.arg(port.to_string())
.args(args.clone())
- .stdout(Stdio::null())
- .spawn()
- .expect("Couldn't run test binary");
- let is_tls = args
- .into_iter()
- .any(|x| x.as_ref().to_str().unwrap().contains("tls"));
-
- wait_for_port(port);
- TestServer::new(port, tmpdir, child, is_tls)
-}
-
-/// Same as `server()` but ignore stderr
-#[fixture]
-pub fn server_no_stderr<I>(#[default(&[] as &[&str])] args: I) -> TestServer
-where
- I: IntoIterator + Clone,
- I::Item: AsRef<std::ffi::OsStr>,
-{
- let port = port();
- let tmpdir = tmpdir();
- let child = Command::cargo_bin("miniserve")
- .expect("Couldn't find test binary")
- .arg(tmpdir.path())
- .arg("-p")
- .arg(port.to_string())
- .args(args.clone())
- .stdout(Stdio::null())
- .stderr(Stdio::null())
+ .stdout(Stdio::piped())
+ .stderr(Stdio::piped())
.spawn()
.expect("Couldn't run test binary");
let is_tls = args
diff --git a/tests/serve_request.rs b/tests/serve_request.rs
index 3f8e27a..a53abf9 100644
--- a/tests/serve_request.rs
+++ b/tests/serve_request.rs
@@ -13,8 +13,8 @@ use select::{document::Document, node::Node, predicate::Attr};
mod fixtures;
use crate::fixtures::{
- port, server, server_no_stderr, tmpdir, Error, TestServer, DIRECTORIES, DIRECTORY_SYMLINK,
- FILES, FILE_SYMLINK, HIDDEN_DIRECTORIES, HIDDEN_FILES,
+ port, server, tmpdir, Error, TestServer, DIRECTORIES, DIRECTORY_SYMLINK, FILES, FILE_SYMLINK,
+ HIDDEN_DIRECTORIES, HIDDEN_FILES,
};
#[rstest]
@@ -229,8 +229,8 @@ fn serves_requests_custom_index_notice(tmpdir: TempDir, port: u16) -> Result<(),
}
#[rstest]
-#[case(server_no_stderr(&["--index", FILES[0]]))]
-#[case(server_no_stderr(&["--index", "does-not-exist.html"]))]
+#[case(server(&["--index", FILES[0]]))]
+#[case(server(&["--index", "does-not-exist.html"]))]
fn index_fallback_to_listing(#[case] server: TestServer) -> Result<(), Error> {
// If index file is not found, show directory listing instead both cases should return `Ok`
reqwest::blocking::get(server.url())?.error_for_status()?;
@@ -239,9 +239,9 @@ fn index_fallback_to_listing(#[case] server: TestServer) -> Result<(), Error> {
}
#[rstest]
-#[case(server_no_stderr(&["--spa", "--index", FILES[0]]), "/")]
-#[case(server_no_stderr(&["--spa", "--index", FILES[0]]), "/spa-route")]
-#[case(server_no_stderr(&["--index", FILES[0]]), "/")]
+#[case(server(&["--spa", "--index", FILES[0]]), "/")]
+#[case(server(&["--spa", "--index", FILES[0]]), "/spa-route")]
+#[case(server(&["--index", FILES[0]]), "/")]
fn serve_index_instead_of_404_in_spa_mode(
#[case] server: TestServer,
#[case] url: &str,
@@ -257,9 +257,9 @@ fn serve_index_instead_of_404_in_spa_mode(
}
#[rstest]
-#[case(server_no_stderr(&["--pretty-urls", "--index", FILES[1]]), "/")]
-#[case(server_no_stderr(&["--pretty-urls", "--index", FILES[1]]), "test.html")]
-#[case(server_no_stderr(&["--pretty-urls", "--index", FILES[1]]), "test")]
+#[case(server(&["--pretty-urls", "--index", FILES[1]]), "/")]
+#[case(server(&["--pretty-urls", "--index", FILES[1]]), "test.html")]
+#[case(server(&["--pretty-urls", "--index", FILES[1]]), "test")]
fn serve_file_instead_of_404_in_pretty_urls_mode(
#[case] server: TestServer,
#[case] url: &str,
@@ -290,9 +290,9 @@ fn serves_requests_with_route_prefix(#[case] server: TestServer) -> Result<(), E
}
#[rstest]
-#[case(server_no_stderr(&[] as &[&str]), "/[a-f0-9]+")]
-#[case(server_no_stderr(&["--random-route"]), "/[a-f0-9]+")]
-#[case(server_no_stderr(&["--route-prefix", "foobar"]), "/foobar/[a-f0-9]+")]
+#[case(server(&[] as &[&str]), "/[a-f0-9]+")]
+#[case(server(&["--random-route"]), "/[a-f0-9]+")]
+#[case(server(&["--route-prefix", "foobar"]), "/foobar/[a-f0-9]+")]
fn serves_requests_static_file_check(
#[case] server: TestServer,
#[case] static_file_pattern: String,
diff --git a/tests/upload_files.rs b/tests/upload_files.rs
index 72548e4..5fdf2cf 100644
--- a/tests/upload_files.rs
+++ b/tests/upload_files.rs
@@ -9,7 +9,7 @@ use select::predicate::{Attr, Text};
mod fixtures;
-use crate::fixtures::{server, server_no_stderr, tmpdir, Error, TestServer};
+use crate::fixtures::{server, tmpdir, Error, TestServer};
#[rstest]
fn uploading_files_works(#[with(&["-u"])] server: TestServer) -> Result<(), Error> {
@@ -87,8 +87,8 @@ fn uploading_files_is_prevented(server: TestServer) -> Result<(), Error> {
/// This test runs the server with --allowed-upload-dir argument and
/// checks that file upload to a different directory is actually prevented.
#[rstest]
-#[case(server_no_stderr(&["-u", "someDir"]))]
-#[case(server_no_stderr(&["-u", "someDir/some_sub_dir"]))]
+#[case(server(&["-u", "someDir"]))]
+#[case(server(&["-u", "someDir/some_sub_dir"]))]
fn uploading_files_is_restricted(#[case] server: TestServer) -> Result<(), Error> {
let test_file_name = "uploaded test file.txt";
@@ -221,7 +221,7 @@ fn prevent_path_traversal_attacks(
/// See https://github.com/svenstaro/miniserve/issues/466
#[rstest]
#[case(server(&["-u"]), true)]
-#[case(server_no_stderr(&["-u", "--no-symlinks"]), false)]
+#[case(server(&["-u", "--no-symlinks"]), false)]
fn upload_to_symlink_directory(
#[case] server: TestServer,
#[case] ok: bool,
diff --git a/tests/webdav.rs b/tests/webdav.rs
index eb97e3c..09d04e9 100644
--- a/tests/webdav.rs
+++ b/tests/webdav.rs
@@ -13,8 +13,8 @@ use rstest::rstest;
mod fixtures;
use crate::fixtures::{
- server, server_no_stderr, tmpdir, Error, TestServer, DIRECTORIES, DIRECTORY_SYMLINK, FILES,
- FILE_SYMLINK, HIDDEN_DIRECTORIES, HIDDEN_FILES,
+ server, tmpdir, Error, TestServer, DIRECTORIES, DIRECTORY_SYMLINK, FILES, FILE_SYMLINK,
+ HIDDEN_DIRECTORIES, HIDDEN_FILES,
};
#[rstest]
@@ -90,7 +90,7 @@ fn webdav_respects_hidden_flag(
#[rstest]
#[case(server(&["--enable-webdav"]), true)]
#[should_panic]
-#[case(server_no_stderr(&["--enable-webdav", "--no-symlinks"]), false)]
+#[case(server(&["--enable-webdav", "--no-symlinks"]), false)]
fn webdav_respects_no_symlink_flag(#[case] server: TestServer, #[case] symlinks_should_show: bool) {
let list = list_webdav(server.url(), "/").unwrap();