micropython/tests/basics
Damien George e1fb03f3e2 py: Fix VM crash with unwinding jump out of a finally block.
This patch fixes a bug in the VM when breaking within a try-finally.  The
bug has to do with executing a break within the finally block of a
try-finally statement.  For example:

    def f():
        for x in (1,):
            print('a', x)
            try:
                raise Exception
            finally:
                print(1)
                break
            print('b', x)
    f()

Currently in uPy the above code will print:

    a 1
    1
    1
    segmentation fault (core dumped)  micropython

Not only is there a seg fault, but the "1" in the finally block is printed
twice.  This is because when the VM executes a finally block it doesn't
really know if that block was executed due to a fall-through of the try (no
exception raised), or because an exception is active.  In particular, for
nested finallys the VM has no idea which of the nested ones have active
exceptions and which are just fall-throughs.  So when a break (or continue)
is executed it tries to unwind all of the finallys, when in fact only some
may be active.

It's questionable whether break (or return or continue) should be allowed
within a finally block, because they implicitly swallow any active
exception, but nevertheless it's allowed by CPython (although almost never
used in the standard library).  And uPy should at least not crash in such a
case.

The solution here relies on the fact that exception and finally handlers
always appear in the bytecode after the try body.

Note: there was a similar bug with a return in a finally block, but that
was previously fixed in b735208403
2019-03-05 16:05:05 +11:00
..
0prelim.py
andor.py
array1.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
array_add.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
array_construct.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
array_construct2.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
array_construct_endian.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
array_intbig.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
array_micropython.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
array_micropython.py.exp
assign1.py
async_await.py
async_await.py.exp
async_await2.py
async_await2.py.exp
async_def.py
async_def.py.exp
async_for.py
async_for.py.exp
async_for2.py
async_for2.py.exp
async_with.py py/compile: Fix handling of unwinding BaseException in async with. 2019-02-26 23:52:10 +11:00
async_with.py.exp py/compile: Fix handling of unwinding BaseException in async with. 2019-02-26 23:52:10 +11:00
async_with2.py
async_with2.py.exp
async_with_break.py py/compile: Handle return/break/continue correctly in async with. 2018-06-27 16:57:42 +10:00
async_with_break.py.exp py/compile: Handle return/break/continue correctly in async with. 2018-06-27 16:57:42 +10:00
async_with_return.py py/compile: Handle return/break/continue correctly in async with. 2018-06-27 16:57:42 +10:00
async_with_return.py.exp py/compile: Handle return/break/continue correctly in async with. 2018-06-27 16:57:42 +10:00
attrtuple1.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bool1.py
boundmeth1.py
break.py
builtin_abs.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_abs_intbig.py tests/basics: Add tests for edge cases of nan-box's 47-bit small int. 2018-04-05 00:59:49 +10:00
builtin_allany.py
builtin_bin.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_bin_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_callable.py
builtin_chr.py
builtin_compile.py tests: Fix few test for proper "skipped" detection with qemu-arm's tinytest. 2017-12-12 23:45:48 +02:00
builtin_delattr.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_dir.py py/modbuiltins: Simplify and generalise dir() by probing qstrs. 2018-02-19 16:12:44 +11:00
builtin_divmod.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_divmod_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_ellipsis.py
builtin_enumerate.py tests/basics/builtin_enumerate: Add test for many pos args to enumerate. 2018-03-08 12:51:06 +11:00
builtin_eval.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
builtin_eval_error.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
builtin_exec.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
builtin_filter.py tests/basics: Rename remaining tests that are for built-in functions. 2018-02-07 15:55:52 +11:00
builtin_getattr.py tests/basics: Rename remaining tests that are for built-in functions. 2018-02-07 15:55:52 +11:00
builtin_hasattr.py py/modbuiltins: Make built-in hasattr work properly for user types. 2018-05-10 23:03:30 +10:00
builtin_hash.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_hash_gen.py py/objgenerator: Allow to hash generators and generator instances. 2017-07-07 11:47:38 +10:00
builtin_hash_intbig.py tests: Add some tests for bigint hash, float hash and float parsing. 2018-05-21 13:05:40 +10:00
builtin_help.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_help.py.exp tests: Add test for builtin help function. 2017-01-22 11:56:16 +11:00
builtin_hex.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_hex_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_id.py
builtin_issubclass.py
builtin_len1.py
builtin_locals.py tests/basics/builtin_locals: Add test for using locals() in class body. 2017-11-27 14:14:57 +11:00
builtin_map.py tests/basics: Rename remaining tests that are for built-in functions. 2018-02-07 15:55:52 +11:00
builtin_minmax.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_next_arg2.py py: Add optional support for 2-argument version of built-in next(). 2019-01-27 13:01:28 +11:00
builtin_oct.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_oct_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_ord.py
builtin_override.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_pow.py tests: Split tests for 2- and 3-arg pow(). 2017-02-02 23:34:52 +03:00
builtin_pow3.py tests/basics/builtin_pow3: Add tests for edge cases of pow3. 2017-12-19 15:44:10 +11:00
builtin_pow3_intbig.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_print.py tests/basics: Rename remaining tests that are for built-in functions. 2018-02-07 15:55:52 +11:00
builtin_property.py py/objtype: Remove TODO comment about needing to check for property. 2018-05-25 10:59:40 +10:00
builtin_property_inherit.py py/objtype: Optimise instance get/set/del by skipping special accessors. 2018-06-08 12:12:08 +10:00
builtin_range.py tests/basics/builtin_range: Add test for corner case of range slicing. 2017-11-24 15:30:12 +11:00
builtin_range_attrs.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_range_binop.py py/objrange: Implement (in)equality comparison between range objects. 2018-02-14 23:17:06 +11:00
builtin_reversed.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_round.py
builtin_round_int.py py/modbuiltins: Add support for rounding integers. 2018-05-22 14:18:16 +10:00
builtin_round_intbig.py py/modbuiltins: Add support for rounding integers. 2018-05-22 14:18:16 +10:00
builtin_setattr.py tests/basics: Rename remaining tests that are for built-in functions. 2018-02-07 15:55:52 +11:00
builtin_slice.py
builtin_sorted.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_sum.py
builtin_type.py py/objtype: Fix assertion failures in mp_obj_new_type by checking types. 2018-05-30 11:11:24 +10:00
builtin_zip.py tests/basics: Rename remaining tests that are for built-in functions. 2018-02-07 15:55:52 +11:00
bytearray1.py
bytearray_add.py
bytearray_append.py
bytearray_construct.py py/objarray: bytearray: Allow 2nd/3rd arg to constructor. 2018-09-11 15:10:10 +10:00
bytearray_construct_array.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytearray_construct_endian.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytearray_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
bytearray_slice_assign.py all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
bytes.py py/objstr: Protect against creating bytes(n) with n negative. 2018-02-19 16:25:30 +11:00
bytes_add.py tests/basics/bytes_add: Add tests for optimised bytes addition. 2017-03-16 14:31:03 +11:00
bytes_add_array.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytes_add_endian.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytes_compare.py
bytes_compare2.py tests/basic: Make various tests skippable. 2017-03-09 00:07:19 +01:00
bytes_compare3.py
bytes_compare3.py.exp
bytes_compare_array.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytes_construct.py tests/basic: Make various tests skippable. 2017-03-09 00:07:19 +01:00
bytes_construct_array.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytes_construct_endian.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytes_construct_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
bytes_count.py tests: Make bytes/str.count() tests skippable. 2018-10-22 22:50:28 +11:00
bytes_find.py
bytes_format_modulo.py
bytes_format_modulo.py.exp
bytes_gen.py
bytes_large.py
bytes_mult.py
bytes_partition.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytes_replace.py
bytes_split.py
bytes_strip.py
bytes_subscr.py
class1.py
class2.py
class3.py
class_bind_self.py
class_binop.py
class_call.py
class_contains.py
class_delattr_setattr.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
class_descriptor.py tests: Fix few test for proper "skipped" detection with qemu-arm's tinytest. 2017-12-12 23:45:48 +02:00
class_emptybases.py
class_getattr.py tests/basics/class_getattr: Remove invalid test for __getattribute__. 2018-10-18 12:28:09 +11:00
class_inherit1.py
class_inherit_mul.py tests: Add tests to improve coverage of py/objtype.c. 2017-12-14 12:25:30 +11:00
class_inplace_op.py tests/class_inplace_op: Test for inplace op fallback to normal one. 2017-09-04 16:44:38 +03:00
class_instance_override.py
class_item.py
class_misc.py
class_new.py tests/class_new: Add another testcase for __new__/__init__ interaction. 2017-09-01 00:43:52 +03:00
class_notimpl.py py/objtype: Handle NotImplemented return from binary special methods. 2017-08-30 01:39:24 +03:00
class_number.py
class_reverse_op.py tests/class_reverse_op: Test for reverse arith ops special methods. 2017-09-10 17:05:57 +03:00
class_staticclassmethod.py py/objtype: Support full object model for get/set/delitem special meths. 2018-09-28 23:22:34 +10:00
class_store.py
class_store_class.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
class_str.py
class_super.py py/objtype: Fix assertion failures in super_attr by checking type. 2018-05-30 11:14:07 +10:00
class_super_aslocal.py tests: Move super-as-local test from cpydiff to basic tests. 2017-05-06 11:01:57 +10:00
class_super_closure.py tests/basics: Add test for super() when self is closed over. 2017-03-27 11:29:11 +11:00
class_super_multinherit.py tests: Add tests to improve coverage of py/objtype.c. 2017-12-14 12:25:30 +11:00
class_super_object.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
class_use_other.py
closure1.py
closure2.py
closure_defargs.py
closure_manyvars.py
closure_namedarg.py
compare_multi.py
comprehension1.py tests/comprehension1, containment: Split set tests to separate files. 2017-02-14 22:31:08 +03:00
containment.py py/objstr: Raise an exception for wrong type on RHS of str binary op. 2017-08-09 21:25:48 +10:00
continue.py
decorator.py
del_attr.py py/objtype: Check and prevent delete/store on a fixed locals map. 2018-02-07 15:44:29 +11:00
del_deref.py
del_global.py
del_local.py
del_name.py
del_subscr.py
deque1.py py/objdeque: Protect against negative maxlen in deque constructor. 2018-02-21 23:34:17 +11:00
deque2.py tests/basics/deque*: Tests for ucollections.deque. 2018-02-21 22:58:14 +11:00
deque2.py.exp tests/basics/deque*: Tests for ucollections.deque. 2018-02-21 22:58:14 +11:00
dict1.py tests: Modify tests that print repr of an exception with 1 arg. 2018-08-17 15:46:04 +10:00
dict2.py
dict_clear.py
dict_construct.py
dict_copy.py
dict_del.py
dict_fixed.py py/objdict: Disallow possible modifications to fixed dicts. 2018-02-18 21:51:04 -06:00
dict_fixed.py.exp py/objdict: Disallow possible modifications to fixed dicts. 2018-02-18 21:51:04 -06:00
dict_from_iter.py
dict_fromkeys.py tests/dict_fromkeys: Split out skippable part. 2017-03-09 08:31:35 +01:00
dict_fromkeys2.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
dict_get.py
dict_intern.py
dict_iterator.py
dict_pop.py
dict_popitem.py
dict_setdefault.py
dict_specialmeth.py
dict_update.py
dict_views.py
equal.py
equal_class.py
errno1.py tests: Add some more tests to improve coverage of py/parse.c. 2017-12-19 16:13:00 +11:00
errno1.py.exp tests: Add some more tests to improve coverage of py/parse.c. 2017-12-19 16:13:00 +11:00
except_match_tuple.py
exception1.py tests: Modify tests that print repr of an exception with 1 arg. 2018-08-17 15:46:04 +10:00
exception_chain.py
exception_chain.py.exp
exceptpoly.py
exceptpoly2.py
floordivide.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
floordivide_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
for1.py
for2.py
for3.py
for_break.py
for_else.py tests/basics: Add tests for for-else statement. 2017-06-22 14:02:14 +10:00
for_range.py tests/basics: Add tests for raising ValueError when range() gets 0 step. 2017-04-05 10:52:29 +10:00
for_return.py
frozenset1.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
frozenset_add.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
frozenset_binop.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
frozenset_copy.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
frozenset_difference.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
frozenset_set.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
fun1.py
fun2.py
fun3.py
fun_annotations.py
fun_calldblstar.py py/runtime: Check that keys in dicts passed as ** args are strings. 2018-03-30 11:13:32 +11:00
fun_calldblstar2.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
fun_calldblstar3.py
fun_callstar.py
fun_callstardblstar.py
fun_defargs.py
fun_defargs2.py
fun_error.py tests: Rewrite some tests so they can run without needing eval/exec. 2018-02-14 16:50:20 +11:00
fun_error2.py tests: Rewrite some tests so they can run without needing eval/exec. 2018-02-14 16:50:20 +11:00
fun_kwargs.py
fun_kwonly.py
fun_kwonlydef.py
fun_kwvarargs.py
fun_largestate.py
fun_name.py py/objboundmeth: Support loading generic attrs from the method. 2018-12-06 18:02:41 +11:00
fun_str.py
fun_varargs.py
gc1.py tests/basics/gc1: Add test which triggers GC threshold. 2018-02-27 22:39:17 +11:00
gen_yield_from.py py/objgenerator: Implement PEP479, StopIteration convs to RuntimeError. 2018-09-20 15:36:59 +10:00
gen_yield_from_close.py py/objgenerator: Implement PEP479, StopIteration convs to RuntimeError. 2018-09-20 15:36:59 +10:00
gen_yield_from_ducktype.py
gen_yield_from_exc.py
gen_yield_from_executing.py py/objgenerator: Protect against reentering a generator. 2018-05-22 16:54:03 +10:00
gen_yield_from_iter.py
gen_yield_from_send.py
gen_yield_from_stopped.py
gen_yield_from_throw.py tests/basics: Split out gen throw tests from yield-from-throw tests. 2018-09-28 11:35:31 +10:00
gen_yield_from_throw2.py py/vm: Fix case of throwing GeneratorExit type into yield-from. 2018-09-28 11:39:35 +10:00
gen_yield_from_throw3.py py/runtime: Be sure that non-intercepted thrown object is an exception. 2018-03-30 12:43:38 +11:00
generator1.py
generator2.py
generator_args.py
generator_close.py py/objgenerator: Implement PEP479, StopIteration convs to RuntimeError. 2018-09-20 15:36:59 +10:00
generator_closure.py
generator_exc.py
generator_name.py py/objgenerator: Implement __name__ with normal fun attr accessor code. 2018-07-10 16:33:57 +10:00
generator_pend_throw.py tests/basics/generator_pend_throw: Add test for just-started generator. 2017-12-19 15:02:34 +11:00
generator_pend_throw.py.exp tests/basics/generator_pend_throw: Add test for just-started generator. 2017-12-19 15:02:34 +11:00
generator_pep479.py py/objgenerator: Implement PEP479, StopIteration convs to RuntimeError. 2018-09-20 15:36:59 +10:00
generator_pep479.py.exp py/objgenerator: Implement PEP479, StopIteration convs to RuntimeError. 2018-09-20 15:36:59 +10:00
generator_return.py py/objgenerator: Remove TODO about returning gen being called again. 2018-09-27 15:18:24 +10:00
generator_send.py
generator_throw.py tests/basics: Split out gen throw tests from yield-from-throw tests. 2018-09-28 11:35:31 +10:00
getattr.py py/objtype: Remove comment about catching exc from user __getattr__. 2018-10-18 12:15:16 +11:00
getitem.py
globals_del.py
ifcond.py
ifexpr.py
int1.py
int2.py
int_big1.py tests/basics: Add tests for edge cases of nan-box's 47-bit small int. 2018-04-05 00:59:49 +10:00
int_big_add.py tests/basics: Add tests for edge cases of nan-box's 47-bit small int. 2018-04-05 00:59:49 +10:00
int_big_and.py
int_big_and2.py
int_big_and3.py
int_big_cmp.py
int_big_div.py
int_big_error.py tests/basics/int_big_error.py: Use bytearray to test for int overflow. 2018-08-17 15:43:47 +10:00
int_big_lshift.py
int_big_mod.py
int_big_mul.py
int_big_or.py
int_big_or2.py
int_big_or3.py
int_big_pow.py
int_big_rshift.py tests/basics: Modify int-big tests to prevent constant folding. 2018-04-04 13:57:22 +10:00
int_big_unary.py
int_big_xor.py tests/basics: Modify int-big tests to prevent constant folding. 2018-04-04 13:57:22 +10:00
int_big_xor2.py
int_big_xor3.py
int_big_zeroone.py
int_bytes.py py/objint: In to_bytes(), allow length arg to be any int and check sign. 2017-06-15 14:21:02 +10:00
int_bytes_intbig.py py/objint: Support "big" byte-order in int.to_bytes(). 2017-06-15 13:56:21 +10:00
int_constfolding.py tests: Add some more tests to improve coverage of py/parse.c. 2017-12-19 16:13:00 +11:00
int_constfolding_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
int_divmod.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
int_divmod_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
int_divzero.py
int_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
int_small.py
io_buffered_writer.py tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_buffered_writer.py.exp tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_bytesio_cow.py tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_bytesio_ext.py tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_bytesio_ext2.py tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_bytesio_ext2.py.exp tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_iobase.py tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_stringio1.py tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_stringio_with.py tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_write_ext.py tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
io_write_ext.py.exp tests: Move non-filesystem io tests to basics dir with io_ prefix. 2018-06-27 16:55:05 +10:00
is_isnot.py
iter0.py
iter1.py tests/basics/iter1.py: Add more tests for walking a user-defined iter. 2018-03-30 14:23:13 +11:00
iter2.py
iter_of_iter.py tests/basic/: Make various tests skippable. 2017-02-15 18:11:16 +03:00
lambda1.py
lambda_defargs.py
lexer.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
list1.py
list_clear.py
list_compare.py py/objlist: Properly implement comparison with incompatible types. 2017-09-07 00:10:10 +03:00
list_copy.py
list_count.py
list_extend.py
list_index.py
list_insert.py
list_mult.py
list_pop.py
list_remove.py
list_reverse.py
list_slice.py
list_slice_3arg.py tests/basics/list_slice_3arg: Add more tests for negative slicing. 2017-05-18 17:32:42 +10:00
list_slice_assign.py all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
list_slice_assign_grow.py tests/basics: Add tests for list and bytearray growing using themselves. 2017-04-02 17:31:32 +10:00
list_sort.py
list_sum.py
logic_constfolding.py
memoryerror.py tests/basics/memoryerror: Add test for out-of-memory using realloc. 2017-12-20 16:58:27 +11:00
memoryerror.py.exp tests/basics/memoryerror: Add test for out-of-memory using realloc. 2017-12-20 16:58:27 +11:00
memoryview1.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
memoryview2.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
memoryview_gc.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
memoryview_intbig.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
module1.py
module2.py
module2.py.exp
namedtuple1.py tests/basics/namedtuple*: Import ucollections first. 2018-06-27 14:58:14 +10:00
namedtuple_asdict.py tests/basics/namedtuple*: Import ucollections first. 2018-06-27 14:58:14 +10:00
object1.py
object_dict.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
object_new.py tests/object_new: Better messages, check user __new__() method. 2017-08-30 21:29:23 +03:00
op_error.py tests: Rewrite some tests so they can run without needing eval/exec. 2018-02-14 16:50:20 +11:00
op_error_intbig.py tests: Rewrite some tests so they can run without needing eval/exec. 2018-02-14 16:50:20 +11:00
op_error_memoryview.py tests: Rewrite some tests so they can run without needing eval/exec. 2018-02-14 16:50:20 +11:00
op_precedence.py tests: Make tests work on targets without float support. 2018-08-04 15:14:23 +10:00
ordereddict1.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
ordereddict_eq.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
ordereddict_eq.py.exp
parser.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
python34.py tests: Modify tests that print repr of an exception with 1 arg. 2018-08-17 15:46:04 +10:00
python34.py.exp tests: Modify tests that print repr of an exception with 1 arg. 2018-08-17 15:46:04 +10:00
python36.py py/lexer: Add support for underscores in numeric literals. 2018-06-12 12:17:43 +10:00
python36.py.exp py/lexer: Add support for underscores in numeric literals. 2018-06-12 12:17:43 +10:00
return1.py
scope.py
scope_implicit.py py/compile: Fix case of eager implicit conversion of local to nonlocal. 2018-10-28 00:33:08 +11:00
self_type_check.py
seq_unpack.py
set_add.py
set_basic.py
set_binop.py tests/basics: Add more set tests to improve coverage of py/objset.c. 2017-12-19 13:59:54 +11:00
set_clear.py
set_comprehension.py tests/comprehension1, containment: Split set tests to separate files. 2017-02-14 22:31:08 +03:00
set_containment.py tests/comprehension1, containment: Split set tests to separate files. 2017-02-14 22:31:08 +03:00
set_copy.py
set_difference.py
set_discard.py
set_intersection.py
set_isdisjoint.py
set_isfooset.py tests/basics: Add more set tests to improve coverage of py/objset.c. 2017-12-19 13:59:54 +11:00
set_iter.py
set_iter_of_iter.py tests/basic/: Make various tests skippable. 2017-02-15 18:11:16 +03:00
set_pop.py tests/basics/set_pop.py: Sort set before printing for consistent output. 2018-08-17 15:42:51 +10:00
set_remove.py py/objset: Include the failed key in a KeyError raised from set.remove. 2017-10-03 18:03:06 +11:00
set_specialmeth.py
set_symmetric_difference.py
set_type.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
set_union.py
set_unop.py
set_update.py
slice_attrs.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
slice_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
slots_bool_len.py
special_methods.py tests/basics/special_methods: Add testcases for __int__. 2018-12-07 17:28:04 +11:00
special_methods2.py tests/basics/special_methods2: Typo fix in comment. 2018-12-13 01:29:01 +11:00
string1.py
string_center.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
string_compare.py tests/basics/string_compare.py: Add test with string that hashes to 0. 2018-04-05 01:04:38 +10:00
string_count.py tests: Make bytes/str.count() tests skippable. 2018-10-22 22:50:28 +11:00
string_cr_conversion.py
string_crlf_conversion.py
string_endswith.py py/objstr: startswith, endswith: Check arg to be a string. 2017-08-29 00:06:21 +03:00
string_endswith_upy.py py/objstr: startswith, endswith: Check arg to be a string. 2017-08-29 00:06:21 +03:00
string_endswith_upy.py.exp py/objstr: startswith, endswith: Check arg to be a string. 2017-08-29 00:06:21 +03:00
string_escape.py
string_find.py py/objstr: In find/rfind, don't crash when end < start. 2018-04-05 16:14:17 +10:00
string_format.py
string_format2.py tests/basics/string_format2: Adjust comment now that tests succeed. 2017-03-15 17:25:46 +11:00
string_format_error.py
string_format_modulo.py tests/basics: Move string-modulo-format int tests to dedicated file. 2017-03-15 17:34:47 +11:00
string_format_modulo_int.py tests/basics: Move string-modulo-format int tests to dedicated file. 2017-03-15 17:34:47 +11:00
string_index.py
string_istest.py
string_join.py tests/basics/string_join.py: Add test case where argument is not iterable. 2017-03-07 16:48:16 +11:00
string_large.py
string_mult.py
string_partition.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
string_replace.py
string_repr.py
string_rfind.py py/objstr: In find/rfind, don't crash when end < start. 2018-04-05 16:14:17 +10:00
string_rindex.py
string_rpartition.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
string_rsplit.py tests/basics/string_rsplit: Add tests for negative "maxsplit" argument. 2017-06-02 13:08:18 +10:00
string_slice.py
string_split.py
string_splitlines.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
string_startswith.py py/objstr: startswith, endswith: Check arg to be a string. 2017-08-29 00:06:21 +03:00
string_startswith_upy.py py/objstr: startswith, endswith: Check arg to be a string. 2017-08-29 00:06:21 +03:00
string_startswith_upy.py.exp py/objstr: startswith, endswith: Check arg to be a string. 2017-08-29 00:06:21 +03:00
string_strip.py py/objstr: strip: Don't strip "\0" by default. 2017-09-19 21:21:12 +03:00
string_upperlow.py
struct1.py py/modstruct: Check and prevent buffer-write overflow in struct packing. 2017-09-01 11:11:09 +10:00
struct1_intbig.py py/binary.c: Fix bug when packing big-endian 'Q' values. 2017-08-15 11:33:43 +10:00
struct2.py py/modstruct: Check and prevent buffer-write overflow in struct packing. 2017-09-01 11:11:09 +10:00
struct_micropython.py py/modstruct: In struct.pack, stop converting if there are no args left. 2017-09-01 10:10:51 +10:00
struct_micropython.py.exp py/modstruct: In struct.pack, stop converting if there are no args left. 2017-09-01 10:10:51 +10:00
subclass_classmethod.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
subclass_native1.py
subclass_native2_list.py
subclass_native2_tuple.py
subclass_native3.py tests: Modify tests that print repr of an exception with 1 arg. 2018-08-17 15:46:04 +10:00
subclass_native4.py
subclass_native5.py
subclass_native_buffer.py
subclass_native_call.py tests/basics: Add test for calling a subclass of a native class. 2018-02-24 23:13:42 +11:00
subclass_native_call.py.exp tests/basics: Add test for calling a subclass of a native class. 2018-02-24 23:13:42 +11:00
subclass_native_cmp.py
subclass_native_containment.py tests/basics: Add test for containment of a subclass of a native type. 2017-11-24 14:48:41 +11:00
subclass_native_init.py tests/basics: Add test for overriding a native base-class's init method. 2017-12-12 16:47:38 +11:00
subclass_native_iter.py tests/basics: Add test for subclassing an iterable native type. 2018-04-04 15:26:18 +10:00
subclass_native_specmeth.py
syntaxerror.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
sys1.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
sys_getsizeof.py tests/basics: Add tests to improve coverage of py/objdeque.c. 2018-02-21 23:19:06 +11:00
true_value.py
try1.py
try2.py
try3.py
try4.py
try_as_var.py tests: Modify tests that print repr of an exception with 1 arg. 2018-08-17 15:46:04 +10:00
try_continue.py
try_else.py tests/basics: Add tests for try-except-else and try-except-else-finally. 2019-02-21 16:22:41 +11:00
try_else_finally.py tests/basics: Add tests for try-except-else and try-except-else-finally. 2019-02-21 16:22:41 +11:00
try_error.py
try_finally1.py py/emitnative: Fix try-finally in outer scope, so finally is cancelled. 2018-09-11 15:33:25 +10:00
try_finally2.py
try_finally_break.py py: Fix VM crash with unwinding jump out of a finally block. 2019-03-05 16:05:05 +11:00
try_finally_loops.py tests/basics: Add more tests for unwind jumps from within a try-finally. 2017-05-25 20:48:16 +10:00
try_finally_return.py
try_finally_return2.py
try_finally_return3.py py/vm: Fix handling of finally-return with complex nested finallys. 2018-09-03 13:08:16 +10:00
try_finally_return4.py tests/basics: Add more tests for return within try-finally. 2018-09-04 14:37:07 +10:00
try_reraise.py
try_reraise2.py various: Spelling fixes 2017-05-29 11:36:05 +03:00
try_return.py py: Fix VM crash with unwinding jump out of a finally block. 2019-03-05 16:05:05 +11:00
tuple1.py tests/basics: Add test for tuple inplace add. 2017-04-05 12:38:18 +10:00
tuple_compare.py py/objtuple: Properly implement comparison with incompatible types. 2017-09-06 00:23:41 +03:00
tuple_count.py
tuple_index.py
tuple_mult.py py/objtuple: Allow to use inplace-multiplication operator on tuples. 2017-08-09 21:20:42 +10:00
types1.py
types2.py
unary_op.py
unboundlocal.py
unpack1.py tests/basics/unpack1.py: Test if *a, = b copies b when b is a list. 2017-03-07 16:48:16 +11:00
while1.py
while_cond.py
while_nest_exc.py
with1.py
with_break.py
with_continue.py
with_raise.py tests/basics: Add test cases for context manager raising in enter/exit. 2018-09-04 14:37:30 +10:00
with_return.py