test: Update NAND test to avoid extra macros

Write out the tests in full to allow the test to be found more easily
when there is a failure. We could use a single test function with a
for() loop but this would stop at the first failure, and some variations
might while other pass.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2024-08-22 07:57:52 -06:00 committed by Tom Rini
parent eccd4ca387
commit 5c27fd7ef9

View file

@ -12,7 +12,7 @@
#include <linux/mtd/mtd.h> #include <linux/mtd/mtd.h>
#include <linux/mtd/rawnand.h> #include <linux/mtd/rawnand.h>
static int dm_test_nand(struct unit_test_state *uts, int dev, bool end) static int run_test_nand(struct unit_test_state *uts, int dev, bool end)
{ {
nand_erase_options_t opts = { }; nand_erase_options_t opts = { };
struct mtd_info *mtd; struct mtd_info *mtd;
@ -88,17 +88,34 @@ static int dm_test_nand(struct unit_test_state *uts, int dev, bool end)
return 0; return 0;
} }
#define DM_NAND_TEST(dev) \ static int dm_test_nand0_start(struct unit_test_state *uts)
static int dm_test_nand##dev##_start(struct unit_test_state *uts) \ {
{ \ ut_assertok(run_test_nand(uts, 0, false));
return dm_test_nand(uts, dev, false); \
} \
DM_TEST(dm_test_nand##dev##_start, UTF_SCAN_FDT); \
static int dm_test_nand##dev##_end(struct unit_test_state *uts) \
{ \
return dm_test_nand(uts, dev, true); \
} \
DM_TEST(dm_test_nand##dev##_end, UTF_SCAN_FDT)
DM_NAND_TEST(0); return 0;
DM_NAND_TEST(1); }
DM_TEST(dm_test_nand0_start, UTF_SCAN_FDT);
static int dm_test_nand1_start(struct unit_test_state *uts)
{
ut_assertok(run_test_nand(uts, 1, false));
return 0;
}
DM_TEST(dm_test_nand1_start, UTF_SCAN_FDT);
static int dm_test_nand0_end(struct unit_test_state *uts)
{
ut_assertok(run_test_nand(uts, 0, true));
return 0;
}
DM_TEST(dm_test_nand0_end, UTF_SCAN_FDT);
static int dm_test_nand1_end(struct unit_test_state *uts)
{
ut_assertok(run_test_nand(uts, 1, true));
return 0;
}
DM_TEST(dm_test_nand1_end, UTF_SCAN_FDT);