git: bc220a9f1148 - main - devel/libgit2: only build test suite when we request it and adjust tests

From: Matthias Fechner <mfechner_at_FreeBSD.org>
Date: Fri, 13 Jan 2023 08:13:43 UTC
The branch main has been updated by mfechner:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bc220a9f11481453f1f9b3864dcadc2c37b8eca8

commit bc220a9f11481453f1f9b3864dcadc2c37b8eca8
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2023-01-13 08:11:10 +0000
Commit:     Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2023-01-13 08:13:08 +0000

    devel/libgit2: only build test suite when we request it and adjust tests
    
    There's still one failure that seems to be occurring if you're running as
    root [1] and I'm unable to work out where and/or if upstream ever fixed this test.
    
    References:
    https://github.com/archlinux/svntogit-packages/blob/packages/libgit2/trunk/PKGBUILD
    1: https://github.com/libgit2/libgit2/issues/6307
    
    PR:             268572
---
 devel/libgit2/Makefile                             |  16 ++-
 .../files/patch-tests_libgit2_network_url_parse.c  | 116 +++++++++++++++++++++
 2 files changed, 122 insertions(+), 10 deletions(-)

diff --git a/devel/libgit2/Makefile b/devel/libgit2/Makefile
index c757c815352b..4537569b02e7 100644
--- a/devel/libgit2/Makefile
+++ b/devel/libgit2/Makefile
@@ -17,12 +17,15 @@ LICENSE=	GPLv2
 LIB_DEPENDS=	libpcre2-8.so:devel/pcre2 \
 		libhttp_parser.so:www/http-parser
 
-USES=		cmake cpe pkgconfig python:build ssl
+USES=		cmake:testing cpe pkgconfig python:build ssl
 USE_GITHUB=	yes
 USE_LDCONFIG=	yes
 
-CMAKE_ARGS=	-DREGEX_BACKEND=pcre2 -DUSE_HTTP_PARSER=system
-CMAKE_OFF=	BUILD_CLAR
+CMAKE_TESTING_ON=	BUILD_TESTS
+
+CMAKE_ARGS=	-DREGEX_BACKEND=pcre2 -DUSE_HTTP_PARSER=system \
+		-DCMAKE_CTEST_ARGUMENTS="-E;'invasive|online'"
+CMAKE_OFF=	BUILD_TESTS
 
 PLIST_SUB=	DISTVERSION=${DISTVERSION} \
 		SHLIB_VER=${DISTVERSION:R}
@@ -43,11 +46,4 @@ post-patch:
 		${WRKSRC}/cmake/SelectHTTPSBackend.cmake
 .endif
 
-do-test:
-	@cd ${BUILD_WRKSRC} && \
-		${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \
-		-DBUILD_CLAR=ON ${CMAKE_SOURCE_PATH} && \
-		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
-		${SETENV} ${MAKE_ENV} CTEST_OUTPUT_ON_FAILURE=1 ${MAKE_CMD} ${MAKE_ARGS} test
-
 .include <bsd.port.post.mk>
diff --git a/devel/libgit2/files/patch-tests_libgit2_network_url_parse.c b/devel/libgit2/files/patch-tests_libgit2_network_url_parse.c
new file mode 100644
index 000000000000..1e7cea713eb0
--- /dev/null
+++ b/devel/libgit2/files/patch-tests_libgit2_network_url_parse.c
@@ -0,0 +1,116 @@
+--- tests/libgit2/network/url/parse.c.orig	2022-07-14 00:06:59 UTC
++++ tests/libgit2/network/url/parse.c
+@@ -63,18 +63,6 @@ void test_network_url_parse__hostname_implied_root_cus
+ 	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
+ }
+ 
+-void test_network_url_parse__hostname_implied_root_empty_port(void)
+-{
+-	cl_git_pass(git_net_url_parse(&conndata, "http://example.com:"));
+-	cl_assert_equal_s(conndata.scheme, "http");
+-	cl_assert_equal_s(conndata.host, "example.com");
+-	cl_assert_equal_s(conndata.port, "80");
+-	cl_assert_equal_s(conndata.path, "/");
+-	cl_assert_equal_p(conndata.username, NULL);
+-	cl_assert_equal_p(conndata.password, NULL);
+-	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
+-}
+-
+ void test_network_url_parse__hostname_encoded_password(void)
+ {
+ 	cl_git_pass(git_net_url_parse(&conndata,
+@@ -129,18 +117,6 @@ void test_network_url_parse__hostname_port(void)
+ 	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
+ }
+ 
+-void test_network_url_parse__hostname_empty_port(void)
+-{
+-	cl_git_pass(git_net_url_parse(&conndata, "http://example.com:/resource"));
+-	cl_assert_equal_s(conndata.scheme, "http");
+-	cl_assert_equal_s(conndata.host, "example.com");
+-	cl_assert_equal_s(conndata.port, "80");
+-	cl_assert_equal_s(conndata.path, "/resource");
+-	cl_assert_equal_p(conndata.username, NULL);
+-	cl_assert_equal_p(conndata.password, NULL);
+-	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
+-}
+-
+ void test_network_url_parse__hostname_user_port(void)
+ {
+ 	/* user@hostname.tld:port/resource */
+@@ -219,18 +195,6 @@ void test_network_url_parse__ipv4_implied_root_custom_
+ 	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
+ }
+ 
+-void test_network_url_parse__ipv4_implied_root_empty_port(void)
+-{
+-	cl_git_pass(git_net_url_parse(&conndata, "http://192.168.1.1:"));
+-	cl_assert_equal_s(conndata.scheme, "http");
+-	cl_assert_equal_s(conndata.host, "192.168.1.1");
+-	cl_assert_equal_s(conndata.port, "80");
+-	cl_assert_equal_s(conndata.path, "/");
+-	cl_assert_equal_p(conndata.username, NULL);
+-	cl_assert_equal_p(conndata.password, NULL);
+-	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
+-}
+-
+ void test_network_url_parse__ipv4_encoded_password(void)
+ {
+ 	cl_git_pass(git_net_url_parse(&conndata,
+@@ -283,18 +247,6 @@ void test_network_url_parse__ipv4_port(void)
+ 	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
+ }
+ 
+-void test_network_url_parse__ipv4_empty_port(void)
+-{
+-	cl_git_pass(git_net_url_parse(&conndata, "http://192.168.1.1:/resource"));
+-	cl_assert_equal_s(conndata.scheme, "http");
+-	cl_assert_equal_s(conndata.host, "192.168.1.1");
+-	cl_assert_equal_s(conndata.port, "80");
+-	cl_assert_equal_s(conndata.path, "/resource");
+-	cl_assert_equal_p(conndata.username, NULL);
+-	cl_assert_equal_p(conndata.password, NULL);
+-	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
+-}
+-
+ void test_network_url_parse__ipv4_user_port(void)
+ {
+ 	cl_git_pass(git_net_url_parse(&conndata,
+@@ -371,18 +323,6 @@ void test_network_url_parse__ipv6_implied_root_custom_
+ 	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
+ }
+ 
+-void test_network_url_parse__ipv6_implied_root_empty_port(void)
+-{
+-	cl_git_pass(git_net_url_parse(&conndata, "http://[fe80::dcad:beff:fe00:0001]:"));
+-	cl_assert_equal_s(conndata.scheme, "http");
+-	cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
+-	cl_assert_equal_s(conndata.port, "80");
+-	cl_assert_equal_s(conndata.path, "/");
+-	cl_assert_equal_p(conndata.username, NULL);
+-	cl_assert_equal_p(conndata.password, NULL);
+-	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
+-}
+-
+ void test_network_url_parse__ipv6_encoded_password(void)
+ {
+ 	cl_git_pass(git_net_url_parse(&conndata,
+@@ -433,18 +373,6 @@ void test_network_url_parse__ipv6_port(void)
+ 	cl_assert_equal_p(conndata.username, NULL);
+ 	cl_assert_equal_p(conndata.password, NULL);
+ 	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
+-}
+-
+-void test_network_url_parse__ipv6_empty_port(void)
+-{
+-	cl_git_pass(git_net_url_parse(&conndata, "http://[fe80::dcad:beff:fe00:0001]:/resource"));
+-	cl_assert_equal_s(conndata.scheme, "http");
+-	cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
+-	cl_assert_equal_s(conndata.port, "80");
+-	cl_assert_equal_s(conndata.path, "/resource");
+-	cl_assert_equal_p(conndata.username, NULL);
+-	cl_assert_equal_p(conndata.password, NULL);
+-	cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
+ }
+ 
+ void test_network_url_parse__ipv6_user_port(void)