Qualify Panda diagnostic requests

This commit is contained in:
firestar5683
2026-11-02 21:03:26 +00:00
parent dea0ca1a91
commit 7125680cd3
+8 -6
View File
@@ -7,7 +7,7 @@ from panda import Panda, McuType
@pytest.mark.parametrize('mcu', (McuType.F4, McuType.H7))
@pytest.mark.parametrize('version', ('DEV-source-DEBUG', 'DEV-source-DEBUG-FAULTTEST'))
@pytest.mark.parametrize('method,arguments,request,h7', (
@pytest.mark.parametrize('method,arguments,opcode,h7', (
('inject_fault', (2,), 0xea, False),
('inject_hardfault', (), 0xeb, False),
('inject_nmi', (), 0xec, False),
@@ -17,7 +17,7 @@ from panda import Panda, McuType
('inject_self_test_failure', (2,), 0xed, True),
('inject_readback_fault', (2,), 0xe9, True),
))
def test_diagnostic_requests_require_dedicated_bench_firmware(mcu, version, method, arguments, request, h7):
def test_diagnostic_requests_require_dedicated_bench_firmware(mcu, version, method, arguments, opcode, h7):
panda = object.__new__(Panda)
panda._handle = Mock()
panda.get_mcu_type = lambda: mcu
@@ -33,9 +33,9 @@ def test_diagnostic_requests_require_dedicated_bench_firmware(mcu, version, meth
panda._handle.controlWrite.assert_not_called()
else:
getattr(panda, method)(*arguments)
assert request != 0xf5
assert opcode != 0xf5
panda._handle.controlWrite.assert_called_once()
assert panda._handle.controlWrite.call_args.args[1] == request
assert panda._handle.controlWrite.call_args.args[1] == opcode
def test_body_does_not_claim_fault_injection_capability():
@@ -59,7 +59,7 @@ def test_body_does_not_claim_fault_injection_capability():
def test_build_requires_explicit_debug_fault_injection(monkeypatch, release, injection, expected):
import ast
from pathlib import Path
from SCons.Script import File
from SCons.Node.FS import FS
root = Path(__file__).resolve().parents[2]
source = root / 'SConscript'
@@ -75,7 +75,9 @@ def test_build_requires_explicit_debug_fault_injection(monkeypatch, release, inj
monkeypatch.delenv('RELEASE', raising=False)
monkeypatch.setenv('CERT', str(root / 'board/crypto/certs/debug'))
monkeypatch.setenv('PANDA_FAULT_INJECTION', injection)
namespace = {'File': File}
filesystem = FS(str(root))
filesystem.set_SConstruct_dir(filesystem.Dir('.'))
namespace = {'File': filesystem.File}
code = compile(ast.Module(body=prefix, type_ignores=[]), str(source), 'exec')
if expected is None:
with pytest.raises(ValueError):