mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-14 08:23:59 +08:00
Qualify Panda diagnostic requests
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user