From 54ac068783fb54dc07e8e01fba46e39fe5b697ab Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Mon, 27 Oct 2025 11:01:57 +0100 Subject: [PATCH 1/5] add tests --- src/cpp/h5cpp/node/dataset.cpp | 1 + test/h5cpp_tests/node_tests/dataset_io_test.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/cpp/h5cpp/node/dataset.cpp b/src/cpp/h5cpp/node/dataset.cpp index 6e2ddf0..a0b4ad6 100644 --- a/src/cpp/h5cpp/node/dataset.cpp +++ b/src/cpp/h5cpp/node/dataset.cpp @@ -126,6 +126,7 @@ boost::python::object dataset_read(const hdf5::node::Dataset &self, Py_XINCREF(ptr); boost::python::handle<> h(ptr); + // CHECK data = boost::python::object(h); } } diff --git a/test/h5cpp_tests/node_tests/dataset_io_test.py b/test/h5cpp_tests/node_tests/dataset_io_test.py index 5c7d040..77a3e83 100644 --- a/test/h5cpp_tests/node_tests/dataset_io_test.py +++ b/test/h5cpp_tests/node_tests/dataset_io_test.py @@ -131,6 +131,21 @@ def testWriteVariableLengthUTF8Scalar(self): else: self.assertEqual(read, bdata) + def testWriteVariableLengthEmptyScalar(self): + data = u"" + bdata = b"" + dtype = h5cpp.datatype.String.variable() + # dtype.encoding = h5cpp.datatype.CharacterEncoding.UTF8 + dataset = Dataset( + self.root, h5cpp.Path("VariableLengthStringEmptyScalar"), + dtype, Scalar()) + # dataset.write(data) + read = dataset.read() + if sys.version_info > (3,): + self.assertEqual(read, data) + else: + self.assertEqual(read, bdata) + def testWriteIntegerArray(self): data = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8]]) From 6ff38fc0d0d91eab7d584a3078a90896a86d8af2 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Mon, 27 Oct 2025 11:02:39 +0100 Subject: [PATCH 2/5] add tests --- src/cpp/h5cpp/node/dataset.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/cpp/h5cpp/node/dataset.cpp b/src/cpp/h5cpp/node/dataset.cpp index a0b4ad6..6e2ddf0 100644 --- a/src/cpp/h5cpp/node/dataset.cpp +++ b/src/cpp/h5cpp/node/dataset.cpp @@ -126,7 +126,6 @@ boost::python::object dataset_read(const hdf5::node::Dataset &self, Py_XINCREF(ptr); boost::python::handle<> h(ptr); - // CHECK data = boost::python::object(h); } } From ac9a8bd96707857eb5a370f27ac68122e6a61c1a Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Mon, 27 Oct 2025 15:25:23 +0100 Subject: [PATCH 3/5] set test lto --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 574f899..a0628d2 100644 --- a/setup.py +++ b/setup.py @@ -153,7 +153,8 @@ def add_filters(filters, pkgs, pkgs_data): if sys.platform == "win32": pass else: - arguments = ['-std=c++17', '-Wall', '-Wextra', '-fdiagnostics-show-option'] + # arguments = ['-std=c++17', '-Wall', '-Wextra', '-fdiagnostics-show-option'] + arguments = ['-std=c++17', '-Wall', '-Wextra', '-fdiagnostics-show-option', '-flto=auto', '-ffat-lto-objects'] nexus_config.add_compiler_arguments(arguments) # ---------------------------------------------------------------------------- From e4faa22128f5a1d9e9e6095a7e1a0d38432658dc Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Mon, 27 Oct 2025 15:56:21 +0100 Subject: [PATCH 4/5] add -no-lto flag --- setup.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index a0628d2..d2be023 100644 --- a/setup.py +++ b/setup.py @@ -153,8 +153,12 @@ def add_filters(filters, pkgs, pkgs_data): if sys.platform == "win32": pass else: - # arguments = ['-std=c++17', '-Wall', '-Wextra', '-fdiagnostics-show-option'] - arguments = ['-std=c++17', '-Wall', '-Wextra', '-fdiagnostics-show-option', '-flto=auto', '-ffat-lto-objects'] + # arguments = ['-std=c++17', '-Wall', '-Wextra', + # '-fdiagnostics-show-option'] + # arguments = ['-std=c++17', '-Wall', '-Wextra', + # '-fdiagnostics-show-option', '-flto=auto', '-ffat-lto-objects'] + arguments = ['-std=c++17', '-Wall', '-Wextra', '-fdiagnostics-show-option', + '-fno-lto'] nexus_config.add_compiler_arguments(arguments) # ---------------------------------------------------------------------------- From 87ba3e2d120c2f1d8aa441683ac376c7a7ad7b14 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Mon, 27 Oct 2025 15:58:11 +0100 Subject: [PATCH 5/5] add comments --- setup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.py b/setup.py index d2be023..d65f70a 100644 --- a/setup.py +++ b/setup.py @@ -153,10 +153,13 @@ def add_filters(filters, pkgs, pkgs_data): if sys.platform == "win32": pass else: + # old version # arguments = ['-std=c++17', '-Wall', '-Wextra', # '-fdiagnostics-show-option'] + # lto does not work # arguments = ['-std=c++17', '-Wall', '-Wextra', # '-fdiagnostics-show-option', '-flto=auto', '-ffat-lto-objects'] + # no-lto to be on the save side arguments = ['-std=c++17', '-Wall', '-Wextra', '-fdiagnostics-show-option', '-fno-lto'] nexus_config.add_compiler_arguments(arguments)