circuitpython/tests/micropython
Damien George 5e34a113ea py/runtime: Add MP_BINARY_OP_CONTAINS as reverse of MP_BINARY_OP_IN.
Before this patch MP_BINARY_OP_IN had two meanings: coming from bytecode it
meant that the args needed to be swapped, but coming from within the
runtime meant that the args were already in the correct order.  This lead
to some confusion in the code and comments stating how args were reversed.
It also lead to 2 bugs: 1) containment for a subclass of a native type
didn't work; 2) the expression "{True} in True" would illegally succeed and
return True.  In both of these cases it was because the args to
MP_BINARY_OP_IN ended up being reversed twice.

To fix these things this patch introduces MP_BINARY_OP_CONTAINS which
corresponds exactly to the __contains__ special method, and this is the
operator that built-in types should implement.  MP_BINARY_OP_IN is now only
emitted by the compiler and is converted to MP_BINARY_OP_CONTAINS by
swapping the arguments.
2017-11-24 14:48:23 +11:00
..
const.py py/modmicropython: Add micropython.const, alias for identity function. 2016-09-27 13:34:21 +10:00
const.py.exp py/parse: Treat constants that start with underscore as private. 2016-06-06 17:28:32 +01:00
const2.py py/modmicropython: Add micropython.const, alias for identity function. 2016-09-27 13:34:21 +10:00
const2.py.exp tests/micropython: Add tests for const names being replaced in parser. 2016-09-27 13:03:53 +10:00
const_error.py py/modmicropython: Add micropython.const, alias for identity function. 2016-09-27 13:34:21 +10:00
const_error.py.exp tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
const_intbig.py tests/micropython: Add test for consts that are bignums. 2017-02-24 13:08:18 +11:00
const_intbig.py.exp tests/micropython: Add test for consts that are bignums. 2017-02-24 13:08:18 +11:00
decorator.py tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
decorator.py.exp tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
decorator_error.py tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
decorator_error.py.exp tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
emg_exc.py py/objexcept: Prevent infinite recursion when allocating exceptions. 2017-09-21 15:24:57 +10:00
emg_exc.py.exp py/objexcept: Prevent infinite recursion when allocating exceptions. 2017-09-21 15:24:57 +10:00
heap_lock.py tests/micropython: Add tests for heap_lock, and emergency exceptions. 2016-10-14 00:32:34 +11:00
heap_lock.py.exp tests/micropython: Add tests for heap_lock, and emergency exceptions. 2016-10-14 00:32:34 +11:00
heapalloc.py tests/micropython: Move alloc-less traceback test to separate test file. 2016-11-21 17:39:23 +11:00
heapalloc.py.exp tests/micropython: Move alloc-less traceback test to separate test file. 2016-11-21 17:39:23 +11:00
heapalloc_bytesio.py tests: Convert remaining "sys.exit()" to "raise SystemExit". 2017-06-10 20:34:38 +03:00
heapalloc_bytesio.py.exp tests/heapalloc_bytesio: Test for BytesIO with preallocates space. 2017-02-02 00:38:38 +03:00
heapalloc_bytesio2.py py/objstringio: If created from immutable object, follow copy on write policy. 2017-06-09 17:33:01 +03:00
heapalloc_bytesio2.py.exp py/objstringio: If created from immutable object, follow copy on write policy. 2017-06-09 17:33:01 +03:00
heapalloc_exc_raise.py tests/heapalloc_exc_raise.py: Heap alloc test for raising/catching exc. 2017-02-20 04:22:32 +03:00
heapalloc_exc_raise.py.exp tests/heapalloc_exc_raise.py: Heap alloc test for raising/catching exc. 2017-02-20 04:22:32 +03:00
heapalloc_inst_call.py tests/heapalloc_inst_call: Test for no alloc for simple object calls. 2016-12-25 00:50:27 +03:00
heapalloc_inst_call.py.exp tests/heapalloc_inst_call: Test for no alloc for simple object calls. 2016-12-25 00:50:27 +03:00
heapalloc_int_from_bytes.py tests/micropython: Add test for int.from_bytes with many zero bytes. 2017-05-06 10:29:09 +10:00
heapalloc_int_from_bytes.py.exp tests/micropython: Add test for int.from_bytes with many zero bytes. 2017-05-06 10:29:09 +10:00
heapalloc_iter.py tests: Convert remaining "sys.exit()" to "raise SystemExit". 2017-06-10 20:34:38 +03:00
heapalloc_str.py tests/heapalloc_str: Test no-replacement case for str.replace(). 2017-03-22 22:17:52 +03:00
heapalloc_str.py.exp tests/heapalloc_str: Test for alloc-free string operations. 2017-01-27 00:49:39 +03:00
heapalloc_super.py tests: Add tests for calling super and loading a method directly. 2017-04-22 23:39:38 +10:00
heapalloc_super.py.exp tests: Add tests for calling super and loading a method directly. 2017-04-22 23:39:38 +10:00
heapalloc_traceback.py tests: Convert remaining "sys.exit()" to "raise SystemExit". 2017-06-10 20:34:38 +03:00
heapalloc_traceback.py.exp tests: Convert remaining "sys.exit()" to "raise SystemExit". 2017-06-10 20:34:38 +03:00
kbd_intr.py tests: Convert remaining "sys.exit()" to "raise SystemExit". 2017-06-10 20:34:38 +03:00
kbd_intr.py.exp tests/micropython: Add test for micropython.kbd_intr(). 2017-04-18 17:24:30 +10:00
meminfo.py tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
meminfo.py.exp tests/meminfo: Update for addition of "max free sz" output. 2016-07-01 00:39:26 +03:00
memstats.py tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
memstats.py.exp tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
native_closure.py tests: Add specific test for closures in native emitter. 2015-04-03 16:14:25 +01:00
native_closure.py.exp tests: Add specific test for closures in native emitter. 2015-04-03 16:14:25 +01:00
native_const_intbig.py tests/micropython/: Split off intbig tests. 2017-03-07 07:12:58 +01:00
native_const_intbig.py.exp tests/micropython/: Split off intbig tests. 2017-03-07 07:12:58 +01:00
native_misc.py tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
native_misc.py.exp tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
opt_level.py tests/micropython/opt_level: Clarify the expected output for opt_level == 3. 2017-03-09 23:22:31 +01:00
opt_level.py.exp tests/micropython/opt_level: Add test for opt_level 3. 2017-01-19 23:38:11 +11:00
schedule.py tests: Convert remaining "sys.exit()" to "raise SystemExit". 2017-06-10 20:34:38 +03:00
schedule.py.exp tests/micropython: Add tests for micropython.schedule(). 2017-03-20 15:20:26 +11:00
stack_use.py tests/micropython: Add test for micropython.stack_use() function. 2016-12-28 17:46:52 +11:00
stack_use.py.exp tests/micropython: Add test for micropython.stack_use() function. 2016-12-28 17:46:52 +11:00
viper_addr.py py/viper: Allow casting of Python integers to viper pointers. 2016-02-09 13:29:20 +00:00
viper_addr.py.exp py/viper: Allow casting of Python integers to viper pointers. 2016-02-09 13:29:20 +00:00
viper_args.py tests: Improve test coverage of py/compile.c. 2016-10-11 12:30:32 +11:00
viper_args.py.exp py: Allow viper functions to take up to 4 arguments. 2015-07-23 14:11:29 +01:00
viper_binop_arith.py py: Implement native multiply operation in viper emitter. 2015-06-04 14:00:29 +00:00
viper_binop_arith.py.exp py: Implement native multiply operation in viper emitter. 2015-06-04 14:00:29 +00:00
viper_binop_comp.py tests: Add tests for viper binary operations. 2014-09-29 19:42:06 +01:00
viper_binop_comp.py.exp tests: Add tests for viper binary operations. 2014-09-29 19:42:06 +01:00
viper_binop_comp_imm.py asmarm: Fix bug with encoding small negative ints using MVN instruction. 2014-12-14 03:24:17 +02:00
viper_binop_comp_imm.py.exp asmarm: Fix bug with encoding small negative ints using MVN instruction. 2014-12-14 03:24:17 +02:00
viper_binop_divmod.py py/emitnative: Implement floor-division and modulo for viper emitter. 2017-10-11 18:54:34 +11:00
viper_binop_divmod.py.exp py/emitnative: Implement floor-division and modulo for viper emitter. 2017-10-11 18:54:34 +11:00
viper_binop_multi_comp.py py: Partially fix viper multi-comparison; add test for it. 2014-10-19 19:00:51 +01:00
viper_binop_multi_comp.py.exp py: Partially fix viper multi-comparison; add test for it. 2014-10-19 19:00:51 +01:00
viper_cond.py tests: Add more tests for viper, including tests for ViperTypeError's. 2015-04-22 23:18:28 +01:00
viper_cond.py.exp tests: Add more tests for viper, including tests for ViperTypeError's. 2015-04-22 23:18:28 +01:00
viper_error.py tests/micropython/viper_error: Add more tests to improve coverage. 2017-03-14 23:05:41 +11:00
viper_error.py.exp py/runtime: Add MP_BINARY_OP_CONTAINS as reverse of MP_BINARY_OP_IN. 2017-11-24 14:48:23 +11:00
viper_import.py tests/micropython: Add test for import from within viper function. 2016-11-10 22:54:55 +11:00
viper_import.py.exp tests/micropython: Add test for import from within viper function. 2016-11-10 22:54:55 +11:00
viper_misc.py tests/micropython/: Split off intbig tests. 2017-03-07 07:12:58 +01:00
viper_misc.py.exp tests/micropython/: Split off intbig tests. 2017-03-07 07:12:58 +01:00
viper_misc_intbig.py tests/micropython/: Split off intbig tests. 2017-03-07 07:12:58 +01:00
viper_misc_intbig.py.exp tests/micropython/: Split off intbig tests. 2017-03-07 07:12:58 +01:00
viper_ptr8_load.py tests: Add more tests for viper, including tests for ViperTypeError's. 2015-04-22 23:18:28 +01:00
viper_ptr8_load.py.exp tests: Add more tests for viper, including tests for ViperTypeError's. 2015-04-22 23:18:28 +01:00
viper_ptr8_store.py tests: Add more tests for viper, including tests for ViperTypeError's. 2015-04-22 23:18:28 +01:00
viper_ptr8_store.py.exp tests: Add more tests for viper, including tests for ViperTypeError's. 2015-04-22 23:18:28 +01:00
viper_ptr16_load.py tests: Add more tests for viper 16/32-bit load/store, and ellipsis. 2015-10-13 18:24:36 +01:00
viper_ptr16_load.py.exp tests: Add more tests for viper 16/32-bit load/store, and ellipsis. 2015-10-13 18:24:36 +01:00
viper_ptr16_store.py tests: Add more tests for viper 16/32-bit load/store, and ellipsis. 2015-10-13 18:24:36 +01:00
viper_ptr16_store.py.exp tests: Add more tests for viper 16/32-bit load/store, and ellipsis. 2015-10-13 18:24:36 +01:00
viper_ptr32_load.py tests: Add more tests for viper 16/32-bit load/store, and ellipsis. 2015-10-13 18:24:36 +01:00
viper_ptr32_load.py.exp tests: Add more tests for viper 16/32-bit load/store, and ellipsis. 2015-10-13 18:24:36 +01:00
viper_ptr32_store.py tests: Add more tests for viper 16/32-bit load/store, and ellipsis. 2015-10-13 18:24:36 +01:00
viper_ptr32_store.py.exp tests: Add more tests for viper 16/32-bit load/store, and ellipsis. 2015-10-13 18:24:36 +01:00
viper_subscr.py py: Implement implicit cast to obj for viper load/store index/value. 2015-06-04 11:52:16 +01:00
viper_subscr.py.exp py: Implement implicit cast to obj for viper load/store index/value. 2015-06-04 11:52:16 +01:00