Enforce absolute Wasm invocation deadlines

This commit is contained in:
udo
2026-07-19 00:44:18 +00:00
parent fd6d472187
commit a7576f3db7
10 changed files with 591 additions and 92 deletions
+21 -6
View File
@@ -197,7 +197,7 @@ bool cli_doc_example_is_placeholder(String source)
return(false);
}
void cli_run_doc_pages_gate()
void cli_run_doc_pages_gate(u64 shard = 0, u64 shard_count = 1)
{
StringList error_markers;
error_markers.push_back("doc example error");
@@ -207,12 +207,15 @@ void cli_run_doc_pages_gate()
error_markers.push_back(String("uncaught exception during ") + "request");
error_markers.push_back("timed out acquiring compile lock");
for(String file_name : ls("../doc/pages/"))
u64 page_index = 0;
for(String file_name : ls("../doc/pages/").sort())
{
String source = file_get_contents("../doc/pages/" + file_name);
String page = nibble(file_name, ".");
if(page == "")
continue;
if(page_index++ % shard_count != shard)
continue;
bool has_example = cli_doc_source_has_example(source);
String path = "/doc/index.uce?p=" + uri_encode(page);
CliHttpResponse res;
@@ -465,7 +468,7 @@ 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, doc-gate, security, task-lifetime, pool-isolation, starter, tcp");
print(" demo, http, site, doc-gate-1..30, security, task-lifetime, pool-isolation, starter, tcp");
if(include_kill)
print(", wasm-kill");
print("\n");
@@ -480,8 +483,16 @@ bool cli_run_group(String group, bool skip_local_service_pages, bool include_kil
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(str_starts_with(group, "doc-gate-"))
{
u64 shard = int_val(group.substr(9));
if(shard < 1 || shard > 30)
{
cli_test_case("uce_cli_runner:known doc gate shard", false, "unknown group: " + group);
return(false);
}
cli_run_doc_pages_gate(shard - 1, 30);
}
else if(group == "security")
cli_run_security_smoke();
else if(group == "task-lifetime")
@@ -526,7 +537,11 @@ CLI(Request& context)
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", "pool-isolation", "starter", "tcp" })
for(String item : { "demo", "http", "site" })
cli_run_group(item, input["skip_local_service_pages"].to_bool(), include_kill);
for(u64 shard = 1; shard <= 30; shard++)
cli_run_group("doc-gate-" + std::to_string(shard), input["skip_local_service_pages"].to_bool(), include_kill);
for(String item : { "security", "task-lifetime", "pool-isolation", "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);
}