diff --git a/src/old_cli.rs b/src/old_cli.rs index 0675d3ec2e92..ec73aab63525 100644 --- a/src/old_cli.rs +++ b/src/old_cli.rs @@ -748,7 +748,10 @@ impl RunCommand { let mut dirs = Vec::new(); for host in old_dirs { - dirs.push((host.clone(), host)); + let mut parts = host.splitn(2, "::"); + let host = parts.next().unwrap(); + let guest = parts.next().unwrap_or(host); + dirs.push((host.to_string(), guest.to_string())); } if preview2 { diff --git a/tests/all/cli_tests.rs b/tests/all/cli_tests.rs index 049d910f69ff..b4bc8c86c683 100644 --- a/tests/all/cli_tests.rs +++ b/tests/all/cli_tests.rs @@ -1160,6 +1160,19 @@ warning: this CLI invocation of Wasmtime is going to break in the future -- for ); assert_eq!(String::from_utf8_lossy(&output.stderr), ""); + // the `--dir` flag prints no warning when used with `::` + let dir = tempfile::tempdir()?; + std::fs::write(dir.path().join("bar.txt"), b"And stood awhile in thought")?; + let output = get_wasmtime_command()? + .args(&[ + "run", + &format!("--dir={}::/", dir.path().to_str().unwrap()), + test_programs_artifacts::CLI_FILE_READ, + ]) + .output()?; + assert_eq!(String::from_utf8_lossy(&output.stdout), ""); + assert_eq!(String::from_utf8_lossy(&output.stderr), ""); + Ok(()) }