ci(json): Add requires_any field and use QIO by default to match IDE … #427
GitHub Actions / Test Results
failed
Oct 21, 2024 in 0s
2 errors, 31 pass in 1h 46m 20s
155 files 155 suites 1h 46m 20s ⏱️
33 tests 31 ✅ 0 💤 0 ❌ 2 🔥
323 runs 317 ✅ 0 💤 0 ❌ 6 🔥
Results for commit 4ca635a.
Annotations
Check failure on line 0 in performance.psramspeed.test_psramspeed
github-actions / Test Results
3 out of 6 runs with error: test_psramspeed (performance.psramspeed.test_psramspeed)
./artifacts/parent-artifacts/results/hw/validation/psram/esp32/psram.xml [took 0s]
./artifacts/parent-artifacts/results/hw/validation/psram/esp32s2/psram.xml [took 1s]
./artifacts/parent-artifacts/results/hw/validation/psram/esp32s3/psram.xml [took 0s]
Raw output
failed on setup with "SystemExit: 2"
self = AddrFilenamePairAction(option_strings=[], dest='addr_filename', nargs='+', const=None, default=None, type=None, choices=None, help='Address followed by binary filename, separated by space', metavar='<address> <filename>')
parser = ArgumentParser(prog='esptool write_flash', usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)
namespace = Namespace(addr_filename=None, erase_all=False, flash_freq='keep', flash_mode='keep', flash_size='keep', spi_connection...=False, encrypt_files=None, ignore_flash_encryption_efuse_setting=False, force=False, compress=None, no_compress=False)
values = ['4096', '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bootloader.bin', '32768', '/github/home/.arduino/...am/build.tmp/psramspeed.ino.partitions.bin', '65536', '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bin']
option_string = None
def __call__(self, parser, namespace, values, option_string=None):
# validate pair arguments
pairs = []
for i in range(0, len(values), 2):
try:
address = int(values[i], 0)
except ValueError:
raise argparse.ArgumentError(
self, 'Address "%s" must be a number' % values[i]
)
try:
> argfile = open(values[i + 1], "rb")
E FileNotFoundError: [Errno 2] No such file or directory: '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bootloader.bin'
/usr/local/lib/python3.10/site-packages/esptool/__init__.py:1278: FileNotFoundError
During handling of the above exception, another exception occurred:
self = ArgumentParser(prog='esptool write_flash', usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)
args = ['4096', '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bootloader.bin', '32768', '/github/home/.arduino/...ild.tmp/psramspeed.ino.partitions.bin', '65536', '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bin', ...]
namespace = Namespace(addr_filename=None, erase_all=False, flash_freq='keep', flash_mode='keep', flash_size='keep', spi_connection...=False, encrypt_files=None, ignore_flash_encryption_efuse_setting=False, force=False, compress=None, no_compress=False)
def parse_known_args(self, args=None, namespace=None):
if args is None:
# args default to the system args
args = _sys.argv[1:]
else:
# make sure that args are mutable
args = list(args)
# default Namespace built from parser defaults
if namespace is None:
namespace = Namespace()
# add any action defaults that aren't present
for action in self._actions:
if action.dest is not SUPPRESS:
if not hasattr(namespace, action.dest):
if action.default is not SUPPRESS:
setattr(namespace, action.dest, action.default)
# add any parser defaults that aren't present
for dest in self._defaults:
if not hasattr(namespace, dest):
setattr(namespace, dest, self._defaults[dest])
# parse the arguments and exit if there are any errors
if self.exit_on_error:
try:
> namespace, args = self._parse_known_args(args, namespace)
/usr/local/lib/python3.10/argparse.py:1854:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.10/argparse.py:2045: in _parse_known_args
positionals_end_index = consume_positionals(start_index)
/usr/local/lib/python3.10/argparse.py:2022: in consume_positionals
take_action(action, args)
/usr/local/lib/python3.10/argparse.py:1931: in take_action
action(self, namespace, argument_values, option_string)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = AddrFilenamePairAction(option_strings=[], dest='addr_filename', nargs='+', const=None, default=None, type=None, choices=None, help='Address followed by binary filename, separated by space', metavar='<address> <filename>')
parser = ArgumentParser(prog='esptool write_flash', usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)
namespace = Namespace(addr_filename=None, erase_all=False, flash_freq='keep', flash_mode='keep', flash_size='keep', spi_connection...=False, encrypt_files=None, ignore_flash_encryption_efuse_setting=False, force=False, compress=None, no_compress=False)
values = ['4096', '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bootloader.bin', '32768', '/github/home/.arduino/...am/build.tmp/psramspeed.ino.partitions.bin', '65536', '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bin']
option_string = None
def __call__(self, parser, namespace, values, option_string=None):
# validate pair arguments
pairs = []
for i in range(0, len(values), 2):
try:
address = int(values[i], 0)
except ValueError:
raise argparse.ArgumentError(
self, 'Address "%s" must be a number' % values[i]
)
try:
argfile = open(values[i + 1], "rb")
except IOError as e:
> raise argparse.ArgumentError(self, e)
E argparse.ArgumentError: argument <address> <filename>: [Errno 2] No such file or directory: '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bootloader.bin'
/usr/local/lib/python3.10/site-packages/esptool/__init__.py:1280: ArgumentError
During handling of the above exception, another exception occurred:
args = ()
kwargs = {'_fixture_classes_and_options': ClassCliOptions(classes={'app': <class 'pytest_embedded_arduino.app.ArduinoApp'>, 'se...ded_arduino.app.ArduinoApp object at 0xb5545388>, 'msg_queue': <pytest_embedded.log.MessageQueue object at 0xb552bc28>}
_close_or_terminate = <function multi_dut_generator_fixture.<locals>.wrapper.<locals>._close_or_terminate at 0xb5549190>
res = None
@functools.wraps(func)
def wrapper(*args, **kwargs):
def _close_or_terminate(obj):
if obj is None:
del obj
return
try:
if isinstance(obj, (subprocess.Popen, multiprocessing.process.BaseProcess)):
obj.terminate()
obj.kill()
elif isinstance(obj, io.IOBase):
try:
obj.close()
except Exception as e:
logging.debug('file %s closed failed with error: %s', obj, str(e))
else:
try:
obj.close()
except AttributeError:
try:
obj.terminate()
except AttributeError:
pass
except Exception as e:
logging.debug('Not properly caught object %s: %s', obj, str(e))
except Exception as e:
logging.debug('%s: %s', obj, str(e))
return # swallow up all error
finally:
referrers = gc.get_referrers(obj)
for _referrer in referrers:
if isinstance(_referrer, list):
for _i, val in enumerate(_referrer):
if val is obj:
_referrer[_i] = None
elif isinstance(_referrer, dict):
for key, value in _referrer.items():
if value is obj:
_referrer[key] = None
del obj
if _COUNT == 1:
res = None
try:
> res = func(*args, **kwargs)
/usr/local/lib/python3.10/site-packages/pytest_embedded/plugin.py:490:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.10/site-packages/pytest_embedded/plugin.py:1111: in serial
return serial_gn(**locals())
/usr/local/lib/python3.10/site-packages/pytest_embedded/dut_factory.py:431: in serial_gn
return cls(**_drop_none_kwargs(kwargs))
/usr/local/lib/python3.10/site-packages/pytest_embedded_arduino/serial.py:26: in __init__
super().__init__(
/usr/local/lib/python3.10/site-packages/pytest_embedded_serial_esp/serial.py:130: in __init__
super().__init__(
/usr/local/lib/python3.10/site-packages/pytest_embedded_serial/serial.py:95: in __init__
self._start()
/usr/local/lib/python3.10/site-packages/pytest_embedded_arduino/serial.py:36: in _start
self.flash()
/usr/local/lib/python3.10/site-packages/pytest_embedded_serial_esp/serial.py:174: in wrapper
ret = func(self, *args, **kwargs)
/usr/local/lib/python3.10/site-packages/pytest_embedded_arduino/serial.py:58: in flash
esptool.main(
/usr/local/lib/python3.10/site-packages/esptool/__init__.py:720: in main
args = parser.parse_args(argv)
/usr/local/lib/python3.10/argparse.py:1821: in parse_args
args, argv = self.parse_known_args(args, namespace)
/usr/local/lib/python3.10/argparse.py:1854: in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
/usr/local/lib/python3.10/argparse.py:2045: in _parse_known_args
positionals_end_index = consume_positionals(start_index)
/usr/local/lib/python3.10/argparse.py:2022: in consume_positionals
take_action(action, args)
/usr/local/lib/python3.10/argparse.py:1931: in take_action
action(self, namespace, argument_values, option_string)
/usr/local/lib/python3.10/argparse.py:1210: in __call__
subnamespace, arg_strings = parser.parse_known_args(arg_strings, None)
/usr/local/lib/python3.10/argparse.py:1857: in parse_known_args
self.error(str(err))
/usr/local/lib/python3.10/argparse.py:2578: in error
self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ArgumentParser(prog='esptool write_flash', usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)
status = 2
message = "esptool write_flash: error: argument <address> <filename>: [Errno 2] No such file or directory: '/github/home/.arduino/tests/psram/build.tmp/psramspeed.ino.bootloader.bin'\n"
def exit(self, status=0, message=None):
if message:
self._print_message(message, _sys.stderr)
> _sys.exit(status)
E SystemExit: 2
/usr/local/lib/python3.10/argparse.py:2565: SystemExit
Check failure on line 0 in validation.psram.test_psram
github-actions / Test Results
All 3 runs with error: test_psram (validation.psram.test_psram)
./artifacts/parent-artifacts/results/hw/validation/psram/esp32/psram.xml [took 2s]
./artifacts/parent-artifacts/results/hw/validation/psram/esp32s2/psram.xml [took 4s]
./artifacts/parent-artifacts/results/hw/validation/psram/esp32s3/psram.xml [took 2s]
Raw output
failed on setup with "ValueError: Couldn't auto detect chip. Please manually specify with "--port""
args = ()
kwargs = {'_fixture_classes_and_options': ClassCliOptions(classes={'app': <class 'pytest_embedded_arduino.app.ArduinoApp'>, 'se...ded_arduino.app.ArduinoApp object at 0xb4ba4be0>, 'msg_queue': <pytest_embedded.log.MessageQueue object at 0xb4ba43e8>}
_close_or_terminate = <function multi_dut_generator_fixture.<locals>.wrapper.<locals>._close_or_terminate at 0xb4a57808>
res = None
@functools.wraps(func)
def wrapper(*args, **kwargs):
def _close_or_terminate(obj):
if obj is None:
del obj
return
try:
if isinstance(obj, (subprocess.Popen, multiprocessing.process.BaseProcess)):
obj.terminate()
obj.kill()
elif isinstance(obj, io.IOBase):
try:
obj.close()
except Exception as e:
logging.debug('file %s closed failed with error: %s', obj, str(e))
else:
try:
obj.close()
except AttributeError:
try:
obj.terminate()
except AttributeError:
pass
except Exception as e:
logging.debug('Not properly caught object %s: %s', obj, str(e))
except Exception as e:
logging.debug('%s: %s', obj, str(e))
return # swallow up all error
finally:
referrers = gc.get_referrers(obj)
for _referrer in referrers:
if isinstance(_referrer, list):
for _i, val in enumerate(_referrer):
if val is obj:
_referrer[_i] = None
elif isinstance(_referrer, dict):
for key, value in _referrer.items():
if value is obj:
_referrer[key] = None
del obj
if _COUNT == 1:
res = None
try:
> res = func(*args, **kwargs)
/usr/local/lib/python3.10/site-packages/pytest_embedded/plugin.py:490:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.10/site-packages/pytest_embedded/plugin.py:1111: in serial
return serial_gn(**locals())
/usr/local/lib/python3.10/site-packages/pytest_embedded/dut_factory.py:431: in serial_gn
return cls(**_drop_none_kwargs(kwargs))
/usr/local/lib/python3.10/site-packages/pytest_embedded_arduino/serial.py:26: in __init__
super().__init__(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_arduino.serial.ArduinoSerial object at 0xb4ba44c0>
pexpect_proc = <pytest_embedded.log.PexpectProcess object at 0xb5545100>
msg_queue = <pytest_embedded.log.MessageQueue object at 0xb4ba43e8>
target = 'esp32', beta_target = None, port = None, port_mac = None
baud = 115200, esptool_baud = 921600, esp_flash_force = False
skip_autoflash = False, erase_all = False
meta = Meta(logdir='/tmp/pytest-embedded/2024-10-21_03-10-01-806822/test_psram', port_target_cache={'/dev/ttyUSB0': 'esp32'}, port_app_cache={}, logfile_extension='.log')
ports_to_occupy = (), kwargs = {}
available_ports = ['/dev/ttyAMA0', '/dev/ttyUSB0', '/dev/ttyUSB1', '/dev/ttyUSB2', '/dev/ttyUSB3']
ports = ['/dev/ttyAMA0', '/dev/ttyUSB1', '/dev/ttyUSB2', '/dev/ttyUSB3', '/dev/ttyUSB0']
def __init__(
self,
pexpect_proc: PexpectProcess,
msg_queue: MessageQueue,
target: Optional[str] = None,
beta_target: Optional[str] = None,
port: Optional[str] = None,
port_mac: Optional[str] = None,
baud: int = Serial.DEFAULT_BAUDRATE,
esptool_baud: int = ESPTOOL_DEFAULT_BAUDRATE,
esp_flash_force: bool = False,
skip_autoflash: bool = False,
erase_all: bool = False,
meta: Optional[Meta] = None,
ports_to_occupy: List[str] = (),
**kwargs,
) -> None:
self._meta = meta
esptool_target = beta_target or target or 'auto'
if port is None or port.endswith('*'):
port_filter = port.strip('*') if port else ''
available_ports = [_p for _p in esptool.get_port_list() if port_filter in _p]
ports = list(set(available_ports) - set(self.occupied_ports.keys()) - set(ports_to_occupy))
# sort to make /dev/ttyS* ports before /dev/ttyUSB* ports
# esptool will reverse the list
ports.sort()
if port_mac:
for port in ports:
if _is_port_mac_verified(pexpect_proc, port, port_mac, msg_queue):
ports = [port]
break
else:
raise ValueError(f'The specified MAC address {port_mac} cannot be found.')
# prioritize the cache recorded target port
if esptool_target and self._meta:
ports.sort(key=lambda x: self._meta.hit_port_target_cache(x, esptool_target))
logging.debug(f'Detecting ports from {", ".join(ports)}')
else:
if port_mac:
if _is_port_mac_verified(pexpect_proc, port, port_mac, msg_queue):
ports = [port]
else:
raise ValueError(f'The specified MAC address {port_mac} binds with different port, not with {port}')
else:
ports = [port]
# normal loader
if esptool_target not in ['auto', *ESPTOOL_CHIPS]:
raise ValueError(
f'esptool version {ESPTOOL_VERSION} not support target {esptool_target}\n'
f'Supported targets: {ESPTOOL_CHIPS}'
)
with contextlib.redirect_stdout(msg_queue):
self.esp = esptool.get_default_connected_device(
ports,
port=port,
connect_attempts=3,
initial_baud=baud,
chip=esptool_target,
)
if not self.esp:
> raise ValueError('Couldn\'t auto detect chip. Please manually specify with "--port"')
E ValueError: Couldn't auto detect chip. Please manually specify with "--port"
/usr/local/lib/python3.10/site-packages/pytest_embedded_serial_esp/serial.py:118: ValueError
Check notice on line 0 in .github
github-actions / Test Results
33 tests found
There are 33 tests, see "Raw output" for the full list of tests.
Raw output
auto_baudrate_test
basic_transmission_test
begin_when_running_test
change_baudrate_test
change_cpu_frequency_test
change_pins_test
disabled_uart_calls_test
enabled_uart_calls_test
end_when_stopped_test
performance.coremark.test_coremark ‑ test_coremark
performance.fibonacci.test_fibonacci ‑ test_fibonacci
performance.linpack_double.test_linpack_double ‑ test_linpack_double
performance.linpack_float.test_linpack_float ‑ test_linpack_float
performance.psramspeed.test_psramspeed ‑ test_psramspeed
performance.ramspeed.test_ramspeed ‑ test_ramspeed
performance.superpi.test_superpi ‑ test_superpi
periman_test
resize_buffers_test
test_fail
test_pass
test_touch_errors
test_touch_interrtupt
test_touch_read
timer_clock_select_test
timer_divider_test
timer_interrupt_test
timer_read_test
validation.democfg.test_democfg ‑ test_cfg
validation.hello_world.test_hello_world ‑ test_hello_world
validation.nvs.test_nvs ‑ test_nvs
validation.periman.test_periman ‑ test_periman
validation.psram.test_psram ‑ test_psram
validation.wifi.test_wifi ‑ test_wifi
Loading