package b0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=e9aa779e66c08fc763019f16d4706f465d16c05d6400b58fbd0313317ef33ddea51952e2b058db28e65f7ddb7012f328c8bf02d8f1da17bb543348541a2587f0
doc/b0.std/B0_testing/Snap/index.html
Module B0_testing.SnapSource
Snapshots.
These combinators can be used to snapshot values. They are based on the Test.snap primitive.
While we wait for implicit source location support to be integrated in the compiler they are expected to be used as follows:
Snap.bool (Bool.not true) @@ __POS_OF__ false;
Snap.string ("a" ^ "b") @@ __POS_OF__
"ab";Exceptions
val raise :
?ret:'a Test.T.t ->
?exn:exn Test.T.t ->
?diff:exn Test.Diff.t ->
?__POS__:Test.loc ->
(unit -> 'a) ->
exn Test.Snapshot.t ->
unitraise f snapshots the exception raised by f by printing it using exn (defaults to Exceptions). The combinators fails if no exception is raised by f.
Base types
unit is Test.snap Test.T.unit.
bool is Test.snap Test.T.bool.
int is Test.snap Test.T.int. Warning. Depending on their magnitude integer snapshots may not be portable across 64-bit and 32-bit platforms.
int32 is Test.snap Test.T.int32
uint32 is Test.snap Test.T.uint32
int64 is Test.snap Test.T.int64
uint64 is Test.snap Test.T.uint64
nativeint is Test.snap Test.T.nativeint
nativeuint is Test.snap Test.T.nativeuint
float is Test.snap Test.T.float. N.B. not exactly.
hex_float is Test.snap Test.T.hex_float N.B. not exactly.
Character and strings
Note. The string snapshoters have a special substitution function that respects quoted literals.
char is Test.snap Test.T.char.
lines uses Test.T.lines to produce the diffs.
Parametric types
result left right is Test.snap (Test.T.either left right)
result ok is Test.snap (Test.T.result ok)
result ok error is Test.snap (Test.T.result ok error)
list elt is Test.snap (Test.T.list elt)
array elt is Test.snap (Test.T.array elt)
pair fst snd is Test.snap (Test.T.pair fst snd)
t3 v0 v1 v2 is Test.snap for triplets.
val t4 :
'a Test.T.t ->
'b Test.T.t ->
'c Test.T.t ->
'd Test.T.t ->
('a * 'b * 'c * 'd) Test.snapt4 is Test.snap for quadruplets.
val t5 :
'a Test.T.t ->
'b Test.T.t ->
'c Test.T.t ->
'd Test.T.t ->
'e Test.T.t ->
('a * 'b * 'c * 'd * 'e) Test.snapt5 is Test.snap for quintuplets.
val t6 :
'a Test.T.t ->
'b Test.T.t ->
'c Test.T.t ->
'd Test.T.t ->
'e Test.T.t ->
'f Test.T.t ->
('a * 'b * 'c * 'd * 'e * 'f) Test.snapt6 is Test.snap for sextuplets.
Command executions
val stdout :
?__POS__:Test.loc ->
?diff:string Test.Diff.t ->
?env:B0_std.Os.Env.assignments ->
?cwd:B0_std.Fpath.t ->
?stdin:B0_std.Os.Cmd.stdi ->
?stderr:[ `Stdo of B0_std.Os.Cmd.stdo | `Out ] ->
trim:bool ->
B0_std.Cmd.t ->
string Test.Snapshot.t ->
unitstdout cmd snaphosts the standard output of the execution (see Os.run_status_out). The function Test.fails if there's any sort of error. The status is ignored (FIXME do something more sensitive we could assert it)).