- unity: add flag to preserve Python test cases and "is_unity_case" attribute
- nuttx: optional dependency for qemu
- unity: remove [dut-X] prefix from "line" and "file" attribute values in XML report
- wokwi: Use new boards for ESP32-P4
- nuttx: Support new service
nuttx
- wokwi: Use merged bin to ensure partition and bootloader flashing
- jtag: bypass telnet sysaudit on python 3.7
- arduino: Support ESP32-P4
- add more supported targets into App.RISCV32_TARGETS
- qemu: get default toolchain path correctly based on target
- serial: close serial port when exception happens
- jtag: remove deprecate warning from telnetlib.py by pulling telnetlib.py from python v3.12.6
- wokwi: pexpect.spawn not working on windows. use subprocess instead
- jtag: flush previous gdb responses before the first gdb command
- v1.11.2
- jtag: gdb write "remotetimeout" stop waiting for response
- jtag: set gdb remote timeout to 10s by default
- wokwi: Add support for specifying diagram path
- esp: support flash with a different port
- dry run single board unity test
- flexible choices for run_all_single_board_cases
- improve error message when CLI argument is wrong
- esp: support add target as marker ('|' will be escaped to '-')
- wokwi: error when bin,elf file not under app_path
- arduino: stop require optional dependency 'esp'
- qemu: stop require optional dependency 'idf'
- wokwi: Add scenario path parameter
- pytest8.2: stash session_tempdir in a cleaner way
- py3.12: use datetime.now(timezone.utc) instead of utcnow()
- py3.12: use shutil.copytree instead of distutils
- remove required optional dependencies 'idf'
- wokwi: Support Arduino
- Add
DutFactory
to create dut object inside the test functions
- multiprocessing with context instead of set_start_method globally on macos
- non-standard default baud rate
- change baud when flash
- idf: support
flash
other IdfApp object
- unity: change json files related log level from info to debug
- deprecate
use_esptool
args correctly - wrong app.binary_path if app_path is different with cwd
- idf: check sdkconfig items while
erase_flash
- support --esp-flash-force to run esptool.flash with the force flag
- call esptool.main() instead of implementing on our own
- wokwi: support for specifying simulation timeout
- support expect with
not_matching
keyword
- unity: avoid missing attr
message
infailure
nodes
- wokwi: run in interactive mode
- wokwi: preliminary esp32p4 support
- use socket bind to get allowed port
- qemu: fix qmp client missing event loop in main thread
- Support qemu qmp
- idf: make LinuxDut inherit from IdfUnityDutMixin
- unity: remove extra time sleep inside multi-stage tests
- use gdb_panic_server from esp_idf_panic_decoder instead static $IDF_PATH/tools/gdb_panic_server.py
- unity: make single board test procedure more robust
- unity: Support data transfer with signal in multi-dut unity test cases
- added interrupt if one of the test was failed
- remove testcase name postfix
- change threads to generator functions
- change logic of threading control in CaseTester for MultiDev
- wokwi: Support wokwi
- clear all references for the message queue
- Support hard_reset without stub
- add local cache for port-target-cache between session
- arduino: separated flash settings for each target
- arduino: Support target esp32h2 and esp32c6
- qemu: qemu-system-xtensa < 8.0.0 only support 4MB flash size
- qemu: calculate flash image size when "flash_size" not available
- qemu: qemu flash image generated by esptool, support windows as well
- unity: stop sleep 1 second in subcases
- confirm_write with pattern or string
- idf:
IdfApp
add new propertyis_xtensa
,is_riscv32
- idf: add
confirm_write
method to make sure the write happens - idf: add
run_single_board_case
function - idf: expose pytest_embedded_idf.UnittestMenuCase
- qemu: support flash encryption workflow
- qemu: support riscv32 targets, remove target restriction
- qemu: Add more idf non-target related functions when enabling service
idf
- add log in system-out of the junit report
- idf: lazy import optional dependencies
- idf: skip decode panic output when no elf file
- idf: support loadable app with bin file
- illegal xml chars for all types of test cases
- remove 1.1 added unused argument
start_time
- improve logging and use "shell=False" in
DuplicateStdoutPopen
- refine errors and warnings
- illegal xml chars
- serial: support rfc2217 connections
- teardown skipped when setting up period failed for multi-dut
- leaking file descriptors
- idf:
LinuxDut.write
failed sinceserial
isNone
- idf: support running tests on linux targets
- ImportError when install
pytest_embedded
only
- idf: load_ram could use
flash_project_args
file as well
- add "--check-duplicates" cli option to check if there were duplicated test case names or test script names.
- idf: add
run_all_single_board_cases()
toIdfDut
. This function would record duration time for each unity test case even it's unfinished. - idf: add fixture
unity_tester
to test multi device unity test cases (beta) - jtag: add cli option
--no-gdb
to stop create gdb instance automatically
- idf: erase_all when hit the port-app cache cause no binary got flashed
- idf: set correct toolchain prefix for RISC-V targets
- jtag: initialize openocd/gdb processes earlier than app/serial
- jtag: stop redirecting openocd output to pexpect process
- esp: drop port-app cache when
erase_flash
- esp: erase flash before
flash
when set--erase-all
- rewrite set/drop/hit cache code
- support set file extension of the log file
_meta.logdir
should be thetest_case_tempdir
, change to function-scope- remove unused cli option "--reorder-by-app-path"
- add fixture
msg_queue
- add fixture
session_root_logdir
and cli option--root-logdir
- add fixture
dut_index
anddut_total
- add fixture
port_target_cache
,port_app_cache
- simplify import path by adding more object to
__all__
- improve logging in
DuplicateStdoutPopen
instances live_print_call
could accept kwargsmsg_queue
andexpect_returncode
- idf: Support panic handler output for RISC-V targets
- serial: support bind ports by USB device location
- esp:
EspSerial.use_esptool
could accept kwargshard_reset_after
andno_stub
- esp: add
EsptoolArgs
- esp: support bind ports by
esptool
read_mac
- esp: support loadable elf
- jtag: support flash via JTAG
- jtag: support loadable elf
- remove
autouse=True
for fixturesession_tempdir
- add micro second digits to
session_tempdir
- make DuplicateStdoutPopen logs under
session_tmpdir
- multi-dut \r\n messed-up the log
- idf: use empty list or dict for default values
- use multiprocessing.Process with Queue. Only
serial
instance redirect withthreading.Thread
instance.
DuplicateStdoutPopen
and all subclasses- remove
create_forward_io_thread()
, the redirect process would be auto-created - rename
send()
towrite()
in order to keep the consistency with other classes
- remove
- remove
DuplicateStdout
. Now you may usecontextlib.redirect_stdout(msg_queue)
instead - remove
DuplicateStdoutMixin
- esp: Support
esptool>4.0
only - jtag: remove
JtagDut
. useSerialDut
or its subclasses instead
- esp: UnboundLocalError when specify beta_target and port together
- parse error when unity test case name with colon
- esp: support
beta_target
- idf: parse_unity_menu subcases index to int
- multi dut with single junit report
- merge junit report error when multi-dut
- remove asci color code in expect failed exception
- idf: add function to parse the case lists from unit test menu
- wrong xml detected when
_session_tempdir
stash is not initialized - issue when fixture value is not str
- raise exception only if dut
isinstance
Dut
with failure cases - record session_tempdir into
config.stash
- esp: add fixture
esptool_baud
- serial: move fixture
baud
to serviceserial
- cli option "--erase-flash" conflict with function
erase_flash()
- idf: use fixed major version instead of major.minor for esp-coredump
- serial: port occupied before init finished
- esp: Add
--erase-flash
option to erase the flash before programming
- esp: fix esptool import
- esp: loose esptool version dependency. remove the upper limit
- idf: add cli option "--skip-check-coredump"
- idf: make elf file detection optional
- idf: added erase_flash and erase_partition functionality
- idf: KeyError when not enabled coredump related configs
- esp: remove cryptography version limit
- improve debug string
- idf: non-iterable error when flash with encrypted mode
- add method
parse_multi_dut_args
- rename
apply_count_generator
tomulti_dut_generator_fixture
- rename
apply_count
tomulti_dut_fixture
- rename
parse_configuration
tomulti_dut_argument
- support 3.7+ python
- idf: add cli option "--erase-nvs"
- idf: parse coredump when teardown dut
- idf: use flasher_args.json to flash files. Require less files
- serial: add stop_redirect_thread method and disable_redirect_thread context manager
- esp: fix requirements for rpi
- serial: use other serial type as well
- esp: stubbed loader can never read serial because of redirect_io_thread
- add
expect_all
keyword forexpect
andexpect_exact
functions
- esp: esptool wrong boot mode issue
- esp: sort ports before auto detect port target
apply_count
for non-iterable items
- esp: add
hard_reset
method
- jtag: -gdb-set could pass multiple args
- log: flush to sys.stdout instantly
- log: multi-dut now would print source prefix
- unity case name now could include spaces
- would raise correctly when
expect
a list pattern failed
- esp: add use_esptool decorator to auto connect before and hard reset after
- esp: cache port and target
- idf: add --confirm-target-elf-sha256 cli option
- idf: add
dump_flash
method inIdfSerial
- idf: add attr
bin_file
in IdfApp - idf: add flashed elf related methods in
IdfSerial
- idf: add IdfDut class
- idf: cache port and app
- cache port/target, port/app_path_build_dir if possible. use pytest 7.0 feature stash
- extract the binary_path to the
App
class - log the log folders while setup for test case
- the logging.error would turn to be derived error
- use pytest>=7.0
- serial: write to pexpect process until '\n'
- unity: fail at the end if unity test case failed, try run more tests
- unity: set expect_unity_test_output timeout to 60s
- qemu: default image path move to
APP_PATH/BUILD_DIR/IMAGE_NAME
- add
Dut.expect_unity_test_output
method - add fixture
test_case_tempdir
- make import pytest-embedded easier
- show log file location when expect functions failed
- show pexpect process full log file location when expect function failed
- jtag: use real file logging instead of pipe
- qemu:
dut.write
to qemu process correctly - qemu: re-generate qemu image. add cli option "--skip-regenerate_image"
- serial:
dut.write()
could acceptstr
data, auto add\n
ending - ensure use default value set in class if not specified in cli or param
- raise idf app not parsable error if binary path not parsable
- log: thread-safe print instead of logging.info
- remove
expect_list
- arduino: Add Arduino service
- esp: simplify esptool call process
- esp: use env var
ESPPORT
for "--port" andESPBAUD
for "--baud" - esp: use suggest flash baudrate if lower
- log: log buffer as error when no matched pattern while expecting
- windows: Add Windows support
- esp: different dut will not use the same ports anymore
- macos: multiprocessing pickle error
- windows: make setup.py installable
- make the hook function to apply parallel count as the last step
- log: remove
source
argument in allDuplicatedStdout
related functions - qemu: remove cli option
qemu-log-path
- real-time logging
- add
expect_list
andexpect_exact
method toDUT
class - add parallel run cli options
- idf: Run hard reset when skipping auto flash
- qemu: add the missing
build_dir
to the parentIdfApp
- use realpath instead
- base: use the folder where
test_file_path
locates as the defaultapp_path
- idf: replace parse binary config from sdkconfig to sdkconfig.json
- idf: add cli option "build_dir"
- return
re.Match
ifdut.expect()
succeeded - idf: add option
--skip-autoflash
- add version limit or armv71(rpi)
- add dut count at the start of each line
- run close method only when initialized correctly
- correct the error message when service required package not installed
- pexpect process would echo the input, set echo to off
- create folder failed when specifying a file under current folder
- add multi DUT support, use "count" option to duplicate fixtures
- use "embedded-services" option to extend functionalities instead of activating plugins.
- jtag: do not import idf package
- idf: optional dependency with
pytest-embedded-serial-esp
while import
- qemu: rename package to
pytest-embedded-qemu
, with optional dependencypytest-embedded-idf
- jtag: add dependency
pytest-embedded-serial
, remove optional requirementspytest-embedded-serial-esp
- idf: rename module
dut
toserial
, overrideserial
if satisfy the optional dependency - esp: rename module
dut
toserial
, overrideserial
fixture - serial: extract serial into a standalone fixture
- base: Add fixture
pexpect_proc
- jtag: add jtag support
- log: add LivePrintPopen custom Popen class
- qemu:
qemu_cli_args
andqemu_extra_args
now can be set via cli and override via parameterization - serial: make serial port could be overridden by parameterization
- log: use rstrip instead of strip to keep the logs' indentation
- qemu: check image_path exist or not and target chip type while running
- qemu: move
qemu_cli_args
andqemu_extra_args
from cli args to parametrize option
- idf: add base dependency
- base: add App class
- base: add plugin
redirect
to duplicate and redirectsys.stdout
- base: App support encrypt files
- base: class App read target from sdkconfig file
- base: fixture
redirect
could have argumentsource
- idf: make serial/esp dependencies optional
- idf: move idf related app into IDFApp
- idf: move the flash specific code into idf plugin
- idf: simplify flash files, encrypt files parsing
- print: redirect esptool print to pexpect
- qemu: Move qemu to single fixture
- qemu-idf: add qemu-idf
- serial: move serial related into serial plugin
- serial: support flash by serial
- serial: support pexpect from serial
- serial_esp: move esp related serial into a standalone plugin
- duplicate stdout to file descriptor
- move redirect stdout to pexpect process into a reusable decorator
- re-organize code. move esp related serial into embedded-serial-esp
- rename serial_dut/serial_esp to dut to keep consistency
- rename to pytest-embedded
- update feature list after review
- use dynamic import, but not nested plugins
- use multi plugins to attach the method to the DUT class
- writing feature list and some initial design
- base: remove redundant double quote in sdkconfig
- log: fix the subprocess.popen issue while redirecting sys.stdout
- app_path would use test script path if not set
- small fixes about examples and type hint
- typing "list" not available before python 3.9