diff options
Diffstat (limited to 'tools/testing/selftests/kvm/include/test_util.h')
-rw-r--r-- | tools/testing/selftests/kvm/include/test_util.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tools/testing/selftests/kvm/include/test_util.h b/tools/testing/selftests/kvm/include/test_util.h new file mode 100644 index 000000000000..7ab98e41324f --- /dev/null +++ b/tools/testing/selftests/kvm/include/test_util.h | |||
@@ -0,0 +1,45 @@ | |||
1 | /* | ||
2 | * tools/testing/selftests/kvm/include/test_util.h | ||
3 | * | ||
4 | * Copyright (C) 2018, Google LLC. | ||
5 | * | ||
6 | * This work is licensed under the terms of the GNU GPL, version 2. | ||
7 | * | ||
8 | */ | ||
9 | |||
10 | #ifndef TEST_UTIL_H | ||
11 | #define TEST_UTIL_H 1 | ||
12 | |||
13 | #include <stdlib.h> | ||
14 | #include <stdarg.h> | ||
15 | #include <stdbool.h> | ||
16 | #include <stdio.h> | ||
17 | #include <string.h> | ||
18 | #include <inttypes.h> | ||
19 | #include <errno.h> | ||
20 | #include <unistd.h> | ||
21 | #include <fcntl.h> | ||
22 | |||
23 | ssize_t test_write(int fd, const void *buf, size_t count); | ||
24 | ssize_t test_read(int fd, void *buf, size_t count); | ||
25 | int test_seq_read(const char *path, char **bufp, size_t *sizep); | ||
26 | |||
27 | void test_assert(bool exp, const char *exp_str, | ||
28 | const char *file, unsigned int line, const char *fmt, ...); | ||
29 | |||
30 | #define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) | ||
31 | |||
32 | #define TEST_ASSERT(e, fmt, ...) \ | ||
33 | test_assert((e), #e, __FILE__, __LINE__, fmt, ##__VA_ARGS__) | ||
34 | |||
35 | #define ASSERT_EQ(a, b) do { \ | ||
36 | typeof(a) __a = (a); \ | ||
37 | typeof(b) __b = (b); \ | ||
38 | TEST_ASSERT(__a == __b, \ | ||
39 | "ASSERT_EQ(%s, %s) failed.\n" \ | ||
40 | "\t%s is %#lx\n" \ | ||
41 | "\t%s is %#lx", \ | ||
42 | #a, #b, #a, (unsigned long) __a, #b, (unsigned long) __b); \ | ||
43 | } while (0) | ||
44 | |||
45 | #endif /* TEST_UTIL_H */ | ||