Compare commits

...

3 Commits

Author SHA1 Message Date
Dylan Conway
b3b80ec6f2 skip tail-call-should-consume-stack-in-bbq.js on Windows SDE (17+ min) 2026-02-21 16:45:54 -08:00
Dylan Conway
98064f6d2f fix: retry WebKit download up to 3 times on transient network errors 2026-02-21 15:29:54 -08:00
Dylan Conway
e623787ea3 fix(cmake): use GITHUB_TOKEN for dependency downloads to avoid rate limits
Pass Authorization header for GitHub URLs when GITHUB_TOKEN is set.
Raises the rate limit from 60 to 5000 requests/hour, preventing
download failures when many dependencies are fetched in parallel.

Only applies to github.com URLs. No-op when GITHUB_TOKEN is unset.
2026-02-21 15:00:25 -08:00
3 changed files with 28 additions and 9 deletions

View File

@@ -30,6 +30,11 @@ else()
set(DOWNLOAD_ACCEPT_HEADER "Accept: */*")
endif()
set(DOWNLOAD_AUTH_HEADER)
if(DEFINED ENV{GITHUB_TOKEN} AND NOT "$ENV{GITHUB_TOKEN}" STREQUAL "" AND DOWNLOAD_URL MATCHES "^https://github\\.com/")
set(DOWNLOAD_AUTH_HEADER HTTPHEADER "Authorization: Bearer $ENV{GITHUB_TOKEN}")
endif()
foreach(i RANGE 10)
set(DOWNLOAD_TMP_FILE_${i} ${DOWNLOAD_TMP_FILE}.${i})
@@ -38,12 +43,13 @@ foreach(i RANGE 10)
else()
message(STATUS "Downloading ${DOWNLOAD_URL}... (retry ${i})")
endif()
file(DOWNLOAD
${DOWNLOAD_URL}
${DOWNLOAD_TMP_FILE_${i}}
HTTPHEADER "User-Agent: cmake/${CMAKE_VERSION}"
HTTPHEADER ${DOWNLOAD_ACCEPT_HEADER}
${DOWNLOAD_AUTH_HEADER}
STATUS DOWNLOAD_STATUS
INACTIVITY_TIMEOUT 60
TIMEOUT 180

View File

@@ -241,13 +241,21 @@ if(EXISTS ${WEBKIT_PATH}/package.json)
endif()
endif()
file(
DOWNLOAD ${WEBKIT_DOWNLOAD_URL} ${CACHE_PATH}/${WEBKIT_FILENAME} SHOW_PROGRESS
STATUS WEBKIT_DOWNLOAD_STATUS
)
if(NOT "${WEBKIT_DOWNLOAD_STATUS}" MATCHES "^0;")
message(FATAL_ERROR "Failed to download WebKit: ${WEBKIT_DOWNLOAD_STATUS}")
endif()
foreach(WEBKIT_DOWNLOAD_ATTEMPT RANGE 1 3)
file(
DOWNLOAD ${WEBKIT_DOWNLOAD_URL} ${CACHE_PATH}/${WEBKIT_FILENAME} SHOW_PROGRESS
STATUS WEBKIT_DOWNLOAD_STATUS
)
if("${WEBKIT_DOWNLOAD_STATUS}" MATCHES "^0;")
break()
endif()
message(WARNING "WebKit download attempt ${WEBKIT_DOWNLOAD_ATTEMPT} failed: ${WEBKIT_DOWNLOAD_STATUS}")
file(REMOVE ${CACHE_PATH}/${WEBKIT_FILENAME})
if(WEBKIT_DOWNLOAD_ATTEMPT EQUAL 3)
message(FATAL_ERROR "Failed to download WebKit after 3 attempts: ${WEBKIT_DOWNLOAD_STATUS}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 5)
endforeach()
file(ARCHIVE_EXTRACT INPUT ${CACHE_PATH}/${WEBKIT_FILENAME} DESTINATION ${CACHE_PATH} TOUCH)
file(REMOVE ${CACHE_PATH}/${WEBKIT_FILENAME})

View File

@@ -180,8 +180,13 @@ if (values["jit-stress"]) {
await runTest(`[${i + 1}/${jsFixtures.length}] ${fixture}`, ["--preload", preloadPath, join(fixturesDir, fixture)]);
}
const skipFixtures = new Set<string>();
if (isWindows) {
// 100k recursive tail calls with exceptions — takes 17+ minutes under SDE
skipFixtures.add("tail-call-should-consume-stack-in-bbq.js");
}
const wasmFixtures = readdirSync(wasmFixturesDir)
.filter(f => f.endsWith(".js"))
.filter(f => f.endsWith(".js") && !skipFixtures.has(f))
.sort();
console.log();
console.log(`--- Wasm fixtures (BBQ/OMG) — ${wasmFixtures.length} tests`);