Module Vhd_format.Patterns

Interesting set of I/O patterns for testing a vhd implementation

val sizes : int64 list

Interesting vhd virtual sizes

type choice =
  1. | First
    (*

    edge case: first entry

    *)
  2. | Last
    (*

    edge case: last entry

    *)

Places within an array (either a sector bitmap or BAT)

type position = {
  1. block : choice;
  2. sector : choice;
}

Position to read or write in a vhd

type operation =
  1. | Create of int64
    (*

    Create a vhd of a given size; open file for I/O

    *)
  2. | Snapshot
    (*

    Snapshot current file; open new file for I/O

    *)
  3. | Write of position * string
    (*

    Write copies of a given string over a specific sector

    *)

Individual step

type program = operation list

A program is a linear sequence of operations, like a finite execution trace.

val string_of_program : program -> string

A short string useful as a test label

val descr_of_program : program -> string list

Printable program "listing"

val programs : program list

All definied "interesting" programs