package b0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=e9aa779e66c08fc763019f16d4706f465d16c05d6400b58fbd0313317ef33ddea51952e2b058db28e65f7ddb7012f328c8bf02d8f1da17bb543348541a2587f0
doc/b0.std/B0_testing/Snap/index.html
Module B0_testing.Snap
Source
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 ->
unit
raise 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.snap
t4
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.snap
t5
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.snap
t6
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 ->
unit
stdout 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)).