From 79dbf5e84349c0ab1462052288741601e98e72f0 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 20 May 2013 21:44:17 +0200 Subject: [PATCH] some tests for PiCalculus --- tests/run_tests.ml | 1 + tests/test_PiCalculus.ml | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 tests/test_PiCalculus.ml diff --git a/tests/run_tests.ml b/tests/run_tests.ml index cd2b3a6a..c1103122 100644 --- a/tests/run_tests.ml +++ b/tests/run_tests.ml @@ -6,6 +6,7 @@ let suite = "all_tests" >::: [ Test_pHashtbl.suite; Test_PersistentHashtbl.suite; + Test_PiCalculus.suite; Test_splayMap.suite; Test_bij.suite; Test_leftistheap.suite; diff --git a/tests/test_PiCalculus.ml b/tests/test_PiCalculus.ml new file mode 100644 index 00000000..6d20c9b7 --- /dev/null +++ b/tests/test_PiCalculus.ml @@ -0,0 +1,34 @@ + +open OUnit + +open PiCalculus +module Pi = PiCalculus + +let test_message () = + let r = ref 0 in + let p1 = new_ + (fun c -> + send_one c 1 stop ||| + receive_one c (fun x -> r := x; stop)) + in + Pi.run p1; + OUnit.assert_equal ~printer:string_of_int 1 !r; + () + +let test_replicate () = + let a = ref 0 in + let b = ref 0 in + let p1 = new_ + (fun c -> + replicate (escape (fun () -> incr a; send_one c !a stop)) ||| + receive_one c (fun _ -> receive_one c (fun x -> b := x; stop))) + in + run p1; + OUnit.assert_equal ~printer:string_of_int 2 !b; + () + +let suite = + "test_PiCalculus" >::: + [ "test_message" >:: test_message; + "test_replicate" >:: test_replicate; + ]