AnasSarkiz/usb-c-pd-brushed-motor

USB-C PD-powered motor controller with protected input, selectable 5/9/12 V buck supply, MCU qualification, PWM H-bridge drive, overvoltage sensing, regenerative energy-dump resistors, and safety interlocks.

Version
0.0.1-a48-cloud-pipeline9-unrouted-c41d79a-305b1e7a
License
unset
Stars
0

tests/motor-owner.test.ts

import { expect, test } from "bun:test"
import { spawnSync } from "node:child_process"

test("serialized owner applies only fresh qualified contracts and revokes on faults", () => {
  const executable = "evidence/motor-owner-bun-test-A22"
  const modules = [
    "stm32_safe_gpio",
    "stm32_adc",
    "motor_measurement",
    "pd_policy",
    "pd_sequence",
    "stusb4500_rx",
    "stusb4500_startup",
    "stusb4500_request",
    "stusb4500_nvm",
    "motor_owner",
    "motor_owner_test",
  ]
  const compile = spawnSync(
    process.env.CC ?? "clang",
    [
      "-std=c11",
      "-Wall",
      "-Wextra",
      "-Werror",
      "-Ifirmware/vendor/stm32g0/Include",
      "-Ifirmware/vendor/cmsis/Core/Include",
      ...modules.map((module) => `firmware/${module}.c`),
      "-o",
      executable,
    ],
    { encoding: "utf8" },
  )
  expect(compile.status, compile.stderr).toBe(0)
  const result = spawnSync(`./${executable}`, [], { encoding: "utf8" })
  expect(result.status, result.stderr).toBe(0)
  expect(result.stdout).toContain(
    "Serialized motor-owner integration/fault tests passed",
  )
})