From: Petr Viktorin <pviktori@xxxxxxxxxx> Signed-off-by: Petr Viktorin <pviktori@xxxxxxxxxx> --- pylibfdt/libfdt.i | 4 ++++ tests/pylibfdt_tests.py | 12 +++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i index 9c0dcdc..da8d56b 100644 --- a/pylibfdt/libfdt.i +++ b/pylibfdt/libfdt.i @@ -759,6 +759,10 @@ typedef uint32_t fdt32_t; /* typemap used for fdt_setprop() */ %typemap(in) (const void *val) { %#if PY_VERSION_HEX >= 0x03000000 + if (!PyBytes_Check($input)) { + SWIG_exception_fail(SWIG_TypeError, "bytes expected in method '" "$symname" + "', argument " "$argnum"" of type '" "$type""'"); + } $1 = PyBytes_AsString($input); %#else $1 = PyString_AsString($input); /* char *str */ diff --git a/tests/pylibfdt_tests.py b/tests/pylibfdt_tests.py index e1204f8..348cb09 100644 --- a/tests/pylibfdt_tests.py +++ b/tests/pylibfdt_tests.py @@ -67,6 +67,8 @@ TEST_VALUE64_1H = 0xdeadbeef TEST_VALUE64_1L = 0x01abcdef TEST_VALUE64_1 = (TEST_VALUE64_1H << 32) | TEST_VALUE64_1L +TEST_BYTES_1 = b'hello world' + TEST_STRING_1 = 'hello world' TEST_STRING_2 = 'hi world' try: @@ -413,21 +415,21 @@ class PyLibfdtTests(unittest.TestCase): def testSetProp(self): """Test that we can update and create properties""" node = self.fdt.path_offset('/subnode@1') - self.fdt.setprop(node, 'compatible', TEST_STRING_1) - self.assertEquals(TEST_STRING_1, self.fdt.getprop(node, 'compatible')) + self.fdt.setprop(node, 'compatible', TEST_BYTES_1) + self.assertEquals(TEST_BYTES_1, self.fdt.getprop(node, 'compatible')) # Check that this property is missing, and that we don't have space to # add it self.assertEquals(-libfdt.NOTFOUND, self.fdt.getprop(node, 'missing', QUIET_NOTFOUND)) self.assertEquals(-libfdt.NOSPACE, - self.fdt.setprop(node, 'missing', TEST_STRING_1, + self.fdt.setprop(node, 'missing', TEST_BYTES_1, quiet=(libfdt.NOSPACE,))) # Expand the device tree so we now have room self.fdt.resize(self.fdt.totalsize() + 50) - self.fdt.setprop(node, 'missing', TEST_STRING_1) - self.assertEquals(TEST_STRING_1, self.fdt.getprop(node, 'missing')) + self.fdt.setprop(node, 'missing', TEST_BYTES_1) + self.assertEquals(TEST_BYTES_1, self.fdt.getprop(node, 'missing')) def testSetPropU32(self): """Test that we can update and create integer properties""" -- 2.17.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html