changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/ffi/tree-sitter/tests.lisp

changeset 698: 96958d3eb5b0
parent: 04d0a4f857f6
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
1 (defpackage :tree-sitter/tests
2  (:use :cl :rt :tree-sitter :std))
3 
4 (in-package :tree-sitter/tests)
5 
6 (defsuite :tree-sitter)
7 
8 (in-suite :tree-sitter)
9 
10 (load-tree-sitter)
11 (load-tree-sitter-alien)
12 (load-tree-sitter-json)
13 (load-tree-sitter-rust)
14 
15 ;; the following tests require the TREE-SITTER-LANGS pack to be installed
16 (deftest ts-json ()
17  (let ((parser (ts-parser-new))
18  (lang (tree-sitter-json)))
19  (is (= (ts-language-version lang) 14))
20  (is (ts-language-field-count lang))
21  (is (ts-language-symbol-count lang))
22  (is (ts-language-symbol-name lang (sb-alien:make-alien sb-alien:unsigned-int 0)))
23  (is (ts-parser-set-language parser lang))
24  (let ((new-tree (ts-parser-parse-string parser nil "[1, null]" 9)))
25  (print (ts-tree-language new-tree))
26  (ts-tree-delete new-tree))))
27 
28 (deftest ts-rust ()
29  (let ((parser (ts-parser-new))
30  (lang (tree-sitter-rust)))
31  (is (= (ts-language-version lang) 14))
32  (is (ts-parser-set-language parser lang))
33  (let ((new-tree (ts-parser-parse-string parser nil "
34 pub fn main {} " 15)))
35  (is (= (ts-language-version (ts-tree-language new-tree)) 14))
36  (let ((root-node (ts-tree-root-node-pointer new-tree)))
37  (is (string= "source_file" (ts-node-type-pointer root-node)))
38  (let ((cursor (ts-tree-cursor-new-pointer root-node)))
39  (ts-tree-cursor-delete cursor)
40  (ts-tree-delete new-tree))))))