feat: enforce Guanghu-native HoloLake runtime laws

This commit is contained in:
冰朔 2026-08-04 23:11:25 +08:00
commit 67e6fcdd38
57 changed files with 1765 additions and 1504 deletions

View file

@ -22,13 +22,6 @@ const coverageRequire = createCoverageRequire()
const { createCoverageMap } = coverageRequire('istanbul-lib-coverage')
const libReport = coverageRequire('istanbul-lib-report')
const reports = coverageRequire('istanbul-reports')
const thresholdPercent = Number(process.env.VITEST_COVERAGE_THRESHOLD ?? '70')
const thresholds = {
lines: metricThreshold('LINES'),
functions: metricThreshold('FUNCTIONS'),
branches: metricThreshold('BRANCHES'),
statements: metricThreshold('STATEMENTS'),
}
function positiveInteger(value, name) {
if (/^[1-9][0-9]*$/.test(value)) {
@ -39,11 +32,6 @@ function positiveInteger(value, name) {
process.exit(2)
}
function metricThreshold(metricName) {
const value = process.env[`VITEST_COVERAGE_${metricName}_THRESHOLD`]
return value === undefined ? thresholdPercent : Number(value)
}
function createCoverageRequire() {
const require = createRequire(import.meta.url)
const coveragePackagePath = require.resolve('@vitest/coverage-v8/package.json')
@ -166,29 +154,14 @@ function printCoverageSummary(summary) {
const item = summary[metric]
console.log(
`${metric.padEnd(10)} ${String(item.pct).padStart(6)}% `
+ `(${item.covered}/${item.total}, threshold ${thresholds[metric]}%)`,
+ `(${item.covered}/${item.total}, observation only)`,
)
}
}
function checkCoverageThresholds(coverageMap) {
function printObservedCoverage(coverageMap) {
const summary = coverageMap.getCoverageSummary().toJSON()
printCoverageSummary(summary)
const failures = Object.entries(thresholds)
.filter(([metric, threshold]) => summary[metric].pct < threshold)
if (failures.length === 0) {
return
}
for (const [metric, threshold] of failures) {
console.error(
`Coverage for ${metric} (${summary[metric].pct}%) does not meet threshold ${threshold}%`,
)
}
process.exit(1)
}
await clearVitestCache()
@ -196,5 +169,5 @@ await runShards()
const coverageMap = await mergeCoverage()
await writeCoverageReports(coverageMap)
checkCoverageThresholds(coverageMap)
printObservedCoverage(coverageMap)
await rm(shardRoot, { recursive: true, force: true })