summaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-07-16 11:45:10 +0100
committerDamien George <damien.p.george@gmail.com>2014-07-19 18:34:04 +0100
commit1694bc733d3ace8072c58e7da457dd2995998189 (patch)
tree66ec95d356955b18f8944acc5feb0ce9d6b5390f /tests
parent02bc882c3dbfcfd6c825cddf53ededac9af65f02 (diff)
downloadmicropython-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-xtests/run-tests2
-rw-r--r--tests/unicode/data/utf-8_2.txt1
-rw-r--r--tests/unicode/file2.py12
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')