Message ID | 20240607163208.1445715-2-raphael.melotte@mind.be |
---|---|
State | Accepted |
Headers | show |
Series | [v2,1/5] package: python-pymupdf: add missing python-zlib dependency | expand |
Hello, On Fri, 7 Jun 2024 18:32:03 +0200 Raphaël Mélotte via buildroot <buildroot@buildroot.org> wrote: > To give us a chance to catch runtime issues (such as missing > dependencies) more easily, add a test that writes a sample PDF file, > read it back and verify the text that was read. > > Like similar packages that lead to a big > rootfs (e.g. python-botocore), this test requires a separate ext2 > rootfs to avoid filling the default amount of RAM available > entirely (which would cause missing files from the root filesystem and > in turn, test failures). > > Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be> Very good idea to have a test! > +class TestPythonPy3PyMuPDF(TestPythonPackageBase): > + __test__ = True > + config = TestPythonPackageBase.config + \ > + """ > + BR2_PACKAGE_PYTHON3=y > + BR2_PACKAGE_PYTHON_PYMUPDF=y > + BR2_PACKAGE_XORG7=y In fact was not needed. > + BR2_USE_WCHAR=y > + BR2_INSTALL_LIBSTDCPP=y These two options were not relevant, our TestPythonPackageBase.config use an external toolchain by default. > + BR2_TARGET_ROOTFS_EXT2=y > + BR2_TARGET_ROOTFS_EXT2_SIZE="250M" Reduced to 120M, which was enough now that we no longer have X.org. Applied with those changes! Thomas
>>>>> "Thomas" == Thomas Petazzoni via buildroot <buildroot@buildroot.org> writes: > Hello, > On Fri, 7 Jun 2024 18:32:03 +0200 > Raphaël Mélotte via buildroot <buildroot@buildroot.org> wrote: >> To give us a chance to catch runtime issues (such as missing >> dependencies) more easily, add a test that writes a sample PDF file, >> read it back and verify the text that was read. >> >> Like similar packages that lead to a big >> rootfs (e.g. python-botocore), this test requires a separate ext2 >> rootfs to avoid filling the default amount of RAM available >> entirely (which would cause missing files from the root filesystem and >> in turn, test failures). >> >> Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be> > Very good idea to have a test! >> +class TestPythonPy3PyMuPDF(TestPythonPackageBase): >> + __test__ = True >> + config = TestPythonPackageBase.config + \ >> + """ >> + BR2_PACKAGE_PYTHON3=y >> + BR2_PACKAGE_PYTHON_PYMUPDF=y >> + BR2_PACKAGE_XORG7=y > In fact was not needed. >> + BR2_USE_WCHAR=y >> + BR2_INSTALL_LIBSTDCPP=y > These two options were not relevant, our TestPythonPackageBase.config > use an external toolchain by default. >> + BR2_TARGET_ROOTFS_EXT2=y >> + BR2_TARGET_ROOTFS_EXT2_SIZE="250M" > Reduced to 120M, which was enough now that we no longer have X.org. > Applied with those changes! Committed to 2024.02.x and 2024.05.x, thanks.
diff --git a/DEVELOPERS b/DEVELOPERS index 03aa7bfa74..e4c3920ce2 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2667,9 +2667,11 @@ F: package/python-pymupdf/ F: package/python-rsa/ F: package/python-s3transfer/ F: support/testing/tests/package/sample_python_jmespath.py +F: support/testing/tests/package/sample_python_pymupdf.py F: support/testing/tests/package/sample_python_rsa.py F: support/testing/tests/package/sample_python_s3transfer.py F: support/testing/tests/package/test_python_jmespath.py +F: support/testing/tests/package/test_python_pymupdf.py F: support/testing/tests/package/test_python_rsa.py F: support/testing/tests/package/test_python_s3transfer.py diff --git a/support/testing/tests/package/sample_python_pymupdf.py b/support/testing/tests/package/sample_python_pymupdf.py new file mode 100644 index 0000000000..574bd27965 --- /dev/null +++ b/support/testing/tests/package/sample_python_pymupdf.py @@ -0,0 +1,17 @@ +import fitz + +# Write a test PDF file +outfile = "python-pymupdf.pdf" +sample_text = "This is a test page for python-pymupdf." +doc = fitz.open() +page = doc.new_page() +p = fitz.Point(50, 72) +page.insert_text(p, sample_text) +doc.save(outfile) + +# Read back the file +with fitz.open(outfile) as d: # open document + read_text = chr(12).join([page.get_text() for page in d]) + +print(read_text) +assert(read_text == sample_text + "\n") diff --git a/support/testing/tests/package/test_python_pymupdf.py b/support/testing/tests/package/test_python_pymupdf.py new file mode 100644 index 0000000000..5e9d5a6912 --- /dev/null +++ b/support/testing/tests/package/test_python_pymupdf.py @@ -0,0 +1,26 @@ +import os +from tests.package.test_python import TestPythonPackageBase + + +class TestPythonPy3PyMuPDF(TestPythonPackageBase): + __test__ = True + config = TestPythonPackageBase.config + \ + """ + BR2_PACKAGE_PYTHON3=y + BR2_PACKAGE_PYTHON_PYMUPDF=y + BR2_PACKAGE_XORG7=y + BR2_USE_WCHAR=y + BR2_INSTALL_LIBSTDCPP=y + BR2_TARGET_ROOTFS_EXT2=y + BR2_TARGET_ROOTFS_EXT2_SIZE="250M" + """ + sample_scripts = ["tests/package/sample_python_pymupdf.py"] + timeout = 30 + + def login(self): + ext2_file = os.path.join(self.builddir, "images", "rootfs.ext2") + self.emulator.boot(arch="armv5", + kernel="builtin", + options=["-drive", "file=%s,if=scsi,format=raw" % ext2_file], + kernel_cmdline=["rootwait", "root=/dev/sda"]) + self.emulator.login()
To give us a chance to catch runtime issues (such as missing dependencies) more easily, add a test that writes a sample PDF file, read it back and verify the text that was read. Like similar packages that lead to a big rootfs (e.g. python-botocore), this test requires a separate ext2 rootfs to avoid filling the default amount of RAM available entirely (which would cause missing files from the root filesystem and in turn, test failures). Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be> --- DEVELOPERS | 2 ++ .../tests/package/sample_python_pymupdf.py | 17 ++++++++++++ .../tests/package/test_python_pymupdf.py | 26 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 support/testing/tests/package/sample_python_pymupdf.py create mode 100644 support/testing/tests/package/test_python_pymupdf.py