diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/dm/test.h | 35 | ||||
-rw-r--r-- | include/test/test.h | 47 | ||||
-rw-r--r-- | include/test/ut.h (renamed from include/dm/ut.h) | 28 |
3 files changed, 68 insertions, 42 deletions
diff --git a/include/dm/test.h b/include/dm/test.h index f03fbcb..98f2b9e 100644 --- a/include/dm/test.h +++ b/include/dm/test.h @@ -8,7 +8,7 @@ #define __DM_TEST_H #include <dm.h> -#include <malloc.h> +#include <test/test.h> /** * struct dm_test_cdata - configuration data for test instance @@ -124,7 +124,7 @@ struct dm_test_perdev_uc_pdata { */ extern int dm_testdrv_op_count[DM_TEST_OP_COUNT]; -extern struct dm_test_state global_test_state; +extern struct unit_test_state global_dm_test_state; /* * struct dm_test_state - Entire state of dm test system @@ -133,7 +133,6 @@ extern struct dm_test_state global_test_state; * * @root: Root device * @testdev: Test device - * @fail_count: Number of tests that failed * @force_fail_alloc: Force all memory allocs to fail * @skip_post_probe: Skip uclass post-probe processing * @removed: Used to keep track of a device that was removed @@ -141,11 +140,9 @@ extern struct dm_test_state global_test_state; struct dm_test_state { struct udevice *root; struct udevice *testdev; - int fail_count; int force_fail_alloc; int skip_post_probe; struct udevice *removed; - struct mallinfo start; }; /* Test flags for each test */ @@ -155,26 +152,8 @@ enum { DM_TESTF_SCAN_FDT = 1 << 2, /* scan device tree */ }; -/** - * struct dm_test - Information about a driver model test - * - * @name: Name of test - * @func: Function to call to perform test - * @flags: Flags indicated pre-conditions for test - */ -struct dm_test { - const char *name; - int (*func)(struct dm_test_state *dms); - int flags; -}; - /* Declare a new driver model test */ -#define DM_TEST(_name, _flags) \ - ll_entry_declare(struct dm_test, _name, dm_test) = { \ - .name = #_name, \ - .flags = _flags, \ - .func = _name, \ - } +#define DM_TEST(_name, _flags) UNIT_TEST(_name, _flags, dm_test) /* Declare ping methods for the drivers */ int test_ping(struct udevice *dev, int pingval, int *pingret); @@ -191,7 +170,7 @@ int testfdt_ping(struct udevice *dev, int pingval, int *pingret); * @priv: Pointer to private test information * @return 0 if OK, -ve on error */ -int dm_check_operations(struct dm_test_state *dms, struct udevice *dev, +int dm_check_operations(struct unit_test_state *uts, struct udevice *dev, uint32_t base, struct dm_test_priv *priv); /** @@ -201,7 +180,7 @@ int dm_check_operations(struct dm_test_state *dms, struct udevice *dev, * @num_devices: Number of test devices to check * @return 0 if OK, -ve on error */ -int dm_check_devices(struct dm_test_state *dms, int num_devices); +int dm_check_devices(struct unit_test_state *uts, int num_devices); /** * dm_leak_check_start() - Prepare to check for a memory leak @@ -211,7 +190,7 @@ int dm_check_devices(struct dm_test_state *dms, int num_devices); * * @dms: Overall test state */ -void dm_leak_check_start(struct dm_test_state *dms); +void dm_leak_check_start(struct unit_test_state *uts); /** * dm_leak_check_end() - Check that no memory has leaked @@ -221,7 +200,7 @@ void dm_leak_check_start(struct dm_test_state *dms); * it sees a different amount of total memory allocated than before. * * @dms: Overall test state - */int dm_leak_check_end(struct dm_test_state *dms); + */int dm_leak_check_end(struct unit_test_state *uts); /** diff --git a/include/test/test.h b/include/test/test.h new file mode 100644 index 0000000..b7e1ae2 --- /dev/null +++ b/include/test/test.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2013 Google, Inc. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __TEST_TEST_H +#define __TEST_TEST_H + +#include <malloc.h> + +/* + * struct unit_test_state - Entire state of test system + * + * @fail_count: Number of tests that failed + * @start: Store the starting mallinfo when doing leak test + * @priv: A pointer to some other info some suites want to track + */ +struct unit_test_state { + int fail_count; + struct mallinfo start; + void *priv; +}; + +/** + * struct unit_test - Information about a unit test + * + * @name: Name of test + * @func: Function to call to perform test + * @flags: Flags indicated pre-conditions for test + */ +struct unit_test { + const char *name; + int (*func)(struct unit_test_state *state); + int flags; +}; + +/* Declare a new unit test */ +#define UNIT_TEST(_name, _flags, _suite) \ + ll_entry_declare(struct unit_test, _name, _suite) = { \ + .name = #_name, \ + .flags = _flags, \ + .func = _name, \ + } + + +#endif /* __TEST_TEST_H */ diff --git a/include/dm/ut.h b/include/test/ut.h index ec61465..275f27f 100644 --- a/include/dm/ut.h +++ b/include/test/ut.h @@ -1,39 +1,39 @@ /* - * Simple unit test library for driver model + * Simple unit test library * * Copyright (c) 2013 Google, Inc * * SPDX-License-Identifier: GPL-2.0+ */ -#ifndef __DM_UT_H -#define __DM_UT_H +#ifndef __TEST_UT_H +#define __TEST_UT_H -struct dm_test_state; +struct unit_test_state; /** * ut_fail() - Record failure of a unit test * - * @dms: Test state + * @uts: Test state * @fname: Filename where the error occured * @line: Line number where the error occured * @func: Function name where the error occured * @cond: The condition that failed */ -void ut_fail(struct dm_test_state *dms, const char *fname, int line, +void ut_fail(struct unit_test_state *uts, const char *fname, int line, const char *func, const char *cond); /** * ut_failf() - Record failure of a unit test * - * @dms: Test state + * @uts: Test state * @fname: Filename where the error occured * @line: Line number where the error occured * @func: Function name where the error occured * @cond: The condition that failed * @fmt: printf() format string for the error, followed by args */ -void ut_failf(struct dm_test_state *dms, const char *fname, int line, +void ut_failf(struct unit_test_state *uts, const char *fname, int line, const char *func, const char *cond, const char *fmt, ...) __attribute__ ((format (__printf__, 6, 7))); @@ -41,14 +41,14 @@ void ut_failf(struct dm_test_state *dms, const char *fname, int line, /* Assert that a condition is non-zero */ #define ut_assert(cond) \ if (!(cond)) { \ - ut_fail(dms, __FILE__, __LINE__, __func__, #cond); \ + ut_fail(uts, __FILE__, __LINE__, __func__, #cond); \ return -1; \ } /* Assert that a condition is non-zero, with printf() string */ #define ut_assertf(cond, fmt, args...) \ if (!(cond)) { \ - ut_failf(dms, __FILE__, __LINE__, __func__, #cond, \ + ut_failf(uts, __FILE__, __LINE__, __func__, #cond, \ fmt, ##args); \ return -1; \ } @@ -58,7 +58,7 @@ void ut_failf(struct dm_test_state *dms, const char *fname, int line, unsigned int val1 = (expr1), val2 = (expr2); \ \ if (val1 != val2) { \ - ut_failf(dms, __FILE__, __LINE__, __func__, \ + ut_failf(uts, __FILE__, __LINE__, __func__, \ #expr1 " == " #expr2, \ "Expected %d, got %d", val1, val2); \ return -1; \ @@ -70,7 +70,7 @@ void ut_failf(struct dm_test_state *dms, const char *fname, int line, const char *val1 = (expr1), *val2 = (expr2); \ \ if (strcmp(val1, val2)) { \ - ut_failf(dms, __FILE__, __LINE__, __func__, \ + ut_failf(uts, __FILE__, __LINE__, __func__, \ #expr1 " = " #expr2, \ "Expected \"%s\", got \"%s\"", val1, val2); \ return -1; \ @@ -82,7 +82,7 @@ void ut_failf(struct dm_test_state *dms, const char *fname, int line, const void *val1 = (expr1), *val2 = (expr2); \ \ if (val1 != val2) { \ - ut_failf(dms, __FILE__, __LINE__, __func__, \ + ut_failf(uts, __FILE__, __LINE__, __func__, \ #expr1 " = " #expr2, \ "Expected %p, got %p", val1, val2); \ return -1; \ @@ -94,7 +94,7 @@ void ut_failf(struct dm_test_state *dms, const char *fname, int line, const void *val = (expr); \ \ if (val == NULL) { \ - ut_failf(dms, __FILE__, __LINE__, __func__, \ + ut_failf(uts, __FILE__, __LINE__, __func__, \ #expr " = NULL", \ "Expected non-null, got NULL"); \ return -1; \ |