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