seveibar/adm6-breakout
This code defines PCB designs featuring a 60-pin fanout or direct routing layout with multiple signal and power layers, test pads, and component footprints for a high-density electronic breakout board.
- Version
- 1.0.2
- License
- unset
- Stars
- 0
scripts/run-fanout-test.mjs
import { existsSync, rmSync } from "node:fs"
import { spawnSync } from "node:child_process"
const debugDir = "dist/autorouter-debug"
rmSync(debugDir, { recursive: true, force: true })
const cli = "./node_modules/.bin/tsci"
const build = spawnSync(
cli,
[
"build",
"adm6-fanout.circuit.tsx",
"--autorouter-timeout",
"20s",
],
{ stdio: "inherit" },
)
const expectedArtifacts = [
`${debugDir}/phase-1.previous-output.traces.json`,
`${debugDir}/phase-1.timeout.json`,
`${debugDir}/board.source-and-pcb.circuit.json`,
]
if (!expectedArtifacts.every(existsSync)) {
throw new Error(
`The bounded tscircuit run did not produce the expected fanout artifacts (exit ${build.status})`,
)
}
for (const script of ["scripts/verify-fanout.mjs", "scripts/render-fanout-stage.mjs"]) {
const result = spawnSync(process.execPath, [script], { stdio: "inherit" })
if (result.status !== 0) process.exit(result.status ?? 1)
}