micropython/tests/unix/extra_coverage.py.exp
Joris Peeraer 5020b14d54 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.
2020-12-07 23:32:06 +11:00

165 lines
1.8 KiB
Plaintext

# mp_printf
-123 +123 123
-0123
123
123
1ABCDEF
ab abc ' abc' ' True' 'Tru'
false true
(null)
-2147483648
2147483648
80000000
80000000
abc
%
# GC
0
0
# vstr
tests
sts
test
tes
RuntimeError:
RuntimeError:
# repl
ame__
__class__ __name__ argv atexit
byteorder exc_info exit getsizeof
implementation maxsize modules path
platform print_exception stderr
stdin stdout version version_info
ementation
# attrtuple
(start=1, stop=2, step=3)
# str
1
# bytearray
data
# mpz
1
12345678
0
0
0
0
0
1
12345
6
# runtime utils
TypeError: unsupported type for __abs__: 'str'
TypeError: unsupported types for __divmod__: 'str', 'str'
1
2
OverflowError: overflow converting long int to machine word
OverflowError: overflow converting long int to machine word
ValueError:
Warning: test
# format float
?
+1e+00
+1e+00
# binary
123
456
# VM
2 1
# scheduler
sched(0)=1
sched(1)=1
sched(2)=1
sched(3)=1
sched(4)=0
unlocked
0
1
2
3
KeyboardInterrupt:
KeyboardInterrupt:
10
# ringbuf
99 0
98 1
22
99 0
97 2
aa55
99 0
0 99
-1
1 98
-1
2 97
0
cc99
99 0
0
11bb
0
22ff
-1
-1
# pairheap
create: 0 0 0 0
pop all: 0 1 2 3
create: 7 6 5 4 3 2 1 0
pop all: 0 1 2 3 4 5 6 7
create: 1 - - 1 1 1 1 1 1
pop all: 1 2
create: 1 1 1 1 2 2
pop all: 2 4
create: 1 1 1 1 1
pop all: 1 3 4
create: 3 3 3 1 1 1
pop all: 1 2 4 5
# mp_obj_is_type
1 1
0 0
1 1
1 1
0 0
1 1
# end coverage.c
0123456789 b'0123456789'
7300
7300
7300
7300
None
None
None
None
None
None
b'123'
b'123'
b'123'
OSError
0
None
None
cpp None
5
(3, 'hellocpp')
frzstr1
frzstr1.py
frzmpy1
frzmpy1.py
frzstr_pkg1.__init__
frzstr_pkg1/__init__.py 1
frzmpy_pkg1.__init__
frzmpy_pkg1/__init__.py 1
frzstr_pkg2.mod
1
frzmpy_pkg2.mod
1
ZeroDivisionError
b'# test frozen package'
NULL