Damien George
f5eec903fa
py/objsingleton: Use mp_generic_unary_op for singleton objects.
...
So these types more closely match NoneType, eg they can be hashed, like in
CPython.
2019-12-27 12:53:36 +11:00
Damien George
de8c04317b
tests/micropython: Add test for yield-from while heap is locked.
2019-12-27 12:34:22 +11:00
Damien George
99a04b8060
tests/extmod: Split out VfsFat finaliser tests to separate test file.
...
It tests independent functionality and may need to be skipped for a given
port.
2019-12-27 12:30:51 +11:00
Damien George
865827ed8e
tests/run-tests: Add "--mpy-cross-flags" arg to specify mpy-cross flags.
2019-12-27 12:30:51 +11:00
Yonatan Goldschmidt
42e45bd694
py/objobject: Add object.__delattr__ function.
...
Similar to object.__setattr__.
2019-12-21 00:14:22 +11:00
Yonatan Goldschmidt
07ccb5588c
py/objobject: Add object.__setattr__ function.
...
Allows assigning attributes on class instances that implement their own
__setattr__. Both object.__setattr__ and super(A, b).__setattr__ will work
with this commit.
2019-12-21 00:12:08 +11:00
Damien George
39bc430e44
tests/pyb: Adjust UART and Timer tests to work on PYBD_SF6.
2019-12-20 16:42:38 +11:00
Damien George
4b184d1281
tests/pyb: Refactor pyboard tests to work on PYBv1, PYBLITEv1 and PYBD.
2019-12-13 17:27:29 +11:00
Damien George
7280bf40d9
tests/extmod/vfs_lfs_error: Use small ints in seek error test.
...
So accessing the seek offset (at the C level) doesn't cause an
OverflowError on 32-bit targets.
2019-12-13 15:59:08 +11:00
Damien George
1098d1d630
tests/basics/memoryview_itemsize: Make portable to 32- and 64-bit archs.
2019-12-13 15:59:08 +11:00
Damien George
33b0a7e601
tests/stress/qstr_limit: Tune params to run with stm32 port.
...
Because MICROPY_ALLOC_PATH_MAX is only 128 for this port.
2019-12-13 15:58:28 +11:00
Damien George
624f4ca39b
tests: Add .exp files for basics/parser and import/import_override.
...
Because CPython 3.8.0 now produces different output:
- basics/parser.py: CPython does not allow '\\\n' as input.
- import/import_override: CPython imports _io.
2019-12-13 14:20:47 +11:00
Damien George
ba84453f77
examples/natmod: Add urandom native module example.
2019-12-13 13:33:40 +11:00
Damien George
4eef940edb
tests: Add script to run dynamic-native-module tests.
2019-12-12 20:15:28 +11:00
Damien George
111d1ffb64
tests/import: Add test for importing viper code with additional flags.
2019-12-12 20:15:28 +11:00
Damien George
1675b98e74
tests/stress: Add test for maximum length limit of qstrs.
2019-11-26 13:15:00 +11:00
Léa Saviot
a7bc4d1a14
py/builtinimport: Raise exception on empty module name.
...
To prevent a crash returning MP_OBJ_NULL. A test is added for this case.
2019-11-26 00:28:32 +11:00
Andrew Leech
1e87f11d3f
py/objdict: Support ujson.dump() of OrderedDict objects.
...
Following CPython, OrderedDict are dumped with the syntax of dict.
2019-11-13 13:51:18 +11:00
Damien George
80df377e95
py/modsys: Report .mpy version in sys.implementation.
...
This commit adds a sys.implementation.mpy entry when the system supports
importing .mpy files. This entry is a 16-bit integer which encodes two
bytes of information from the header of .mpy files that are supported by
the system being run: the second and third bytes, .mpy version, and flags
and native architecture. This allows determining the supported .mpy file
dynamically by code, and also for the user to find it out by inspecting
this value. It's further possible to dynamically detect if the system
supports importing .mpy files by `hasattr(sys.implementation, 'mpy')`.
2019-11-04 16:00:41 +11:00
Jim Mussared
5578182ec9
py/objgenerator: Allow pend_throw to an unstarted generator.
...
Replace the is_running field with a tri-state variable to indicate
running/not-running/pending-exception.
Update tests to cover the various cases.
This allows cancellation in uasyncio even if the coroutine hasn't been
executed yet. Fixes #5242
2019-11-04 15:51:16 +11:00
Damien George
43f53a2bbd
tests/extmod: Add test for ussl when passing in key/cert params.
2019-10-31 16:38:20 +11:00
Damien George
feaa251674
extmod/modlwip: Make socket poll return POLLNVAL in case of bad file.
2019-10-31 12:54:37 +11:00
Damien George
71401d5065
extmod/modlwip: Unconditionally return POLLHUP when polling new socket.
...
POSIX poll should always return POLLERR and POLLHUP in revents, regardless
of whether they were requested in the input events flags.
See issues #4290 and #5172 .
2019-10-31 12:54:37 +11:00
Damien George
9ec73aedb4
stm32/timer: Fix Timer.freq() calc so mult doesn't overflow uint32_t.
...
Fixes issue #5280 .
2019-10-31 12:49:18 +11:00
Damien George
943dd33b5f
tests/basics: Split sys.exit test to separate file so it can be skipped.
2019-10-29 22:22:37 +11:00
Damien George
1d51115246
tests: Add feature check for uio module and skip corresponding tests.
2019-10-29 22:22:37 +11:00
Damien George
eebffb2b5b
tests/basics: Automatically skip tests that use str/bytes modulo-format.
2019-10-29 22:22:37 +11:00
Damien George
52299ed3f0
tests/run-tests: Add misc list of tests that use slice, to skip them.
2019-10-29 22:22:37 +11:00
Damien George
b5186c9271
tests/basics: Split out specific slice tests to separate files.
...
So they can be automatically skipped if slice is not enabled.
2019-10-29 22:22:37 +11:00
Damien George
ecb77e40e0
tests: Add feature check for slice and skip corresponding tests.
2019-10-29 22:22:37 +11:00
Damien George
9162a87d4d
tests/basics: Use bytes not bytearray when checking user buffer proto.
...
Using bytes will test the same path for the buffer protocol in
py/objtype.c.
2019-10-29 22:22:37 +11:00
Damien George
aeea204e98
tests/basics: Split out specific bytearray tests to separate files.
...
So they can be automatically skipped if bytearray is not enabled.
2019-10-29 22:22:37 +11:00
Damien George
6e9ba1cf4b
tests: Add feature check for bytearray and skip corresponding tests.
2019-10-29 22:22:37 +11:00
Damien George
7a49fc387c
tests/basics/builtin_dir.py: Look for "version" in dir(sys).
...
Because "version" will always be there, but "exit" may not.
2019-10-29 22:22:37 +11:00
Damien George
709136e844
tests/basics: Use str.format instead of % for formatting messages.
...
Only use % formatting when testing % itself, because only str.format is
guaranteed to be available on any port.
2019-10-29 22:22:37 +11:00
Damien George
cfe1c5abf8
extmod/vfs: Rename BP_IOCTL_xxx constants to MP_BLOCKDEV_IOCTL_xxx.
...
Also rename SEC_COUNT to BLOCK_COUNT and SEC_SIZE to BLOCK_SIZE.
2019-10-29 14:17:29 +11:00
Damien George
7c8fb27f38
tests/extmod: Add test for blockdev with standard and extended protocol.
2019-10-29 14:17:29 +11:00
Damien George
73fddb84e5
tests/extmod: Add littlefs tests.
2019-10-29 14:17:29 +11:00
Damien George
30e25174bb
tests: Rename "array" module to "uarray".
2019-10-22 19:16:54 +11:00
clach04
ffd11486d4
tests/cpydiff: Fix typo in types_bytes_keywords.py doc comments.
2019-10-21 23:25:09 +11:00
Josh Lloyd
8f9e2e325a
py/objtype: Add type.__bases__ attribute.
...
Enabled as part of MICROPY_CPYTHON_COMPAT.
2019-10-18 15:20:56 +11:00
Jim Mussared
ebf8332104
extmod/re1.5: Support escaping within RE classes.
...
Fixes issues #3178 and #5220 .
Tests are added, including all the cases mentioned in both bugs.
2019-10-18 12:20:32 +11:00
Damien George
23f0691fdd
py/persistentcode: Make .mpy more compact with qstr directly in prelude.
...
Instead of encoding 4 zero bytes as placeholders for the simple_name and
source_file qstrs, and storing the qstrs after the bytecode, store the
qstrs at the location of these 4 bytes. This saves 4 bytes per bytecode
function stored in a .mpy file (for example lcd160cr.mpy drops by 232
bytes, 4x 58 functions). And resulting code size is slightly reduced on
ports that use this feature.
2019-10-15 16:56:27 +11:00
Damien George
858e992d2e
tests/run-perfbench.py: Skip complex tests if target doesn't enable it.
2019-10-15 16:46:06 +11:00
Jim Mussared
f1882636c0
tests/run-perfbench.py: Show error when truth check fails.
2019-10-15 16:38:11 +11:00
Jim Mussared
cfd17f4ebe
tests/perf_bench: Add bm_fft test.
...
This is mostly a test of complex number performance.
The FFT implementation is from Project Nayuki and is MIT licensed.
2019-10-15 16:38:11 +11:00
Damien George
27fe84e661
tests/basics: Add test for throw into yield-from with normal return.
...
This test was found by missing coverage of a branch in py/nativeglue.c.
2019-10-04 23:27:48 +10:00
Damien George
809d89c794
py/runtime: Fix PEP479 behaviour throwing StopIteration into yield from.
...
Commit 3f6ffe059f
implemented PEP479 but did
not catch the case fixed in this commit. Found by coverage analysis, that
the VM had uncovered code.
2019-10-04 23:27:00 +10:00
Damien George
82c494a97e
py/vm: Fix handling of unwind jump out of active finally.
...
Prior to this commit, when unwinding through an active finally the stack
was not being correctly popped/folded, which resulting in the VM crashing
for complicated unwinding of nested finallys.
This should be fixed with this commit, and more tests for return/break/
continue within a finally have been added to exercise this.
2019-10-04 23:01:29 +10:00
Petr Viktorin
25a9bccdee
py/compile: Disallow 'import *' outside module level.
...
This check follows CPython's behaviour, because 'import *' always populates
the globals with the imported names, not locals.
Since it's safe to do this (doesn't lead to a crash or undefined behaviour)
the check is only enabled for MICROPY_CPYTHON_COMPAT.
Fixes issue #5121 .
2019-10-04 16:46:47 +10:00