// SPDX-License-Identifier: GPL-2.0-or-later /* * Tests for spawn and wait commands * * Copyright 2025, Linaro Ltd. */ #include #include #include #include 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);