diff options
author | Joris Peeraer <jorispeeraer@gmail.com> | 2020-10-22 10:38:03 +0200 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2020-12-07 23:32:06 +1100 |
commit | 5020b14d5419065f1a5ef5aed1be7badee28c9bf (patch) | |
tree | 3a5ecda9ef9027206a3dbb4c3df5fab99803a32d /tests/unix/extra_coverage.py.exp | |
parent | dde0735ac1629aca4f7d41334f25b75dd8d35010 (diff) | |
download | micropython-5020b14d5419065f1a5ef5aed1be7badee28c9bf.tar.gz micropython-5020b14d5419065f1a5ef5aed1be7badee28c9bf.zip |
py/mpprint: Fix length calculation for strings with precision-modifier.
Two issues are tackled:
1. The calculation of the correct length to print is fixed to treat the
precision as a maximum length instead as the exact length.
This is done for both qstr (%q) and for regular str (%s).
2. Fix the incorrect use of mp_printf("%.*s") to mp_print_strn().
Because of the fix of above issue, some testcases that would print
an embedded null-byte (^@ in test-output) would now fail.
The bug here is that "%s" was used to print null-bytes. Instead,
mp_print_strn is used to make sure all bytes are outputted and the
exact length is respected.
Test-cases are added for both %s and %q with a combination of precision
and padding specifiers.
Diffstat (limited to 'tests/unix/extra_coverage.py.exp')
-rw-r--r-- | tests/unix/extra_coverage.py.exp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/unix/extra_coverage.py.exp b/tests/unix/extra_coverage.py.exp index 257224108a..d97de2c0ef 100644 --- a/tests/unix/extra_coverage.py.exp +++ b/tests/unix/extra_coverage.py.exp @@ -4,7 +4,7 @@ 123 123 1ABCDEF -ab abc +ab abc ' abc' ' True' 'Tru' false true (null) |