mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 23:34:47 -05:00
fix: normalize Deno.execPath (#2598)
This commit is contained in:
parent
1068b4848c
commit
9d18f97327
2 changed files with 10 additions and 2 deletions
|
@ -57,6 +57,7 @@ use tokio::net::TcpListener;
|
||||||
use tokio::net::TcpStream;
|
use tokio::net::TcpStream;
|
||||||
use tokio_process::CommandExt;
|
use tokio_process::CommandExt;
|
||||||
use tokio_threadpool;
|
use tokio_threadpool;
|
||||||
|
use url::Url;
|
||||||
use utime;
|
use utime;
|
||||||
|
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
|
@ -345,8 +346,12 @@ fn op_start(
|
||||||
let cwd_off =
|
let cwd_off =
|
||||||
builder.create_string(deno_fs::normalize_path(cwd_path.as_ref()).as_ref());
|
builder.create_string(deno_fs::normalize_path(cwd_path.as_ref()).as_ref());
|
||||||
|
|
||||||
|
let current_exe = std::env::current_exe().unwrap();
|
||||||
|
// Now apply URL parser to current exe to get fully resolved path, otherwise we might get
|
||||||
|
// `./` and `../` bits in `exec_path`
|
||||||
|
let exe_url = Url::from_file_path(current_exe).unwrap();
|
||||||
let exec_path =
|
let exec_path =
|
||||||
builder.create_string(std::env::current_exe().unwrap().to_str().unwrap());
|
builder.create_string(exe_url.to_file_path().unwrap().to_str().unwrap());
|
||||||
|
|
||||||
let v8_version = version::v8();
|
let v8_version = version::v8();
|
||||||
let v8_version_off = builder.create_string(v8_version);
|
let v8_version_off = builder.create_string(v8_version);
|
||||||
|
|
|
@ -55,8 +55,11 @@ class TestTarget(DenoTestCase):
|
||||||
assert result.out.strip() == "noColor false"
|
assert result.out.strip() == "noColor false"
|
||||||
|
|
||||||
def test_exec_path(self):
|
def test_exec_path(self):
|
||||||
cmd = [self.deno_exe, "run", "tests/exec_path.ts"]
|
cmd = [self.deno_exe, "run", "--allow-run", "tests/exec_path.ts"]
|
||||||
result = run_output(cmd, quiet=True)
|
result = run_output(cmd, quiet=True)
|
||||||
|
print "exec_path", result.code
|
||||||
|
print result.out
|
||||||
|
print result.err
|
||||||
assert self.deno_exe in result.out.strip()
|
assert self.deno_exe in result.out.strip()
|
||||||
self.assertEqual(result.code, 0)
|
self.assertEqual(result.code, 0)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue