emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Martyn Jago <martyn.jago@btinternet.com>
To: emacs-orgmode@gnu.org
Subject: Re: [babel] Collection of code block snippets
Date: Thu, 08 Sep 2011 17:18:16 +0100	[thread overview]
Message-ID: <m2wrdjc8jb.fsf@btinternet.com> (raw)
In-Reply-To: 87mxef6p4r.fsf@gmail.com

[-- Attachment #1: Type: text/plain, Size: 2691 bytes --]

Hi Eric

Eric Schulte <schulte.eric@gmail.com> writes:

> Hi Martyn
>
> Martyn Jago <martyn.jago@btinternet.com> writes:
>
>> Hi Eric
>>
>> Eric Schulte <schulte.eric@gmail.com> writes:
>>
>> [...]
>>
>>>
>>> I just made three small changes to the testing framework so it is now
>>> possible to run the test suite in batch mode with the following.
>>>
>>> emacs -Q --batch -l path/to/org/testing/org-test.el --eval "(setq
>>> org-confirm-babel-evaluate nil)" -f org-test-run-all-tests
>>
>> Great idea - unfortunately its not quite working for me since I get
>> four failing tests. In addition I have no (easy) indication of which
>> four tests are failing since the backtrace is just the output of the
>> tests working (no backtrace for failed tests).
>>
>
> I'm getting four failing tests as well when I start Emacs with the -Q
> option and no failing tests when I run it with my configuration loaded.
> I will dig through my personal config, find out what options are making
> these tests pass, and adjust the tests appropriately so that they all
> pass with no personal config.
>
>>
>> This is what I like about the ert-run-batch commands - you get an
>> indication and summary of tests passed, and the backtrace of any
>> failures.
>>
>> Also, I mentioned that ert-batch.el and ert-run.el are not part of
>> Emacs. This is actually because their contents were merged into ert.el
>> within Emacs.
>>
>
> Thanks for mentioning the batch ert commands, I was not aware of their
> existence.  I've added a batch version of org-test-run-all-tests to the
> org-mode test suite, the following should now be sufficient to run the
> test suite from the command line with nicer output.
>
> #+begin_src sh
>   emacs -Q --batch -l path/to/org/testing/org-test.el \
>       --eval "(setq org-confirm-babel-evaluate nil)" \
>       -f org-test-run-all-tests
> #+end_src

Thats great - I'll try it out when I get a chance.

I have written a few more tests for inline source blocks execution with
org-ctrl-c-ctrl-c (not extensive by any means). The last two [:results
scaler] and [:results verbatim] surprised me slightly since the manual
suggests to me that they would be identical (although verbatim does what
I would expect).

,----
|  - scalar, verbatim The results should be interpreted literally—they
|    will not be converted into a table. The results will be inserted into
|    the Org-mode buffer as quoted text. E.g., :results value verbatim. 
`----

--8<---------------cut here---------------start------------->8---
src_src_emacs-lisp[ :results scalar ]{ \"x\" } =x=
src_src_emacs-lisp[ :results verbatim ]{ \"x\" } ="x"=
--8<---------------cut here---------------end--------------->8---


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: lisp-test-ob.el-More-tests-for-inline-source-blocks --]
[-- Type: text/x-patch, Size: 7817 bytes --]

From b0ea0a6e96188c8ee6861d6cbd04182eb966dbe3 Mon Sep 17 00:00:00 2001
From: Martyn Jago <martyn.jago@btinternet.com>
Date: Thu, 8 Sep 2011 16:50:26 +0100
Subject: [PATCH] * testing/lisp/test-ob.el: More tests for inline source blocks
   execution via org-ctrl-c-ctrl-c

---
 testing/lisp/test-ob.el |  172 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 172 insertions(+), 0 deletions(-)

diff --git a/testing/lisp/test-ob.el b/testing/lisp/test-ob.el
index e0f7c65..9735bd8 100644
--- a/testing/lisp/test-ob.el
+++ b/testing/lisp/test-ob.el
@@ -236,6 +236,178 @@
       (should-not (org-babel-get-inline-src-block-matches))
     )))
 
+(ert-deftest test-org-babel/inline-src_blk-default-results-replace-line-1 ()
+  (with-temp-buffer
+
+    ;; src_ at bol line 1...
+    (let ((test-line "src_sh{echo 1}"))
+      (insert test-line)
+      (should-error (org-ctrl-c-ctrl-c))
+      (goto-char (point-min)) (org-ctrl-c-ctrl-c)
+      (should (string=
+       	       (concat test-line " =1=")
+       	       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (forward-char) (org-ctrl-c-ctrl-c)
+      (should (string=
+       	       (concat test-line " =1= =1=")
+       	       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (re-search-forward "1}")
+      (should-error (org-ctrl-c-ctrl-c))
+      (backward-char) ;; last char of block body
+      (org-ctrl-c-ctrl-c)
+      (should (string=
+       	       (concat test-line " =1= =1= =1=")
+       	       (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))
+
+    ;; src_ follows space line 1...
+    (let ((test-line " src_emacs-lisp{ 1 }"))
+      (beginning-of-line)
+      (insert (concat test-line "\n"))
+      (goto-char (point-min))
+      (should-error (org-ctrl-c-ctrl-c))
+      (forward-char) (org-ctrl-c-ctrl-c) 
+      (should (string=
+	       (concat test-line " =1=")
+	       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (re-search-forward "{ 1 ") (org-ctrl-c-ctrl-c)
+      (should (string=
+	       (concat test-line " =1= =1=")
+	       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (forward-char)
+      (should-error (org-ctrl-c-ctrl-c))
+      )))
+
+(ert-deftest test-org-babel/inline-src_blk-default-results-replace-line-2 ()
+  (with-temp-buffer
+
+    ;; src_ at bol line 2...
+    (let ((test-line " src_emacs-lisp{ \"x\" }"))
+      (insert (concat "\n" test-line))
+      (should-error (org-ctrl-c-ctrl-c))
+      (goto-char (point-min))
+      (should-error (org-ctrl-c-ctrl-c))
+      (forward-line)
+      (should-error (org-ctrl-c-ctrl-c))
+      (forward-char) (org-ctrl-c-ctrl-c)
+      (should (string=
+	       (concat test-line " =x=")
+	       (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))
+
+    (let ((test-line "Some text prior to block src_emacs-lisp{ \"y\" }"))
+      (goto-char (point-max))
+      (insert (concat "\n" test-line " end"))
+      (re-search-backward "src") (org-ctrl-c-ctrl-c)
+      (should (string=
+       	       (concat test-line " =y= end")
+       	       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (re-search-forward "\" ") (org-ctrl-c-ctrl-c)
+      (should (string=
+	       (concat test-line " =y= =y= end")
+       	       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (forward-char)
+      (should-error (org-ctrl-c-ctrl-c))
+      )))
+
+(ert-deftest test-org-babel/inline-src_blk-manual-results-replace ()
+  (with-temp-buffer
+
+    (let ((test-line " src_emacs-lisp[:results replace]{ \"x\" }"))
+      (insert (concat "\n" test-line))
+      (should-error (org-ctrl-c-ctrl-c))
+      (goto-char (point-min))
+      (should-error (org-ctrl-c-ctrl-c))
+      (forward-line)
+      (should-error (org-ctrl-c-ctrl-c))
+      (forward-char) (org-ctrl-c-ctrl-c)
+      (should (string=
+      	       (concat test-line " =x=")
+      	       (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))
+    
+    (let ((test-line " Some text prior to block src_emacs-lisp[:results replace]{ \"y\" }"))
+      (goto-char (point-max))
+      (insert (concat "\n" test-line " end"))
+      (re-search-backward "src") (org-ctrl-c-ctrl-c)
+      (should (string=
+    	       (concat test-line " =y= end")
+    	       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (re-search-forward "\" ") (org-ctrl-c-ctrl-c)
+      (should (string=
+    	       (concat test-line " =y= =y= end")
+    	       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (forward-char)
+      (should-error (org-ctrl-c-ctrl-c)))
+    ))
+
+(ert-deftest test-org-babel/inline-src_blk-results-silent ()
+  (with-temp-buffer
+
+    (let ((test-line "src_emacs-lisp[ :results silent ]{ \"x\" }"))
+      (insert test-line)
+      (should-error (org-ctrl-c-ctrl-c))
+      (goto-char (point-min)) (org-ctrl-c-ctrl-c)
+      (should (string= test-line
+		       (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))
+    (let ((test-line " Some text prior to block src_emacs-lisp[ :results silent ]{ \"y\" }"))
+      (goto-char (point-max))
+      (insert (concat "\n" test-line " end"))
+      (re-search-backward "src_") (org-ctrl-c-ctrl-c)
+      (should (string= (concat test-line " end")
+		       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (re-search-forward "\" ") (org-ctrl-c-ctrl-c)
+      (should (string= (concat test-line " end")
+		       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (forward-char)
+      (should-error (org-ctrl-c-ctrl-c)))
+      ))
+
+(ert-deftest test-org-babel/inline-src_blk-results-raw ()
+  (with-temp-buffer
+
+    (let ((test-line "src_emacs-lisp[ :results raw ]{ \"x\" }"))
+      (insert test-line)
+      (goto-char (point-min)) (org-ctrl-c-ctrl-c)
+      (should (string= (concat test-line " x")
+		       (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))
+    (let ((test-line " Some text prior to block src_emacs-lisp[ :results raw ]{ \"the\" }"))
+      (goto-char (point-max))
+      (insert (concat "\n" test-line " end"))
+      (re-search-backward "src_") (org-ctrl-c-ctrl-c)
+      (should (string= (concat test-line " the end")
+		       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (re-search-forward "\" ") (org-ctrl-c-ctrl-c)
+      (should (string= (concat test-line " the the end")
+		       (buffer-substring-no-properties (point-at-bol) (point-at-eol))))
+      (forward-char)
+      (should-error (org-ctrl-c-ctrl-c)))
+      ))
+
+(ert-deftest test-org-babel/inline-src_blk-results-file ()
+  (with-temp-buffer
+
+    (let ((test-line "src_emacs-lisp[ :results file ]{ \"~/test-file\"  }"))
+      (insert test-line)
+      (goto-char (point-min)) (org-ctrl-c-ctrl-c)
+      (should (string= (concat test-line " [[file:~/test-file]]")
+		       (buffer-substring-no-properties (point-min) (point-max)))))))
+
+(ert-deftest test-org-babel/inline-src_blk-results-scaler ()
+  (with-temp-buffer
+
+    (let ((test-line "src_emacs-lisp[ :results scaler ]{ \"x\"  }"))
+      (insert test-line)
+      (goto-char (point-min)) (org-ctrl-c-ctrl-c)
+      (should (string= (concat test-line " =x=")
+		       (buffer-substring-no-properties (point-min) (point-max)))))))
+
+(ert-deftest test-org-babel/inline-src_blk-results-verbatim ()
+  (with-temp-buffer
+
+    (let ((test-line "src_emacs-lisp[ :results verbatim ]{ \"x\"  }"))
+      (insert test-line)
+      (goto-char (point-min)) (org-ctrl-c-ctrl-c)
+      (should (string= (concat test-line " =\"x\"=")
+		       (buffer-substring-no-properties (point-min) (point-max)))))))
+
 (provide 'test-ob)
 
 ;;; test-ob ends here
-- 
1.7.3.4


[-- Attachment #3: Type: text/plain, Size: 96 bytes --]


Best, Martyn 
 
>
> Thanks -- Eric
>
>>
>> Regards
>>
>> Martyn
>>
>>>
>>> Best -- Eric
>>
>>


  reply	other threads:[~2011-09-08 16:18 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-04 16:35 [babel] Collection of code block snippets Eric Schulte
2011-09-05  8:29 ` Rainer M Krug
2011-09-05 16:54   ` Eric Schulte
2011-09-06  8:26     ` Rainer M Krug
2011-09-06 15:16       ` Eric Schulte
2011-09-06 15:35       ` Martyn Jago
2011-09-06 17:13         ` Eric Schulte
2011-09-07  8:19           ` Rainer M Krug
2011-09-07 18:24             ` Martyn Jago
2011-09-07 18:15           ` Martyn Jago
2011-09-08 15:16             ` Eric Schulte
2011-09-08 16:18               ` Martyn Jago [this message]
2011-09-08 17:44                 ` Eric Schulte
2011-09-08 18:34                   ` Martyn Jago
2011-09-08 22:03                     ` Martyn Jago
2011-09-09  8:22                       ` Rainer M Krug
2011-09-09 10:58                         ` Martyn Jago
2011-09-09 11:11                       ` Martyn Jago
2011-09-09 20:39                         ` Eric Schulte
2011-09-10  8:09                           ` Martyn Jago
2011-09-11 20:57                             ` Eric Schulte
2011-09-14  4:49                             ` David Maus
2011-09-14 12:10                               ` Martyn Jago
2011-09-09 19:19                       ` Eric Schulte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2wrdjc8jb.fsf@btinternet.com \
    --to=martyn.jago@btinternet.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).