[PATCH WIP] Socat tests

  • Open
  • quality assurance status badge
One participant
  • Bruno Victal
Submitted by
Bruno Victal
Bruno Victal wrote on 20 May 2023 23:50
(name . guix-patches)(address . guix-patches@gnu.org)(address . mirai@makinata.eu)
I've noticed that socat does have a test-suite (under a "test" target)
though I am having some trouble with some of the tests failures.

Going through the build log, there's some lines of interest:

Test 59:
Toggle snippet (7 lines)
test 59 CHILDDEFAULT: child process default properties... FAILED:
./socat -t 0.1 -u exec:./procan -

In test 227, tests fail due to an absent /etc/services.
Toggle snippet (11 lines)
test 227 EXECPTYKILL: exec:...,pty explicitely kills sub process... OK
grep: /etc/services: No such file or directory
test 228 TCP4SERVICE: echo via connection to TCP V4 socket... !port 1 timed out! FAILED: ./socat:
./socat -t 0.1 TCP4-LISTEN:,reuseaddr PIPE &
2023/05/20 20:48:44 socat[8835] E empty port/service
./socat -t 0.1 stdin!!stdout TCP4:
2023/05/20 20:48:49 socat[8857] E empty port/service
test 229 EXCEED_FOPEN_MAX: more than FOPEN_MAX FDs in use... OK
Note: a similar failure was already observed in

I wonder if it's feasible to include /etc/services
in the build environment?

Test 418:
Toggle snippet (8 lines)
test 418 ABSTRACT_USER: Is the fs related user option on ABSTRACT socket applied to FD... FAILED
./socat ABSTRACT-LISTEN:temp,accept-timeout=0.1,user= FILE:/dev/null
2023/05/20 20:50:55 socat[12189] E getpwnam(""): no such user

I'm out of clues as to how to get these 3 tests sorted out.
Any ideas?

I've attached the build logs for socat with the tests enabled below.

Bruno Victal wrote on 20 May 2023 23:52
[PATCH WIP] gnu: socat: Enable tests.
(address . 63618@debbugs.gnu.org)(name . Bruno Victal)(address . mirai@makinata.eu)
* gnu/packages/networking.scm (socat)[arguments]: Enable tests.
[native-inputs]: Add test dependencies: net-tools, which and procps.
gnu/packages/networking.scm | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 85fb352ebf..4a2ed0e8a5 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1204,9 +1204,25 @@ (define-public socat
version ".tar.bz2"))
- "01w0hpqf5xmgn40s1ablfd4y67dlrx5y9zlx24spc1qm8h81hwyl"))))
+ "01w0hpqf5xmgn40s1ablfd4y67dlrx5y9zlx24spc1qm8h81hwyl"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(begin
+ (substitute* "test.sh"
+ (("/sbin/ifconfig") "ifconfig")
+ (("^/bin/rm") "rm"))))))
(build-system gnu-build-system)
- (arguments '(#:tests? #f)) ; no test suite
+ (arguments
+ (list
+ #:test-target "test"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'patch-source-shebangs 'patch-test-shebangs
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; test.sh embeds some shell scripts.
+ (substitute* "test.sh"
+ (("/usr/bin/env") (search-input-file inputs "/bin/env"))))))))
+ (native-inputs (list net-tools which procps)) ; for tests
(inputs (list openssl))
(home-page "http://www.dest-unreach.org/socat/")

base-commit: cebf0e36d1e5439f43046ec3d6d995fb18f27218