summaryrefslogtreecommitdiffstats
path: root/test/log/log_test.c
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@st.com>2020-11-27 11:20:53 +0100
committerTom Rini <trini@konsulko.com>2021-01-15 14:36:11 -0500
commitce9af2a6b57b512853d6e6234616edc4265669de (patch)
tree01abaac44381f195a2ceddbb4ee7159af04d6e61 /test/log/log_test.c
parentf0e90e0eadbed59f0afb0d281816873339fd51ee (diff)
downloadu-boot-ce9af2a6b57b512853d6e6234616edc4265669de.tar.gz
u-boot-ce9af2a6b57b512853d6e6234616edc4265669de.tar.xz
u-boot-ce9af2a6b57b512853d6e6234616edc4265669de.zip
test: log: add test for dropped messages
Add a new test to check the dropped messages when LOG is not ready with log_drop_count and the result of _log(). Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test/log/log_test.c')
-rw-r--r--test/log/log_test.c43
1 files changed, 35 insertions, 8 deletions
diff --git a/test/log/log_test.c b/test/log/log_test.c
index 15874751f9..6bafc1e315 100644
--- a/test/log/log_test.c
+++ b/test/log/log_test.c
@@ -15,30 +15,38 @@
DECLARE_GLOBAL_DATA_PTR;
/* emit some sample log records in different ways, for testing */
-static int do_log_run(int cat, const char *file)
+static int do_log_run(struct unit_test_state *uts, int cat, const char *file)
{
int i;
+ int ret, expected_ret;
+
+ if (gd->flags & GD_FLG_LOG_READY)
+ expected_ret = 0;
+ else
+ expected_ret = -ENOSYS;
gd->log_fmt = LOGF_TEST;
debug("debug\n");
for (i = LOGL_FIRST; i < LOGL_COUNT; i++) {
log(cat, i, "log %d\n", i);
- _log(log_uc_cat(cat), i, file, 100 + i, "func", "_log %d\n",
- i);
+ ret = _log(log_uc_cat(cat), i, file, 100 + i,
+ "func", "_log %d\n", i);
+ ut_asserteq(ret, expected_ret);
}
/* test with LOGL_COUNT flag */
for (i = LOGL_FIRST; i < LOGL_COUNT; i++) {
- _log(log_uc_cat(cat), i | LOGL_FORCE_DEBUG, file, 100 + i,
- "func", "_log force %d\n", i);
+ ret = _log(log_uc_cat(cat), i | LOGL_FORCE_DEBUG, file, 100 + i,
+ "func", "_log force %d\n", i);
+ ut_asserteq(ret, expected_ret);
}
gd->log_fmt = log_get_default_format();
return 0;
}
-#define log_run_cat(cat) do_log_run(cat, "file")
-#define log_run_file(file) do_log_run(UCLASS_SPI, file)
-#define log_run() do_log_run(UCLASS_SPI, "file")
+#define log_run_cat(cat) do_log_run(uts, cat, "file")
+#define log_run_file(file) do_log_run(uts, UCLASS_SPI, file)
+#define log_run() do_log_run(uts, UCLASS_SPI, "file")
#define EXPECT_LOG BIT(0)
#define EXPECT_DIRECT BIT(1)
@@ -393,3 +401,22 @@ int log_test_min(struct unit_test_state *uts)
return 0;
}
LOG_TEST_FLAGS(log_test_min, UT_TESTF_CONSOLE_REC);
+
+/* Check dropped traces */
+int log_test_dropped(struct unit_test_state *uts)
+{
+ /* force LOG not ready */
+ gd->flags &= ~(GD_FLG_LOG_READY);
+ gd->log_drop_count = 0;
+
+ ut_assertok(console_record_reset_enable());
+ log_run();
+
+ ut_asserteq(gd->log_drop_count, 3 * (LOGL_COUNT - LOGL_FIRST - 1));
+
+ gd->flags |= GD_FLG_LOG_READY;
+ gd->log_drop_count = 0;
+
+ return 0;
+}
+LOG_TEST_FLAGS(log_test_dropped, UT_TESTF_CONSOLE_REC);