OSDN Git Service

[ADD] Add node module
authormzp <mzpppp@gmail.com>
Mon, 17 Nov 2008 11:29:00 +0000 (20:29 +0900)
committermzp <mzpppp@gmail.com>
Mon, 17 Nov 2008 11:29:00 +0000 (20:29 +0900)
node = something with filename/lineno.

src/OMakefile
test/.ocamlinit
test/OMakefile
test/test_node.ml [new file with mode: 0644]
test/test_node.txt [new file with mode: 0644]
test/testtbl.ml [deleted file]

index 0e42eb6..b84da95 100644 (file)
@@ -57,6 +57,7 @@ FILES[] =
        sexp
        pSet
        tuple
+       node
 
 PROGRAM = habc-scm
 # OCAML_OTHER_LIBS +=
index 71e1605..6abe472 100644 (file)
@@ -1,4 +1,5 @@
 #directory "../src";;
 #use "../src/.ocamlinit";;
 #require "oUnit";;
-#load "util.cmo";;
\ No newline at end of file
+#load "util.cmo";;
+
index d1fcef3..2e1b1be 100644 (file)
@@ -46,7 +46,6 @@ OCAMLDEPFLAGS += $(OCAMLPPFLAGS)
 #
 
 FILES[] =
-       testtbl
        util
        test_asm
        test_ast
@@ -63,6 +62,7 @@ FILES[] =
        test_sexp
        test_abc
        test_tuple
+       test_node
 
 PROGRAM = runner
 OCAML_LIBS += ../src/habc-scm
diff --git a/test/test_node.ml b/test/test_node.ml
new file mode 100644 (file)
index 0000000..45fa9d0
--- /dev/null
@@ -0,0 +1,53 @@
+open Base
+open OUnit
+open Node
+
+let string _ =
+  of_string "a
+b
+c
+"
+
+let file _ =
+  of_file "test_node.txt"
+    
+let rec ok xs stream =
+  match xs with
+      [] ->
+       begin try
+         Stream.empty stream;
+         assert_bool "" true
+       with Stream.Failure ->
+         assert_failure "not empty"
+       end
+    | y::ys ->
+       OUnit.assert_equal ~printer:Std.dump y @@ Stream.next stream;
+       ok ys stream
+
+let empty = {
+  value    = '-';
+  filename = "<string>";
+  lineno   = -1
+}
+
+let _ =
+  ("node module" >:::
+     ["string" >::
+       (fun () ->
+          ok [{empty with value= 'a'; lineno=0};
+              {empty with value='\n'; lineno=0};
+              {empty with value= 'b'; lineno=1};
+              {empty with value='\n'; lineno=1};
+              {empty with value= 'c'; lineno=2};
+              {empty with value='\n'; lineno=2}; ] @@
+            string ());
+      "file" >::
+       (fun () ->
+          ok [{value= 'a'; filename="test_node.txt"; lineno=0};
+              {value='\n'; filename="test_node.txt"; lineno=0};
+              {value= 'b'; filename="test_node.txt"; lineno=1};
+              {value='\n'; filename="test_node.txt"; lineno=1};
+              {value= 'c'; filename="test_node.txt"; lineno=2};
+              {value='\n'; filename="test_node.txt"; lineno=2}; ] @@
+            file ())
+     ]) +> run_test_tt
diff --git a/test/test_node.txt b/test/test_node.txt
new file mode 100644 (file)
index 0000000..de98044
--- /dev/null
@@ -0,0 +1,3 @@
+a
+b
+c
diff --git a/test/testtbl.ml b/test/testtbl.ml
deleted file mode 100644 (file)
index 4c3a79a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-open OUnit
-let table =
-  Hashtbl.create 10
-
-let safe_find t key =
-  try
-    Hashtbl.find t key
-  with Not_found ->
-    []
-
-let add fname label fn = 
-  let new_test = 
-    label >:: fn in
-  Hashtbl.replace table fname (new_test::safe_find table fname)
-  
-let keys t =
-  Hashtbl.fold (fun key _ xs -> key::xs) t []
-
-let all_tests () =
-  let fnames =
-    List.sort compare (keys table) in
-  let tests =
-    List.map (fun fname->  fname  >::: List.rev (Hashtbl.find table fname)) fnames in
-    TestList tests
-  
-let run_test () =
-  run_test_tt_main (all_tests ())