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.exp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'tests/unix/extra_coverage.py.exp') diff --git a/tests/unix/extra_coverage.py.exp b/tests/unix/extra_coverage.py.exp index d3d725211..8f62ccf51 100644 --- a/tests/unix/extra_coverage.py.exp +++ b/tests/unix/extra_coverage.py.exp @@ -43,11 +43,24 @@ Warning: test ? +1e+00 +1e+00 -('0123456789', b'0123456789') +0123456789 b'0123456789' 7300 7300 7300 7300 +None +None +None +None +None +None +b'123' +b'123' +b'123' +OSError +0 +OSError +None frzstr1 frzmpy1 frzstr_pkg1.__init__ -- 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.exp') 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.exp') 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 From 77cbd173df449e8e6eb79cba75b341f1721be377 Mon Sep 17 00:00:00 2001 From: Rami Ali Date: Tue, 14 Mar 2017 17:58:43 +1100 Subject: tests: Improve binary.c test coverage. --- tests/unix/extra_coverage.py.exp | 3 +++ unix/coverage.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+) (limited to 'tests/unix/extra_coverage.py.exp') diff --git a/tests/unix/extra_coverage.py.exp b/tests/unix/extra_coverage.py.exp index ac59971a5..32117aba4 100644 --- a/tests/unix/extra_coverage.py.exp +++ b/tests/unix/extra_coverage.py.exp @@ -43,6 +43,9 @@ Warning: test ? +1e+00 +1e+00 +# binary +122 +456 0123456789 b'0123456789' 7300 7300 diff --git a/unix/coverage.c b/unix/coverage.c index 5b0c8d7a0..ca236c430 100644 --- a/unix/coverage.c +++ b/unix/coverage.c @@ -10,6 +10,7 @@ #include "py/emit.h" #include "py/formatfloat.h" #include "py/stream.h" +#include "py/binary.h" #if defined(MICROPY_UNIX_COVERAGE) @@ -278,6 +279,19 @@ STATIC mp_obj_t extra_coverage(void) { mp_printf(&mp_plat_print, "%s\n", buf2); } + // binary + { + mp_printf(&mp_plat_print, "# binary\n"); + + // call function with float and double typecodes + float far[1]; + double dar[1]; + mp_binary_set_val_array_from_int('f', far, 0, 123); + mp_printf(&mp_plat_print, "%.0f\n", (double)far[0]); + mp_binary_set_val_array_from_int('d', dar, 0, 456); + mp_printf(&mp_plat_print, "%.0lf\n", dar[0]); + } + mp_obj_streamtest_t *s = m_new_obj(mp_obj_streamtest_t); s->base.type = &mp_type_stest_fileio; s->buf = NULL; -- cgit v1.2.3 From 74faf4c5fc2245e33a0deed840716a36249eb683 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 16 Mar 2017 18:05:33 +1100 Subject: unix/coverage: Enable scheduler and add tests for it. --- tests/unix/extra_coverage.py.exp | 11 +++++++++++ unix/coverage.c | 29 +++++++++++++++++++++++++++++ unix/mpconfigport_coverage.h | 1 + 3 files changed, 41 insertions(+) (limited to 'tests/unix/extra_coverage.py.exp') diff --git a/tests/unix/extra_coverage.py.exp b/tests/unix/extra_coverage.py.exp index 32117aba4..416993887 100644 --- a/tests/unix/extra_coverage.py.exp +++ b/tests/unix/extra_coverage.py.exp @@ -46,6 +46,17 @@ Warning: test # binary 122 456 +# scheduler +sched(0)=1 +sched(1)=1 +sched(2)=1 +sched(3)=1 +sched(4)=0 +unlocked +3 +2 +1 +0 0123456789 b'0123456789' 7300 7300 diff --git a/unix/coverage.c b/unix/coverage.c index ca236c430..09959525a 100644 --- a/unix/coverage.c +++ b/unix/coverage.c @@ -292,6 +292,35 @@ STATIC mp_obj_t extra_coverage(void) { mp_printf(&mp_plat_print, "%.0lf\n", dar[0]); } + // scheduler + { + mp_printf(&mp_plat_print, "# scheduler\n"); + + // lock scheduler + mp_sched_lock(); + + // schedule multiple callbacks; last one should fail + for (int i = 0; i < 5; ++i) { + mp_printf(&mp_plat_print, "sched(%d)=%d\n", i, mp_sched_schedule(MP_OBJ_FROM_PTR(&mp_builtin_print_obj), MP_OBJ_NEW_SMALL_INT(i))); + } + + // test nested locking/unlocking + mp_sched_lock(); + mp_sched_unlock(); + + // shouldn't do anything while scheduler is locked + mp_handle_pending(); + + // unlock scheduler + mp_sched_unlock(); + mp_printf(&mp_plat_print, "unlocked\n"); + + // drain pending callbacks + while (mp_sched_num_pending()) { + mp_handle_pending(); + } + } + mp_obj_streamtest_t *s = m_new_obj(mp_obj_streamtest_t); s->base.type = &mp_type_stest_fileio; s->buf = NULL; diff --git a/unix/mpconfigport_coverage.h b/unix/mpconfigport_coverage.h index 9df8d0fca..387e182db 100644 --- a/unix/mpconfigport_coverage.h +++ b/unix/mpconfigport_coverage.h @@ -32,6 +32,7 @@ #include +#define MICROPY_ENABLE_SCHEDULER (1) #define MICROPY_PY_DELATTR_SETATTR (1) #define MICROPY_PY_BUILTINS_HELP (1) #define MICROPY_PY_BUILTINS_HELP_MODULES (1) -- cgit v1.2.3