support/testing: add haproxy test

Based on the lighttpd test case.  Verify that we can download index.html
from haproxy in front of lighttpd.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit 211cfafa16)
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
This commit is contained in:
Peter Korsgaard
2026-08-27 18:55:32 +02:00
committed by Raphaël Mélotte
parent 4f0def9b2c
commit 7570d28d0b
3 changed files with 52 additions and 0 deletions

View File

@@ -2602,6 +2602,7 @@ F: package/triggerhappy/
F: package/wireguard-linux-compat/
F: package/wireguard-tools/
F: support/testing/tests/package/test_docker_compose.py
F: support/testing/tests/package/test_haproxy.py
F: support/testing/tests/package/test_python_hid.py
N: Peter Seiderer <ps.report@gmx.net>

View File

@@ -0,0 +1,13 @@
defaults
timeout connect 10s
timeout client 30s
timeout server 30s
frontend myfrontend
mode http
bind :81
default_backend web_servers
backend web_servers
mode http
server s1 localhost:80 check

View File

@@ -0,0 +1,38 @@
import os
import infra.basetest
class TestHaproxy(infra.basetest.BRTest):
config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
"""
BR2_ROOTFS_POST_BUILD_SCRIPT="{}"
BR2_ROOTFS_POST_SCRIPT_ARGS="{}"
BR2_PACKAGE_HAPROXY=y
BR2_PACKAGE_LIGHTTPD=y
BR2_TARGET_ROOTFS_CPIO=y
# BR2_TARGET_ROOTFS_TAR is not set
""".format(
infra.filepath("tests/package/copy-sample-script-to-target.sh"),
infra.filepath("conf/haproxy.cfg")
)
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!"
# sanity check
self.assertRunOk("haproxy -v")
self.assertRunOk("haproxy -c -f .")
# proxy to lighttpd
self.assertRunOk("haproxy -D -f .")
self.assertRunOk(f"echo '{msg}' > /var/www/index.html")
self.assertRunOk("wget http://localhost:81/index.html")
self.assertRunOk(f"grep -F '{msg}' index.html")