Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.42.0] - 2025-12-23

### Added

- Added explicit way to forward self app name to Ragger/Speculos if it is not readable in the elf file

## [1.41.1] - 2025-12-12

### Fixed
Expand Down
6 changes: 5 additions & 1 deletion src/ragger/conftest/base_conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,11 @@ def prepare_speculos_args(root_pytest_dir: Path,
if conf.OPTIONAL.MAIN_APP_DIR is not None:
# This repo holds the library, not the standalone app: search in root_dir/build
lib_path = find_application(project_root_dir, device_name, manifest.app.sdk)
speculos_args.append(f"-l{lib_path}")
load_name = ""
if conf.OPTIONAL.SELF_APP_NAME is not None:
# This repo wants to set a specific library name
load_name = f"{conf.OPTIONAL.SELF_APP_NAME}:"
speculos_args.append(f"-l{load_name}{lib_path}")

# Legacy lib method, remove once exchange is ported
if len(conf.OPTIONAL.SIDELOADED_APPS) != 0:
Expand Down
10 changes: 10 additions & 0 deletions src/ragger/conftest/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
class OptionalOptions:
APP_NAME: str
MAIN_APP_DIR: Optional[str]
SELF_APP_NAME: Optional[str]
SIDELOADED_APPS: dict
SIDELOADED_APPS_DIR: Optional[str]
BACKEND_SCOPE: str
Expand All @@ -30,6 +31,15 @@ class OptionalOptions:
# There must be exactly one application cloned inside this directory.
MAIN_APP_DIR=None,

# If not None, this parameter specifies the name of the library application (the one in the
# current repository) when loaded by Speculos. This is only used when MAIN_APP_DIR is set.
#
# example: configuration.OPTIONAL.SELF_APP_NAME = "Bitcoin"
# Speculos will then load the library with the "-lBitcoin:<path>" argument.
#
# This is unnecessary for C applications as the application name is read from the ELF file.
SELF_APP_NAME=None,

# Deprecated
SIDELOADED_APPS=dict(),

Expand Down
Loading