]> gitweb.factorcode.org Git - factor.git/blob - extra/fuel/eval/eval-tests.factor
5e3f61ad82b0d05dd9b9356adbf0637ee97a8c2d
[factor.git] / extra / fuel / eval / eval-tests.factor
1 ! Copyright (C) 2009 Jose Antonio Ortega Ruiz.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: continuations fuel fuel.eval io.streams.string kernel math
4 namespaces random.data sequences tools.test vocabs.parser ;
5 IN: fuel.eval.tests
6
7 ! pop-restarts
8 { V{ "um" } } [
9     fuel-eval-non-restartable V{ } clone restarts set-global
10     V{ "um" } pop-restarts
11     restarts get-global
12     V{ } clone restarts set-global
13 ] unit-test
14
15 ! push-status
16 { 1 } [
17     V{ } clone [ restarts-stack set-global ] keep push-status
18     length
19     pop-status
20 ] unit-test
21
22 ! Make sure prettyprint doesn't limit output.
23 { t } [
24     f 1000 random-string ""
25     [ send-retort ] with-string-writer length 1000 >
26 ] unit-test
27
28 ! eval-in-context
29 {
30     "(nil \"IN: kernel PRIMITIVE: dup ( x -- x x )\" \"\")\n<~FUEL~>\n"
31 } [
32     [
33         [
34             V{ "\"dup\"" "fuel-word-synopsis" } "scratchpad"
35             V{ "fuel" "kernel" "syntax" } eval-in-context
36         ] with-string-writer
37     ] with-manifest
38 ] unit-test
39
40 {
41     "(nil \"IN: http.server : <500> ( error -- response )\" \"\")\n<~FUEL~>\n"
42 } [
43     USE: http.server
44     [
45         [
46             V{ "\"<500>\"" "fuel-word-synopsis" }
47             "http.server"
48             V{ "fuel" "kernel" "syntax" } eval-in-context
49         ] with-string-writer
50     ] with-manifest
51 ] unit-test
52
53 {
54     "(nil 9 \"\")\n<~FUEL~>\n"
55 } [
56     [
57         { "3 sq" } "hi99"
58         { "math" "kernel" } eval-in-context
59     ] with-string-writer
60 ] unit-test