emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] [BABEL,PATCH] cpp->c++-mode, ob-C mode tests


From: Litvinov Sergey
Subject: [O] [BABEL,PATCH] cpp->c++-mode, ob-C mode tests
Date: Wed, 03 Aug 2011 22:08:56 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

The first patch maps cpp language code to c++-mode. The second patch
adds tests for ob-C.
>From d0bc3554ec70138245289f1fabf78e2e86436c78 Mon Sep 17 00:00:00 2001
From: Sergey Litvinov <address@hidden>
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 <address@hidden>
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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]