summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2020-02-20 21:29:30 +1100
committerDamien George <damien.p.george@gmail.com>2020-02-21 14:24:07 +1100
commit3ccce89b831bdccd1feaa41ea23bc5d3ea963b32 (patch)
tree25594c6472062a35c2f6ab87b66f444f2355b591
parent2d800c77a0692bb553eac3731c38a0d935261d54 (diff)
py/objarray: Turn on MP_TYPE_FLAG_EQ_CHECKS_OTHER_TYPE for memoryview.
And add corresponding tests. Fixes #5674 (comparison of memoryview against bytes).
-rw-r--r--py/objarray.c1
-rw-r--r--tests/basics/memoryview1.py18
2 files changed, 19 insertions, 0 deletions
diff --git a/py/objarray.c b/py/objarray.c
index a6e6fca1c..760eff8cb 100644
--- a/py/objarray.c
+++ b/py/objarray.c
@@ -573,6 +573,7 @@ const mp_obj_type_t mp_type_bytearray = {
#if MICROPY_PY_BUILTINS_MEMORYVIEW
const mp_obj_type_t mp_type_memoryview = {
{ &mp_type_type },
+ .flags = MP_TYPE_FLAG_EQ_CHECKS_OTHER_TYPE,
.name = MP_QSTR_memoryview,
.make_new = memoryview_make_new,
.getiter = array_iterator_new,
diff --git a/tests/basics/memoryview1.py b/tests/basics/memoryview1.py
index b5314f3e9..1bfeabdfd 100644
--- a/tests/basics/memoryview1.py
+++ b/tests/basics/memoryview1.py
@@ -107,3 +107,21 @@ try:
memoryview(b'a').noexist
except AttributeError:
print('AttributeError')
+
+# equality
+print(memoryview(b'abc') == b'abc')
+print(memoryview(b'abc') != b'abc')
+print(memoryview(b'abc') == b'xyz')
+print(memoryview(b'abc') != b'xyz')
+print(b'abc' == memoryview(b'abc'))
+print(b'abc' != memoryview(b'abc'))
+print(b'abc' == memoryview(b'xyz'))
+print(b'abc' != memoryview(b'xyz'))
+print(memoryview(b'abcdef')[2:4] == b'cd')
+print(memoryview(b'abcdef')[2:4] != b'cd')
+print(memoryview(b'abcdef')[2:4] == b'xy')
+print(memoryview(b'abcdef')[2:4] != b'xy')
+print(b'cd' == memoryview(b'abcdef')[2:4])
+print(b'cd' != memoryview(b'abcdef')[2:4])
+print(b'xy' == memoryview(b'abcdef')[2:4])
+print(b'xy' != memoryview(b'abcdef')[2:4])