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
This commit is contained in:
Daniel Engberg 2023-01-13 10:11:10 +02:00 committed by Matthias Fechner
parent e36f5b597d
commit bc220a9f11
2 changed files with 122 additions and 10 deletions

View File

@ -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>

View File

@ -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)