53 lines
1.5 KiB
Scheme
53 lines
1.5 KiB
Scheme
(add-to-load-path (dirname (current-filename)))
|
|
|
|
(use-modules
|
|
(e2e marionette)
|
|
(e2e testing)
|
|
(ice-9 regex)
|
|
((server) #:prefix server-)
|
|
(srfi srfi-1))
|
|
|
|
(define (lines s)
|
|
(string-split s #\newline))
|
|
|
|
(define (get-result-line client)
|
|
(let ((display (get-display client)))
|
|
(last (lines (string-trim-right display)))))
|
|
|
|
(define server (server-start))
|
|
(define firefox (start-firefox))
|
|
(define client (client-setup))
|
|
|
|
(navigate client "http://localhost:8080")
|
|
(sleep 1)
|
|
|
|
(define-test kernel-assembles-successfully
|
|
(let* ((display (get-display client))
|
|
(line (first (lines display))))
|
|
(assert (string-match "Assembling kernel \\.+ done" line)
|
|
(format #f "Kernel assemble line: ~s" line))))
|
|
|
|
(define-test prelude-loads-successfully
|
|
(let* ((display (get-display client))
|
|
(line (second (lines display))))
|
|
(assert (string-match "Loading prelude \\.+ done" line)
|
|
(format #f "Prelude load line: ~s" line))))
|
|
|
|
(define-test six-seven-times-dot-cr-yields-42
|
|
(input-line client "6 7 * . CR")
|
|
(let* ((result-line (get-result-line client)))
|
|
(assert (string=? "42" result-line)
|
|
(format #f "Result line: ~s" result-line))))
|
|
|
|
(define-test define-hello-then-run-hello-prints-message
|
|
(input-line client ": HELLO .\" Hello, world!\" CR ;")
|
|
(input-line client "HELLO")
|
|
(let* ((result-line (get-result-line client)))
|
|
(assert (string=? "Hello, world!" result-line)
|
|
(format #f "Result line: ~s" result-line))))
|
|
|
|
(run-tests-with-cleanup
|
|
(client-teardown client)
|
|
(close-firefox firefox)
|
|
(server-stop server))
|