diff options
author | David Schneider <schneidav81@gmail.com> | 2016-09-21 15:20:09 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2016-09-21 15:20:09 +0200 |
commit | 63ddee422eb360a0e224458ef19089682a8b71eb (patch) | |
tree | 33c75478ba361f3ffab9b440595ad0e4e0d235ed /tests/test_groups.c | |
parent | 7c5572f039530b45cb2e7a798c695a090160ea54 (diff) | |
download | cmocka-63ddee422eb360a0e224458ef19089682a8b71eb.tar.gz cmocka-63ddee422eb360a0e224458ef19089682a8b71eb.tar.xz cmocka-63ddee422eb360a0e224458ef19089682a8b71eb.zip |
tests: Add test_groups test to validate xml output
This is for multiple groups in one test to make sure they do not create
invalid xml.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'tests/test_groups.c')
-rw-r--r-- | tests/test_groups.c | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/test_groups.c b/tests/test_groups.c new file mode 100644 index 0000000..af9e2b8 --- /dev/null +++ b/tests/test_groups.c @@ -0,0 +1,69 @@ +/* + * Copyright 2016 David Schneider <schneidav81@gmail.com> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* Use the unit test allocators */ +#define UNIT_TESTING 1 + +#include <stdarg.h> +#include <stddef.h> +#include <setjmp.h> +#include <cmocka.h> + +static int setup(void **state) { + int *answer = malloc(sizeof(int)); + + assert_non_null(answer); + *answer = 42; + + *state = answer; + + return 0; +} + +static int teardown(void **state) { + free(*state); + + return 0; +} + +/* A test case that does nothing and succeeds. */ +static void null_test_success(void **state) { + (void) state; +} + +/* A test case that does check if an int is equal. */ +static void int_test_success(void **state) { + int *answer = *state; + + assert_int_equal(*answer, 42); +} + + +int main(void) { + const struct CMUnitTest test_group1[] = { + cmocka_unit_test(null_test_success), + }; + + const struct CMUnitTest test_group2[] = { + cmocka_unit_test_setup_teardown(int_test_success, setup, teardown), + }; + + int result = 0; + result += cmocka_run_group_tests(test_group1, NULL, NULL); + result += cmocka_run_group_tests(test_group2, NULL, NULL); + + return result; +} |