Module Test.Patch

Patching text and files.

This is used by snapshot testing, see Substitutions. Normally you don't need to use that.

type subst = {
  1. first : int;
    (*

    First byte of range to replace.

    *)
  2. last : int;
    (*

    Last byte of range to replace.

    *)
  3. subst : string;
    (*

    The data substituted in the range.

    *)
}

The type for text substitutions.

type t

The type for text file patches.

val make : src:string -> t

make ~src is an empty patch on source text src.

val is_empty : t -> bool

is_empty p is true iff p has no substitutions.

val src : t -> string

src p is the source text to patch.

val substs : t -> subst list

substs p are the substitutions to perform on p.

val add_subst : t -> subst -> t

add_subst p s adds substitution s to patch p.

val apply : t -> string

apply p is the text resulting from applying the substition of p to src p.

Patching files

val get : B0_std.Fpath.t -> t option

get file is the patch for file file. This is None only if file did not exist, in which case an error messages has been logged. The first time you lookup file you get an empty patch.

val update : B0_std.Fpath.t -> t -> unit

update file p updates the patch of file file to p.

val write_files : unit -> unit

write_files () writes the patched files. Note. if you are using Test.main, this is done automatically.

Run state

val src_root : unit -> B0_std.Fpath.t option

src_root () if present it prefixed to Test.loc path with Fpath.append for looking up files.