Browse Source

cpp->c++-mode, ob-C mode tests

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

>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
Litvinov Sergey 13 years ago
parent
commit
9154641593
3 changed files with 88 additions and 0 deletions
  1. 1 0
      testing/README.org
  2. 44 0
      testing/examples/ob-C-test.org
  3. 43 0
      testing/lisp/test-ob-C.el

+ 1 - 0
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")

+ 44 - 0
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

+ 43 - 0
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
+