Skip to content

Commit

Permalink
Add Lin don't crash test for Weak
Browse files Browse the repository at this point in the history
  • Loading branch information
jmid committed Mar 13, 2024
1 parent 31d8e4d commit 691d9ae
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/weak/dune
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,19 @@
(libraries qcheck-stm.sequential qcheck-stm.domain)
(action (run %{test} --verbose))
)

(test
(name lin_tests)
(modules lin_tests)
(package multicoretests)
(libraries qcheck-lin.domain)
(action (run %{test} --verbose))
)

(test
(name lin_tests_hashset)
(modules lin_tests_hashset)
(package multicoretests)
(libraries qcheck-lin.domain)
(action (run %{test} --verbose))
)
29 changes: 29 additions & 0 deletions src/weak/lin_tests.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
(* ********************************************************************** *)
(* Lin Tests [Weak] *)
(* ********************************************************************** *)
module WConf =
struct
type t = int64 Weak.t

let weak_size = 16
let init () = Weak.create weak_size
let cleanup _ = ()

open Lin
let int,int64 = nat_small,nat64_small
let api =
[ val_ "Weak.length" Weak.length (t @-> returning int);
val_ "Weak.set" Weak.set (t @-> int @-> option int64 @-> returning_or_exc unit);
val_ "Weak.get" Weak.get (t @-> int @-> returning_or_exc (option int64));
val_ "Weak.get_copy" Weak.get_copy (t @-> int @-> returning_or_exc (option int64));
val_ "Weak.check" Weak.check (t @-> int @-> returning_or_exc bool);
val_ "Weak.fill" Weak.fill (t @-> int @-> int @-> option int64 @-> returning_or_exc unit);
(*val blit : 'a t -> int -> 'a t -> int -> int -> unit *)
]
end

module WT_domain = Lin_domain.Make(WConf)
;;
QCheck_base_runner.run_tests_main [
WT_domain.dont_crash_test ~count:1000 ~name:"Lin Weak don't crash test with Domain";
]
34 changes: 34 additions & 0 deletions src/weak/lin_tests_hashset.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
(* ********************************************************************** *)
(* Lin tests of [Weak Hashset] *)
(* ********************************************************************** *)
module WHSConf =
struct
module WHS = Weak.Make(String)
type t = WHS.t
let weak_size = 16
let init () = WHS.create weak_size
let cleanup t = WHS.clear t

open Lin
let string = string_small
let api =
[ val_ "Weak.S.clear" WHS.clear (t @-> returning unit);
val_ "Weak.S.merge" WHS.merge (t @-> string @-> returning_or_exc string);
val_ "Weak.S.add" WHS.add (t @-> string @-> returning_or_exc unit);
val_ "Weak.S.remove" WHS.remove (t @-> string @-> returning_or_exc unit);
val_ "Weak.S.find" WHS.find (t @-> string @-> returning_or_exc string);
val_ "Weak.S.find_opt" WHS.find_opt (t @-> string @-> returning_or_exc (option string));
val_ "Weak.S.find_all" WHS.find_all (t @-> string @-> returning_or_exc (list string));
val_ "Weak.S.mem" WHS.mem (t @-> string @-> returning_or_exc bool);
(*val iter : (data -> unit) -> t -> unit*)
(*val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a*)
val_ "Weak.S.count" WHS.count (t @-> returning int);
(*val stats : t -> int * int * int * int * int * int*)
]
end

module WHST_domain = Lin_domain.Make(WHSConf)
;;
QCheck_base_runner.run_tests_main [
WHST_domain.dont_crash_test ~count:1000 ~name:"Lin Weak HashSet don't crash test with Domain";
]

0 comments on commit 691d9ae

Please sign in to comment.