test: run CLI gates by group

This commit is contained in:
udo
2026-07-14 04:04:55 +00:00
parent 9d707a1c04
commit 2a1400b78c
3 changed files with 70 additions and 34 deletions
+45 -31
View File
@@ -401,12 +401,47 @@ void cli_run_wasm_kill(bool include_kill)
void cli_print_list(bool include_kill)
{
print("UCE CLI test groups:\n");
print(" demo, http, site, security, starter, tcp");
print(" demo, http, site, doc-gate, security, task-lifetime, starter, tcp");
if(include_kill)
print(", wasm-kill");
print("\n");
}
bool cli_run_group(String group, bool skip_local_service_pages, bool include_kill)
{
f64 group_start = time_precise();
if(group == "demo")
cli_run_demo_smoke();
else if(group == "http")
cli_run_http_smoke();
else if(group == "site")
cli_run_site_suite(skip_local_service_pages);
else if(group == "doc-gate")
cli_run_doc_pages_gate();
else if(group == "security")
cli_run_security_smoke();
else if(group == "task-lifetime")
cli_run_task_lifetime_smoke();
else if(group == "starter")
cli_run_starter_parity();
else if(group == "tcp")
{
cli_run_tcp_smoke();
String repo_root = process_start_directory();
String cli_arg_out = shell_exec("cd " + shell_escape(repo_root) + " && bash scripts/uce-cli /tests/cli.uce action=arg message=hello-cli 2>&1");
cli_test_case("uce_cli_fixture:cli_arg", contains(cli_arg_out, "hello-cli") && contains(cli_arg_out, "fallback"), cli_truncate(cli_arg_out));
}
else if(group == "wasm-kill")
cli_run_wasm_kill(include_kill);
else
{
cli_test_case("uce_cli_runner:known group", false, "unknown group: " + group);
return(false);
}
print("[GROUP] ", group, " ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
return(true);
}
CLI(Request& context)
{
context.header["Content-Type"] = "text/plain; charset=utf-8";
@@ -420,36 +455,15 @@ CLI(Request& context)
}
print("Running UCE CLI tests\n");
f64 group_start = time_precise();
cli_run_demo_smoke();
print("[GROUP] demo ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
group_start = time_precise();
cli_run_http_smoke();
print("[GROUP] http ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
group_start = time_precise();
cli_run_site_suite(input["skip_local_service_pages"].to_bool());
print("[GROUP] site ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
group_start = time_precise();
cli_run_doc_pages_gate();
print("[GROUP] doc-gate ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
group_start = time_precise();
cli_run_security_smoke();
print("[GROUP] security ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
group_start = time_precise();
cli_run_task_lifetime_smoke();
print("[GROUP] task-lifetime ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
group_start = time_precise();
cli_run_starter_parity();
print("[GROUP] starter ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
group_start = time_precise();
cli_run_tcp_smoke();
String repo_root = process_start_directory();
String cli_arg_out = shell_exec("cd " + shell_escape(repo_root) + " && bash scripts/uce-cli /tests/cli.uce action=arg message=hello-cli 2>&1");
cli_test_case("uce_cli_fixture:cli_arg", contains(cli_arg_out, "hello-cli") && contains(cli_arg_out, "fallback"), cli_truncate(cli_arg_out));
print("[GROUP] tcp ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
group_start = time_precise();
cli_run_wasm_kill(include_kill);
print("[GROUP] wasm-kill ", std::to_string((u64)((time_precise() - group_start) * 1000)), " ms\n");
String group = input["group"].to_string();
if(group != "")
cli_run_group(group, input["skip_local_service_pages"].to_bool(), include_kill);
else
{
for(String item : { "demo", "http", "site", "doc-gate", "security", "task-lifetime", "starter", "tcp" })
cli_run_group(item, input["skip_local_service_pages"].to_bool(), include_kill);
cli_run_group("wasm-kill", input["skip_local_service_pages"].to_bool(), include_kill);
}
print("\nSummary: ", std::to_string(cli_tests_passed), " passed, ", std::to_string(cli_tests_failed), " failed, ", std::to_string(cli_tests_skipped), " skipped\n");
if(cli_tests_failed != 0)
{