Developer tools
Component test catalog.
Small, focused command-line programs for exercising Open Road Code one subsystem at a time. Each entry explains what the test exercises, the associated subsystem boundaries, where the test lives, and what hardware or external services it needs.
| Test | Description | Associated subsystem(s) | Environment / hardware | Source location |
|---|---|---|---|---|
>_Mock input adapters mock_input_adapters_cli.py | Feeds mocked keyboard and rotary-encoder events through InputMapper and InputManager and prints the resulting UI actions. Useful for validating the complete input mapping/dispatch path without physical controls. | Input events · InputMapper · InputManager · UI actions | Dev machine No external hardware. | controllers/input/component_test/mock_input_adapters_cli.pymaster |
⌨Keyboard input adapter keyboard_input_adapter_cli.py | Exercises the physical Linux keyboard path from KeyboardReader through KeyboardInputAdapter, input mapping, and UI-action dispatch. Accepts an optional Linux input-event device path. | Hardware I/O · keyboard · input adapter · mapping · UI actions | Dev machine Linux keyboard/input device. | controllers/input/component_test/keyboard_input_adapter_cli.pymaster |
⌨Keyboard reader keyboard_cli.py | Reads keyboard events at the hardware-I/O boundary so key detection can be verified independently of controller and UI mapping logic. | Hardware I/O · keyboard | Dev machine Linux keyboard/input device. | hardware_io/keyboard/component_test/keyboard_cli.pymaster |
GPS reader gps_cli.py | Exercises the GPS hardware-I/O reader and reports incoming position data, providing a focused check of the GNSS/NMEA acquisition path before navigation consumes it. | Hardware I/O · GPS/GNSS · NMEA · positioning | Hardware USB/UART GPS, or repository GPS emulator. | hardware_io/gps/component_test/gps_cli.pymaster |
IMU imu_cli.py | Reads motion/orientation sensor data directly through the IMU hardware abstraction to verify I²C communication and sensor reporting independently of navigation. | Hardware I/O · I²C · IMU · motion/orientation | Hardware MPU-6050-compatible I²C IMU. | hardware_io/imu/component_test/imu_cli.pymaster |
Barometric sensor barometric_cli.py | Exercises the environmental sensor adapter at the hardware boundary and reports pressure/temperature data before controller-level processing. | Hardware I/O · environmental · I²C · pressure · temperature | Hardware BMP388/BMP390-class sensor for physical mode. | hardware_io/environmental/component_test/barometric_cli.pymaster |
Barometric controller barometric_cli.py | Exercises the environmental controller layer, validating how raw barometric readings are exposed as controller state rather than testing only the sensor transport. | Environmental controller · barometric state · sensor adapter | Hardware BMP3xx sensor when using the real adapter. | controllers/environmental/component_test/barometric_cli.pymaster |
CANCAN frame parser can_frame_cli.py | Exercises CAN frame representation/parsing with software data so protocol behavior can be checked without attaching a CAN interface or vehicle. | CAN protocol · frame parsing · automotive data | Dev machine No CAN interface required. | protocols/can/component_test/can_frame_cli.pymaster |
OBDOBD-II protocol obd2_protocol_cli.py | Exercises OBD-II command/PID protocol handling and decoding independently of a live vehicle connection. Suitable for protocol development with simulated responses. | OBD-II protocol · PID decoding · automotive | Dev machine Simulated adapter supported. | protocols/obd2/component_test/obd2_protocol_cli.pymaster |
OBDELM327 device elm327_cli.py | Talks directly to an ELM327-compatible adapter to verify the physical automotive transport and adapter command path. | Hardware I/O · automotive · ELM327 · OBD-II transport | Hardware ELM327-compatible OBD-II adapter. | hardware_io/automotive/elm327/component_test/elm327_cli.pymaster |
OBDOBD-II manager obd2_cli.py | Exercises the controller-level OBD-II manager with live vehicle data, covering the path above the ELM327 transport and protocol layers. | Automotive controller · OBD-II · ELM327 · vehicle state | Hardware ELM327 adapter and vehicle for live data. | controllers/automotive/obd2/component_test/obd2_cli.pymaster |
♫Spotify mock spotify_mock_cli.py | Exercises Spotify/media controller behavior with mock playback state, allowing UI and controller development without an account or network dependency. | Spotify controller · media state · playback | Dev machine No Spotify account or hardware. | controllers/spotify/component_test/spotify_mock_cli.pymaster |
♫Spotify Web API spotify_web_api_cli.py | Exercises the real Spotify Web API controller, including authenticated playback-state retrieval and supported remote-control operations. | Spotify controller · Web API · OAuth · media | Service / network Internet and Spotify credentials. | controllers/spotify/component_test/spotify_web_api_cli.pymaster |
↗OAuth client oauth_cli.py | Exercises the OAuth/PKCE authorization flow independently of a consuming media controller, useful for validating browser redirects, tokens, and credentials. | OAuth protocol · PKCE · browser authorization | Service / network OAuth provider and browser. | protocols/oauth/component_test/oauth_cli.pymaster |
▣Image cache image_cache_cli.py | Exercises image retrieval and caching independently of the UI, including local cache behavior and remote artwork download when a URL is used. | Image controller · cache · artwork/download | Dev machine Network only for remote images. | controllers/image/component_test/image_cache_cli.pymaster |
▶YouTube music video youtube_music_video_cli.py | Exercises music-to-video lookup against YouTube so matching/search behavior can be tested separately from the Spotify and UI layers. | Video controller · YouTube · music matching | Service / network Internet and configured API access. | controllers/video/component_test/youtube_music_video_cli.pymaster |
▶Spotify music video spotify_music_video_controller_cli.py | Exercises the integration that takes Spotify track metadata and resolves a corresponding music video through the video controller. | Spotify · video controller · YouTube · media integration | Service / network Internet and service credentials. | controllers/video/component_test/spotify_music_video_controller_cli.pymaster |
NAVNavigation controller navigation_cli.py | Exercises navigation state generation from position and orientation sources. Simulated sources allow desktop development while GPS/IMU sources can be substituted for live integration. | Navigation controller · positioning · orientation · GPS/IMU sources | Dev machine Simulated sources; GPS/IMU optional for live mode. | controllers/navigation/component_test/navigation_cli.pymaster |
Radio controller radio_controller_cli.py | Exercises the radio controller against its rig-control backend, validating tuning and mode control independently of the cockpit UI. | Radio controller · rigctl · SDR | Service / network rigctl backend; SDR for live RF. | controllers/radio/component_test/radio_controller_cli.pymaster |
SDR++ rigctl sdrpp_rigctl_cli.py | Talks directly to the SDR++ rigctl server to isolate and verify the external SDR control interface before layering the OpenRoadCode radio controller above it. | Radio · SDR++ · rigctl transport | Service / network SDR++ rigctl server; SDR recommended. | controllers/radio/component_test/sdrpp_rigctl_cli.pymaster |
AUDAudio controller audio_cli.py | Exercises system audio control from the command line, including the Linux PipeWire/PulseAudio-facing backend used for volume management. | Audio controller · PipeWire/PulseAudio · system volume | Dev machine Linux audio stack. | controllers/audio/component_test/audio_cli.pymaster |
ZMQVehicle-state messaging vehicle_state_*_cli.py | Runs the vehicle-state ZeroMQ publisher/subscriber tools to validate serialization, transport, endpoint configuration, and automotive telemetry contracts without launching the full UI. | Messaging · ZeroMQ · vehicle-state contracts · automotive telemetry | Dev machine Local ZeroMQ endpoints. | messaging/component_test/vehicle_state_*_cli.pymaster |
ZMQNavigation-state messaging position_state_* / navigation_state_*_cli.py | Runs navigation/position ZeroMQ publisher and subscriber tools to verify public contracts and transport independently of navigation services and UI consumers. | Messaging · ZeroMQ · position/navigation contracts · navigation telemetry | Dev machine Local ZeroMQ endpoints; hardware optional for live publishers. | messaging/component_test/position_state_*_cli.pymaster |