u-boot/test/cmd/spawn.c
Jerome Forissier 82bbd95fa9 test: cmd: add test for spawn and wait commands
Test the spawn and wait commands.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-04-23 13:19:44 -06:00

33 lines
931 B
C

// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Tests for spawn and wait commands
*
* Copyright 2025, Linaro Ltd.
*/
#include <command.h>
#include <test/cmd.h>
#include <test/test.h>
#include <test/ut.h>
static int test_cmd_spawn(struct unit_test_state *uts)
{
ut_assertok(run_command("wait; spawn sleep 2; setenv j ${job_id}; "
"spawn setenv spawned true; "
"setenv jj ${job_id}; wait; "
"echo ${j} ${jj} ${spawned}", 0));
console_record_readline(uts->actual_str, sizeof(uts->actual_str));
ut_asserteq_ptr(uts->actual_str,
strstr(uts->actual_str, "1 2 true"));
ut_assertok(run_command("spawn true; wait; setenv t $?; spawn false; "
"wait; setenv f $?; wait; echo $t $f $?", 0));
console_record_readline(uts->actual_str, sizeof(uts->actual_str));
ut_asserteq_ptr(uts->actual_str,
strstr(uts->actual_str, "0 1 0"));
ut_assert_console_end();
return 0;
}
CMD_TEST(test_cmd_spawn, UTF_CONSOLE);