fix(webserver): Validate header inputs #139
GitHub Actions / Test Results
failed
Nov 12, 2025 in 0s
1 fail, 37 pass in 15m 1s
76 files 76 suites 15m 1s ⏱️
38 tests 37 ✅ 0 💤 1 ❌
231 runs 230 ✅ 0 💤 1 ❌
Results for commit 21640ac.
Annotations
Check warning on line 0 in validation.uart.test_uart
github-actions / Test Results
test_uart (validation.uart.test_uart) failed
./artifacts/tests-results-wokwi-esp32-validation/validation/uart/esp32/uart.xml [took 2m 0s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
Bytes in current buffer (color code eliminated): Wokwi CLI v0.18.3 (786fa8e49d9c) Connected to Wokwi Simulation API 1.0.0-20251028-g60747fe2 Starting simulation...
Please check the full log here: /tmp/pytest-embedded/2025-11-12_03-22-27-322409/test_uart/dut.log
self = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7fd50fccf770>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), args = (), kwargs = {'timeout': 120}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....rting simulation...\nPlease check the full log here: /tmp/pytest-embedded/2025-11-12_03-22-27-322409/test_uart/dut.log'
@functools.wraps(func)
def wrapper(
self, pattern, *args, expect_all: bool = False, not_matching: List[Union[str, re.Pattern]] = (), **kwargs
) -> Union[Union[Match, AnyStr], List[Union[Match, AnyStr]]]:
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pytest_embedded/dut.py:76:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pytest_embedded/dut.py:131: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7fd50fb927b0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7fd50fb906e0>\nsearcher: searcher_re:\n 0: re.compile(b'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7fd50fb906e0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
E <pytest_embedded.log.PexpectProcess object at 0x7fd50fb906e0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7fd50fccf770>
def test_uart(dut):
> dut.expect_unity_test_output(timeout=120)
tests/validation/uart/test_uart.py:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pytest_embedded/dut.py:180: in expect_unity_test_output
self.expect(UNITY_SUMMARY_LINE_REGEX, timeout=timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7fd50fccf770>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), args = (), kwargs = {'timeout': 120}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....rting simulation...\nPlease check the full log here: /tmp/pytest-embedded/2025-11-12_03-22-27-322409/test_uart/dut.log'
@functools.wraps(func)
def wrapper(
self, pattern, *args, expect_all: bool = False, not_matching: List[Union[str, re.Pattern]] = (), **kwargs
) -> Union[Union[Match, AnyStr], List[Union[Match, AnyStr]]]:
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
E Bytes in current buffer (color code eliminated): Wokwi CLI v0.18.3 (786fa8e49d9c) Connected to Wokwi Simulation API 1.0.0-20251028-g60747fe2 Starting simulation...
E Please check the full log here: /tmp/pytest-embedded/2025-11-12_03-22-27-322409/test_uart/dut.log
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pytest_embedded/dut.py:83: TIMEOUT
Check notice on line 0 in .github
github-actions / Test Results
38 tests found
There are 38 tests, see "Raw output" for the full list of tests.
Raw output
basic_transmission_test
begin_when_running_test
change_baudrate_test
change_clock
change_cpu_frequency_test
change_pins_test
disabled_uart_calls_test
enabled_uart_calls_test
end_when_stopped_test
periman_test
psram_found
resize_buffers_test
rtc_run_clock
rtc_set_time
scan_bus
scan_bus_with_wifi
swap_pins
test_api
test_calloc_success
test_fail
test_malloc_fail
test_malloc_success
test_memcpy
test_memset_all_ones
test_memset_all_zeroes
test_memset_alternating
test_memset_random
test_pass
test_realloc_success
timer_clock_select_test
timer_divider_test
timer_interrupt_test
timer_read_test
validation.gpio.test_gpio ‑ test_gpio
validation.hello_world.test_hello_world ‑ test_hello_world
validation.nvs.test_nvs ‑ test_nvs
validation.uart.test_uart ‑ test_uart
validation.wifi.test_wifi ‑ test_wifi
Loading