blob: 24c0c12b484d95e578e67f471d6a99c3922724a5 [file] [log] [blame]
Bram Moolenaar7e506b62010-01-19 15:55:06 +01001Smoke test for MzScheme interface and mzeval() function
2
3STARTTEST
4:so mzscheme.vim
5:set nocompatible viminfo+=nviminfo
6:function! MzRequire()
7:redir => l:mzversion
8:mz (version)
9:redir END
10:if strpart(l:mzversion, 1, 1) < "4"
11:" MzScheme versions < 4.x:
12:mz (require (prefix vim- vimext))
13:else
14:" newer versions:
15:mz (require (prefix-in vim- 'vimext))
16:mz (require r5rs)
17:endif
18:endfunction
19:silent call MzRequire()
20:mz (define l '("item0" "dictionary with list OK" "item2"))
21:mz (define h (make-hash))
22:mz (hash-set! h "list" l)
23/^1
24:" change buffer contents
25:mz (vim-set-buff-line (vim-eval "line('.')") "1 changed line 1")
26:" scalar test
27:let tmp_string = mzeval('"string"')
28:let tmp_1000 = mzeval('1000')
29:if tmp_string . tmp_1000 == "string1000"
30:let scalar_res = "OK"
31:else
32:let scalar_res = "FAILED"
33:endif
34:call append(search("^1"), "scalar test " . scalar_res)
35:" dictionary containing a list
36:let tmp = mzeval("h")["list"][1]
37:/^2/put =tmp
38:" circular list (at the same time test lists containing lists)
39:mz (set-car! (cddr l) l)
40:let l2 = mzeval("h")["list"]
Bram Moolenaar75676462013-01-30 14:55:42 +010041:" bug: this returns item2, but it should be l2
42:if l2[2] == "item2"
Bram Moolenaar7e506b62010-01-19 15:55:06 +010043:let res = "OK"
44:else
Bram Moolenaar75676462013-01-30 14:55:42 +010045:let res = "FAILED: " . l2[2]
Bram Moolenaar7e506b62010-01-19 15:55:06 +010046:endif
47:call setline(search("^3"), "circular test " . res)
Bram Moolenaar75676462013-01-30 14:55:42 +010048:" funcrefs
49:mz (define vim:max (vim-eval "function('max')"))
50:mz (define m (vim:max '(1 100 8)))
51:let m = mzeval('m')
52:if m == 100
53:let fref_res = "OK"
54:else
55:let fref_res = "FAILED: " . m
56:end
57:call append(line('$'), 'funcrefs '. fref_res)
Bram Moolenaar7e506b62010-01-19 15:55:06 +010058:?^1?,$w! test.out
59:qa!
60ENDTEST
61
621 line 1
632 line 2
643 line 3