From b652ee705b7378211250bebb478a3894836350bb Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Fri, 22 Jul 2016 12:02:04 +0300 Subject: [PATCH] tests/bytes_compare: Rework test for bytes <-> str comparison. This may produce a warning, depending on MicroPython configuration. --- tests/basics/bytes_compare2.py | 1 - tests/basics/bytes_compare3.py | 9 +++++++++ tests/basics/bytes_compare3.py.exp | 4 ++++ tests/run-tests | 3 ++- 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 tests/basics/bytes_compare3.py create mode 100644 tests/basics/bytes_compare3.py.exp diff --git a/tests/basics/bytes_compare2.py b/tests/basics/bytes_compare2.py index 02516de93a..8959da3ae7 100644 --- a/tests/basics/bytes_compare2.py +++ b/tests/basics/bytes_compare2.py @@ -1,6 +1,5 @@ print(b"1" == 1) print(b"123" == bytearray(b"123")) -print(b"123" == "123") print(b'123' < bytearray(b"124")) print(b'123' > bytearray(b"122")) print(bytearray(b"23") in b"1234") diff --git a/tests/basics/bytes_compare3.py b/tests/basics/bytes_compare3.py new file mode 100644 index 0000000000..4b9cbd5b3a --- /dev/null +++ b/tests/basics/bytes_compare3.py @@ -0,0 +1,9 @@ +# Based on MicroPython config option, comparison of str and bytes +# or vice versa may issue a runtime warning. On CPython, if run as +# "python3 -b", only comparison of str to bytes issues a warning, +# not the other way around (while exactly comparison of bytes to +# str would be the most common error, as in sock.recv(3) == "GET"). +# Update: the issue above with CPython apparently happens in REPL, +# when run as a script, both lines issue a warning. +print("123" == b"123") +print(b"123" == "123") diff --git a/tests/basics/bytes_compare3.py.exp b/tests/basics/bytes_compare3.py.exp new file mode 100644 index 0000000000..7b117b9056 --- /dev/null +++ b/tests/basics/bytes_compare3.py.exp @@ -0,0 +1,4 @@ +######## +False +######## +False diff --git a/tests/run-tests b/tests/run-tests index 02791896b5..878c14f262 100755 --- a/tests/run-tests +++ b/tests/run-tests @@ -27,9 +27,10 @@ def rm_f(fname): os.remove(fname) def run_micropython(pyb, args, test_file): + special_tests = ('micropython/meminfo.py', 'basics/bytes_compare3.py') if pyb is None: # run on PC - if test_file.startswith(('cmdline/', 'feature_check/')) or test_file == 'micropython/meminfo.py': + if test_file.startswith(('cmdline/', 'feature_check/')) or test_file in special_tests : # special handling for tests of the unix cmdline program # check for any cmdline options needed for this test