From c2740578404b4e46d198de70af1cfd554033d99f Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Tue, 7 Jul 2015 10:03:13 +0100 Subject: ext: Add the NoMali GPU no-simulation library Add revision 9adf9d6e2d889a483a92136c96eb8a434d360561 of NoMali-model from https://github.com/ARM-software/nomali-model. This library implements the register interface of the Mali T6xx/T7xx series GPUs, but doesn't do any rendering. It can be used to hide the effects of software rendering. --- ext/nomali/tests/test_helpers.c | 147 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 ext/nomali/tests/test_helpers.c (limited to 'ext/nomali/tests/test_helpers.c') diff --git a/ext/nomali/tests/test_helpers.c b/ext/nomali/tests/test_helpers.c new file mode 100644 index 000000000..dad6d4ad1 --- /dev/null +++ b/ext/nomali/tests/test_helpers.c @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2013 Andreas Sandberg + * All rights reserved + * + * 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. + * + * Authors: Andreas Sandberg + */ + +#include "test_helpers.h" + +#include +#include +#include + +unsigned test_current = 0; +unsigned test_count = 0; +unsigned test_fail_count = 0; + +void +test_init(unsigned no_tests) +{ + assert(test_count == 0 && test_current == 0); + + test_count = no_tests; + test_current = 1; + test_fail_count = 0; + + printf("1..%u\n", no_tests); +} + +void +test_exit() +{ + if (test_fail_count) + exit(EXIT_FAILURE); + else + exit(EXIT_SUCCESS); +} + +void +test_bail(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + + printf("Bail out! "); + vprintf(fmt, ap); + printf("\n"); + + va_end(ap); + + exit(EXIT_FAILURE); +} + +void +test_diag(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + + printf("# "); + vprintf(fmt, ap); + printf("\n"); + + va_end(ap); +} + +static void +test_vstatus(const char *status, const char *test, + const char *directive, + const char *fmt_why, va_list ap) +{ + printf("%s %i", status, test_current); + + if (test && test[0] != '\0') + printf(" - %s", test); + + if (directive && directive[0] != '\0') { + printf(" # %s ", directive); + if (fmt_why && fmt_why[0] != '\0') + vprintf(fmt_why, ap); + } + printf("\n"); + + ++test_current; +} + +static void __attribute__((format (printf, 4, 5))) +test_status(const char *status, const char *test, + const char *directive, + const char *fmt_why, ...) +{ + va_list ap; + va_start(ap, fmt_why); + + test_vstatus(status, test, directive, fmt_why, ap); + + va_end(ap); +} + +void +test_ok(const char *test) +{ + test_status("ok", test, NULL, NULL); +} + +void +test_fail(const char *test) +{ + test_status("not ok", test, NULL, NULL); + ++test_fail_count; +} + +void +test_skip(const char *test, const char *fmt_why, ...) +{ + va_list ap; + va_start(ap, fmt_why); + + test_vstatus("ok", test, "SKIP", fmt_why, ap); + + va_end(ap); +} + +void +test_todo(const char *test, const char *fmt_why, ...) +{ + va_list ap; + va_start(ap, fmt_why); + + test_vstatus("not ok", test, "TODO", fmt_why, ap); + + va_end(ap); + + ++test_fail_count; +} -- cgit v1.2.3