circuitpython/tests/basics
Damien George 36c1052183 py/objtype: Optimise instance get/set/del by skipping special accessors.
This patch is a code optimisation, trading text bytes for speed.  On
pyboard it's an increase of 0.06% in code size for a gain (in pystone
performance) of roughly 6.5%.

The patch optimises load/store/delete of attributes in user defined classes
by not looking up special accessors (@property, __get__, __delete__,
__set__, __setattr__ and __getattr_) if they are guaranteed not to exist in
the class.

Currently, if you do my_obj.foo() then the runtime has to do a few checks
to see if foo is a property or has __get__, and if so delegate the call.
And for stores things like my_obj.foo = 1 has to first check if foo is a
property or has __set__ defined on it.

Doing all those checks each and every time the attribute is accessed has a
performance penalty.  This patch eliminates all those checks for cases when
it's guaranteed that the checks will always fail, ie no attributes are
properties nor have any special accessor methods defined on them.

To make this guarantee it checks all attributes of a user-defined class
when it is first created.  If any of the attributes of the user class are
properties or have special accessors, or any of the base classes of the
user class have them, then it sets a flag in the class to indicate that
special accessors must be checked for.  Then in the load/store/delete code
it checks this flag to see if it can take the shortcut and optimise the
lookup.

It's an optimisation that's pretty widely applicable because it improves
lookup performance for all methods of user defined classes, and stores of
attributes, at least for those that don't have special accessors.  And, it
allows to enable descriptors with minimal additional runtime overhead if
they are not used for a particular user class.

There is one restriction on dynamic class creation that has been introduced
by this patch: a user-defined class cannot go from zero special accessors
to one special accessor (or more) after that class has been subclassed.  If
the script attempts this an AttributeError is raised (see addition to
tests/misc/non_compliant.py for an example of this case).

The cost in code space bytes for the optimisation in this patch is:

   unix x64:  +528
unix nanbox:  +508
      stm32:  +192
     cc3200:  +200
    esp8266:  +332
      esp32:  +244

Performance tests that were done:

- on unix x86-64, pystone improved by about 5%
- on pyboard, pystone improved by about 6.5%, from 1683 up to 1794
- on pyboard, bm_chaos (from CPython benchmark suite) improved by about 5%
- on esp32, pystone improved by about 30% (but there are caching effects)
- on esp32, bm_chaos improved by about 11%
2018-06-08 12:12:08 +10:00
..
0prelim.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
andor.py py: Fix 2 bugs in native emitter: jump_or_pop and stack settling. 2014-08-29 20:05:32 +01:00
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_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_construct.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 tests/basics: Add tests to improve coverage of binary.c. 2016-12-28 16:11:54 +11:00
assign1.py tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
async_await2.py tests: Add 6 tests for async await/for/with. 2016-04-13 15:27:06 +01:00
async_await2.py.exp tests: Add .exp files for async tests, so they can run with Python 3.4. 2016-04-13 15:56:15 +01:00
async_await.py tests: Add 6 tests for async await/for/with. 2016-04-13 15:27:06 +01:00
async_await.py.exp tests: Add .exp files for async tests, so they can run with Python 3.4. 2016-04-13 15:56:15 +01:00
async_def.py tests: Improve test coverage of py/compile.c. 2016-10-11 12:30:32 +11:00
async_def.py.exp tests: Improve test coverage of py/compile.c. 2016-10-11 12:30:32 +11:00
async_for2.py tests: Add 6 tests for async await/for/with. 2016-04-13 15:27:06 +01:00
async_for2.py.exp tests: Add .exp files for async tests, so they can run with Python 3.4. 2016-04-13 15:56:15 +01:00
async_for.py tests: Add 6 tests for async await/for/with. 2016-04-13 15:27:06 +01:00
async_for.py.exp tests: Add .exp files for async tests, so they can run with Python 3.4. 2016-04-13 15:56:15 +01:00
async_with2.py py/compile: Fix async-for/async-with to work with simpler exc on stack. 2016-09-28 11:52:13 +10:00
async_with2.py.exp py/compile: Fix async-for/async-with to work with simpler exc on stack. 2016-09-28 11:52:13 +10:00
async_with.py tests: Improve test coverage of py/compile.c. 2016-10-11 12:30:32 +11:00
async_with.py.exp tests: Improve test coverage of py/compile.c. 2016-10-11 12:30:32 +11:00
attrtuple1.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bool1.py tests: Add a few tests for bool, bytearray, float to improve coverage. 2015-08-29 23:13:28 +01:00
boundmeth1.py tests/basics: Add test for assignment of attribute to bound method. 2017-01-20 13:17:22 +11:00
break.py py: Implement break and continue byte codes, and add tests. 2014-01-21 23:48:04 +00: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_abs.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_allany.py tests: Use range as iterable instead of list comprehension. 2015-03-02 17:55:55 +00: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_bin.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
builtin_callable.py py: Fix builtin callable so it checks user-defined instances correctly. 2014-11-03 16:09:39 +00:00
builtin_chr.py tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
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_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03: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_ellipsis.py tests: Add some tests to improve coverage. 2015-01-29 14:56:09 +00:00
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_error.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
builtin_eval.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_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_hash.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03: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_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03: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_id.py Fix unstable case in builtin_id.py test. 2014-02-04 00:50:22 +02:00
builtin_issubclass.py tests: Add more tests to improve coverage, mostly testing exceptions. 2015-08-21 12:02:09 +01:00
builtin_len1.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
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_oct_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03: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_ord.py tests: Add tests to improve coverage of objstr.c. 2015-09-03 23:06:18 +01:00
builtin_override.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_pow3_intbig.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +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_pow.py tests: Split tests for 2- and 3-arg pow(). 2017-02-02 23:34:52 +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_inherit.py py/objtype: Optimise instance get/set/del by skipping special accessors. 2018-06-08 12:12:08 +10:00
builtin_property.py py/objtype: Remove TODO comment about needing to check for property. 2018-05-25 10:59:40 +10: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_range.py tests/basics/builtin_range: Add test for corner case of range slicing. 2017-11-24 15:30:12 +11:00
builtin_reversed.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
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_round.py modbuiltins: Implement round() to precision. 2015-07-19 21:49:44 +03: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 tests/basics/builtin_slice: Add test for "slice" builtin name. 2016-10-24 13:35:39 +11:00
builtin_sorted.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
builtin_sum.py tests: Use range as iterable instead of list comprehension. 2015-03-02 17:55:55 +00:00
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 tests/bytearray1: Add testcases for "in" operator. 2016-02-14 18:57:18 +02:00
bytearray_add.py tests: Add a few tests for bool, bytearray, float to improve coverage. 2015-08-29 23:13:28 +01:00
bytearray_append.py py/objarray: Fix array.append so it doesn't extend if append fails. 2016-04-07 09:03:33 +01: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_construct.py tests/basic: Make various tests skippable. 2017-03-09 00:07:19 +01: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_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_add.py tests/basics/bytes_add: Add tests for optimised bytes addition. 2017-03-16 14:31:03 +11:00
bytes_compare2.py tests/basic: Make various tests skippable. 2017-03-09 00:07:19 +01:00
bytes_compare3.py tests/bytes_compare: Rework test for bytes <-> str comparison. 2016-07-22 12:02:04 +03:00
bytes_compare3.py.exp tests/bytes_compare: Rework test for bytes <-> str comparison. 2016-07-22 12:02:04 +03:00
bytes_compare_array.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytes_compare.py sequence: Fix yet another case of improper sequence comparison. 2014-05-15 19:09:06 +03: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_construct.py tests/basic: Make various tests skippable. 2017-03-09 00:07:19 +01:00
bytes_count.py py: Make bytes objs work with more str methods; add tests. 2014-12-24 20:28:30 +00:00
bytes_find.py py/objstrunicode: str_index_to_ptr: Should handle bytes too. 2016-07-25 14:45:08 +03:00
bytes_format_modulo.py tests: Add tests for %-formatting of bytes. 2015-12-20 16:54:34 +02:00
bytes_format_modulo.py.exp tests: Add tests for %-formatting of bytes. 2015-12-20 16:54:34 +02:00
bytes_gen.py tests: Fix uctypes tests to run on 64bit arch; enable more native tests. 2014-09-23 14:15:45 +00:00
bytes_large.py py: Never intern data of large string/bytes object; add relevant tests. 2015-01-13 16:21:23 +00:00
bytes_mult.py py: Fix mult by negative number of tuple, list, str, bytes. 2014-08-13 13:22:24 +01:00
bytes_partition.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
bytes_replace.py py: Make bytes objs work with more str methods; add tests. 2014-12-24 20:28:30 +00:00
bytes_split.py py: Make bytes objs work with more str methods; add tests. 2014-12-24 20:28:30 +00:00
bytes_strip.py py: Make bytes objs work with more str methods; add tests. 2014-12-24 20:28:30 +00:00
bytes_subscr.py tests: Add more tests to improve coverage, mostly testing exceptions. 2015-08-21 12:02:09 +01:00
bytes.py py/objstr: Protect against creating bytes(n) with n negative. 2018-02-19 16:25:30 +11:00
class1.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
class2.py tests: Add more tests to improve coverage, mostly testing exceptions. 2015-08-21 12:02:09 +01:00
class3.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
class_bind_self.py py: Be more restrictive binding self when looking up instance attrs. 2015-12-26 12:41:31 +00:00
class_binop.py py: Add dispatch for user defined ==, >, <=, >=. 2014-08-26 09:31:26 +01:00
class_call.py py: Support instance __call__ method. 2014-04-25 21:17:42 +03:00
class_contains.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
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 tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
class_getattr.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
class_inherit1.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
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 tests: Add test for when instance member overrides class member. 2015-01-08 17:48:44 +00:00
class_item.py tests/basics: Improve user class coverage. 2016-11-22 15:49:02 +11:00
class_misc.py tests/basics: Improve user class coverage. 2016-11-22 15:49:02 +11:00
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 Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
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 tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
class_store_class.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
class_store.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
class_str.py Implement support for __str__ and __repr__ special methods in classes. 2014-03-16 15:18:22 +02: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_super.py py/objtype: Fix assertion failures in super_attr by checking type. 2018-05-30 11:14:07 +10:00
class_use_other.py py: Use a wrapper to explicitly check self argument of builtin methods. 2015-06-20 16:39:39 +01:00
closure1.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
closure2.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
closure_defargs.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
closure_manyvars.py tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
closure_namedarg.py py: Fix naming of function arguments when function is a closure. 2015-05-06 13:55:33 +01:00
compare_multi.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
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 py: Implement break and continue byte codes, and add tests. 2014-01-21 23:48:04 +00:00
decorator.py tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
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 tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
del_global.py tests: Improve test coverage of py/compile.c. 2016-10-11 12:30:32 +11:00
del_local.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
del_name.py tests: Add some tests to improve coverage. 2015-01-29 00:44:11 +00:00
del_subscr.py tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
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: Add test to print full KeyError exc from failed dict lookup. 2016-10-17 12:01:18 +11:00
dict2.py tests: Add tests for op special meths, ubinascii, complex. 2015-03-02 12:47:44 +00:00
dict_clear.py tests: Fix few tests which depend on order of elements in dict. 2014-04-06 21:31:42 +03:00
dict_construct.py py: Implement full behaviour of dict.update(), and dict(). 2014-06-03 12:53:44 +01:00
dict_copy.py tests: Reduce large object allocations so tests can run with small heap. 2016-03-06 05:59:46 +02:00
dict_del.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
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 tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
dict_fromkeys2.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
dict_fromkeys.py tests/dict_fromkeys: Split out skippable part. 2017-03-09 08:31:35 +01:00
dict_get.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
dict_intern.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
dict_iterator.py tests: Fix few tests which depend on order of elements in dict. 2014-04-06 21:31:42 +03:00
dict_pop.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
dict_popitem.py tests: Fix few tests which depend on order of elements in dict. 2014-04-06 21:31:42 +03:00
dict_setdefault.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
dict_specialmeth.py tests: Add tests for op special meths, ubinascii, complex. 2015-03-02 12:47:44 +00:00
dict_update.py py: Implement full behaviour of dict.update(), and dict(). 2014-06-03 12:53:44 +01:00
dict_views.py tests: Improve coverage of array, range, dict, slice, exc, unicode. 2016-10-17 11:43:47 +11:00
equal_class.py py: Implement fallback for equality check for all types. 2015-01-11 15:13:18 +00:00
equal.py py: Remove useless implementations of NOT_EQUAL in binary_op's. 2014-04-12 00:20:39 +01:00
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 tests: Add test for exception matching of a tuple of exceptions. 2014-09-25 15:49:26 +01:00
exception1.py objexcept: Add "args" exception attribute, as well as StopIteration.value. 2014-03-25 01:42:01 +02:00
exception_chain.py tests: Add test for exception-chaining raise syntax. 2015-09-01 10:39:11 +03:00
exception_chain.py.exp py: Remove dependency on printf/fwrite in mp_plat_print. 2015-10-15 00:05:55 +01:00
exceptpoly2.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
exceptpoly.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
floordivide_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
floordivide.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03:00
for1.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
for2.py py: Fix bug in optimised for .. range. 2014-03-31 18:02:22 +01:00
for3.py py: Fix optimised for-loop compiler so it follows proper semantics. 2014-12-12 17:19:56 +00:00
for_break.py tests: Add another test for break-from-for-loop. 2014-05-31 16:56:15 +01:00
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 py: Fix stack underflow with optimised for loop. 2014-05-31 17:59:11 +01:00
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 Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
fun2.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
fun3.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
fun_annotations.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01: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 tests/basics: Improve runtime.c test coverage. 2017-01-17 16:21:17 +11:00
fun_calldblstar.py py/runtime: Check that keys in dicts passed as ** args are strings. 2018-03-30 11:13:32 +11:00
fun_callstar.py tests/basics: Improve runtime.c test coverage. 2017-01-17 16:21:17 +11:00
fun_callstardblstar.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
fun_defargs2.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
fun_defargs.py py: Fix compiler to handle lambdas used as default arguments. 2015-12-12 13:42:51 +00: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_error.py tests: Rewrite some tests so they can run without needing eval/exec. 2018-02-14 16:50:20 +11:00
fun_kwargs.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
fun_kwonly.py py: Fix compiler to handle lambdas used as default arguments. 2015-12-12 13:42:51 +00:00
fun_kwonlydef.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
fun_kwvarargs.py tests: Allow tests to pass against CPython 3.5. 2015-10-02 13:01:47 +01:00
fun_largestate.py tests: Add some tests to improve coverage. 2015-01-29 14:56:09 +00:00
fun_name.py tests: Fix few test for proper "skipped" detection with qemu-arm's tinytest. 2017-12-12 23:45:48 +02:00
fun_str.py tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
fun_varargs.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
gc1.py tests/basics/gc1: Add test which triggers GC threshold. 2018-02-27 22:39:17 +11:00
gen_yield_from_close.py tests/gen_yield_from_close: Use range() instead of reversed(). 2017-02-15 17:05:27 +03:00
gen_yield_from_ducktype.py vm: Properly handle StopIteration raised in user instance iterator. 2015-05-11 23:57:42 +01:00
gen_yield_from_exc.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
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 py: iternext() may not return MP_OBJ_NULL, only MP_OBJ_STOP_ITERATION. 2015-05-10 00:41:49 +03:00
gen_yield_from_send.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
gen_yield_from_stopped.py tests: Add testcase for yielding from a stopped generator. 2016-04-28 02:08:51 +03:00
gen_yield_from_throw2.py tests: Update tests, and add new ones, for recent generator tweaks. 2017-01-17 00:17:44 +11: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
gen_yield_from_throw.py tests/basics: Improve test coverage for generators. 2016-12-20 16:19:56 +11:00
gen_yield_from.py py/vm: Fix case of handling raised StopIteration within yield from. 2018-02-27 15:39:31 +11:00
generator1.py tests/basics: Improve test coverage for generators. 2016-12-20 16:19:56 +11:00
generator2.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
generator_args.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
generator_close.py objgenerator: Implement return with value and .close() method. 2014-03-26 15:40:58 +02:00
generator_closure.py objclosure: Fix printing of generator closures. 2014-10-16 00:14:01 +03:00
generator_exc.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01: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_return.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
generator_send.py gen.send(): Throw StopIteration. Also, explicitly shutdown finished gen. 2014-01-27 01:07:58 +02:00
getattr.py py: Implement __getattr__. 2014-03-31 22:57:56 +01:00
getitem.py tests: Add test where __getitem__ raises IndexError to stop iteration. 2015-08-30 11:49:59 +01:00
globals_del.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
ifcond.py tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
ifexpr.py tests/basics: Add tests for if-expressions. 2016-11-26 16:15:31 +11:00
int1.py tests/basics: Add tests for parsing of ints with base 36. 2016-12-28 12:08:46 +11:00
int2.py tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
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_and2.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
int_big_and3.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
int_big_and.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
int_big_cmp.py tests: Add tests for boundmeth; and bignum cmp, unary, float, error. 2015-03-03 16:45:39 +00:00
int_big_div.py py/mpz: Fix bug with overflowing C-shift in division routine. 2016-05-08 21:38:43 +01:00
int_big_error.py py: Catch all cases of integer (big and small) division by zero. 2015-10-01 22:48:48 +01:00
int_big_lshift.py tests: Add further tests for mpz code. 2015-10-01 18:49:37 +01:00
int_big_mod.py py/mpz: Do Python style division/modulo within bignum divmod routine. 2016-05-08 22:21:21 +01:00
int_big_mul.py tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
int_big_or2.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
int_big_or3.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
int_big_or.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
int_big_pow.py tests: Add further tests for mpz code. 2015-10-01 18:49:37 +01:00
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 tests: Add tests for boundmeth; and bignum cmp, unary, float, error. 2015-03-03 16:45:39 +00:00
int_big_xor2.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
int_big_xor3.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
int_big_xor.py tests/basics: Modify int-big tests to prevent constant folding. 2018-04-04 13:57:22 +10:00
int_big_zeroone.py py: Fix comparison of minus-zero long int. 2015-01-27 17:47:38 +00:00
int_bytes_intbig.py py/objint: Support "big" byte-order in int.to_bytes(). 2017-06-15 13:56:21 +10:00
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_constfolding_intbig.py tests/basic: Split tests into working with small ints and not working. 2017-03-04 00:13:27 +03: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_divmod_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_divzero.py py: Catch all cases of integer (big and small) division by zero. 2015-10-01 22:48:48 +01:00
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 tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
is_isnot.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
iter0.py tests/basics: Improve runtime.c test coverage. 2017-01-17 16:21:17 +11:00
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 py: Replace mp_const_stop_iteration object with MP_OBJ_NULL. 2014-03-26 19:27:58 +00:00
iter_of_iter.py tests/basic/: Make various tests skippable. 2017-02-15 18:11:16 +03:00
lambda1.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
lambda_defargs.py py: Implement default and star args for lambdas. 2015-11-17 14:00:14 +00:00
lexer.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
list1.py tests/basics: Add more list tests to improve coverage testing. 2016-08-15 10:46:35 +10:00
list_clear.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
list_compare.py py/objlist: Properly implement comparison with incompatible types. 2017-09-07 00:10:10 +03:00
list_copy.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
list_count.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
list_extend.py py/objlist: Make list += accept all arguments and add test. 2015-08-02 20:53:54 +01:00
list_index.py tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
list_insert.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
list_mult.py tests/basics: Add more list tests to improve coverage testing. 2016-08-15 10:46:35 +10:00
list_pop.py tests/basics: Add more list tests to improve coverage testing. 2016-08-15 10:46:35 +10:00
list_remove.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
list_reverse.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
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_grow.py tests/basics: Add tests for list and bytearray growing using themselves. 2017-04-02 17:31:32 +10:00
list_slice_assign.py all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
list_slice.py tests/basics: Enable tests for list slice getting with 3rd arg. 2016-11-26 16:39:25 +11:00
list_sort.py tests: Reduce large object allocations so tests can run with small heap. 2016-03-06 05:59:46 +02:00
list_sum.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
logic_constfolding.py tests/basics: Add test for logical constant folding. 2016-11-15 16:48:49 +11:00
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 tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
module2.py tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
module2.py.exp tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
namedtuple1.py tests/basics/namedtuple1: Add test for creating with pos and kw args. 2017-06-29 17:50:09 +10:00
namedtuple_asdict.py py/objnamedtuple: Add _asdict function if OrderedDict is supported 2017-11-12 14:16:54 +02:00
object1.py tests: Add missing tests for builtins, and many other things. 2015-04-04 22:05:30 +01:00
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_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_error.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/basics: Add tests for arithmetic operators precedence. 2017-07-05 15:51:03 +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 tests: Add testcase for OrderedDict equality. 2016-06-12 17:37:19 +03:00
parser.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
python34.py tests: Automatically skip tests that require eval, exec or frozenset. 2018-02-14 16:46:44 +11:00
python34.py.exp py/compile: Raise SyntaxError if positional args are given after */**. 2017-06-14 18:18:01 +10:00
return1.py tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
scope.py tests/basics: Add further tests for nonlocal scoping and closures. 2016-09-30 14:20:55 +10:00
self_type_check.py py: Use a wrapper to explicitly check self argument of builtin methods. 2015-06-20 16:39:39 +01:00
seq_unpack.py tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
set_add.py Modify set tests to print sorted sets directly 2014-04-07 05:00:03 +01:00
set_basic.py tests/run-tests: Allow to skip set tests. 2017-01-05 00:16:29 +03:00
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 Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
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 Modify set tests to print sorted sets directly 2014-04-07 05:00:03 +01:00
set_difference.py tests/basics: Add test for set.difference_update with arg being itself. 2016-09-28 11:10:27 +10:00
set_discard.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
set_intersection.py Modify set tests to print sorted sets directly 2014-04-07 05:00:03 +01:00
set_isdisjoint.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
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_of_iter.py tests/basic/: Make various tests skippable. 2017-02-15 18:11:16 +03:00
set_iter.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
set_pop.py tests/basics/set_pop: Improve coverage of set functions. 2016-12-20 14:25:06 +11: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 tests: Add tests for op special meths, ubinascii, complex. 2015-03-02 12:47:44 +00:00
set_symmetric_difference.py Modify set tests to print sorted sets directly 2014-04-07 05:00:03 +01:00
set_type.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
set_union.py tests: Fix few tests which depend on order of elements in set. 2014-04-07 02:54:16 +03:00
set_unop.py tests: Add more tests to improve coverage, mostly testing exceptions. 2015-08-21 12:02:09 +01:00
set_update.py Modify set tests to print sorted sets directly 2014-04-07 05:00:03 +01:00
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 py: Improve __bool__ and __len__ dispatch; add slots for them. 2014-01-30 10:05:33 +00:00
special_methods2.py tests/basics/special_methods2: Enable some additional tests that work. 2018-05-11 17:37:16 +10:00
special_methods.py tests/basic/: Make various tests skippable. 2017-02-15 18:11:16 +03:00
string1.py tests: Add tests to improve coverage of objstr.c. 2015-09-03 23:06:18 +01:00
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: Add more tests to improve coverage, mostly testing exceptions. 2015-08-21 12:02:09 +01:00
string_cr_conversion.py py: Convert CR to LF and CR LF to LF in lexer. 2015-01-30 00:27:46 +00:00
string_crlf_conversion.py py: Convert CR to LF and CR LF to LF in lexer. 2015-01-30 00:27:46 +00: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_endswith.py py/objstr: startswith, endswith: Check arg to be a string. 2017-08-29 00:06:21 +03:00
string_escape.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
string_find.py py/objstr: In find/rfind, don't crash when end < start. 2018-04-05 16:14:17 +10:00
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 tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00: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_format_modulo.py tests/basics: Move string-modulo-format int tests to dedicated file. 2017-03-15 17:34:47 +11:00
string_format.py tests: Split large tests into smaller files, to run with a small heap. 2016-03-15 13:07:41 +00:00
string_index.py py: Implement str.[r]index() and add tests for them. 2014-04-08 11:51:41 -07:00
string_istest.py add methods isspace(), isalpha(), isdigit(), isupper() and islower() to str 2014-05-31 07:30:57 +01:00
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 py: Never intern data of large string/bytes object; add relevant tests. 2015-01-13 16:21:23 +00:00
string_mult.py py: Fix mult by negative number of tuple, list, str, bytes. 2014-08-13 13:22:24 +01:00
string_partition.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +03:00
string_replace.py tests: Add more tests to improve coverage, mostly testing exceptions. 2015-08-21 12:02:09 +01:00
string_repr.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
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 py: Implement str.[r]index() and add tests for them. 2014-04-08 11:51:41 -07:00
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 tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
string_split.py objstr: split(None): Fix whitespace properly. 2015-04-12 00:17:57 +03:00
string_splitlines.py tests/basics: Convert "sys.exit()" to "raise SystemExit". 2017-06-10 20:03:01 +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_startswith.py 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 objstr: Implement .lower() and .upper(). 2014-05-10 19:49:07 +03:00
struct1_intbig.py py/binary.c: Fix bug when packing big-endian 'Q' values. 2017-08-15 11:33:43 +10:00
struct1.py py/modstruct: Check and prevent buffer-write overflow in struct packing. 2017-09-01 11:11:09 +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 tests: Add more tests to improve coverage, mostly testing exceptions. 2015-08-21 12:02:09 +01:00
subclass_native2_list.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
subclass_native2_tuple.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
subclass_native3.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
subclass_native4.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
subclass_native5.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
subclass_native_buffer.py py: Allow subclass of native object to delegate to the native buffer_p. 2015-02-09 15:08:00 +00:00
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 objtuple: Go out of the way to support comparison of subclasses. 2014-05-11 03:33:19 +03:00
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 objtype: Implement ->getiter() method for instances. 2014-05-10 21:26:08 +03:00
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 tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
try1.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
try2.py tests: Add tests to improve coverage of runtime.c. 2016-12-21 15:44:41 +11:00
try3.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
try4.py Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
try_as_var.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
try_continue.py py/vm: Fix popping of exception block in UNWIND_JUMP opcode. 2016-02-01 16:07:21 +00:00
try_error.py tests: Add tests for SyntaxError, TypeError, and other missing things. 2015-03-25 23:10:09 +00:00
try_finally1.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
try_finally2.py tests/basics: Add test case for overflowing Py stack in try-finally. 2016-09-27 12:46:50 +10: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_return2.py py: Handle case of return within the finally block of try-finally. 2015-12-24 12:47:39 +00:00
try_finally_return.py py: Fix with+for+return bug by popping for-iter when unwinding exc stack. 2015-10-15 17:48:28 +01:00
try_reraise2.py various: Spelling fixes 2017-05-29 11:36:05 +03:00
try_reraise.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
try_return.py tests/basics: Add test for use of return within try-except. 2018-04-04 01:43:16 +10: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 Factor out mp_seq_count_obj() and implement tuple.count(). 2014-02-10 07:13:32 +02:00
tuple_index.py Implement tuple.index(). 2014-02-10 07:13:32 +02:00
tuple_mult.py py/objtuple: Allow to use inplace-multiplication operator on tuples. 2017-08-09 21:20:42 +10:00
types1.py tests/types1: Split out set type test to set_types. 2017-01-06 11:01:55 +03:00
types2.py tests: Split out those tests requiring float and import. 2014-04-17 16:21:43 +01:00
unary_op.py tests: Add test for "not" of a user defined class. 2015-12-10 22:21:57 +00:00
unboundlocal.py py: Make all LOAD_FAST ops check for unbound local. 2014-04-12 18:20:40 +01:00
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 Move tests in basic/tests/ up one level preparating to multiple test dirs. 2014-01-19 18:41:55 +02:00
while_cond.py tests: Add tests for things that are not already tested. 2015-03-12 22:48:45 +00:00
while_nest_exc.py tests: Add test for nested while with exc and break. 2014-10-17 17:28:25 +00:00
with1.py tests: Make tests pass on pyboard. 2014-04-13 17:46:30 +01:00
with_break.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
with_continue.py tests: Rename test scripts, changing - to _ for consistency. 2014-07-05 06:14:29 +01:00
with_return.py py: Fix with+for+return bug by popping for-iter when unwinding exc stack. 2015-10-15 17:48:28 +01:00