Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

On elderly macOS High Sierra, version 10.13.6 or Darwin 17.7.0, tests fail due to pointer mismatch #13

Open
ballapete opened this issue Nov 1, 2024 · 7 comments

Comments

@ballapete
Copy link

The module builds and installs fine, but tests fail (performing them inside the MacPorts package manager, port):

time port -vs test p5.34-fcgi p5.38-fcgi
---> Computing dependencies for p5.34-fcgi.
---> Fetching distfiles for p5.34-fcgi
---> Verifying checksums for p5.34-fcgi
---> Checksumming FCGI-0.82.tar.gz
---> Extracting p5.34-fcgi
---> Extracting FCGI-0.82.tar.gz
Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/perl5/FCGI-0.82.tar.gz' | /usr/bin/tar -xf -
---> Configuring p5.34-fcgi
Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82" && /opt/local/bin/perl5.34 Makefile.PL INSTALLDIRS=vendor CC="/usr/bin/clang" LD="/usr/bin/clang"
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for FCGI
Writing MYMETA.yml and MYMETA.json
Running ./configure for you
Please read configure.readme for information on how to run it yourself
checking for gcc... /usr/bin/cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether /usr/bin/cc accepts -g... yes
checking for /usr/bin/cc option to enable C11 features... none needed
checking how to run the C preprocessor... /usr/bin/cc -E
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for grep that handles long lines and -e... /opt/local/bin/ggrep
checking for egrep... /opt/local/bin/ggrep -E
checking for ssize_t... yes
checking for sun_len in sys/un.h... yes
checking for fpos_t in stdio.h... yes
checking for sys/socket.h... yes
checking for netdb.h... yes
checking for netinet/in.h... yes
checking for arpa/inet.h... yes
checking for sys/time.h... yes
checking for limits.h... yes
checking for sys/param.h... yes
checking for unistd.h... (cached) yes
checking for a fileno() prototype in stdio.h... yes
checking whether cross-process locking is required by accept()... no
checking whether va_arg(arg, long double) crashes the compiler... no
checking for an ANSI C-conforming const... yes
configure: creating ./config.status
config.status: creating fcgi_config.h
Fixing flags in Makefile
---> Patching Makefile: /^CCFLAGS *=/s|$| -isysroot/|
---> Patching Makefile: /^OTHERLDFLAGS *=/s|$| -Wl,-syslibroot,/|
---> Patching Makefile: s|^(CC =).|\1 /usr/bin/clang|
---> Building p5.34-fcgi
Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82" && /usr/bin/make -j8 -w all
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82'
"/opt/local/bin/perl5.34" "/opt/local/lib/perl5/5.34/ExtUtils/xsubpp" -typemap '/opt/local/lib/perl5/5.34/ExtUtils/typemap' -typemap '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82/typemap' FCGI.xs > FCGI.xsc
Running Mkbootstrap for FCGI ()
/usr/bin/clang -c -I. -fno-common -DPERL_DARWIN -pipe -Os -fno-strict-aliasing -fstack-protector-strong -I/opt/local/include -DPERL_USE_SAFE_PUTENV -isysroot/ -O3 -DVERSION="0.82" -DXS_VERSION="0.82" "-I/opt/local/lib/perl5/5.34/darwin-thread-multi-2level/CORE" fcgiapp.c
/usr/bin/clang -c -I. -fno-common -DPERL_DARWIN -pipe -Os -fno-strict-aliasing -fstack-protector-strong -I/opt/local/include -DPERL_USE_SAFE_PUTENV -isysroot/ -O3 -DVERSION="0.82" -DXS_VERSION="0.82" "-I/opt/local/lib/perl5/5.34/darwin-thread-multi-2level/CORE" os_unix.c
chmod 644 "FCGI.bs"
"/opt/local/bin/perl5.34" -MExtUtils::Command::MM -e 'cp_nonempty' -- FCGI.bs blib/arch/auto/FCGI/FCGI.bs 644
cp FCGI.pm blib/arch/FCGI.pm
os_unix.c:1173:70: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
socket = accept(listen_sock, (struct sockaddr *)&sa, &len);
^~~~
/usr/include/sys/socket.h:681:69: note: passing argument to parameter here
int accept(int, struct sockaddr * __restrict, socklen_t * __restrict)
^
os_unix.c:1273:51: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
if (getpeername(sock, (struct sockaddr *)&sa, &len) != 0 && errno == ENOTCONN) {
^~~~
/usr/include/sys/socket.h:685:74: note: passing argument to parameter here
int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict)
^
mv FCGI.xsc FCGI.c
/usr/bin/clang -c -I. -fno-common -DPERL_DARWIN -pipe -Os -fno-strict-aliasing -fstack-protector-strong -I/opt/local/include -DPERL_USE_SAFE_PUTENV -isysroot/ -O3 -DVERSION="0.82" -DXS_VERSION="0.82" "-I/opt/local/lib/perl5/5.34/darwin-thread-multi-2level/CORE" FCGI.c
2 warnings generated.
FCGI.xs:187:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
if (was_bound = request->bound)

FCGI.xs:187:19: note: place parentheses around the assignment to silence this warning
if (was_bound = request->bound)
^
( )
FCGI.xs:187:19: note: use '==' to turn this assignment into an equality comparison
if (was_bound = request->bound)
^
==
1 warning generated.
rm -f blib/arch/auto/FCGI/FCGI.bundle
/usr/bin/clang -bundle -undefined dynamic_lookup -L/opt/local/lib -Wl,-headerpad_max_install_names -fstack-protector-strong FCGI.o fcgiapp.o os_unix.o -Wl,-syslibroot,/ -o blib/arch/auto/FCGI/FCGI.bundle
\

chmod 755 blib/arch/auto/FCGI/FCGI.bundle
Manifying 1 pod document
make: Leaving directory /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82' --->  Staging p5.34-fcgi into destroot ./usr missing (created) . missing (directory not created: File exists) ./Applications missing (created) ./Developer missing (created) ./Library missing (created) ./bin missing (created) ./etc missing (created) ./include missing (created) ./lib missing (created) ./lib/pkgconfig missing (created) ./libexec missing (created) ./sbin missing (created) ./share missing (created) ./share/doc missing (created) ./share/info missing (created) ./share/man missing (created) ./share/man/cat1 missing (created) ./share/man/cat2 missing (created) ./share/man/cat3 missing (created) ./share/man/cat4 missing (created) ./share/man/cat5 missing (created) ./share/man/cat6 missing (created) ./share/man/cat7 missing (created) ./share/man/cat8 missing (created) ./share/man/cat9 missing (created) ./share/man/catl missing (created) ./share/man/catn missing (created) ./share/man/man1 missing (created) ./share/man/man2 missing (created) ./share/man/man3 missing (created) ./share/man/man4 missing (created) ./share/man/man5 missing (created) ./share/man/man6 missing (created) ./share/man/man7 missing (created) ./share/man/man8 missing (created) ./share/man/man9 missing (created) ./share/man/manl missing (created) ./share/man/mann missing (created) ./share/nls missing (created) ./share/nls/C missing (created) ./share/nls/af_ZA.ISO8859-1 missing (created) ./share/nls/af_ZA.ISO8859-15 missing (created) ./share/nls/bg_BG.CP1251 missing (created) ./share/nls/cs_CZ.ISO8859-2 missing (created) ./share/nls/da_DK.ISO8859-1 missing (created) ./share/nls/da_DK.ISO8859-15 missing (created) ./share/nls/de_AT.ISO8859-1 missing (created) ./share/nls/de_AT.ISO8859-15 missing (created) ./share/nls/de_CH.ISO8859-1 missing (created) ./share/nls/de_CH.ISO8859-15 missing (created) ./share/nls/de_DE.ISO8859-1 missing (created) ./share/nls/de_DE.ISO8859-15 missing (created) ./share/nls/el_GR.ISO8859-7 missing (created) ./share/nls/en_AU.ISO8859-1 missing (created) ./share/nls/en_AU.ISO8859-15 missing (created) ./share/nls/en_AU.US-ASCII missing (created) ./share/nls/en_CA.ISO8859-1 missing (created) ./share/nls/en_CA.ISO8859-15 missing (created) ./share/nls/en_CA.US-ASCII missing (created) ./share/nls/en_GB.ISO8859-1 missing (created) ./share/nls/en_GB.ISO8859-15 missing (created) ./share/nls/en_GB.US-ASCII missing (created) ./share/nls/en_NZ.ISO8859-1 missing (created) ./share/nls/en_NZ.ISO8859-15 missing (created) ./share/nls/en_NZ.US-ASCII missing (created) ./share/nls/en_US.ISO8859-1 missing (created) ./share/nls/en_US.ISO8859-15 missing (created) ./share/nls/es_ES.ISO8859-1 missing (created) ./share/nls/es_ES.ISO8859-15 missing (created) ./share/nls/et_EE.ISO8859-15 missing (created) ./share/nls/fi_FI.ISO8859-1 missing (created) ./share/nls/fi_FI.ISO8859-15 missing (created) ./share/nls/fr_BE.ISO8859-1 missing (created) ./share/nls/fr_BE.ISO8859-15 missing (created) ./share/nls/fr_CA.ISO8859-1 missing (created) ./share/nls/fr_CA.ISO8859-15 missing (created) ./share/nls/fr_CH.ISO8859-1 missing (created) ./share/nls/fr_CH.ISO8859-15 missing (created) ./share/nls/fr_FR.ISO8859-1 missing (created) ./share/nls/fr_FR.ISO8859-15 missing (created) ./share/nls/hi_IN.ISCII-DEV missing (created) ./share/nls/hr_HR.ISO8859-2 missing (created) ./share/nls/hu_HU.ISO8859-2 missing (created) ./share/nls/is_IS.ISO8859-1 missing (created) ./share/nls/is_IS.ISO8859-15 missing (created) ./share/nls/it_CH.ISO8859-1 missing (created) ./share/nls/it_CH.ISO8859-15 missing (created) ./share/nls/it_IT.ISO8859-1 missing (created) ./share/nls/it_IT.ISO8859-15 missing (created) ./share/nls/ja_JP.SJIS missing (created) ./share/nls/ja_JP.eucJP missing (created) ./share/nls/ko_KR.eucKR missing (created) ./share/nls/la_LN.ISO8859-1 missing (created) ./share/nls/la_LN.ISO8859-15 missing (created) ./share/nls/la_LN.ISO8859-2 missing (created) ./share/nls/la_LN.ISO8859-4 missing (created) ./share/nls/la_LN.US-ASCII missing (created) ./share/nls/lt_LT.ISO8859-4 missing (created) ./share/nls/nl_BE.ISO8859-1 missing (created) ./share/nls/nl_BE.ISO8859-15 missing (created) ./share/nls/nl_NL.ISO8859-1 missing (created) ./share/nls/nl_NL.ISO8859-15 missing (created) ./share/nls/no_NO.ISO8859-1 missing (created) ./share/nls/no_NO.ISO8859-15 missing (created) ./share/nls/pl_PL.ISO8859-2 missing (created) ./share/nls/pt_BR.ISO8859-1 missing (created) ./share/nls/pt_PT.ISO8859-1 missing (created) ./share/nls/pt_PT.ISO8859-15 missing (created) ./share/nls/ro_RO.ISO8859-2 missing (created) ./share/nls/ru_RU.CP866 missing (created) ./share/nls/ru_RU.ISO8859-5 missing (created) ./share/nls/ru_RU.KOI8-R missing (created) ./share/nls/sk_SK.ISO8859-2 missing (created) ./share/nls/sl_SI.ISO8859-2 missing (created) ./share/nls/sv_SE.ISO8859-1 missing (created) ./share/nls/sv_SE.ISO8859-15 missing (created) ./share/nls/tr_TR.ISO8859-9 missing (created) ./share/nls/uk_UA.ISO8859-5 missing (created) ./share/nls/uk_UA.KOI8-U missing (created) ./share/nls/zh_CN.eucCN missing (created) ./share/nls/zh_TW.Big5 missing (created) ./share/skel missing (created) ./var missing (created) ./var/cache missing (created) ./var/db missing (created) ./var/log missing (created) ./var/run missing (created) ./var/spool missing (created) ./www missing (created) Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82" && /usr/bin/make -w pure_install DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/destroot make: Entering directory /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82'
"/opt/local/bin/perl5.34" -MExtUtils::Command::MM -e 'cp_nonempty' -- [FCGI.bs](http://fcgi.bs/) blib/arch/auto/FCGI/[FCGI.bs](http://fcgi.bs/) 644
Manifying 1 pod document
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/destroot/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/FCGI.pm
Installing /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/destroot/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/auto/FCGI/FCGI.bundle
Installing /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/destroot/opt/local/share/perl5.34/man/man3/FCGI.3pm
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82'
Fixing paths in darwin-thread-multi-2level/auto/FCGI/.packlist
---> Patching .packlist: s|/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/destroot||p
---> Testing p5.34-fcgi
Warning: p5.34-fcgi is configured to build no architecture-specific files, but installed Mach-O files built for the following archs:
x86_64:
/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/auto/FCGI/FCGI.bundle

Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82" && /usr/bin/make test
"/opt/local/bin/perl5.34" -MExtUtils::Command::MM -e 'cp_nonempty' -- [FCGI.bs](http://fcgi.bs/) blib/arch/auto/FCGI/[FCGI.bs](http://fcgi.bs/) 644
PERL_DL_NONLAZY=1 "/opt/local/bin/perl5.34" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/.t
t/01-load.t ................ ok
Listening socket's path name is too long. <<<<<<<<<<<<<<<<<<<<<<<< config.log records failure with conftest.c:50:22: error: expected expression –> if (sizeof ((ssize_t)))
t/02-unix_domain_socket.t ..
Dubious, test returned 232 (wstat 59392, 0xe800)
No subtests run

Test Summary Report

t/02-unix_domain_socket.t (Wstat: 59392 (exited 232) Tests: 0 Failed: 0)
Non-zero exit status: 232
Parse errors: No plan found in TAP output
Files=2, Tests=1, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.22 cusr 0.03 csys = 0.27 CPU)
Result: FAIL
Failed 1/2 test programs. 0/1 subtests failed.
make: *** [test_dynamic] Error 232
Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82" && /usr/bin/make test
Exit code: 2
Error: Failed to test p5.34-fcgi: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port p5.34-fcgi failed
5.431u 2.098s 0:07.00 107.4% 0+0k 0+31io 16pf+0w

Compilation exited abnormally with code 1 at Thu Oct 31 22:17:48

One problem is that I am no Perl programmer, but am able to patch files, for example make

    os_unix.c:67:    int len;
become

    os_unix.c:67:    unsigned int len;
One configure test seem to fails as well from, maybe, the same reason:

configure:3568: /usr/bin/cc -c -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch x86_64 -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk conftest.c >&5
conftest.c:50:22: error: expected expression
50 | if (sizeof ((ssize_t)))
| ^
1 error generated.
configure:3568: $? = 1
configure: failed program was:
| /* confdefs.h /
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| / end confdefs.h. */
| #include <stddef.h>
| #ifdef HAVE_STDIO_H
| # include <stdio.h>
| #endif
| #ifdef HAVE_STDLIB_H
| # include <stdlib.h>
| #endif
| #ifdef HAVE_STRING_H
| # include <string.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| int
| main (void)
| {
| if (sizeof ((ssize_t)))
| return 0;
| ;
| return 0;
| }
configure:3568: result: yes

The same happens on a more recent macOS Sonoma 14.6.1, Darwin 23.6.0.
@ballapete
Copy link
Author

Listening socket's path name is too long.

In MacPorts the test programmes run in the build directory which is quite long from the start:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-fcgi/p5.34-fcgi/work/FCGI-0.82

≈150 characters. In C header files I can see a limit:

 * [XSI] Definitions for UNIX IPC domain.
 */
struct  sockaddr_un {
	unsigned char   sun_len;        /* sockaddr len including null */
	sa_family_t     sun_family;     /* [XSI] AF_UNIX */
	char            sun_path[104];  /* [XSI] path name (gag) */
};

If the sockets are created in the same directory where the code or the test files reside then a crash will happen with MacPorts. So it's probably not a problem with C data types as I presumed…

@ryandesign
Copy link

Sounds like sockets should be created in $TMPDIR not in the current directory.

@ballapete
Copy link
Author

I found a test that checks for the length of the pathname to te socket:

--->  Testing p5.34-test-requiresinternet
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-test-requiresinternet/p5.34-test-requiresinternet/work/Test-RequiresInternet-0.05" && /usr/bin/make test 
PERL_DL_NONLAZY=1 "/opt/local/bin/perl5.34" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Testing Test::RequiresInternet 0.05, Perl 5.034003, /opt/local/bin/perl5.34
t/00_load.t ............ ok
t/01_getserv.t ......... ok
t/02_multiple_hosts.t .. ok
t/03_badhost.t ......... skipped: no host: foobar
t/04_env.t ............. skipped: NO_NETWORK_TESTING
t/05_badarg.t .......... ok
t/06_badport.t ......... skipped: Could not find a port number for foobar
All tests successful.
Files=7, Tests=4,  1 wallclock secs ( 0.04 usr  0.01 sys +  0.59 cusr  0.09 csys =  0.73 CPU)
Result: PASS
--->  Computing dependencies for p5.34-io.
--->  Testing p5.34-io
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-io/p5.34-io/work/IO-1.55" && /usr/bin/make test 
"/opt/local/bin/perl5.34" -MExtUtils::Command::MM -e 'cp_nonempty' -- IO.bs blib/arch/auto/IO/IO.bs 644
PERL_DL_NONLAZY=1 "/opt/local/bin/perl5.34" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/cachepropagate-tcp.t ... ok
t/cachepropagate-udp.t ... ok
Path length (162) is longer than maximum supported length (104) and will be truncated at t/cachepropagate-unix.t line 26.
t/cachepropagate-unix.t .. skipped: socketpath too long for sockaddr_un
t/gh17447.t .............. ok
t/IO.t ................... ok
t/io_const.t ............. ok
t/io_dir.t ............... ok
t/io_dup.t ............... ok
t/io_file.t .............. ok
t/io_file_export.t ....... ok
t/io_getline.t ........... ok
t/io_handle.t ............ ok
t/io_leak.t .............. skipped: No XS::APItest::sv_count() available
t/io_linenum.t ........... ok
t/io_multihomed.t ........ ok
t/io_pipe.t .............. ok
t/io_poll.t .............. ok
t/io_sel.t ............... ok
t/io_sock.t .............. ok
t/io_sock_errstr.t ....... ok
t/io_taint.t ............. ok
t/io_tell.t .............. ok
t/io_udp.t ............... ok
t/io_unix.t .............. ok
t/io_utf8.t .............. ok
t/io_utf8argv.t .......... ok
t/io_xs.t ................ ok
All tests successful.
Files=27, Tests=16670, 27 wallclock secs ( 0.82 usr  0.06 sys +  1.59 cusr  0.31 csys =  2.78 CPU)
Result: PASS

@ballapete
Copy link
Author

I found another software that fails tests in MacPorts: PostgreSQL.

@ballapete
Copy link
Author

I managed to shorten the long path under which a Perl Module is built and tested sufficiently. Testing FCGI now succeeds.

It should be worth to catch the failure due to the socket's too long path name and report exactly this. It's a bit uncommon that some path names are so limited in length.

@ballapete
Copy link
Author

When testing I found an interesting Perl Module that, at least, tries to perform how it should: DBD-mysql-5.010. But it has no permission (yet) to perform orderly:

--->  Testing p5.34-dbd-mysql
Executing:  cd "/opt/local/var/macports/build/_Users_alpha_ports_perll_p5-dbd-mysql/p5.34-dbd-mysql/work/DBD-mysql-5.010" && /usr/bin/make test 
"/opt/local/bin/perl5.34" -MExtUtils::Command::MM -e 'cp_nonempty' -- mysql.bs blib/arch/auto/DBD/mysql/mysql.bs 644
PERL_DL_NONLAZY=1 "/opt/local/bin/perl5.34" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Driver version is 5.010
t/00base.t .............................. ok
# DBI connect(';mysql_ssl=1;mysql_get_server_pubkey=1','root',...) failed: Can't connect to local MySQL server through socket '/opt/local/var/run/mysql8/mysqld.sock' (2) at t/01caching_sha2_prime.t line 21.
t/01caching_sha2_prime.t ................ skipped: no database connection
# DBI connect('','root',...) failed: Can't connect to local MySQL server through socket '/opt/local/var/run/mysql8/mysqld.sock' (2) at t/05dbcreate.t line 16.
t/05dbcreate.t .......................... skipped: no database connection
# DBI connect('test','root',...) failed: Can't connect to local MySQL server through socket '/opt/local/var/run/mysql8/mysqld.sock' (2) at t/10connect.t line 14.

(Later repeated failure.) The reason is obvious: no permission to create subdirectory mysql8 in /opt/local/var/run. MacPorts' Trac DB has no mention why this port tries to use a directory that belongs to MacPorts, maybe Ryan can add something…

After sleep I'll try to work around this failure and shall report here.

@ballapete
Copy link
Author

The p5.34-dbd-mysql case is different: The socket is created by a running MySQL 8 DB instance. This creation works, p5.34-dbd-mysql knows of this and just tries to connect to the running DB via this socket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants