diff options
| author | William Boman <william@redwill.se> | 2022-09-17 22:35:38 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-17 22:35:38 +0200 |
| commit | d7eb2eeec566da6cfd1c61b1d7aa6fc592d1b296 (patch) | |
| tree | 5f5ae4c7b55a90e9522fbaa4a04a1c5ccbafd0d8 /tests | |
| parent | feat(editorconfig-checker): use the pre-packaged ec (#434) (diff) | |
| download | mason-d7eb2eeec566da6cfd1c61b1d7aa6fc592d1b296.tar mason-d7eb2eeec566da6cfd1c61b1d7aa6fc592d1b296.tar.gz mason-d7eb2eeec566da6cfd1c61b1d7aa6fc592d1b296.tar.bz2 mason-d7eb2eeec566da6cfd1c61b1d7aa6fc592d1b296.tar.lz mason-d7eb2eeec566da6cfd1c61b1d7aa6fc592d1b296.tar.xz mason-d7eb2eeec566da6cfd1c61b1d7aa6fc592d1b296.tar.zst mason-d7eb2eeec566da6cfd1c61b1d7aa6fc592d1b296.zip | |
feat: more competent platform detection (#436)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/mason-core/installer/context_spec.lua | 8 | ||||
| -rw-r--r-- | tests/mason-core/installer/linker_spec.lua | 8 | ||||
| -rw-r--r-- | tests/mason-core/platform_spec.lua | 57 |
3 files changed, 48 insertions, 25 deletions
diff --git a/tests/mason-core/installer/context_spec.lua b/tests/mason-core/installer/context_spec.lua index 2523d33e..516aa7d2 100644 --- a/tests/mason-core/installer/context_spec.lua +++ b/tests/mason-core/installer/context_spec.lua @@ -36,10 +36,10 @@ exec bash -c 'echo $GREETING' "$@"]] end) it("should write shell exec wrapper on Windows", function() - platform.is_mac = false - platform.is_unix = false - platform.is_linux = false - platform.is_win = true + platform.is.mac = false + platform.is.unix = false + platform.is.linux = false + platform.is.win = true local handle = InstallHandleGenerator "dummy" local ctx = InstallContextGenerator(handle) stub(ctx.fs, "write_file") diff --git a/tests/mason-core/installer/linker_spec.lua b/tests/mason-core/installer/linker_spec.lua index 71b7f7fe..cc14294b 100644 --- a/tests/mason-core/installer/linker_spec.lua +++ b/tests/mason-core/installer/linker_spec.lua @@ -64,10 +64,10 @@ describe("installer", function() it( "should write executable wrapper on Windows", async_test(function() - platform.is_mac = false - platform.is_linux = false - platform.is_unix = false - platform.is_win = true + platform.is.mac = false + platform.is.linux = false + platform.is.unix = false + platform.is.win = true local dummy = registry.get_package "dummy" stub(fs.async, "file_exists") diff --git a/tests/mason-core/platform_spec.lua b/tests/mason-core/platform_spec.lua index 2c9d2035..7559e1ce 100644 --- a/tests/mason-core/platform_spec.lua +++ b/tests/mason-core/platform_spec.lua @@ -8,13 +8,24 @@ describe("platform", function() return require "mason-core.platform" end - local function stub_mac(arch) - arch = arch or "x86_64" - stub(vim.fn, "has") + local function stub_uname(uname) stub(vim.loop, "os_uname") - vim.loop.os_uname.returns { machine = arch } + vim.loop.os_uname.returns(uname) + end + + ---@param libc string + local function stub_libc(libc) + stub(os, "execute") + local exit_code = libc == "musl" and 0 or 1 + -- selene: allow(incorrect_standard_library_use) + os.execute.on_call_with("ldd --version 2>&1 | grep -q musl").returns(nil, nil, exit_code) + end + + local function stub_mac() + stub(vim.fn, "has") vim.fn.has.on_call_with("mac").returns(1) vim.fn.has.on_call_with("unix").returns(1) + vim.fn.has.on_call_with("linux").returns(0) vim.fn.has.on_call_with(match._).returns(0) end @@ -22,6 +33,7 @@ describe("platform", function() stub(vim.fn, "has") vim.fn.has.on_call_with("mac").returns(0) vim.fn.has.on_call_with("unix").returns(1) + vim.fn.has.on_call_with("linux").returns(1) vim.fn.has.on_call_with(match._).returns(0) end @@ -32,7 +44,8 @@ describe("platform", function() end it("should be able to detect platform and arch", function() - stub_mac "arm64" + stub_mac() + stub_uname { machine = "aarch64" } assert.is_true(platform().is.mac_arm64) assert.is_false(platform().is.mac_x64) assert.is_false(platform().is.nothing) @@ -40,40 +53,50 @@ describe("platform", function() it("should be able to detect macos", function() stub_mac() - assert.is_true(platform().is_mac) assert.is_true(platform().is.mac) - assert.is_true(platform().is_unix) assert.is_true(platform().is.unix) - assert.is_false(platform().is_linux) assert.is_false(platform().is.linux) - assert.is_false(platform().is_win) assert.is_false(platform().is.win) end) it("should be able to detect linux", function() stub_linux() - assert.is_false(platform().is_mac) assert.is_false(platform().is.mac) - assert.is_true(platform().is_unix) assert.is_true(platform().is.unix) - assert.is_true(platform().is_linux) assert.is_true(platform().is.linux) - assert.is_false(platform().is_win) assert.is_false(platform().is.win) end) it("should be able to detect windows", function() stub_windows() - assert.is_false(platform().is_mac) assert.is_false(platform().is.mac) - assert.is_false(platform().is_unix) assert.is_false(platform().is.unix) - assert.is_false(platform().is_linux) assert.is_false(platform().is.linux) - assert.is_true(platform().is_win) assert.is_true(platform().is.win) end) + it("should be able to detect correct triple based on libc", function() + stub_linux() + stub_uname { machine = "aarch64" } + stub_libc "musl" + assert.is_false(platform().is.linux_x64_musl) + assert.is_false(platform().is.linux_x64_gnu) + assert.is_true(platform().is.linux_arm64_musl) + assert.is_false(platform().is.linux_arm64_gnu) + assert.is_false(platform().is.linux_arm64_gnu) + end) + + it("should be able to detect correct triple based on sysname", function() + stub_linux() + stub_uname { machine = "aarch64", sysname = "OpenBSD" } + stub_libc "musl" + assert.is_false(platform().is.linux_x64_musl) + assert.is_false(platform().is.linux_x64_gnu) + assert.is_false(platform().is.linux_arm64_gnu) + assert.is_false(platform().is.linux_arm64_gnu) + assert.is_true(platform().is.linux_arm64_openbsd) + end) + it("should run correct case on linux", function() local unix = spy.new() local win = spy.new() |
