summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNayeem Rahman <muhammed.9939@gmail.com>2020-02-25 14:23:23 +0000
committerGitHub <noreply@github.com>2020-02-25 09:23:23 -0500
commit14e7e1e3af43b2322a26fcc542428c8f1af4460d (patch)
tree37b61598d27754b4f145a211f3f0c0ed400876bb
parent91b606aaae23bcb790b55adc5fe70a182a37d564 (diff)
fix: Resolve makeTemp* paths from CWD (#4104)
-rw-r--r--cli/ops/fs.rs10
-rw-r--r--cli/tests/056_make_temp_file_write_perm.out1
-rw-r--r--cli/tests/056_make_temp_file_write_perm.ts8
-rw-r--r--cli/tests/integration_tests.rs17
4 files changed, 27 insertions, 9 deletions
diff --git a/cli/ops/fs.rs b/cli/ops/fs.rs
index 13c2418cb..4d7bd9d15 100644
--- a/cli/ops/fs.rs
+++ b/cli/ops/fs.rs
@@ -9,7 +9,7 @@ use deno_core::*;
use remove_dir_all::remove_dir_all;
use std::convert::From;
use std::fs;
-use std::path::{Path, PathBuf};
+use std::path::Path;
use std::time::UNIX_EPOCH;
#[cfg(unix)]
@@ -534,7 +534,9 @@ fn op_make_temp_dir(
) -> Result<JsonOp, OpError> {
let args: MakeTempArgs = serde_json::from_value(args)?;
- let dir = args.dir.map(PathBuf::from);
+ let dir = args
+ .dir
+ .map(|s| deno_fs::resolve_from_cwd(Path::new(&s)).unwrap());
let prefix = args.prefix.map(String::from);
let suffix = args.suffix.map(String::from);
@@ -566,7 +568,9 @@ fn op_make_temp_file(
) -> Result<JsonOp, OpError> {
let args: MakeTempArgs = serde_json::from_value(args)?;
- let dir = args.dir.map(PathBuf::from);
+ let dir = args
+ .dir
+ .map(|s| deno_fs::resolve_from_cwd(Path::new(&s)).unwrap());
let prefix = args.prefix.map(String::from);
let suffix = args.suffix.map(String::from);
diff --git a/cli/tests/056_make_temp_file_write_perm.out b/cli/tests/056_make_temp_file_write_perm.out
new file mode 100644
index 000000000..c56aae43f
--- /dev/null
+++ b/cli/tests/056_make_temp_file_write_perm.out
@@ -0,0 +1 @@
+good [WILDCARD]subdir[WILDCARD]
diff --git a/cli/tests/056_make_temp_file_write_perm.ts b/cli/tests/056_make_temp_file_write_perm.ts
new file mode 100644
index 000000000..15aefaff9
--- /dev/null
+++ b/cli/tests/056_make_temp_file_write_perm.ts
@@ -0,0 +1,8 @@
+const path = await Deno.makeTempFile({ dir: "./subdir/" });
+if (path.startsWith(Deno.cwd())) {
+ console.log("good", path);
+} else {
+ throw Error("bad " + path);
+}
+console.log(path);
+await Deno.remove(path);
diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs
index ccc571331..3e2c28980 100644
--- a/cli/tests/integration_tests.rs
+++ b/cli/tests/integration_tests.rs
@@ -784,6 +784,17 @@ itest!(_054_info_local_imports {
exit_code: 0,
});
+itest!(_055_import_wasm_via_network {
+ args: "run --reload http://127.0.0.1:4545/cli/tests/055_import_wasm_via_network.ts",
+ output: "055_import_wasm_via_network.ts.out",
+ http_server: true,
+});
+
+itest!(_056_make_temp_file_write_perm {
+ args: "run --allow-write=./subdir/ 056_make_temp_file_write_perm.ts",
+ output: "056_make_temp_file_write_perm.out",
+});
+
itest!(js_import_detect {
args: "run --reload js_import_detect.ts",
output: "js_import_detect.ts.out",
@@ -1129,12 +1140,6 @@ itest!(_053_import_compression {
http_server: true,
});
-itest!(import_wasm_via_network {
- args: "run --reload http://127.0.0.1:4545/cli/tests/055_import_wasm_via_network.ts",
- output: "055_import_wasm_via_network.ts.out",
- http_server: true,
-});
-
itest!(cafile_url_imports {
args: "run --reload --cert tls/RootCA.pem cafile_url_imports.ts",
output: "cafile_url_imports.ts.out",