| // 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); |