commit:     37bd728a1a437e1899c63aa3867fd250a4e130de
Author:     Matoro Mahri <matoro_gentoo <AT> matoro <DOT> tk>
AuthorDate: Sat Jan 20 05:49:16 2024 +0000
Commit:     Christian Ruppert <idl0r <AT> gentoo <DOT> org>
CommitDate: Sat Jan 20 08:08:41 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=37bd728a

net-proxy/haproxy: wire up tests

Painstakingly tested on every version in tree including lives.  Should
be completely identical across all versions - if there are any
differences it is a mistake.

Bug: https://bugs.gentoo.org/900737
Signed-off-by: Matoro Mahri <matoro_gentoo <AT> matoro.tk>
Closes: https://github.com/gentoo/gentoo/pull/34914
Signed-off-by: Christian Ruppert <idl0r <AT> gentoo.org>

 net-proxy/haproxy/Manifest                |  1 +
 net-proxy/haproxy/haproxy-2.4.23.ebuild   | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.4.25.ebuild   | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.4.9999.ebuild | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.6.14.ebuild   | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.6.16.ebuild   | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.6.9999.ebuild | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.7.11.ebuild   | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.7.9.ebuild    | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.7.9999.ebuild | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.8.4.ebuild    | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.8.5.ebuild    | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.8.9999.ebuild | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.9.2.ebuild    | 36 +++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-2.9.9999.ebuild | 38 +++++++++++++++++++++++++++----
 net-proxy/haproxy/haproxy-9999.ebuild     | 38 +++++++++++++++++++++++++++----
 16 files changed, 495 insertions(+), 74 deletions(-)

diff --git a/net-proxy/haproxy/Manifest b/net-proxy/haproxy/Manifest
index 3214cb4e51f4..bbf0f3c5176d 100644
--- a/net-proxy/haproxy/Manifest
+++ b/net-proxy/haproxy/Manifest
@@ -1,3 +1,4 @@
+DIST VTest-af198470d7ce482d3d26eb9ca3f246a438739366.tar.gz 196700 BLAKE2B 
d740e19104a91b4cf978596ccda861974e96c9ed85a49c91e996c5bc6dde40f1cdcf49e6a75243aba7bf59abfd8d2c051a7ee574bab22f9e512d74376c9e1738
 SHA512 
cdc62271bb75ef7032745a457e1a54a84bcaadce73324272462b647383177338c5c2c8a17993d6344840e8ce0308a7e6f0df9bb766ebe0e8d4ee6dd4914e188c
 DIST haproxy-2.4.23.tar.gz 3652465 BLAKE2B 
271fd166365f5589653b6651d30306689e99710c27964e70a126469c3b9b616af2923be2276fc8c87362303388ee2bf28e80ca8bfa02dc45bc0e2d931e33e685
 SHA512 
d40203f9bf4f4a76dce09d0b1c785060d545dd8b7907b752d7fec9b12d7e2e4c2c7aca915d72c79e19040a75bd7d338c0783f9897cf1a46bdb047e336a0aa227
 DIST haproxy-2.4.25.tar.gz 3664305 BLAKE2B 
b02eca0ef2719fad33c8db65b6568706cff3af9b19e2e0656970986b59116c054972341b5efd010907adb8d664fe1f72dd29feeab6a7b8bb9508e65c3bed9076
 SHA512 
bffe50c4155f28743fc4368e08f5912d137ac8fcad2bea70b9fb171be6a1c46c82e24059634add0b42a1d8da7d6fc76bf5287ffa8d4d530d46dbe522ad51a9e1
 DIST haproxy-2.6.14.tar.gz 4067797 BLAKE2B 
20439faeca2c3e789542cf34d988f4de2ef643e7dd1214cad4cb2d70e39b047f32bd180cd8c410a4f7b17f7ed891938bf1b18e21d20bb41eef603ae99619810d
 SHA512 
5acfaffba8df65d4dbbc57cdb61fd4a9e415214ee2dc8dabc3877da5501c46f4abe64a4512999ebd391e03d38f8ed146fe8a6a5deb90197c5255325f8749a601

diff --git a/net-proxy/haproxy/haproxy-2.4.23.ebuild 
b/net-proxy/haproxy/haproxy-2.4.23.ebuild
index 796d22deb9a8..2f32d219b374 100644
--- a/net-proxy/haproxy/haproxy-2.4.23.ebuild
+++ b/net-proxy/haproxy/haproxy-2.4.23.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="amd64 arm ~arm64 ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.4.25.ebuild 
b/net-proxy/haproxy/haproxy-2.4.25.ebuild
index 291a00595e4a..7f97bd0b755f 100644
--- a/net-proxy/haproxy/haproxy-2.4.25.ebuild
+++ b/net-proxy/haproxy/haproxy-2.4.25.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.4.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.4.9999.ebuild
index 291a00595e4a..7f97bd0b755f 100644
--- a/net-proxy/haproxy/haproxy-2.4.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.4.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.6.14.ebuild 
b/net-proxy/haproxy/haproxy-2.6.14.ebuild
index 868b7118dca3..8ed0928f89ae 100644
--- a/net-proxy/haproxy/haproxy-2.6.14.ebuild
+++ b/net-proxy/haproxy/haproxy-2.6.14.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="amd64 ~arm ~arm64 ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.6.16.ebuild 
b/net-proxy/haproxy/haproxy-2.6.16.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.6.16.ebuild
+++ b/net-proxy/haproxy/haproxy-2.6.16.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.6.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.6.9999.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.6.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.6.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.7.11.ebuild 
b/net-proxy/haproxy/haproxy-2.7.11.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.7.11.ebuild
+++ b/net-proxy/haproxy/haproxy-2.7.11.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.7.9.ebuild 
b/net-proxy/haproxy/haproxy-2.7.9.ebuild
index 868b7118dca3..8ed0928f89ae 100644
--- a/net-proxy/haproxy/haproxy-2.7.9.ebuild
+++ b/net-proxy/haproxy/haproxy-2.7.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="amd64 ~arm ~arm64 ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.7.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.7.9999.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.7.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.7.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.8.4.ebuild 
b/net-proxy/haproxy/haproxy-2.8.4.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.8.4.ebuild
+++ b/net-proxy/haproxy/haproxy-2.8.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.8.5.ebuild 
b/net-proxy/haproxy/haproxy-2.8.5.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.8.5.ebuild
+++ b/net-proxy/haproxy/haproxy-2.8.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.8.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.8.9999.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.8.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.8.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.9.2.ebuild 
b/net-proxy/haproxy/haproxy-2.9.2.ebuild
index 0e327b9a216e..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.9.2.ebuild
+++ b/net-proxy/haproxy/haproxy-2.9.2.ebuild
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-2.9.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.9.9999.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-2.9.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.9.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 

diff --git a/net-proxy/haproxy/haproxy-9999.ebuild 
b/net-proxy/haproxy/haproxy-9999.ebuild
index 843fa7ff2a33..e34d28a9f9c3 100644
--- a/net-proxy/haproxy/haproxy-9999.ebuild
+++ b/net-proxy/haproxy/haproxy-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -6,19 +6,25 @@ EAPI="7"
 LUA_COMPAT=( lua5-4 lua5-3 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3"
-inherit toolchain-funcs lua-single systemd linux-info ${SCM}
+inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing
 
 MY_P="${PN}-${PV/_beta/-dev}"
 
 DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
 HOMEPAGE="http://www.haproxy.org";
 if [[ ${PV} != *9999 ]]; then
-       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz"
+       # This is arbitrary; upstream uses master.  Try to update when possible
+       VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366"
+       VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}"
+       SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 
1-2)/src/${MY_P}.tar.gz
+                       test? ( 
https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> 
VTest-${VTEST_COMMIT}.tar.gz )"
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
 elif [[ ${PV} == 9999 ]]; then
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/";
        EGIT_BRANCH=master
 else
+       VTEST_DIR="${WORKDIR}/VTest"
        EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
        EGIT_BRANCH=master
 fi
@@ -26,10 +32,11 @@ fi
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0/$(ver_cut 1-2)"
 IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter
-ssl systemd +threads tools zlib lua 51degrees wurfl"
+ssl systemd test +threads tools zlib lua 51degrees wurfl"
 REQUIRED_USE="pcre-jit? ( pcre )
        lua? ( ${LUA_REQUIRED_USE} )
        ?? ( slz zlib )"
+RESTRICT="!test? ( test )"
 
 BDEPEND="virtual/pkgconfig"
 DEPEND="
@@ -43,7 +50,11 @@ DEPEND="
        )
        systemd? ( sys-apps/systemd )
        zlib? ( sys-libs/zlib )
-       lua? ( ${LUA_DEPS} )"
+       lua? ( ${LUA_DEPS} )
+       test? (
+               dev-libs/libpcre2
+               sys-libs/zlib
+       )"
 RDEPEND="${DEPEND}
        acct-group/haproxy
        acct-user/haproxy"
@@ -67,6 +78,15 @@ pkg_setup() {
        fi
 }
 
+src_unpack() {
+       if [[ ${PV} != *9999 ]]; then
+               default
+       else
+               git-r3_src_unpack
+               EGIT_REPO_URI="https://github.com/vtest/VTest"; 
EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack
+       fi
+}
+
 src_compile() {
        local -a args=(
                V=1
@@ -128,6 +148,14 @@ src_compile() {
        fi
 }
 
+src_test() {
+       # https://github.com/vtest/VTest/issues/12
+       emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} 
-Wno-error=unused-result"
+       ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 
for tests"
+       env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j 
"$(makeopts_jobs)" \
+               HAPROXY_PROGRAM="${S}/haproxy" 
VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel"
+}
+
 src_install() {
        dosbin haproxy
 


Reply via email to