Simon Glass | 4c0bf97 | 2023-10-01 19:13:06 -0600 | [diff] [blame] | 1 | // SPDX-License-Identifier: GPL-2.0+ |
| 2 | /* |
| 3 | * Tests for history command |
| 4 | * |
| 5 | * Copyright 2023 Google LLC |
| 6 | * Written by Simon Glass <sjg@chromium.org> |
| 7 | */ |
| 8 | |
| 9 | #include <common.h> |
| 10 | #include <cli.h> |
| 11 | #include <command.h> |
| 12 | #include <test/lib.h> |
| 13 | #include <test/test.h> |
| 14 | #include <test/ut.h> |
| 15 | |
| 16 | static int lib_test_history(struct unit_test_state *uts) |
| 17 | { |
| 18 | static const char cmd1[] = "setenv fred hello"; |
| 19 | static const char cmd2[] = "print fred"; |
| 20 | |
| 21 | /* running commands directly does not add to history */ |
| 22 | ut_assertok(run_command(cmd1, 0)); |
| 23 | ut_assert_console_end(); |
| 24 | ut_assertok(run_command("history", 0)); |
| 25 | ut_assert_console_end(); |
| 26 | |
| 27 | /* enter commands via the console */ |
| 28 | console_in_puts(cmd1); |
| 29 | console_in_puts("\n"); |
| 30 | ut_asserteq(strlen(cmd1), cli_readline("")); |
| 31 | ut_assert_nextline(cmd1); |
| 32 | |
| 33 | console_in_puts(cmd2); |
| 34 | console_in_puts("\n"); |
| 35 | ut_asserteq(strlen(cmd2), cli_readline("")); |
| 36 | ut_assert_nextline(cmd2); |
| 37 | |
| 38 | ut_assertok(run_command("print fred", 0)); |
| 39 | ut_assert_nextline("fred=hello"); |
| 40 | ut_assert_console_end(); |
| 41 | |
| 42 | ut_assertok(run_command("history", 0)); |
| 43 | ut_assert_nextline(cmd1); |
| 44 | ut_assert_nextline(cmd2); |
| 45 | ut_assert_console_end(); |
| 46 | |
| 47 | return 0; |
| 48 | } |
| 49 | LIB_TEST(lib_test_history, UT_TESTF_CONSOLE_REC); |