Add some tests.
[riece] / lisp / test / test-riece-ruby.el
1 (require 'riece-ruby)
2
3 (luna-define-class test-riece-ruby (lunit-test-case))
4
5 (luna-define-method lunit-test-case-teardown ((case test-riece-ruby))
6   (riece-ruby-execute "exit!")
7   (sleep-for 1))
8
9 (luna-define-method test-riece-ruby-execute-1 ((case test-riece-ruby))
10   (lunit-assert-2
11    case
12    (equal (riece-ruby-execute "sleep 30") "0"))
13   (lunit-assert-2
14    case
15    (equal (riece-ruby-execute "1 << 32") "1"))
16   (lunit-assert-2
17    case
18    (equal (riece-ruby-execute "\"") "2")))
19
20 (luna-define-method test-riece-ruby-inspect-1 ((case test-riece-ruby))
21   (let ((name (riece-ruby-execute "sleep 30")))
22     (lunit-assert-2
23      case
24      (eq (car (car (riece-ruby-inspect name))) 'OK))
25     (lunit-assert-2
26      case
27      (assoc "running" (nth 2 (riece-ruby-inspect name))))))
28
29 (luna-define-method test-riece-ruby-inspect-2 ((case test-riece-ruby))
30   (let ((name (riece-ruby-execute "1 << 32")))
31     (lunit-assert-2
32      case
33      (eq (car (car (riece-ruby-inspect name))) 'OK))
34     (lunit-assert-2
35      case
36      (equal (nth 1 (riece-ruby-inspect name)) "4294967296"))
37     (lunit-assert-2
38      case
39      (assoc "finished" (nth 2 (riece-ruby-inspect name))))))
40
41 (luna-define-method test-riece-ruby-inspect-3 ((case test-riece-ruby))
42   (let ((name (riece-ruby-execute "\"")))
43     (lunit-assert-2
44      case
45      (eq (car (car (riece-ruby-inspect name))) 'OK))
46     (lunit-assert-2
47      case
48      (equal (nth 1 (riece-ruby-inspect name))
49             "unterminated string meets end of file"))
50     (lunit-assert-2
51      case
52      (assoc "exited" (nth 2 (riece-ruby-inspect name))))))
53
54 (luna-define-method test-riece-ruby-clear-1 ((case test-riece-ruby))
55   (let ((name (riece-ruby-execute "sleep 30")))
56     (riece-ruby-clear name)
57     (lunit-assert-2
58      case
59      (eq (car (car (riece-ruby-inspect name))) 'ERR))
60     (lunit-assert-2
61      case
62      (= (nth 1 (car (riece-ruby-inspect name))) 105))))
63
64 (defvar test-riece-ruby-exit-handler-1 nil)
65 (luna-define-method test-riece-ruby-exit-handler-1 ((case test-riece-ruby))
66   (let ((name (riece-ruby-execute "1 << 32")))
67     (riece-ruby-set-exit-handler
68      name
69      (lambda (name)
70        (setq test-riece-ruby-exit-handler-1 name)))
71     (sleep-for 1)
72     (lunit-assert-2
73      case
74      (equal test-riece-ruby-exit-handler-1 name))))
75
76 (defvar test-riece-ruby-output-handler-1 nil)
77 (luna-define-method test-riece-ruby-output-handler-1 ((case test-riece-ruby))
78   (let ((name (riece-ruby-execute "output(1 << 32)")))
79     (riece-ruby-set-output-handler
80      name
81      (lambda (name output)
82        (setq test-riece-ruby-output-handler-1 output)))
83     (sleep-for 1)
84     (lunit-assert-2
85      case
86      (equal test-riece-ruby-output-handler-1 "4294967296"))))
87
88 (defvar test-riece-ruby-output-handler-2 nil)
89 (luna-define-method test-riece-ruby-output-handler-2 ((case test-riece-ruby))
90   (let ((name (riece-ruby-execute "output(1 << 32)")))
91     (sleep-for 1)
92     (riece-ruby-set-output-handler
93      name
94      (lambda (name output)
95        (setq test-riece-ruby-output-handler-2 output)))
96     (lunit-assert-2
97      case
98      (equal test-riece-ruby-output-handler-2 "4294967296"))))