diff options
| author | ruki <[email protected]> | 2026-08-18 18:19:16 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-08-18 18:19:16 +0800 |
| commit | de769d5574d92a37253d16b9617d998605bfd727 (patch) | |
| tree | 4a3b03ed803bd9833cf6f35ec52ca9b84afdadd2 /tests/actions/addon | |
| parent | a6150b0a9bc7cd24081185a1d5acbd6772d5e138 (diff) | |
| parent | b884500d812ae3e4f18ef728184b031cf206cb9f (diff) | |
Move some plugins to addons
Diffstat (limited to 'tests/actions/addon')
| -rw-r--r-- | tests/actions/addon/custom-override/addon.lua | 2 | ||||
| -rw-r--r-- | tests/actions/addon/custom-override/plugins/format/main.lua | 3 | ||||
| -rw-r--r-- | tests/actions/addon/custom-override/plugins/format/xmake.lua | 6 | ||||
| -rw-r--r-- | tests/actions/addon/test.lua | 20 |
4 files changed, 31 insertions, 0 deletions
diff --git a/tests/actions/addon/custom-override/addon.lua b/tests/actions/addon/custom-override/addon.lua new file mode 100644 index 000000000..3540b51f5 --- /dev/null +++ b/tests/actions/addon/custom-override/addon.lua @@ -0,0 +1,2 @@ +addon("custom-override") + set_description("the addon which takes over a builtin plugin") diff --git a/tests/actions/addon/custom-override/plugins/format/main.lua b/tests/actions/addon/custom-override/plugins/format/main.lua new file mode 100644 index 000000000..92f9b73b8 --- /dev/null +++ b/tests/actions/addon/custom-override/plugins/format/main.lua @@ -0,0 +1,3 @@ +function main() + print("hello from custom-override") +end diff --git a/tests/actions/addon/custom-override/plugins/format/xmake.lua b/tests/actions/addon/custom-override/plugins/format/xmake.lua new file mode 100644 index 000000000..446e24db1 --- /dev/null +++ b/tests/actions/addon/custom-override/plugins/format/xmake.lua @@ -0,0 +1,6 @@ +-- @note `format` is a builtin plugin of xmake, we use it to test that an addon +-- is able to take over a builtin plugin +task("format") + set_category("plugin") + set_menu {usage = "xmake format", description = "Say hello instead of formatting.", options = {}} + on_run("main") diff --git a/tests/actions/addon/test.lua b/tests/actions/addon/test.lua index 05818a054..fcc5c2efc 100644 --- a/tests/actions/addon/test.lua +++ b/tests/actions/addon/test.lua @@ -467,6 +467,26 @@ function test_install_conflicts(t) end) end +-- an addon is able to take over a builtin plugin, so we can move a deprecated builtin +-- plugin to an addon, e.g. `xmake format` +function test_install_override(t) + + -- the builtin plugin is used if we do not install the addon + t:require_not(os.iorunv("xmake", {"format", "--help"}):find("Say hello instead of formatting", 1, true)) + + _with_addons({"custom-override"}, function () + local out = os.iorunv("xmake", {"format"}) + t:require(out:find("hello from custom-override", 1, true)) + + -- and it should not be reported as a conflict + t:require_not(out:find("conflicts", 1, true)) + t:require(os.iorunv("xmake", {"format", "--help"}):find("Say hello instead of formatting", 1, true)) + end) + + -- the builtin plugin is used again after removing the addon + t:require_not(os.iorunv("xmake", {"format", "--help"}):find("Say hello instead of formatting", 1, true)) +end + -- the invalid installs should fail, and the `addon` name is reserved for the addon references function test_invalid(t) t:require_not(try { function () os.runv("xmake", {"addon", "--install", "-y", "addon-test-missing"}); return true end }) |
