summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2017-09-14 15:19:14 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2017-09-14 15:25:04 +0200
commit63f1ffac3244d22925a360adb757a2fcea6c38c4 (patch)
treede782c97319762c35d9880b4fd9745f16c4df680
parent7584268314c0a59be18dc959b4b9a5e85733aaac (diff)
downloadorg-mode-63f1ffac3244d22925a360adb757a2fcea6c38c4.tar.gz
ob-scheme: Fix results error on unspecified and void values
* lisp/ob-scheme.el (org-babel-scheme-execute-with-geiser): Return "#<void>" or "#<unspecified>" when the REPL says so. * testing/lisp/test-ob-scheme.el (test-ob-scheme/unspecified): New test. (test-ob-scheme/prologue): Fix tests. Reported-by: Lawrence Bottorff <borgauf@gmail.com> <http://lists.gnu.org/archive/html/emacs-orgmode/2017-09/msg00346.html>
-rw-r--r--lisp/ob-scheme.el6
-rw-r--r--testing/lisp/test-ob-scheme.el43
2 files changed, 33 insertions, 16 deletions
diff --git a/lisp/ob-scheme.el b/lisp/ob-scheme.el
index f822e15..9576ee4 100644
--- a/lisp/ob-scheme.el
+++ b/lisp/ob-scheme.el
@@ -180,11 +180,7 @@ is true; otherwise returns the last value."
(save-current-buffer (set-buffer repl-buffer)
(geiser-repl-exit))
(set-process-query-on-exit-flag (get-buffer-process repl-buffer) nil)
- (kill-buffer repl-buffer))
- (setq result (if (or (string= result "#<void>")
- (string= result "#<unspecified>"))
- nil
- result)))))
+ (kill-buffer repl-buffer)))))
result))
(defun org-babel-scheme--table-or-string (results)
diff --git a/testing/lisp/test-ob-scheme.el b/testing/lisp/test-ob-scheme.el
index 79dcce4..a3406d3 100644
--- a/testing/lisp/test-ob-scheme.el
+++ b/testing/lisp/test-ob-scheme.el
@@ -41,29 +41,50 @@
(ert-deftest test-ob-scheme/prologue ()
"Test :prologue parameter."
- (equal "#+begin_src scheme :prologue \"(define x 2)\"
+ (should
+ (equal "#+begin_src scheme :prologue \"(define x 2)\"
x
#+end_src
#+RESULTS:
: 2
"
- (org-test-with-temp-text
- "#+begin_src scheme :prologue \"(define x 2)\"\nx\n#+end_src"
- (org-babel-execute-maybe)
- (buffer-string)))
- (equal
- "#+begin_src scheme :prologue \"(define x 2)\" :var y=1
+ (org-test-with-temp-text
+ "#+begin_src scheme :prologue \"(define x 2)\"\nx\n#+end_src"
+ (org-babel-execute-maybe)
+ (buffer-string))))
+ (should
+ (equal
+ "#+begin_src scheme :prologue \"(define x 2)\" :var y=1
x
#+end_src
#+RESULTS:
: 2
"
- (org-test-with-temp-text
- "#+begin_src scheme :prologue \"(define x 2)\" :var y=1\nx\n#+end_src"
- (org-babel-execute-maybe)
- (buffer-string))))
+ (org-test-with-temp-text
+ "#+begin_src scheme :prologue \"(define x 2)\" :var y=1\nx\n#+end_src"
+ (org-babel-execute-maybe)
+ (buffer-string)))))
+
+(ert-deftest test-ob-scheme/unspecified ()
+ "Test <#unspecified> return value."
+ (should
+ (equal "#+begin_src scheme
+\(define (mysquare x)
+ (* x x))
+#+end_src
+
+#+RESULTS:
+: #<unspecified>
+"
+ (org-test-with-temp-text
+ "#+begin_src scheme
+(define (mysquare x)
+ (* x x))
+#+end_src"
+ (org-babel-execute-maybe)
+ (buffer-string)))))
(provide 'test-ob-scheme)