From 68bc1452c072da30032b98a344fa1237ac166a2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 13 Jul 2026 23:31:53 +0200 Subject: [PATCH] lua-language-server: add smoke test This was mostly taken from vtsls. --- .../lu/lua-language-server/package.nix | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/lu/lua-language-server/package.nix b/pkgs/by-name/lu/lua-language-server/package.nix index a87504ce7502..f5ab88f987bf 100644 --- a/pkgs/by-name/lu/lua-language-server/package.nix +++ b/pkgs/by-name/lu/lua-language-server/package.nix @@ -15,6 +15,8 @@ versionCheckHook, nix-update-script, + runCommand, + lua-language-server, }: stdenv.mkDerivation (finalAttrs: { @@ -128,7 +130,26 @@ stdenv.mkDerivation (finalAttrs: { ]; doInstallCheck = true; - passthru.updateScript = nix-update-script { }; + passthru = { + updateScript = nix-update-script { }; + + tests.smoke = runCommand "lua-language-server-smoke-test" { } '' + export XDG_CACHE_HOME=$(mktemp -d) + + INIT_REQUEST='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"processId":null,"rootUri":"file:///tmp","workspaceFolders":[{"uri":"file:///tmp","name":"test"}],"capabilities":{}}}' + CONTENT_LENGTH=''${#INIT_REQUEST} + + RESPONSE=$( + { + printf "Content-Length: %d\r\n\r\n%s" "$CONTENT_LENGTH" "$INIT_REQUEST" + sleep 1 + } | timeout 3 ${lib.getExe lua-language-server} --stdio 2>&1 | head -c 1000 + ) || true + + echo "$RESPONSE" | grep -q '"capabilities"' + touch $out + ''; + }; meta = { description = "Language server that offers Lua language support";