emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [BABEL,PATCH] cpp->c++-mode, ob-C mode tests
@ 2011-08-03 20:08 Litvinov Sergey
  2011-08-05 17:32 ` Eric Schulte
  0 siblings, 1 reply; 2+ messages in thread
From: Litvinov Sergey @ 2011-08-03 20:08 UTC (permalink / raw)
  To: emacs-orgmode

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

The first patch maps cpp language code to c++-mode. The second patch
adds tests for ob-C.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Map-cpp-to-c-mode.patch --]
[-- Type: text/x-diff, Size: 939 bytes --]

From d0bc3554ec70138245289f1fabf78e2e86436c78 Mon Sep 17 00:00:00 2001
From: Sergey Litvinov <slitvinov@gmail.com>
Date: Wed, 3 Aug 2011 22:02:43 +0200
Subject: [PATCH 1/2] Map "cpp" to c++-mode

---
 lisp/org-src.el |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lisp/org-src.el b/lisp/org-src.el
index 30ffc34..094ec09 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -155,7 +155,7 @@ but which mess up the display of a snippet in Org exported files.")
 (defcustom org-src-lang-modes
   '(("ocaml" . tuareg) ("elisp" . emacs-lisp) ("ditaa" . artist)
     ("asymptote" . asy) ("dot" . fundamental) ("sqlite" . sql)
-    ("calc" . fundamental) ("C" . c))
+    ("calc" . fundamental) ("C" . c) ("cpp" . c++))
   "Alist mapping languages to their major mode.
 The key is the language name, the value is the string that should
 be inserted as the name of the major mode.  For many languages this is
-- 
1.7.1


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-Add-tests-for-ob-C.el.patch --]
[-- Type: text/x-diff, Size: 3911 bytes --]

From fba6eef6944766e675e4abe1d11d347b9a728031 Mon Sep 17 00:00:00 2001
From: Sergey Litvinov <slitvinov@gmail.com>
Date: Wed, 3 Aug 2011 22:03:19 +0200
Subject: [PATCH 2/2] Add tests for ob-C.el

---
 testing/README.org             |    1 +
 testing/examples/ob-C-test.org |   44 ++++++++++++++++++++++++++++++++++++++++
 testing/lisp/test-ob-C.el      |   43 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 88 insertions(+), 0 deletions(-)
 create mode 100644 testing/examples/ob-C-test.org
 create mode 100644 testing/lisp/test-ob-C.el

diff --git a/testing/README.org b/testing/README.org
index 2f16a55..cb408db 100644
--- a/testing/README.org
+++ b/testing/README.org
@@ -77,6 +77,7 @@ First tangle this file out to your desktop.
   (require 'org-id)
   (org-id-update-id-locations
    (list (concat org-dir "/testing/examples/babel.org")
+         (concat org-dir "/testing/examples/ob-C-test.org")
          (concat org-dir "/testing/examples/normal.org")
          (concat org-dir "/testing/examples/ob-awk-test.org")
          (concat org-dir "/testing/examples/ob-fortran-test.org")
diff --git a/testing/examples/ob-C-test.org b/testing/examples/ob-C-test.org
new file mode 100644
index 0000000..4721c96
--- /dev/null
+++ b/testing/examples/ob-C-test.org
@@ -0,0 +1,44 @@
+#+Title: a collection of examples for ob-C tests
+#+OPTIONS: ^:nil
+* Simple tests
+  :PROPERTIES:
+  :ID:       fa6db330-e960-4ea2-ac67-94bb845b8577
+  :END:
+#+source: simple
+#+begin_src cpp :includes "<iostream>" :results silent
+  std::cout << 42;
+  return 0;
+#+end_src 
+
+#+source: integer_var
+#+begin_src cpp :var q=12 :includes "<iostream>" :results silent
+  std::cout << q;
+  return 0;
+#+end_src
+
+#+source: two_var
+#+begin_src cpp :var q=12 :var p=10 :includes "<iostream>" :results silent
+  std::cout << p+q;
+  return 0;
+#+end_src
+
+#+source: string_var
+#+begin_src cpp :var q="word" :includes '(<iostream> <cstring>) :results silent
+  std::cout << q << ' ' << strlen(q);
+  return 0;
+#+end_src
+
+#+source: define
+#+begin_src cpp :defines N 42  :includes "<iostream>" :results silent
+  std::cout << N;
+  return 0;
+#+end_src
+
+* Array
+#+source: array
+#+begin_src cpp :includes "<iostream>" :results vector :results silent
+  for (int i=1; i<3; i++) {
+    std::cout << i << '\n';
+  }
+  return 0;
+#+end_src
diff --git a/testing/lisp/test-ob-C.el b/testing/lisp/test-ob-C.el
new file mode 100644
index 0000000..5ee7bec
--- /dev/null
+++ b/testing/lisp/test-ob-C.el
@@ -0,0 +1,43 @@
+(require 'ob-C)
+ 
+(ert-deftest ob-C/assert ()
+  (should t))
+
+(ert-deftest ob-C/simple-program ()
+  "Hello world program."
+  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
+    (org-babel-next-src-block)
+    (should (= 42 (org-babel-execute-src-block)))))
+
+(ert-deftest ob-C/integer-var ()
+  "Test of an integer variable."
+  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
+    (org-babel-next-src-block 2)
+    (should (= 12 (org-babel-execute-src-block)))))
+
+(ert-deftest ob-C/two-integer-var ()
+  "Test of two input variables"
+  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
+    (org-babel-next-src-block 3)
+    (should (= 22 (org-babel-execute-src-block)))))
+
+(ert-deftest ob-C/string-var ()
+  "Test of a string input variable"
+  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
+    (org-babel-next-src-block 4)
+    (should (equal "word 4" (org-babel-execute-src-block)))))
+
+(ert-deftest ob-C/preprocessor ()
+  "Test of a string variable"
+  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
+    (org-babel-next-src-block 5)
+    (should (= 42 (org-babel-execute-src-block)))))
+
+(ert-deftest ob-C/table ()
+  "Test of a table output"
+  (org-test-at-id "2df1ab83-3fa3-462a-a1f3-3aef6044a874"
+    (org-babel-next-src-block)
+    (should (equal '((1) (2)) (org-babel-execute-src-block)))))
+
+;;; test-ob-C.el ends here
+ 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [BABEL,PATCH] cpp->c++-mode, ob-C mode tests
  2011-08-03 20:08 [BABEL,PATCH] cpp->c++-mode, ob-C mode tests Litvinov Sergey
@ 2011-08-05 17:32 ` Eric Schulte
  0 siblings, 0 replies; 2+ messages in thread
From: Eric Schulte @ 2011-08-05 17:32 UTC (permalink / raw)
  To: Litvinov Sergey; +Cc: emacs-orgmode

Litvinov Sergey <slitvinov@gmail.com> writes:

> The first patch maps cpp language code to c++-mode. The second patch
> adds tests for ob-C.
>

The first patch is applied, and the second patch will be applied once
your FSF assignment goes through.

Many thanks for these contributions!

-- Eric

>
> From d0bc3554ec70138245289f1fabf78e2e86436c78 Mon Sep 17 00:00:00 2001
> From: Sergey Litvinov <slitvinov@gmail.com>
> Date: Wed, 3 Aug 2011 22:02:43 +0200
> Subject: [PATCH 1/2] Map "cpp" to c++-mode
>
> ---
>  lisp/org-src.el |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/lisp/org-src.el b/lisp/org-src.el
> index 30ffc34..094ec09 100644
> --- a/lisp/org-src.el
> +++ b/lisp/org-src.el
> @@ -155,7 +155,7 @@ but which mess up the display of a snippet in Org exported files.")
>  (defcustom org-src-lang-modes
>    '(("ocaml" . tuareg) ("elisp" . emacs-lisp) ("ditaa" . artist)
>      ("asymptote" . asy) ("dot" . fundamental) ("sqlite" . sql)
> -    ("calc" . fundamental) ("C" . c))
> +    ("calc" . fundamental) ("C" . c) ("cpp" . c++))
>    "Alist mapping languages to their major mode.
>  The key is the language name, the value is the string that should
>  be inserted as the name of the major mode.  For many languages this is
> -- 
> 1.7.1
>
>
>
> From fba6eef6944766e675e4abe1d11d347b9a728031 Mon Sep 17 00:00:00 2001
> From: Sergey Litvinov <slitvinov@gmail.com>
> Date: Wed, 3 Aug 2011 22:03:19 +0200
> Subject: [PATCH 2/2] Add tests for ob-C.el
>
> ---
>  testing/README.org             |    1 +
>  testing/examples/ob-C-test.org |   44 ++++++++++++++++++++++++++++++++++++++++
>  testing/lisp/test-ob-C.el      |   43 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 88 insertions(+), 0 deletions(-)
>  create mode 100644 testing/examples/ob-C-test.org
>  create mode 100644 testing/lisp/test-ob-C.el
>
> diff --git a/testing/README.org b/testing/README.org
> index 2f16a55..cb408db 100644
> --- a/testing/README.org
> +++ b/testing/README.org
> @@ -77,6 +77,7 @@ First tangle this file out to your desktop.
>    (require 'org-id)
>    (org-id-update-id-locations
>     (list (concat org-dir "/testing/examples/babel.org")
> +         (concat org-dir "/testing/examples/ob-C-test.org")
>           (concat org-dir "/testing/examples/normal.org")
>           (concat org-dir "/testing/examples/ob-awk-test.org")
>           (concat org-dir "/testing/examples/ob-fortran-test.org")
> diff --git a/testing/examples/ob-C-test.org b/testing/examples/ob-C-test.org
> new file mode 100644
> index 0000000..4721c96
> --- /dev/null
> +++ b/testing/examples/ob-C-test.org
> @@ -0,0 +1,44 @@
> +#+Title: a collection of examples for ob-C tests
> +#+OPTIONS: ^:nil
> +* Simple tests
> +  :PROPERTIES:
> +  :ID:       fa6db330-e960-4ea2-ac67-94bb845b8577
> +  :END:
> +#+source: simple
> +#+begin_src cpp :includes "<iostream>" :results silent
> +  std::cout << 42;
> +  return 0;
> +#+end_src 
> +
> +#+source: integer_var
> +#+begin_src cpp :var q=12 :includes "<iostream>" :results silent
> +  std::cout << q;
> +  return 0;
> +#+end_src
> +
> +#+source: two_var
> +#+begin_src cpp :var q=12 :var p=10 :includes "<iostream>" :results silent
> +  std::cout << p+q;
> +  return 0;
> +#+end_src
> +
> +#+source: string_var
> +#+begin_src cpp :var q="word" :includes '(<iostream> <cstring>) :results silent
> +  std::cout << q << ' ' << strlen(q);
> +  return 0;
> +#+end_src
> +
> +#+source: define
> +#+begin_src cpp :defines N 42  :includes "<iostream>" :results silent
> +  std::cout << N;
> +  return 0;
> +#+end_src
> +
> +* Array
> +#+source: array
> +#+begin_src cpp :includes "<iostream>" :results vector :results silent
> +  for (int i=1; i<3; i++) {
> +    std::cout << i << '\n';
> +  }
> +  return 0;
> +#+end_src
> diff --git a/testing/lisp/test-ob-C.el b/testing/lisp/test-ob-C.el
> new file mode 100644
> index 0000000..5ee7bec
> --- /dev/null
> +++ b/testing/lisp/test-ob-C.el
> @@ -0,0 +1,43 @@
> +(require 'ob-C)
> + 
> +(ert-deftest ob-C/assert ()
> +  (should t))
> +
> +(ert-deftest ob-C/simple-program ()
> +  "Hello world program."
> +  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
> +    (org-babel-next-src-block)
> +    (should (= 42 (org-babel-execute-src-block)))))
> +
> +(ert-deftest ob-C/integer-var ()
> +  "Test of an integer variable."
> +  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
> +    (org-babel-next-src-block 2)
> +    (should (= 12 (org-babel-execute-src-block)))))
> +
> +(ert-deftest ob-C/two-integer-var ()
> +  "Test of two input variables"
> +  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
> +    (org-babel-next-src-block 3)
> +    (should (= 22 (org-babel-execute-src-block)))))
> +
> +(ert-deftest ob-C/string-var ()
> +  "Test of a string input variable"
> +  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
> +    (org-babel-next-src-block 4)
> +    (should (equal "word 4" (org-babel-execute-src-block)))))
> +
> +(ert-deftest ob-C/preprocessor ()
> +  "Test of a string variable"
> +  (org-test-at-id "fa6db330-e960-4ea2-ac67-94bb845b8577"
> +    (org-babel-next-src-block 5)
> +    (should (= 42 (org-babel-execute-src-block)))))
> +
> +(ert-deftest ob-C/table ()
> +  "Test of a table output"
> +  (org-test-at-id "2df1ab83-3fa3-462a-a1f3-3aef6044a874"
> +    (org-babel-next-src-block)
> +    (should (equal '((1) (2)) (org-babel-execute-src-block)))))
> +
> +;;; test-ob-C.el ends here
> + 

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-08-05 17:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-03 20:08 [BABEL,PATCH] cpp->c++-mode, ob-C mode tests Litvinov Sergey
2011-08-05 17:32 ` Eric Schulte

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).