cros_setup_toolchains: fix binary file reading for real
Indexing a bytes array yields ints in Python 3 unlike Python 2.
Tweak the syntax to always returns bytes, and add some unittests
to make sure the change works under both versions now.
BUG=chromium:997354
TEST=`cros_setup_toolchains --create-packages` works w/python3
Change-Id: Ia29e30053c138a66c2bbb56682c2b9d1badf81d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1960551
Reviewed-by: Michael Mortensen <mmortensen@google.com>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/cros_setup_toolchains.py b/scripts/cros_setup_toolchains.py
index f147785..7f9d4cc 100644
--- a/scripts/cros_setup_toolchains.py
+++ b/scripts/cros_setup_toolchains.py
@@ -855,9 +855,9 @@
data = f.read(20)
# Check the magic number, EI_CLASS, EI_DATA, and e_machine.
return (data[0:4] == b'\x7fELF' and
- data[4] == b'\x02' and
- data[5] == b'\x01' and
- data[18] == b'\x3e')
+ data[4:5] == b'\x02' and
+ data[5:6] == b'\x01' and
+ data[18:19] == b'\x3e')
def IsPathPackagable(ptype, path):