## Test Utilities Test Utilities — Utilities to write tests more easily. |

## Synopsis

    #define             cut_take_string                     (string)
    #define             cut_take_printf                     (format, ...)
    #define             cut_take_string_array               (strings)
    #define             cut_take_diff                       (from, to)
    #define             cut_append_diff                     (message, from, to)
    #define             cut_inspect_string_array            (strings)
    #define             cut_set_fixture_data_dir            (path, ...)
    #define             cut_build_fixture_data_path         (path, ...)
    #define             cut_get_fixture_data_string         (path, ...)
    #define             cut_remove_path                     (path, ...)

## Description

To write tests, you need to write codes that set up/tear down test environment, prepare expected and actual values and so on. Cutter provides test utilities to you write your tests more easily.

The utilities work without GLib support.

## Details

### cut_take_string()

    #define             cut_take_string(string)

Passes ownership of the string to Cutter and returns a string that has same contents of `string`.

`string` : | the string to be owned by Cutter.

### cut_take_printf()

    #define             cut_take_printf(format, ...)

Formats a string like `printf()` but the formatted string is owned by Cutter.

`format` : | the message format. See the `printf()` documentation.
`...` : | the parameters to insert into the format string.

### cut_take_string_array()

    #define             cut_take_string_array(strings)

Passes ownership of the array of strings (char **) to Cutter and returns an array of strings that has same contents of `strings`.

`strings` : | the array of strings to be owned by Cutter.

### cut_take_diff()

    #define             cut_take_diff(from, to)

Computes diff between `from` and `to` that is owned by Cutter.

`from` : | the original string.
`to` : | the modified string.

### cut_append_diff()

    #define             cut_append_diff(message, from, to)

Computes diff between `from` and `to` and append the diff to `message`. Returned string is owned by Cutter.

`message` : | the string to be appended diff.
`from` : | the original string.
`to` : | the modified string.

Since 1.0.3

### cut_inspect_string_array()

    #define             cut_inspect_string_array(strings)

Formats `strings` as human readable string that is owned by Cutter.

`strings` : | the array of strings to be inspected.

### cut_set_fixture_data_dir()

    #define             cut_set_fixture_data_dir(path, ...)

Set fixture data directory that is used by `cut_get_fixture_data_string()` and so on.

`path` : | a first element of the path to the fixture data directory.
`...` : | remaining elements in path.

Since 1.0.2

### cut_build_fixture_data_path()

    #define             cut_build_fixture_data_path(path, ...)

Builds a path to the fixture data. If `path` is relative path, the path is handled as a relative path from a directory that is specified by `cut_set_fixture_data_dir()` or the current directory.

`path` : | a first element of the path to the fixture data.
`...` : | remaining elements in path.

Since 1.0.2

### cut_get_fixture_data_string()

    #define             cut_get_fixture_data_string(path, ...)

Reads the fixture data at "`path`/..." and returns it as a string that is owned by Cutter. The description of `cut_build_fixture_data_path()` shows how the fixture data path is determined.

`path` : | a first element of the path to the fixture data.
`...` : | remaining elements in path.

Since 1.0.2

### cut_remove_path()

    #define             cut_remove_path(path, ...)

Removes `path` and it's children recursively. It doesn't report any errors.

`path` : | a first element of the path to be removed.
`...` : | remaining elements in path.

Since 1.0.2