diff options
author | Damien George <damien.p.george@gmail.com> | 2014-07-16 11:45:10 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-07-19 18:34:04 +0100 |
commit | 1694bc733d3ace8072c58e7da457dd2995998189 (patch) | |
tree | 66ec95d356955b18f8944acc5feb0ce9d6b5390f /tests | |
parent | 02bc882c3dbfcfd6c825cddf53ededac9af65f02 (diff) | |
download | micropython-1694bc733d3ace8072c58e7da457dd2995998189.tar.gz micropython-1694bc733d3ace8072c58e7da457dd2995998189.zip |
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.
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/run-tests | 2 | ||||
-rw-r--r-- | tests/unicode/data/utf-8_2.txt | 1 | ||||
-rw-r--r-- | tests/unicode/file2.py | 12 |
3 files changed, 14 insertions, 1 deletions
diff --git a/tests/run-tests b/tests/run-tests index 71a94f946f..4b48421ded 100755 --- a/tests/run-tests +++ b/tests/run-tests @@ -134,7 +134,7 @@ def main(): if args.test_dirs is None: if pyb is None: # run PC tests - test_dirs = ('basics', 'micropython', 'float', 'import', 'io', 'misc') + test_dirs = ('basics', 'micropython', 'float', 'import', 'io', 'misc', 'unicode') else: # run pyboard tests test_dirs = ('basics', 'micropython', 'float', 'pyb', 'pybnative', 'inlineasm') diff --git a/tests/unicode/data/utf-8_2.txt b/tests/unicode/data/utf-8_2.txt new file mode 100644 index 0000000000..ab0eaa4e0d --- /dev/null +++ b/tests/unicode/data/utf-8_2.txt @@ -0,0 +1 @@ +aαbβcγdδ diff --git a/tests/unicode/file2.py b/tests/unicode/file2.py new file mode 100644 index 0000000000..aca2e0e0ed --- /dev/null +++ b/tests/unicode/file2.py @@ -0,0 +1,12 @@ +# test reading a given number of characters + +def do(mode): + f = open('unicode/data/utf-8_2.txt', mode) + print(f.read(1)) + print(f.read(1)) + print(f.read(2)) + print(f.read(4)) + f.close() + +do('rb') +do('rt') |