Files
rpi-buildroot/support/testing/tests/package/test_libcurl.py
Romain Naour 02f652cf16 support/testing: TestLibCurl: replace thttpd by Busybox's httpd server
In order to remove thttpd package from Buildroot, we have to replace it
from TestLibCurl.

Busybox's httpd server doesn't report server identification, update
TestLibCurl accordingly.

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/11042294712

Cc: Julien Olivain <ju.o@free.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
(cherry picked from commit 667871b06d)
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
2025-09-04 13:57:24 +02:00

54 lines
1.8 KiB
Python

import os
import infra.basetest
class TestLibCurl(infra.basetest.BRTest):
config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
"""
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_BUSYBOX_HTTPD=y
BR2_TARGET_ROOTFS_CPIO=y
# BR2_TARGET_ROOTFS_TAR is not set
"""
def test_run(self):
cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio")
self.emulator.boot(arch="armv5",
kernel="builtin",
options=["-initrd", cpio_file])
self.emulator.login()
msg = "Hello Buildroot!"
fname = "file.txt"
url = f"http://localhost/{fname}"
# We check the program can execute.
self.assertRunOk("curl --version")
# We create a simple file to serve.
self.assertRunOk(f"echo '{msg}' > /var/www/data/{fname}")
# We try to download that file, using our local httpd server.
self.assertRunOk(f"curl -o {fname} {url}")
# We check the downloaded file contains our initial message.
out, ret = self.emulator.run(f"cat {fname}")
self.assertEqual(ret, 0)
self.assertEqual(out[0], msg)
# We download again the file without saving it, but printing
# it on stdout this time.
out, ret = self.emulator.run(f"curl -q {url}")
self.assertEqual(ret, 0)
self.assertEqual(out[0], msg)
# We download one last time, showing the server response. We
# check we can see the OK status.
cmd = f"curl --no-progress-meter --dump-header - -o /dev/null {url}"
out, ret = self.emulator.run(cmd)
self.assertEqual(ret, 0)
out_str = "\n".join(out)
self.assertIn("HTTP/1.1 200 OK", out_str)