This repository has been archived by the owner on Jan 31, 2025. It is now read-only.
test: add backbone testing with testscripts #11
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change is a port from the work I did in
gnols
(ancestor of this repo) to have a proper testing framework.It uses testscripts to setup a comprehensive and extensible way to test the gnopls server. The setup consists of running the server and mimicking a LSP client via the "lsp" command used in the txtar files.
Each txtar file is used to assert a specific command or functionnality:
testdata/initialize.txtar
asserts the lsp initialize commandtestdata/not_initialize.txtar
asserts that lsp initialize must be called prior to any other commands (for this I had to update the server code accordingly)testdata/document_hover.txtar
asserts the lsp document/hover commandtestdata/document_open.txtar
assets the lsp document/open commandThis is only the beginning as I have introduced many other tests in gnols but pushing all scripts requires some other server changes and I'd rather do that incrementally.
I also added a
deps
target to the Makefile to installgno
, which is required to run the tests. CI workflows have been updated to run this target.