From 8d01bd3a1cd00fa50017ef1d95f8f66e0b7a6365 Mon Sep 17 00:00:00 2001 From: Rami Ali Date: Mon, 16 Jan 2017 15:04:53 +1100 Subject: tests: Improve stream.c test coverage. --- tests/unix/extra_coverage.py | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'tests/unix/extra_coverage.py') diff --git a/tests/unix/extra_coverage.py b/tests/unix/extra_coverage.py index f2b40282b..ef1b50fda 100644 --- a/tests/unix/extra_coverage.py +++ b/tests/unix/extra_coverage.py @@ -5,15 +5,46 @@ except NameError: import sys sys.exit() +import uerrno + data = extra_coverage() # test hashing of str/bytes that have an invalid hash -print(data) +print(data[0], data[1]) print(hash(data[0])) print(hash(data[1])) print(hash(bytes(data[0], 'utf8'))) print(hash(str(data[1], 'utf8'))) +# test streams +stream = data[2] # has set_error and set_buf. Write always returns error +stream.set_error(uerrno.EAGAIN) # non-blocking error +print(stream.read()) # read all encounters non-blocking error +print(stream.read(1)) # read 1 byte encounters non-blocking error +print(stream.readline()) # readline encounters non-blocking error +print(stream.readinto(bytearray(10))) # readinto encounters non-blocking error +print(stream.write(b'1')) # write encounters non-blocking error +print(stream.write1(b'1')) # write1 encounters non-blocking error +stream.set_buf(b'123') +print(stream.read(4)) # read encounters non-blocking error after successful reads +stream.set_buf(b'123') +print(stream.read1(4)) # read1 encounters non-blocking error after successful reads +stream.set_buf(b'123') +print(stream.readline(4)) # readline encounters non-blocking error after successful reads +try: + print(stream.ioctl(0, 0)) # ioctl encounters non-blocking error; raises OSError +except OSError: + print('OSError') +stream.set_error(0) +print(stream.ioctl(0, bytearray(10))) # successful ioctl call + +stream2 = data[3] # is textio and sets .write = NULL +try: + print(stream2.write(b'1')) # attempt to call NULL implementation +except OSError: + print('OSError') +print(stream2.read(1)) # read 1 byte encounters non-blocking error with textio stream + # test basic import of frozen scripts import frzstr1 import frzmpy1 -- cgit v1.2.3 From 751e379533172b9bfb0863643d2829446258f9cc Mon Sep 17 00:00:00 2001 From: Rami Ali Date: Mon, 16 Jan 2017 16:47:02 +1100 Subject: tests: Improve frozen import test coverage. --- tests/unix/extra_coverage.py | 6 ++++++ tests/unix/extra_coverage.py.exp | 1 + unix/coverage-frzmpy/frzmpy2.py | 1 + 3 files changed, 8 insertions(+) create mode 100644 unix/coverage-frzmpy/frzmpy2.py (limited to 'tests/unix/extra_coverage.py') diff --git a/tests/unix/extra_coverage.py b/tests/unix/extra_coverage.py index ef1b50fda..1c4cc6cf0 100644 --- a/tests/unix/extra_coverage.py +++ b/tests/unix/extra_coverage.py @@ -60,3 +60,9 @@ from frzstr_pkg2.mod import Foo print(Foo.x) from frzmpy_pkg2.mod import Foo print(Foo.x) + +# test raising exception in frozen script +try: + import frzmpy2 +except ZeroDivisionError: + print('ZeroDivisionError') diff --git a/tests/unix/extra_coverage.py.exp b/tests/unix/extra_coverage.py.exp index 8f62ccf51..3694d97b4 100644 --- a/tests/unix/extra_coverage.py.exp +++ b/tests/unix/extra_coverage.py.exp @@ -71,3 +71,4 @@ frzstr_pkg2.mod 1 frzmpy_pkg2.mod 1 +ZeroDivisionError diff --git a/unix/coverage-frzmpy/frzmpy2.py b/unix/coverage-frzmpy/frzmpy2.py new file mode 100644 index 000000000..1ad930db2 --- /dev/null +++ b/unix/coverage-frzmpy/frzmpy2.py @@ -0,0 +1 @@ +raise ZeroDivisionError -- cgit v1.2.3 From cba723fc8c9b76150efc95e54996ad12a9a8cfc6 Mon Sep 17 00:00:00 2001 From: Rami Ali Date: Tue, 17 Jan 2017 13:12:50 +1100 Subject: tests/io: Improve test coverage of io.BufferedWriter. --- tests/io/buffered_writer.py | 6 ++++++ tests/io/buffered_writer.py.exp | 1 + tests/unix/extra_coverage.py | 6 ++++++ tests/unix/extra_coverage.py.exp | 1 + 4 files changed, 14 insertions(+) (limited to 'tests/unix/extra_coverage.py') diff --git a/tests/io/buffered_writer.py b/tests/io/buffered_writer.py index afeaa839c..bb7b4e8db 100644 --- a/tests/io/buffered_writer.py +++ b/tests/io/buffered_writer.py @@ -20,3 +20,9 @@ buf.flush() print(bts.getvalue()) buf.flush() print(bts.getvalue()) + +# special case when alloc is a factor of total buffer length +bts = io.BytesIO() +buf = io.BufferedWriter(bts, 1) +buf.write(b"foo") +print(bts.getvalue()) diff --git a/tests/io/buffered_writer.py.exp b/tests/io/buffered_writer.py.exp index 1309487e1..d086935a9 100644 --- a/tests/io/buffered_writer.py.exp +++ b/tests/io/buffered_writer.py.exp @@ -2,3 +2,4 @@ b'' b'foobarfo' b'foobarfoobar' b'foobarfoobar' +b'foo' diff --git a/tests/unix/extra_coverage.py b/tests/unix/extra_coverage.py index 1c4cc6cf0..870e7d5f2 100644 --- a/tests/unix/extra_coverage.py +++ b/tests/unix/extra_coverage.py @@ -6,6 +6,7 @@ except NameError: sys.exit() import uerrno +import uio data = extra_coverage() @@ -45,6 +46,11 @@ except OSError: print('OSError') print(stream2.read(1)) # read 1 byte encounters non-blocking error with textio stream +# test BufferedWriter with stream errors +stream.set_error(uerrno.EAGAIN) +buf = uio.BufferedWriter(stream, 8) +print(buf.write(bytearray(16))) + # test basic import of frozen scripts import frzstr1 import frzmpy1 diff --git a/tests/unix/extra_coverage.py.exp b/tests/unix/extra_coverage.py.exp index 3694d97b4..ac59971a5 100644 --- a/tests/unix/extra_coverage.py.exp +++ b/tests/unix/extra_coverage.py.exp @@ -61,6 +61,7 @@ OSError 0 OSError None +None frzstr1 frzmpy1 frzstr_pkg1.__init__ -- cgit v1.2.3