検証

検証 — あなたのプログラムが期待通りに動作しているかを検証します。

概要

void                cut_assert                          (cut_boolean expression,
                                                         ...);
void                cut_assert_true                     (cut_boolean expression,
                                                         ...);
void                cut_assert_false                    (cut_boolean expression,
                                                         ...);
void                cut_assert_null                     (const void *expression,
                                                         ...);
void                cut_assert_null_string              (const char *string,
                                                         ...);
void                cut_assert_not_null                 (const void *expression,
                                                         ...);
void                cut_assert_equal_int                (int expected,
                                                         int actual,
                                                         ...);
void                cut_assert_equal_uint               (unsigned int expected,
                                                         unsigned int actual,
                                                         ...);
void                cut_assert_equal_double             (double expected,
                                                         double error,
                                                         double actual,
                                                         ...);
void                cut_assert_equal_string             (const char *expected,
                                                         const char *actual,
                                                         ...);
void                cut_assert_equal_string_with_free   (const char *expected,
                                                         const char *actual,
                                                         ...);
void                cut_assert_equal_string_or_null     (const char *expected,
                                                         const char *actual,
                                                         ...);
void                cut_assert_equal_memory             (const void *expected,
                                                         size_t expected_size,
                                                         const void *actual,
                                                         size_t actual_size,
                                                         ...);
void                cut_assert_equal_string_array       (char **expected,
                                                         char **actual,
                                                         ...);
void                cut_assert_equal_string_array_with_free
                                                        (char **expected,
                                                         char **actual,
                                                         ...);
#define             cut_assert_operator                 (lhs,
                                                         operator,
                                                         rhs,
                                                         ...)
#define             cut_assert_operator_int             (lhs,
                                                         operator,
                                                         rhs,
                                                         ...)
#define             cut_assert_operator_uint            (lhs,
                                                         operator,
                                                         rhs,
                                                         ...)
#define             cut_assert_operator_double          (lhs,
                                                         operator,
                                                         rhs,
                                                         ...)
#define             cut_assert_equal                    (function,
                                                         expected,
                                                         actual,
                                                         ...)
void                cut_assert_errno                    (...);
void                cut_assert_file_exist               (const char *path,
                                                         ...);
void                cut_assert_path_exist               (const char *path,
                                                         ...);
void                cut_assert_path_not_exist           (const char *path,
                                                         ...);
void                cut_assert_match                    (const char *pattern,
                                                         const char *actual,
                                                         ...);
void                cut_assert_match_with_free          (const char *pattern,
                                                         const char *actual,
                                                         ...);
void                cut_assert_equal_pointer            (const void *expected,
                                                         const void *actual,
                                                         ...);
void                cut_assert_equal_fixture_data_string
                                                        (const char *expected,
                                                         const void *path,
                                                         ...);
void                cut_error                           (const char *format,
                                                         ...);
void                cut_error_errno                     (...);
void                cut_fail                            (const char *format,
                                                         ...);
void                cut_pend                            (const char *format,
                                                         ...);
void                cut_pending                         (const char *format,
                                                         ...);
void                cut_notify                          (const char *format,
                                                         ...);
void                cut_omit                            (const char *format,
                                                         ...);

説明

あなたのプログラムが期待通りに動作しているかを検証するために、期待した値が得られていることを検証したい箇所でcut_assert_XXX()を使います。

例:

1
cut_assert_equal_int(3, 1 + 2);

詳細

cut_assert ()

void                cut_assert                          (cut_boolean expression,
                                                         ...);

expressionが0でもNULLでもないとパスします。

例:

1
2
3
char *string;
string = malloc(16);
cut_assert(string);

1
2
3
MyObject *object;
object = my_object_new();
cut_assert(object, cut_message("my_object_new() should not be failed"));

expression :

チェックする式。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_true ()

void                cut_assert_true                     (cut_boolean expression,
                                                         ...);

expressionCUT_TRUEのとき(0でもNULLでもないとき)パスします。

expression :

チェックする式。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

0.9から


cut_assert_false ()

void                cut_assert_false                    (cut_boolean expression,
                                                         ...);

expressionが0またはNULLのときパスします。

expression :

チェックする式。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

0.9から


cut_assert_null ()

void                cut_assert_null                     (const void *expression,
                                                         ...);

expressionNULLのときパスします。

expression :

チェックする式。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_null_string ()

void                cut_assert_null_string              (const char *string,
                                                         ...);

stringNULLのときパスします。

string :

チェックする文字列。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

0.3から


cut_assert_not_null ()

void                cut_assert_not_null                 (const void *expression,
                                                         ...);

expressionNULL以外のときパスします。

expression :

チェックする式。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_equal_int ()

void                cut_assert_equal_int                (int expected,
                                                         int actual,
                                                         ...);

expected == actualが成り立つときパスします。

expected :

期待する整数の値。

actual :

実際の整数の値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_equal_uint ()

void                cut_assert_equal_uint               (unsigned int expected,
                                                         unsigned int actual,
                                                         ...);

expected == actualが成り立つときパスします。

expected :

期待する符号無し整数の値。

actual :

実際の符号無し符号整数の値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_equal_double ()

void                cut_assert_equal_double             (double expected,
                                                         double error,
                                                         double actual,
                                                         ...);

(expected - error) <= actual <= (expected + error)が成り立つときパスします。

expected :

期待する浮動小数点数。

error :

誤差範囲を示す浮動小数点数。

actual :

実際の浮動小数点数。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_equal_string ()

void                cut_assert_equal_string             (const char *expected,
                                                         const char *actual,
                                                         ...);

expectedactualがどちらともNULL、あるいはstrcmp(expected, actual) == 0が成り立つときにパスします。

例:

1
2
3
4
5
cut_assert_equal_string("abc", "abc"); -> パス
cut_assert_equal_string(NULL, NULL);   -> パス
cut_assert_equal_string("abc", "ABC"); -> 失敗
cut_assert_equal_string("abc", NULL);  -> 失敗
cut_assert_equal_string(NULL, "abc");  -> 失敗

expected :

期待する文字列。

actual :

実際の文字列の値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_equal_string_with_free ()

void                cut_assert_equal_string_with_free   (const char *expected,
                                                         const char *actual,
                                                         ...);

expectedactualがどちらともNULL、あるいはstrcmp(expected, actual) == 0が成り立つときにパスします。

使用例はcut_assert_equal_string()を見てください。

expected :

期待する文字列。

actual :

実際の文字列の値。(チェック後に開放される)

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

0.3から


cut_assert_equal_string_or_null ()

void                cut_assert_equal_string_or_null     (const char *expected,
                                                         const char *actual,
                                                         ...);

Warning

cut_assert_equal_string_or_nullはバージョン0.3から非推奨になりました。新しく書くコードでは使わないでください。代わりにcut_assert_equal_string()を使ってください。

expected :

期待する文字列。

actual :

実際の文字列の値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_equal_memory ()

void                cut_assert_equal_memory             (const void *expected,
                                                         size_t expected_size,
                                                         const void *actual,
                                                         size_t actual_size,
                                                         ...);

expected_size == actual_sizeが成り立ち、かつ、memcmp(expected, actual, expected_size) == 0が成り立つときにパスします。

expected :

期待するデータ。

expected_size :

expectedのサイズ。

actual :

実際のデータ。

actual_size :

actualのサイズ。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_equal_string_array ()

void                cut_assert_equal_string_array       (char **expected,
                                                         char **actual,
                                                         ...);

expectedactualがどちらともNULLではなく、どちらも同じ内容の文字列(strcmp() == 0)を持つときにパスします。

expected :

期待する文字列の配列。配列はNULL終端。

actual :

実際の文字列の配列。配列はNULL終端。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_equal_string_array_with_free ()

void                cut_assert_equal_string_array_with_free
                                                        (char **expected,
                                                         char **actual,
                                                         ...);

expectedactualがどちらともNULLではなく、どちらも同じ内容の文字列(strcmp() == 0)を持つときにパスします。

expected :

期待する文字列の配列。配列はNULL終端。

actual :

実際の文字列の配列。配列はNULL終端。(チェック後に開放される)

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

0.9から


cut_assert_operator()

#define             cut_assert_operator(lhs, operator, rhs, ...)

(lhs operator rhs)が真のときにパスします。

例:

1
cut_assert_operator(1, <, 2) -> (1 < 2);

lhs :

左辺値。

operator :

二項演算子。

rhs :

右辺値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_operator_int()

#define             cut_assert_operator_int(lhs, operator, rhs, ...)

(lhs operator rhs)が真のときにパスします。

例:

1
cut_assert_operator_int(1, <, 2) -> (1 < 2);

lhs :

左辺の整数の値。

operator :

二項演算子。

rhs :

右辺の整数の値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_operator_uint()

#define             cut_assert_operator_uint(lhs, operator, rhs, ...)

(lhs operator rhs)が真のときにパスします。

例:

1
cut_assert_operator_uint(1, <, 2) -> (1 < 2);

lhs :

左辺の符号無し整数の値。

operator :

二項演算子。

rhs :

右辺の符号無し整数の値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

1.0.5から


cut_assert_operator_double()

#define             cut_assert_operator_double(lhs, operator, rhs, ...)

(lhs operator rhs)が真のときにパスします。

例:

1
cut_assert_operator_double(1.1, <, 2.2) -> (1.1 < 2.2);

lhs :

左辺の浮動小数点値。

operator :

二項演算子。

rhs :

右辺の浮動小数点値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

1.0.5から


cut_assert_equal()

#define             cut_assert_equal(function, expected, actual, ...)

function(expected, actual)がCUT_TRUEを返すときパスします。

例:

1
cut_assert_equal(!strcmp, "abc", "abc"); -> パス

function :

actualexpectedを比較する関数。

expected :

期待値。

actual :

実測値。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

cut_assert_errno ()

void                cut_assert_errno                    (...);

errnoが0だとパスします。

例:

1
2
count = write(stdout, buffer, strlen(buffer));
cut_assert_errno("Failed to write");            -> count != -1のときパス

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

0.8から


cut_assert_file_exist ()

void                cut_assert_file_exist               (const char *path,
                                                         ...);

Warning

cut_assert_file_existはバージョン1.0.2から非推奨になりました。新しく書くコードでは使わないでください。代わりにcut_assert_path_exist()を使ってください。

pathが存在するときにパスします。普通のファイルかもしれませんし、そうでないかもしれません。(例えばシンボリックリンクやディレクトリなど)

例:

1
2
cut_assert_file_exist("/tmp");             -> 多くの環境ではパス
cut_assert_file_exist("/non-existent");    -> 失敗

path :

テストするパス。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

0.9から


cut_assert_path_exist ()

void                cut_assert_path_exist               (const char *path,
                                                         ...);

pathが存在するときにパスします。普通のファイルかもしれませんし、そうでないかもしれません。(例えばシンボリックリンクやディレクトリなど)

例:

1
2
cut_assert_path_exist("/tmp");             -> 多くの環境ではパス
cut_assert_path_exist("/non-existent");    -> 失敗

path :

テストするパス。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

1.0.2から


cut_assert_path_not_exist ()

void                cut_assert_path_not_exist           (const char *path,
                                                         ...);

pathが存在しないとパスします。

例:

1
2
cut_assert_path_not_exist("/non-existent");    -> 多くの環境ではパス
cut_assert_path_not_exist("/tmp");             -> 失敗

path :

テストするパス。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

1.0.2から


cut_assert_match ()

void                cut_assert_match                    (const char *pattern,
                                                         const char *actual,
                                                         ...);

patternstringにマッチしたときパスします。

例:

1
2
cut_assert_match("^abc", "abc");            -> パス
cut_assert_match("^abc", " abc");           -> 失敗

pattern :

正規表現。

actual :

マッチされる文字列。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

1.0から


cut_assert_match_with_free ()

void                cut_assert_match_with_free          (const char *pattern,
                                                         const char *actual,
                                                         ...);

patternstringにマッチしたときパスします。詳細は

pattern :

正規表現。(文字列で指定)

actual :

マッチされる文字列。(チェック後に開放される)

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

1.0から


cut_assert_equal_pointer ()

void                cut_assert_equal_pointer            (const void *expected,
                                                         const void *actual,
                                                         ...);

expected == actualが成り立つときパスします。

expected :

期待するポインタ。

actual :

実際のポインタ。

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

1.0から


cut_assert_equal_fixture_data_string ()

void                cut_assert_equal_fixture_data_string
                                                        (const char *expected,
                                                         const void *path,
                                                         ...);

expected == cut_get_fixture_data_string(path, ...)が成り立つときパスします。

expected :

期待する文字列。

path :

フィクスチャデータのパスの最初の要素。

... :

パスの残りの要素。NULL終端。

1.0.2から


cut_error ()

void                cut_error                           (const char *format,
                                                         ...);

メッセージ付きでエラーを発生させます。

format :

整形文字列。printf()のドキュメントを見てください。

... :

整形文字列に挿入されるパラメータ。

cut_error_errno ()

void                cut_error_errno                     (...);

例:

1
2
3
4
5
6
7
void
setup (void)
{
    mkdir("tmp", 0700);
    cut_error_errno("Failed to make tmp directory");
      -> Error when tmp directory isn't made successfully.
}

... :

追加メッセージ(省略可能)。詳細はcut_message()を見てください。

1.0.2から


cut_fail ()

void                cut_fail                            (const char *format,
                                                         ...);

メッセージ付きでテストを失敗させます。

format :

整形文字列。printf()のドキュメントを見てください。

... :

整形文字列に挿入されるパラメータ。

cut_pend ()

void                cut_pend                            (const char *format,
                                                         ...);

メッセージ付きでこのテストが未解決であると印を付けます。テストはここで中断します。

format :

整形文字列。printf()のドキュメントを見てください。

... :

整形文字列に挿入されるパラメータ。

cut_pending ()

void                cut_pending                         (const char *format,
                                                         ...);

Warning

cut_pendingはバージョン0.4から非推奨になりました。新しく書くコードでは使わないでください。代わりにcut_pend()を使ってください。

メッセージ付きでこのテストが未解決であると印を付けます。テストはここで中断します。

format :

整形文字列。printf()のドキュメントを見てください。

... :

整形文字列に挿入されるパラメータ。

cut_notify ()

void                cut_notify                          (const char *format,
                                                         ...);

通知用のメッセージを残します。テストは続行します。

format :

整形文字列。printf()のドキュメントを見てください。

... :

整形文字列に挿入されるパラメータ。

cut_omit ()

void                cut_omit                            (const char *format,
                                                         ...);

このテストを省略します。

例:

1
2
if (version < 2.0)
  cut_omit("Require >= 2.0");

format :

整形文字列。printf()のドキュメントを見てください。

... :

整形文字列に挿入されるパラメータ。

0.8から