diff --git a/samples/parameterized.c b/samples/parameterized.c index 57ad2ee..edb123e 100644 --- a/samples/parameterized.c +++ b/samples/parameterized.c @@ -3,16 +3,14 @@ // Basic usage -ParameterizedTestParameters(params, str) { - static const char *strings[] = { - "foo", "bar", "baz" - }; +ParameterizedTestParameters(params, simple) { + static int vals[] = { 1, 2, 3 }; - return cr_make_param_array(const char *, strings, sizeof (strings) / sizeof (const char *)); + return cr_make_param_array(int, vals, sizeof (vals) / sizeof (int)); } -ParameterizedTest(const char **str, params, str) { - cr_assert_fail("Parameter: %s", *str); +ParameterizedTest(int *val, params, simple) { + cr_assert_fail("Parameter: %d", *val); } // Multiple parameters must be coalesced in a single parameter diff --git a/samples/parameterized.cc b/samples/parameterized.cc index 61a4640..424d6d6 100644 --- a/samples/parameterized.cc +++ b/samples/parameterized.cc @@ -2,16 +2,14 @@ // Basic usage -ParameterizedTestParameters(params, str) { - static const char *strings[] = { - "foo", "bar", "baz" - }; +ParameterizedTestParameters(params, simple) { + static int vals[] = { 1, 2, 3 }; - return cr_make_param_array(const char *, strings, sizeof (strings) / sizeof (const char *)); + return cr_make_param_array(int, vals, sizeof (vals) / sizeof (int)); } -ParameterizedTest(const char **str, params, str) { - cr_assert_fail("Parameter: %s", *str); +ParameterizedTest(int *val, params, simple) { + cr_assert_fail("Parameter: %d", *val); } // Multiple parameters must be coalesced in a single parameter diff --git a/test/cram/parameterized.t b/test/cram/parameterized.t index 6b3627b..6580a2c 100644 --- a/test/cram/parameterized.t +++ b/test/cram/parameterized.t @@ -1,45 +1,45 @@ Using parameterized tests $ parameterized.c.bin - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m76\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m74\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m76\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m74\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m76\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m74\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m36\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m34\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m36\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m34\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m36\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m34\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m15\x1b[0m: Assertion failed: Parameter: foo (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m15\x1b[0m: Assertion failed: Parameter: bar (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m15\x1b[0m: Assertion failed: Parameter: baz (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m13\x1b[0m: Assertion failed: Parameter: 1 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m13\x1b[0m: Assertion failed: Parameter: 2 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m13\x1b[0m: Assertion failed: Parameter: 3 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) [\x1b[0;34m====\x1b[0m] \x1b[0;1mSynthesis: Tested: \x1b[0;34m9\x1b[0;1m | Passing: \x1b[0;32m0\x1b[0;1m | Failing: \x1b[0;31m9\x1b[0;1m | Crashing: \x1b[0m0\x1b[0;1m \x1b[0m (esc) $ parameterized.cc.bin - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m73\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m71\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m73\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m71\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m73\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m71\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m35\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m33\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m35\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m33\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m35\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m33\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m14\x1b[0m: Assertion failed: Parameter: foo (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m14\x1b[0m: Assertion failed: Parameter: bar (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m14\x1b[0m: Assertion failed: Parameter: baz (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m12\x1b[0m: Assertion failed: Parameter: 1 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m12\x1b[0m: Assertion failed: Parameter: 2 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m12\x1b[0m: Assertion failed: Parameter: 3 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) [\x1b[0;34m====\x1b[0m] \x1b[0;1mSynthesis: Tested: \x1b[0;34m9\x1b[0;1m | Passing: \x1b[0;32m0\x1b[0;1m | Failing: \x1b[0;31m9\x1b[0;1m | Crashing: \x1b[0m0\x1b[0;1m \x1b[0m (esc) Using parameterized tests (verbose) @@ -48,64 +48,64 @@ Using parameterized tests (verbose) [\x1b[0;34m----\x1b[0m] Criterion v2.2.1 (esc) [\x1b[0;34m====\x1b[0m] Running \x1b[0;34m3\x1b[0m tests from \x1b[0;33mparams\x1b[0m: (esc) [\x1b[0;34mRUN \x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m76\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m74\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) [\x1b[0;34mRUN \x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m76\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m74\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) [\x1b[0;34mRUN \x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m76\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m74\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) [\x1b[0;34mRUN \x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m36\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m34\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) [\x1b[0;34mRUN \x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m36\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m34\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) [\x1b[0;34mRUN \x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m36\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m34\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) - [\x1b[0;34mRUN \x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m15\x1b[0m: Assertion failed: Parameter: foo (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) - [\x1b[0;34mRUN \x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m15\x1b[0m: Assertion failed: Parameter: bar (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) - [\x1b[0;34mRUN \x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m15\x1b[0m: Assertion failed: Parameter: baz (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) + [\x1b[0;34mRUN \x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m13\x1b[0m: Assertion failed: Parameter: 1 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) + [\x1b[0;34mRUN \x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m13\x1b[0m: Assertion failed: Parameter: 2 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) + [\x1b[0;34mRUN \x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.c\x1b[0m:\x1b[0;31m13\x1b[0m: Assertion failed: Parameter: 3 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) [\x1b[0;34m====\x1b[0m] \x1b[0;1mSynthesis: Tested: \x1b[0;34m9\x1b[0;1m | Passing: \x1b[0;32m0\x1b[0;1m | Failing: \x1b[0;31m9\x1b[0;1m | Crashing: \x1b[0m0\x1b[0;1m \x1b[0m (esc) $ parameterized.cc.bin --verbose [\x1b[0;34m----\x1b[0m] Criterion v2.2.1 (esc) [\x1b[0;34m====\x1b[0m] Running \x1b[0;34m3\x1b[0m tests from \x1b[0;33mparams\x1b[0m: (esc) [\x1b[0;34mRUN \x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m73\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m71\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) [\x1b[0;34mRUN \x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m73\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m71\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) [\x1b[0;34mRUN \x1b[0m] params::cleanup (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m73\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m71\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::cleanup (esc) [\x1b[0;34mRUN \x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m35\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m33\x1b[0m: Assertion failed: Parameters: (1, 2.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) [\x1b[0;34mRUN \x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m35\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m33\x1b[0m: Assertion failed: Parameters: (3, 4.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) [\x1b[0;34mRUN \x1b[0m] params::multiple (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m35\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m33\x1b[0m: Assertion failed: Parameters: (5, 6.000000) (esc) [\x1b[0;31mFAIL\x1b[0m] params::multiple (esc) - [\x1b[0;34mRUN \x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m14\x1b[0m: Assertion failed: Parameter: foo (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) - [\x1b[0;34mRUN \x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m14\x1b[0m: Assertion failed: Parameter: bar (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) - [\x1b[0;34mRUN \x1b[0m] params::str (esc) - [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m14\x1b[0m: Assertion failed: Parameter: baz (esc) - [\x1b[0;31mFAIL\x1b[0m] params::str (esc) + [\x1b[0;34mRUN \x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m12\x1b[0m: Assertion failed: Parameter: 1 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) + [\x1b[0;34mRUN \x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m12\x1b[0m: Assertion failed: Parameter: 2 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) + [\x1b[0;34mRUN \x1b[0m] params::simple (esc) + [\x1b[0;34m----\x1b[0m] \x1b[0;1mparameterized.cc\x1b[0m:\x1b[0;31m12\x1b[0m: Assertion failed: Parameter: 3 (esc) + [\x1b[0;31mFAIL\x1b[0m] params::simple (esc) [\x1b[0;34m====\x1b[0m] \x1b[0;1mSynthesis: Tested: \x1b[0;34m9\x1b[0;1m | Passing: \x1b[0;32m0\x1b[0;1m | Failing: \x1b[0;31m9\x1b[0;1m | Crashing: \x1b[0m0\x1b[0;1m \x1b[0m (esc) Parameterized tests should be listed as one test @@ -114,4 +114,4 @@ Parameterized tests should be listed as one test params: 3 tests ├── cleanup ├── multiple - └── str + └── simple