Files
buildroot/support/testing/tests/package/test_wget.py
Romain Naour f547af0419 support/testing: TestWget: replace thttpd by Busybox's httpd server
In order to remove thttpd package from Buildroot, we have to replace it
from TestWget.

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

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

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:18:11 +02:00

56 lines
1.9 KiB
Python

import os
import infra.basetest
class TestWget(infra.basetest.BRTest):
config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
"""
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_BUSYBOX_HTTPD=y
BR2_PACKAGE_WGET=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. This also checks we have
# the GNU wget version, rather than the BusyBox version which
# does not know the --version option.
self.assertRunOk("wget --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"wget --progress=dot {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"wget -q -O - {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"wget --no-verbose --server-response -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)