Skip to content

[WIP] Resolve legacy test harness HTTP aliases - #5568

Open
Xeicker wants to merge 1 commit into
masterfrom
fix-blackbox-http-aliases
Open

Xeicker wants to merge 1 commit into
masterfrom
fix-blackbox-http-aliases

Conversation

@Xeicker

@Xeicker Xeicker commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Context:

When blackbox browser fuzzing (E.g. inferno_layout_test_fuzzer) serves corpus testcases from web_tests.zip over BotHTTPServer (e.g., on Android emulators where FUZZ_DATA is served via HTTP), root-relative test-harness URLs (/tests/SimpleTest/..., /MochiKit/..., /js-test-resources/..., etc.) and WPT ?pipe= query URLs fail with 404 (Could not find an absolute path for ...). Missing harness scripts (SimpleTest.js, js-test.js) abort testcase JS execution with ReferenceError

What this fixes
Resolves 404s when BotHTTPServer serves legacy Mochitest, Blink, and WebKit test-harness paths (/tests/SimpleTest/..., /MochiKit/..., /js-test-resources/..., etc.) and ?pipe= query URLs from web_tests.zip, with a directory check in chrome_tests_syncer.py so upstream renames fail loudly at sync time.

Why not reuse Chromium's native web-test server setup: Chromium's run_web_tests (apache_http.py / wptserve) runs separate servers/ports per suite, which collides with ClusterFuzz serving Blink, WPT, WebKit, Gecko, data bundles, and generated testcases from a single BotHTTPServer port (where paths like /resources/ overlap across suites) and relying on http_server.get_absolute_testcase_file() in Python to package crash dependencies.

Testing:

  • Unit tests (http_server_test.py, chrome_tests_syncer_test.py) and butler.py lint.
  • End-to-end A/B Swarming validation with inferno_layout_test_fuzzer on an Android emulator blackbox job (413 → 0 aliased/query 404s; 418 → 0 WARNING 404s).

@Xeicker
Xeicker requested review from a team as code owners October 29, 2026 18:56
@Xeicker Xeicker changed the title Resolve legacy test harness HTTP aliases [Draft] Resolve legacy test harness HTTP aliases Oct 29, 2026
@Xeicker
Xeicker requested a review from IvanBM18 October 29, 2026 20:08
@Xeicker Xeicker changed the title [Draft] Resolve legacy test harness HTTP aliases Resolve legacy test harness HTTP aliases Oct 29, 2026
@g-ortuno

Copy link
Copy Markdown
Collaborator

What's the context for this PR?

@Xeicker

Xeicker commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator Author

What's the context for this PR?

@IvanBM18 Found some 404 errors on aluminum fuzzers that uncover this bug. Adding context in the description

@dylanjew dylanjew left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! is there a bug for this?

And is there a way to run the test syncer job to verify it as well? If you change it to just log the error this is less critical.

@Xeicker

Xeicker commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator Author

Thanks! is there a bug for this?

The bug is in b/570581291

@Xeicker Xeicker changed the title Resolve legacy test harness HTTP aliases [WIP] Resolve legacy test harness HTTP aliases Oct 30, 2026
Add static HTTP_ALIASES in http_server.py for legacy Gecko Mochitest, Blink, and WebKit test-server mounts, verify all alias target directories exist before zipping web_tests.zip in chrome_tests_syncer.py, strip URL queries/fragments before resolving local paths, and log 404 misses at INFO level.
@Xeicker
Xeicker force-pushed the fix-blackbox-http-aliases branch from c5c3a60 to 5ddd386 Compare October 30, 2026 21:20

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants