Files
Romain Naour 667871b06d 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>
2025-08-29 12:19:07 +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)