Damien George
1694bc733d
py: Add stream reading of n unicode chars; unicode support by default.
...
With unicode enabled, this patch allows reading a fixed number of
characters from text-mode streams; eg file.read(5) will read 5 unicode
chars, which can made of more than 5 bytes.
For an ASCII stream (ie no chars > 127) it only needs to do 1 read. If
there are lots of non-ASCII chars in a stream, then it needs multiple
reads of the underlying object.
Adds a new test for this case. Enables unicode support by default on
unix and stmhal ports.
2014-07-19 18:34:04 +01:00
Paul Sokolovsky
a1760a56ff
test: Add run-tests-exp.sh, script to run testsuite with only sh dependency.
...
This script uses expected test results as generated by run-tests --write-exp,
and requires only standard unix shell funtionality (no bash). It is useful
to run testsuite on embedded systems, where there's no CPython and Bash.
2014-07-13 18:49:56 +03:00
Paul Sokolovsky
2cf381081a
run-tests: Add option to write CPython's test results to .exp files.
...
Mostly to run testsuite on targets which doesn't have CPython.
2014-07-12 16:34:51 +03:00
Paul Sokolovsky
2097c8b1e1
moductypes: Add symbolic constants to specify bitfield position/length.
2014-07-11 00:06:36 +03:00
Paul Sokolovsky
8215847b4d
moductypes: Foreign data interface module, roughly based on ctype ideas.
...
But much smaller and memory-efficient. Uses Python builtin data structures
(dict, tuple, int) to describe structure layout.
2014-07-09 19:28:24 +03:00
Damien George
539681fffd
tests: Rename test scripts, changing - to _ for consistency.
...
From now on, all new tests must use underscore.
Addresses issue #727 .
2014-07-05 06:14:29 +01:00
Damien George
0182385ab0
py: Automatically ake __new__ a staticmethod.
...
Addresses issue #622 .
2014-07-05 05:55:00 +01:00
Damien George
41736f8201
tests: Write output in byte mode, not text mode.
...
This enables testing unicode and non-unicode implementations.
2014-06-28 10:29:12 +01:00
Damien George
b3a50f0f3e
Merge branch 'master' into unicode
...
Conflicts:
py/mpconfig.h
2014-06-28 10:27:15 +01:00
Paul Sokolovsky
8993fb6cf0
py: Add protection against printing too nested or recursive data structures.
...
With a test which cannot be automatically validated so far.
2014-06-28 02:25:04 +03:00
Paul Sokolovsky
ed07d035d5
tests: Add basic test for unicode file i/o.
2014-06-27 00:04:20 +03:00
Paul Sokolovsky
63143c94ce
tests: Test for explicit start/end args to str methods for unicode.
2014-06-27 00:04:20 +03:00
Paul Sokolovsky
b1949e4c09
tests: Add tests for unicode find()/rfind()/index().
2014-06-27 00:04:19 +03:00
Paul Sokolovsky
17994d1bd3
tests: Add test for unicode string iteration.
2014-06-27 00:04:19 +03:00
Chris Angelico
1e3781bc35
tests: Add unicode test.
2014-06-27 00:04:17 +03:00
Paul Sokolovsky
16ac4962ae
tests: Add test for catching infinite function recursion.
...
Put into misc/ to not complicate life for builds with check disabled.
2014-06-27 00:03:56 +03:00
Paul Sokolovsky
7a2f166949
modstruct: Fix alignment handling issues.
...
Also, factor out mp_binary_get_int() function.
2014-06-25 23:34:44 +03:00
Paul Sokolovsky
f605172d2b
tests/float/: Skip tests if "math" module is not available.
2014-06-20 18:00:23 +03:00
Paul Sokolovsky
74c710187c
bench: Three ways to process a byte buffer.
2014-06-19 22:27:13 +03:00
Paul Sokolovsky
59ced651b5
bench: Add test for map() vs inplace operations in array-likes.
...
map() is 5 times slower. That's mostly because of inefficiency of creating
containers from iterables of unknown length (like map()).
2014-06-19 22:19:24 +03:00
Paul Sokolovsky
17db096505
bench: Add tests for constructing various containers from iterator.
...
Both "bound" (like, length known) and "unbound" (length unknown) are tested.
All of list, tuple, bytes, bytesarray offer approximately the same
performance, with "unbound" case being 30 times slower.
2014-06-19 21:44:33 +03:00
Paul Sokolovsky
e53d2197e4
bench: Add test for function call overhead.
...
For a trivial operation, calling a function is 5 times slower than doing
operation inline.
2014-06-19 20:49:03 +03:00
Paul Sokolovsky
2ec38a17d4
objstr: Be 8-bit clean even for repr().
...
This will allow roughly the same behavior as Python3 for non-ASCII strings,
for example, print("<phrase in non-Latin script>".split()) will print list
of words, not weird hex dump (like Python2 behaves). (Of course, that it
will print list of words, if there're "words" in that phrase at all, separated
by ASCII-compatible whitespace; that surely won't apply to every human
language in existence).
2014-06-14 01:21:13 +03:00
Paul Sokolovsky
fbdf2f1d63
py: Rename builtin "io" to "_io".
...
Functionality we provide in builtin io module is fairly minimal. Some
code, including CPython stdlib, depends on more functionality. So, there's
a choice to either implement it in C, or move it _io, and let implement other
functionality in Python. 2nd choice is pursued. This setup matches CPython
too (_io is builtin, io is Python-level).
2014-06-12 01:22:25 +03:00
Paul Sokolovsky
f4bf065dac
tests: Add testcases for "complicated" args to generator functions.
2014-06-11 20:43:47 +03:00
Damien George
58cbb4d661
py: Implement __contains__ special method.
2014-06-10 23:07:56 +01:00
Paul Sokolovsky
195de3247b
objtype: Fix passing of class param to inherited classmethods.
...
This is getting more and more tangled, but that's old news.
2014-06-08 22:28:44 +03:00
Damien George
4297fed1c3
tests: Run 'micropython' tests on pyboard.
2014-06-08 13:46:03 +01:00
Damien George
9e951498b2
tests: Add more tests for default keyword-only args.
2014-06-08 12:58:32 +01:00
Damien George
c06427c019
tests: Fix default arg test.
2014-06-08 00:12:32 +01:00
Paul Sokolovsky
b4efac14cd
py: Make sure getattr() works with non-interned strings (by interning them).
2014-06-08 01:15:06 +03:00
Damien George
f0778a7ccb
py: Implement default keyword only args.
...
Should finish addressing issue #524 .
2014-06-07 22:01:00 +01:00
Paul Sokolovsky
b56a53dfd6
Merge pull request #667 from Rosuav/testfixes
...
A couple of small fixes to run-tests
2014-06-06 22:23:23 +03:00
Dave Hylands
b69f9fa31f
Fix str.modulo when precision is specified.
2014-06-05 23:09:02 -07:00
Chris Angelico
047db2299c
Turn the Travis CI test skipping mechanism into something more generic
2014-06-06 07:51:01 +10:00
Chris Angelico
88b11b50e5
Figure out the test_name before using it (significant only to Travis skips)
2014-06-06 07:51:01 +10:00
Damien George
d4c2bddd0c
py: Raise TypeError when trying to format non-int with %x,%o,%X.
...
This behaviour follows Python 3.5 standard (in 3.4 it's a
DeprecationWarning which we'd rather make a TypeError).
2014-06-05 19:44:54 +01:00
Chris Angelico
daf973ae00
Change comments (mainly URLs) to no longer specifically say Python 3.3
2014-06-06 03:51:03 +10:00
Damien George
c074cd38c3
Merge pull request #663 from Rosuav/floatpercentx
...
Remove tests that fail under CPython 3.5
2014-06-05 18:39:08 +01:00
Paul Sokolovsky
75ce9256b2
objstr: Implement "%(key)s" % {} formatting for strings and dicts.
...
Also, make sure that args to "*" format specifiers are bounds-checked
properly and don't lead for segfaults in case of mismatch.
2014-06-05 20:06:15 +03:00
Chris Angelico
7a6e09635a
Remove tests that fail under CPython 3.5
...
See http://bugs.python.org/issue19995 for rationale. As micropython currently
aims for Python 3.3 compatibility I have not changed behaviour, but this
change allows the test suite to be run against a newer Python without having
spurious failures.
2014-06-05 22:34:11 +10:00
Damien George
bcb6ca4d5e
py: Implement full behaviour of dict.update(), and dict().
...
Add keyword args to dict.update(), and ability to take a dictionary as
argument.
dict() class constructor can now use dict.update() directly.
This patch loses fast path for dict(other_dict), but is that really
needed? Any anyway, this idiom will now re-hash the dictionary, so is
arguably more memory efficient.
Addresses issue #647 .
2014-06-03 12:53:44 +01:00
Damien George
4d659f566f
tests: Add feature test for when heap allocation is disabled.
2014-05-31 18:33:16 +01:00
Damien George
a053e37b2c
tests: Change --test_dirs to --test-dirs.
2014-05-31 18:11:01 +01:00
Damien George
e7412ab37b
Merge pull request #632 from stinos/tests-dir-argument
...
tests: Add argument to allow specifying which directories to test
2014-05-31 18:11:03 +01:00
Damien George
5b5562c1d1
py: Fix stack underflow with optimised for loop.
2014-05-31 17:59:11 +01:00
Damien George
049a01d148
tests: Add another test for break-from-for-loop.
2014-05-31 16:56:15 +01:00
Kim Bauters
a3f4b83018
add methods isspace(), isalpha(), isdigit(), isupper() and islower() to str
2014-05-31 07:30:57 +01:00
Paul Sokolovsky
ccd0e0afcd
tests: Add test for break in for.
...
For #635 / 25c84643b6
.
2014-05-31 00:43:41 +03:00
Paul Sokolovsky
8827682b35
objstr: *strip(): If nothing is stripped, don't create dup string.
2014-05-30 03:15:17 +03:00