aboutsummaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-06-09 13:26:48 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2019-09-28 14:55:43 +0200
commit4ea5e63aa8c866b4fcc9d10f1a26078d2517f96a (patch)
tree057fc3138c63438b1e945ef8257cfe179803d958 /ci
parentafba23099fccc929fd0319a9a965a7b727407c7a (diff)
downloadrneovim-4ea5e63aa8c866b4fcc9d10f1a26078d2517f96a.tar.gz
rneovim-4ea5e63aa8c866b4fcc9d10f1a26078d2517f96a.tar.bz2
rneovim-4ea5e63aa8c866b4fcc9d10f1a26078d2517f96a.zip
tree-sitter: add basic testing on ci
build tree-sitter c parser on ci for testing purposes
Diffstat (limited to 'ci')
-rw-r--r--ci/build.ps122
-rwxr-xr-xci/install.sh20
-rwxr-xr-xci/run_tests.sh2
3 files changed, 44 insertions, 0 deletions
diff --git a/ci/build.ps1 b/ci/build.ps1
index d533d7b4e0..4e1a69376b 100644
--- a/ci/build.ps1
+++ b/ci/build.ps1
@@ -94,6 +94,28 @@ npm.cmd install -g neovim
Get-Command -CommandType Application neovim-node-host.cmd
npm.cmd link neovim
+#npm.cmd install -g tree-sitter-cli
+#npm.cmd link tree-sitter-cli
+
+mkdir c:\treesitter
+$env:TREE_SITTER_DIR = "c:\treesitter"
+#$env:PATH = "c:\treesitter;$env:PATH"
+$client = new-object System.Net.WebClient
+cd c:\treesitter
+
+if ($bits -eq 32) {
+ $client.DownloadFile("https://github.com/tree-sitter/tree-sitter/releases/download/0.15.5/tree-sitter-windows-x86.gz","c:\treesitter\tree-sitter-cli.gz")
+}
+elseif ($bits -eq 64) {
+ $client.DownloadFile("https://github.com/tree-sitter/tree-sitter/releases/download/0.15.5/tree-sitter-windows-x64.gz","c:\treesitter\tree-sitter-cli.gz")
+}
+python -c "import gzip, shutil; f1,f2 = gzip.open('tree-sitter-cli.gz', 'rb'), open('tree-sitter.exe', 'wb'); shutil.copyfileobj(f1, f2); f2.close()"
+
+$client.DownloadFile("https://codeload.github.com/tree-sitter/tree-sitter-c/zip/v0.15.2","c:\treesitter\tree_sitter_c.zip")
+Expand-Archive c:\treesitter\tree_sitter_c.zip -DestinationPath c:\treesitter\
+cd c:\treesitter\tree-sitter-c-0.15.2
+c:\treesitter\tree-sitter.exe test
+
function convertToCmakeArgs($vars) {
return $vars.GetEnumerator() | foreach { "-D$($_.Key)=$($_.Value)" }
}
diff --git a/ci/install.sh b/ci/install.sh
index cda9a11f08..b96cf3c073 100755
--- a/ci/install.sh
+++ b/ci/install.sh
@@ -24,3 +24,23 @@ gem install --no-document --version ">= 0.8.0" neovim
echo "Install neovim npm package"
npm install -g neovim
npm link neovim
+
+echo "Install tree-sitter npm package"
+npm install -g tree-sitter-cli
+npm link tree-sitter-cli
+
+echo "Install tree-sitter c parser"
+curl "https://codeload.github.com/tree-sitter/tree-sitter-c/tar.gz/v0.15.2" -o tree_sitter_c.tar.gz
+tar xf tree_sitter_c.tar.gz
+cd tree-sitter-c-0.15.2
+export TREE_SITTER_DIR=$HOME/tree-sitter-build/
+mkdir -p $TREE_SITTER_DIR/bin
+
+if [[ "$BUILD_32BIT" != "ON" ]]; then
+ # builds c parser in $HOME/tree-sitter-build/bin/c.(so|dylib)
+ tree-sitter test
+else
+ # no tree-sitter binary for 32bit linux, so fake it (no tree-sitter unit tests)
+ cd src/
+ gcc -m32 -o $TREE_SITTER_DIR/bin/c.so -shared parser.c -I.
+fi
diff --git a/ci/run_tests.sh b/ci/run_tests.sh
index c175910da5..6b2f69293c 100755
--- a/ci/run_tests.sh
+++ b/ci/run_tests.sh
@@ -19,6 +19,8 @@ exit_suite --continue
enter_suite tests
+export TREE_SITTER_DIR=$HOME/tree-sitter-build/
+
if test "$CLANG_SANITIZER" != "TSAN" ; then
# Additional threads are only created when the builtin UI starts, which
# doesn't happen in the unit/functional tests