]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Fix a Python bytes/int mismatch in CLI tests
authorPeter Pentchev <roam@ringlet.net>
Sat, 18 Mar 2023 20:32:42 +0000 (22:32 +0200)
committerNick Terrell <nickrterrell@gmail.com>
Mon, 20 Mar 2023 18:17:43 +0000 (11:17 -0700)
In Python 3.x, a single element of a bytes array is returned as
an integer number. Thus, NEWLINE is an int variable, and attempting
to add it to the line array will fail with a type mismatch error
that may be demonstrated as follows:

    [roam@straylight ~]$ python3 -c 'b"hello" + b"\n"[0]'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    TypeError: can't concat int to bytes
    [roam@straylight ~]$

tests/cli-tests/run.py

index a2e1c1f86df66a72405cef0e20e92af58d1045bb..108f7101949320a268420b4f5154615d6a85cf83 100755 (executable)
@@ -109,7 +109,7 @@ def pop_line(data: bytes) -> typing.Tuple[typing.Optional[bytes], bytes]:
     the first line always ends in a :\n:, even if it is the last line and :data:
     doesn't end in :\n:.
     """
-    NEWLINE = b"\n"[0]
+    NEWLINE = b"\n"
 
     if data == b'':
         return (None, data)
@@ -124,7 +124,7 @@ def pop_line(data: bytes) -> typing.Tuple[typing.Optional[bytes], bytes]:
     data = data[end_idx:]
 
     assert len(line) != 0
-    if line[-1] != NEWLINE:
+    if not line.endswith(NEWLINE):
         line += NEWLINE
 
     return (line, data)