ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:120715] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4
@ 2025-01-16 15:07 hs (Hideki Sakamoto) via ruby-core
  2025-01-17  8:59 ` [ruby-core:120725] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: hs (Hideki Sakamoto) via ruby-core @ 2025-01-16 15:07 UTC (permalink / raw)
  To: ruby-core; +Cc: hs (Hideki Sakamoto)

Issue #21045 has been reported by hs (Hideki Sakamoto).

----------------------------------------
Bug #21045: [patch & workaround] "make test-all" failed with FreeBSD 13.4
https://bugs.ruby-lang.org/issues/21045

* Author: hs (Hideki Sakamoto)
* Status: Open
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
"make test-all" fails when building Ruby 3.4.1 on FreeBSD 13.4.

Build and test steps:
<pre>
% freebsd-version 
13.4-RELEASE-p2
% tar xf ruby-3.4.1.tar.xz
% cd ruby-3.4.1/
% ./configure
% make
% make test-all

 (snip)

  1) Error:
TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type:
Errno::ECONNREFUSED: Failed to open TCP connection to localhost:34716 (Connection refused - connect(2) for "localhost" port 34716)
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'TCPSocket#initialize'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'IO.open'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'block in Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/timeout.rb:185:in 'block in Timeout.timeout'
    /tmp/ruby-3.4.1/lib/timeout.rb:192:in 'Timeout.timeout'
    /tmp/ruby-3.4.1/lib/net/http.rb:1657:in 'Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/net/http.rb:1636:in 'Net::HTTP#do_start'
    /tmp/ruby-3.4.1/lib/net/http.rb:1625:in 'Net::HTTP#start'
    /tmp/ruby-3.4.1/lib/net/http.rb:2369:in 'Net::HTTP#request'
    /tmp/ruby-3.4.1/lib/net/http.rb:1984:in 'Net::HTTP#get'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1344:in 'TestNetHTTPForceEncoding#fe_request'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1372:in 'TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type'

 (snip)

Finished tests in 672.429322s, 47.6734 tests/s, 9743.0849 assertions/s.                                                            
32057 tests, 6551536 assertions, 0 failures, 7 errors, 192 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
*** Error code 7
</pre>


### 1. Seven tests in test/net/http/test_http.rb error with "(Connection refused - connect(2) for "localhost" port #####)"

These errors appear to be caused by the client in function "fe_request"( **test/net/http/test_http.rb** ) trying to connect to IPv4 ('127.0.0.1') address:
<pre>
  1324    CONFIG = {
* 1325      'host' => 'localhost',
  1326      'proxy_host' => nil,
  1327      'proxy_port' => nil,
  1328    }
  1329  
  1330    include TestNetHTTPUtils
  1331  
  1332    def fe_request(force_enc, content_type=nil)
  1333      @server.mount_proc('/fe') do |req, res|
  1334        res['Content-Type'] = content_type if content_type
  1335        res.body = "hello\u1234"
  1336      end
  1337  
* 1338      http = Net::HTTP.new(config('host'), config('port'))
  1339      http.local_host = Addrinfo.tcp(config('host'), config('port')).ip_address
  1340      assert_not_nil(http.local_host)
  1341      assert_nil(http.local_port)
  1342  
  1343      http.response_body_encoding = force_enc
  1344      http.get('/fe')
  1345    end
</pre>

while the @server on line 12 of **test/net/http/utils.rb**  listens on a socket with an IPv6 address (':: 1') when tested with ' **localhost** '. 
<pre>
     9    class HTTPServer
    10      def initialize(config, &block)
    11        @config = config
*   12        @server = TCPServer.new(@config['host'], 0)
    13        @port = @server.addr[1]
    14        @procs = {}
</pre>

I wasn't sure if this was a bug to fix.

As a workaround, remove the following line from /etc/hosts file to eliminate this error:
<pre>
::1			localhost ...
</pre>

### 2. make test-all stops with "*** Error code 7" after all tests are finished.

This is probably a bug in FreeBSD's make command, but it seems to be caused by two spaces at the end of the last command executed when running make test-all:

<pre>
exec ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -r./tool/lib/_tmpdir "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems" --excludes-dir=./test/.excludes --name=!/memory_leak/  ←(*here!!)
</pre>

To fix this error, modify common.mk line 317 or 965 using attachments(one or the other is sufficient) :

<pre>
% patch < patch-common.mk-TEST_EXCLUDE.txt 

(or)

% patch < patch-common.mk-yes-test-all.txt
</pre>

Then re-create the Makefile so that "make test-all" completes successfully.

<pre>
% ./configure
% make test-all
	BASERUBY = /usr/local/bin/ruby --disable=gems
	CC = clang
	LD = ld
	LDSHARED = clang -shared
	CFLAGS = -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fdeclspec  -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wmisleading-indentation -Wundef 
	XCFLAGS = -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/x86_64-freebsd13.4 -I./include -I. -I./prism -I./enc/unicode/15.0.0   -Dmodular_gc_dir=
	CPPFLAGS =   
	DLDFLAGS = -Wl,--compress-debug-sections=zlib -Wl,-soname,showflags -fstack-protector-strong -pie  
	SOLIBS = -lexecinfo -lprocstat -lz -lrt -lrt -ldl -lcrypt -lm -lthr
	LANG = ja_JP.UTF-8
	LC_ALL = 
	LC_CTYPE = 
	MFLAGS =  
	RUSTC = no
	YJIT_RUSTC_ARGS = --crate-name=yjit  --crate-type=staticlib  --edition=2021  -g  -C lto=thin  -C opt-level=3  -C overflow-checks=on  '--out-dir=/mnt/home/sakamoto/ruby-3.4.1/yjit/target/release/'  ./yjit/src/lib.rs
FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: x86_64-unknown-freebsd13.4
Thread model: posix
InstalledDir: /usr/bin
generating enc.mk
generating encdb.h
encdb.h unchanged
making enc
making srcs under enc
generating transdb.h
transdb.h unchanged
making trans
making encs
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
installing default coverage libraries
installing default date_core libraries
installing digest libraries
installing default digest libraries
installing default sha2 libraries
installing default fiddle libraries
installing default console libraries
installing default libraries
installing default monitor libraries
installing default objspace libraries
installing default openssl libraries
installing default pathname libraries
installing default psych libraries
installing default pty libraries
installing default ripper libraries
installing default libraries
installing default socket libraries
installing default strscan libraries
`ruby' is up to date.
Run options: 
  --seed=37281
  "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/.excludes
  --name=!/memory_leak/
  --

# Running tests:

Finished tests in 669.890724s, 47.8541 tests/s, 9779.2801 assertions/s.                                                                       
32057 tests, 6551049 assertions, 0 failures, 0 errors, 191 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
%
</pre>


Now "make check" will pass all tests and return "check succeeded" and exit normally (attachment:"ruby34-make-check.txt").

---Files--------------------------------
patch-common.mk-TEST_EXCLUDE.txt (433 Bytes)
patch-common.mk-yes-test-all.txt (373 Bytes)
ruby34-make-check.txt (14.7 KB)


-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-core:120725] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4
  2025-01-16 15:07 [ruby-core:120715] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4 hs (Hideki Sakamoto) via ruby-core
@ 2025-01-17  8:59 ` nobu (Nobuyoshi Nakada) via ruby-core
  2025-01-17  9:00 ` [ruby-core:120726] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2025-01-17  8:59 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #21045 has been updated by nobu (Nobuyoshi Nakada).


I tried master on FreeBSD 13.4-RELEASE-p1, but worked fine.
Is it a regression of make at p1?

----------------------------------------
Bug #21045: [patch & workaround] "make test-all" failed with FreeBSD 13.4
https://bugs.ruby-lang.org/issues/21045#change-111558

* Author: hs (Hideki Sakamoto)
* Status: Open
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
"make test-all" fails when building Ruby 3.4.1 on FreeBSD 13.4.

Build and test steps:
<pre>
% freebsd-version 
13.4-RELEASE-p2
% tar xf ruby-3.4.1.tar.xz
% cd ruby-3.4.1/
% ./configure
% make
% make test-all

 (snip)

  1) Error:
TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type:
Errno::ECONNREFUSED: Failed to open TCP connection to localhost:34716 (Connection refused - connect(2) for "localhost" port 34716)
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'TCPSocket#initialize'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'IO.open'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'block in Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/timeout.rb:185:in 'block in Timeout.timeout'
    /tmp/ruby-3.4.1/lib/timeout.rb:192:in 'Timeout.timeout'
    /tmp/ruby-3.4.1/lib/net/http.rb:1657:in 'Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/net/http.rb:1636:in 'Net::HTTP#do_start'
    /tmp/ruby-3.4.1/lib/net/http.rb:1625:in 'Net::HTTP#start'
    /tmp/ruby-3.4.1/lib/net/http.rb:2369:in 'Net::HTTP#request'
    /tmp/ruby-3.4.1/lib/net/http.rb:1984:in 'Net::HTTP#get'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1344:in 'TestNetHTTPForceEncoding#fe_request'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1372:in 'TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type'

 (snip)

Finished tests in 672.429322s, 47.6734 tests/s, 9743.0849 assertions/s.                                                            
32057 tests, 6551536 assertions, 0 failures, 7 errors, 192 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
*** Error code 7
</pre>


### 1. Seven tests in test/net/http/test_http.rb error with "(Connection refused - connect(2) for "localhost" port #####)"

These errors appear to be caused by the client in function "fe_request"( **test/net/http/test_http.rb** ) trying to connect to IPv4 ('127.0.0.1') address:
<pre>
  1324    CONFIG = {
* 1325      'host' => 'localhost',
  1326      'proxy_host' => nil,
  1327      'proxy_port' => nil,
  1328    }
  1329  
  1330    include TestNetHTTPUtils
  1331  
  1332    def fe_request(force_enc, content_type=nil)
  1333      @server.mount_proc('/fe') do |req, res|
  1334        res['Content-Type'] = content_type if content_type
  1335        res.body = "hello\u1234"
  1336      end
  1337  
* 1338      http = Net::HTTP.new(config('host'), config('port'))
  1339      http.local_host = Addrinfo.tcp(config('host'), config('port')).ip_address
  1340      assert_not_nil(http.local_host)
  1341      assert_nil(http.local_port)
  1342  
  1343      http.response_body_encoding = force_enc
  1344      http.get('/fe')
  1345    end
</pre>

while the @server on line 12 of **test/net/http/utils.rb**  listens on a socket with an IPv6 address (':: 1') when tested with ' **localhost** '. 
<pre>
     9    class HTTPServer
    10      def initialize(config, &block)
    11        @config = config
*   12        @server = TCPServer.new(@config['host'], 0)
    13        @port = @server.addr[1]
    14        @procs = {}
</pre>

I wasn't sure if this was a bug to fix.

As a workaround, remove the following line from /etc/hosts file to eliminate this error:
<pre>
::1			localhost ...
</pre>

### 2. make test-all stops with "*** Error code 7" after all tests are finished.

This is probably a bug in FreeBSD's make command, but it seems to be caused by two spaces at the end of the last command executed when running make test-all:

<pre>
exec ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -r./tool/lib/_tmpdir "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems" --excludes-dir=./test/.excludes --name=!/memory_leak/  ←(*here!!)
</pre>

To fix this error, modify common.mk line 317 or 965 using attachments(one or the other is sufficient) :

<pre>
% patch < patch-common.mk-TEST_EXCLUDE.txt 

(or)

% patch < patch-common.mk-yes-test-all.txt
</pre>

Then re-create the Makefile so that "make test-all" completes successfully.

<pre>
% ./configure
% make test-all
	BASERUBY = /usr/local/bin/ruby --disable=gems
	CC = clang
	LD = ld
	LDSHARED = clang -shared
	CFLAGS = -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fdeclspec  -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wmisleading-indentation -Wundef 
	XCFLAGS = -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/x86_64-freebsd13.4 -I./include -I. -I./prism -I./enc/unicode/15.0.0   -Dmodular_gc_dir=
	CPPFLAGS =   
	DLDFLAGS = -Wl,--compress-debug-sections=zlib -Wl,-soname,showflags -fstack-protector-strong -pie  
	SOLIBS = -lexecinfo -lprocstat -lz -lrt -lrt -ldl -lcrypt -lm -lthr
	LANG = ja_JP.UTF-8
	LC_ALL = 
	LC_CTYPE = 
	MFLAGS =  
	RUSTC = no
	YJIT_RUSTC_ARGS = --crate-name=yjit  --crate-type=staticlib  --edition=2021  -g  -C lto=thin  -C opt-level=3  -C overflow-checks=on  '--out-dir=/mnt/home/sakamoto/ruby-3.4.1/yjit/target/release/'  ./yjit/src/lib.rs
FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: x86_64-unknown-freebsd13.4
Thread model: posix
InstalledDir: /usr/bin
generating enc.mk
generating encdb.h
encdb.h unchanged
making enc
making srcs under enc
generating transdb.h
transdb.h unchanged
making trans
making encs
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
installing default coverage libraries
installing default date_core libraries
installing digest libraries
installing default digest libraries
installing default sha2 libraries
installing default fiddle libraries
installing default console libraries
installing default libraries
installing default monitor libraries
installing default objspace libraries
installing default openssl libraries
installing default pathname libraries
installing default psych libraries
installing default pty libraries
installing default ripper libraries
installing default libraries
installing default socket libraries
installing default strscan libraries
`ruby' is up to date.
Run options: 
  --seed=37281
  "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/.excludes
  --name=!/memory_leak/
  --

# Running tests:

Finished tests in 669.890724s, 47.8541 tests/s, 9779.2801 assertions/s.                                                                       
32057 tests, 6551049 assertions, 0 failures, 0 errors, 191 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
%
</pre>


Now "make check" will pass all tests and return "check succeeded" and exit normally (attachment:"ruby34-make-check.txt").

---Files--------------------------------
patch-common.mk-TEST_EXCLUDE.txt (433 Bytes)
patch-common.mk-yes-test-all.txt (373 Bytes)
ruby34-make-check.txt (14.7 KB)


-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-core:120726] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4
  2025-01-16 15:07 [ruby-core:120715] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4 hs (Hideki Sakamoto) via ruby-core
  2025-01-17  8:59 ` [ruby-core:120725] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2025-01-17  9:00 ` nobu (Nobuyoshi Nakada) via ruby-core
  2025-01-17 16:08 ` [ruby-core:120728] " hs (Hideki Sakamoto) via ruby-core
  2025-01-20 14:18 ` [ruby-core:120746] " hs (Hideki Sakamoto) via ruby-core
  3 siblings, 0 replies; 5+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2025-01-17  9:00 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #21045 has been updated by nobu (Nobuyoshi Nakada).

Status changed from Open to Feedback

14.1-RELEASE too.

----------------------------------------
Bug #21045: [patch & workaround] "make test-all" failed with FreeBSD 13.4
https://bugs.ruby-lang.org/issues/21045#change-111559

* Author: hs (Hideki Sakamoto)
* Status: Feedback
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
"make test-all" fails when building Ruby 3.4.1 on FreeBSD 13.4.

Build and test steps:
<pre>
% freebsd-version 
13.4-RELEASE-p2
% tar xf ruby-3.4.1.tar.xz
% cd ruby-3.4.1/
% ./configure
% make
% make test-all

 (snip)

  1) Error:
TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type:
Errno::ECONNREFUSED: Failed to open TCP connection to localhost:34716 (Connection refused - connect(2) for "localhost" port 34716)
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'TCPSocket#initialize'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'IO.open'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'block in Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/timeout.rb:185:in 'block in Timeout.timeout'
    /tmp/ruby-3.4.1/lib/timeout.rb:192:in 'Timeout.timeout'
    /tmp/ruby-3.4.1/lib/net/http.rb:1657:in 'Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/net/http.rb:1636:in 'Net::HTTP#do_start'
    /tmp/ruby-3.4.1/lib/net/http.rb:1625:in 'Net::HTTP#start'
    /tmp/ruby-3.4.1/lib/net/http.rb:2369:in 'Net::HTTP#request'
    /tmp/ruby-3.4.1/lib/net/http.rb:1984:in 'Net::HTTP#get'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1344:in 'TestNetHTTPForceEncoding#fe_request'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1372:in 'TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type'

 (snip)

Finished tests in 672.429322s, 47.6734 tests/s, 9743.0849 assertions/s.                                                            
32057 tests, 6551536 assertions, 0 failures, 7 errors, 192 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
*** Error code 7
</pre>


### 1. Seven tests in test/net/http/test_http.rb error with "(Connection refused - connect(2) for "localhost" port #####)"

These errors appear to be caused by the client in function "fe_request"( **test/net/http/test_http.rb** ) trying to connect to IPv4 ('127.0.0.1') address:
<pre>
  1324    CONFIG = {
* 1325      'host' => 'localhost',
  1326      'proxy_host' => nil,
  1327      'proxy_port' => nil,
  1328    }
  1329  
  1330    include TestNetHTTPUtils
  1331  
  1332    def fe_request(force_enc, content_type=nil)
  1333      @server.mount_proc('/fe') do |req, res|
  1334        res['Content-Type'] = content_type if content_type
  1335        res.body = "hello\u1234"
  1336      end
  1337  
* 1338      http = Net::HTTP.new(config('host'), config('port'))
  1339      http.local_host = Addrinfo.tcp(config('host'), config('port')).ip_address
  1340      assert_not_nil(http.local_host)
  1341      assert_nil(http.local_port)
  1342  
  1343      http.response_body_encoding = force_enc
  1344      http.get('/fe')
  1345    end
</pre>

while the @server on line 12 of **test/net/http/utils.rb**  listens on a socket with an IPv6 address (':: 1') when tested with ' **localhost** '. 
<pre>
     9    class HTTPServer
    10      def initialize(config, &block)
    11        @config = config
*   12        @server = TCPServer.new(@config['host'], 0)
    13        @port = @server.addr[1]
    14        @procs = {}
</pre>

I wasn't sure if this was a bug to fix.

As a workaround, remove the following line from /etc/hosts file to eliminate this error:
<pre>
::1			localhost ...
</pre>

### 2. make test-all stops with "*** Error code 7" after all tests are finished.

This is probably a bug in FreeBSD's make command, but it seems to be caused by two spaces at the end of the last command executed when running make test-all:

<pre>
exec ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -r./tool/lib/_tmpdir "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems" --excludes-dir=./test/.excludes --name=!/memory_leak/  ←(*here!!)
</pre>

To fix this error, modify common.mk line 317 or 965 using attachments(one or the other is sufficient) :

<pre>
% patch < patch-common.mk-TEST_EXCLUDE.txt 

(or)

% patch < patch-common.mk-yes-test-all.txt
</pre>

Then re-create the Makefile so that "make test-all" completes successfully.

<pre>
% ./configure
% make test-all
	BASERUBY = /usr/local/bin/ruby --disable=gems
	CC = clang
	LD = ld
	LDSHARED = clang -shared
	CFLAGS = -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fdeclspec  -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wmisleading-indentation -Wundef 
	XCFLAGS = -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/x86_64-freebsd13.4 -I./include -I. -I./prism -I./enc/unicode/15.0.0   -Dmodular_gc_dir=
	CPPFLAGS =   
	DLDFLAGS = -Wl,--compress-debug-sections=zlib -Wl,-soname,showflags -fstack-protector-strong -pie  
	SOLIBS = -lexecinfo -lprocstat -lz -lrt -lrt -ldl -lcrypt -lm -lthr
	LANG = ja_JP.UTF-8
	LC_ALL = 
	LC_CTYPE = 
	MFLAGS =  
	RUSTC = no
	YJIT_RUSTC_ARGS = --crate-name=yjit  --crate-type=staticlib  --edition=2021  -g  -C lto=thin  -C opt-level=3  -C overflow-checks=on  '--out-dir=/mnt/home/sakamoto/ruby-3.4.1/yjit/target/release/'  ./yjit/src/lib.rs
FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: x86_64-unknown-freebsd13.4
Thread model: posix
InstalledDir: /usr/bin
generating enc.mk
generating encdb.h
encdb.h unchanged
making enc
making srcs under enc
generating transdb.h
transdb.h unchanged
making trans
making encs
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
installing default coverage libraries
installing default date_core libraries
installing digest libraries
installing default digest libraries
installing default sha2 libraries
installing default fiddle libraries
installing default console libraries
installing default libraries
installing default monitor libraries
installing default objspace libraries
installing default openssl libraries
installing default pathname libraries
installing default psych libraries
installing default pty libraries
installing default ripper libraries
installing default libraries
installing default socket libraries
installing default strscan libraries
`ruby' is up to date.
Run options: 
  --seed=37281
  "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/.excludes
  --name=!/memory_leak/
  --

# Running tests:

Finished tests in 669.890724s, 47.8541 tests/s, 9779.2801 assertions/s.                                                                       
32057 tests, 6551049 assertions, 0 failures, 0 errors, 191 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
%
</pre>


Now "make check" will pass all tests and return "check succeeded" and exit normally (attachment:"ruby34-make-check.txt").

---Files--------------------------------
patch-common.mk-TEST_EXCLUDE.txt (433 Bytes)
patch-common.mk-yes-test-all.txt (373 Bytes)
ruby34-make-check.txt (14.7 KB)


-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-core:120728] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4
  2025-01-16 15:07 [ruby-core:120715] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4 hs (Hideki Sakamoto) via ruby-core
  2025-01-17  8:59 ` [ruby-core:120725] " nobu (Nobuyoshi Nakada) via ruby-core
  2025-01-17  9:00 ` [ruby-core:120726] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2025-01-17 16:08 ` hs (Hideki Sakamoto) via ruby-core
  2025-01-20 14:18 ` [ruby-core:120746] " hs (Hideki Sakamoto) via ruby-core
  3 siblings, 0 replies; 5+ messages in thread
From: hs (Hideki Sakamoto) via ruby-core @ 2025-01-17 16:08 UTC (permalink / raw)
  To: ruby-core; +Cc: hs (Hideki Sakamoto)

Issue #21045 has been updated by hs (Hideki Sakamoto).


I'm sorry, but I have already upgraded all my local environments to 13.4-RELEASE-p2, so I cannot revert to p1 to check.

The situation is that the timestamp of /usr/bin/make is Nov 12, which is the date when I updated my OS from p1 to p2(released [2024-10-29](https://bokut.in/freebsd-patch-level-table/#releng/13.4)), so I can't deny the possibility that the upgrade to p2 may have had an effect.

<pre>
% which make
/usr/bin/make
% ls -l `which make`
-r-xr-xr-x  2 root  wheel  208640 Nov 12 16:52 /usr/bin/make
</pre>


----------------------------------------
Bug #21045: [patch & workaround] "make test-all" failed with FreeBSD 13.4
https://bugs.ruby-lang.org/issues/21045#change-111561

* Author: hs (Hideki Sakamoto)
* Status: Feedback
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
"make test-all" fails when building Ruby 3.4.1 on FreeBSD 13.4.

Build and test steps:
<pre>
% freebsd-version 
13.4-RELEASE-p2
% tar xf ruby-3.4.1.tar.xz
% cd ruby-3.4.1/
% ./configure
% make
% make test-all

 (snip)

  1) Error:
TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type:
Errno::ECONNREFUSED: Failed to open TCP connection to localhost:34716 (Connection refused - connect(2) for "localhost" port 34716)
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'TCPSocket#initialize'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'IO.open'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'block in Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/timeout.rb:185:in 'block in Timeout.timeout'
    /tmp/ruby-3.4.1/lib/timeout.rb:192:in 'Timeout.timeout'
    /tmp/ruby-3.4.1/lib/net/http.rb:1657:in 'Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/net/http.rb:1636:in 'Net::HTTP#do_start'
    /tmp/ruby-3.4.1/lib/net/http.rb:1625:in 'Net::HTTP#start'
    /tmp/ruby-3.4.1/lib/net/http.rb:2369:in 'Net::HTTP#request'
    /tmp/ruby-3.4.1/lib/net/http.rb:1984:in 'Net::HTTP#get'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1344:in 'TestNetHTTPForceEncoding#fe_request'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1372:in 'TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type'

 (snip)

Finished tests in 672.429322s, 47.6734 tests/s, 9743.0849 assertions/s.                                                            
32057 tests, 6551536 assertions, 0 failures, 7 errors, 192 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
*** Error code 7
</pre>


### 1. Seven tests in test/net/http/test_http.rb error with "(Connection refused - connect(2) for "localhost" port #####)"

These errors appear to be caused by the client in function "fe_request"( **test/net/http/test_http.rb** ) trying to connect to IPv4 ('127.0.0.1') address:
<pre>
  1324    CONFIG = {
* 1325      'host' => 'localhost',
  1326      'proxy_host' => nil,
  1327      'proxy_port' => nil,
  1328    }
  1329  
  1330    include TestNetHTTPUtils
  1331  
  1332    def fe_request(force_enc, content_type=nil)
  1333      @server.mount_proc('/fe') do |req, res|
  1334        res['Content-Type'] = content_type if content_type
  1335        res.body = "hello\u1234"
  1336      end
  1337  
* 1338      http = Net::HTTP.new(config('host'), config('port'))
  1339      http.local_host = Addrinfo.tcp(config('host'), config('port')).ip_address
  1340      assert_not_nil(http.local_host)
  1341      assert_nil(http.local_port)
  1342  
  1343      http.response_body_encoding = force_enc
  1344      http.get('/fe')
  1345    end
</pre>

while the @server on line 12 of **test/net/http/utils.rb**  listens on a socket with an IPv6 address (':: 1') when tested with ' **localhost** '. 
<pre>
     9    class HTTPServer
    10      def initialize(config, &block)
    11        @config = config
*   12        @server = TCPServer.new(@config['host'], 0)
    13        @port = @server.addr[1]
    14        @procs = {}
</pre>

I wasn't sure if this was a bug to fix.

As a workaround, remove the following line from /etc/hosts file to eliminate this error:
<pre>
::1			localhost ...
</pre>

### 2. make test-all stops with "*** Error code 7" after all tests are finished.

This is probably a bug in FreeBSD's make command, but it seems to be caused by two spaces at the end of the last command executed when running make test-all:

<pre>
exec ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -r./tool/lib/_tmpdir "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems" --excludes-dir=./test/.excludes --name=!/memory_leak/  ←(*here!!)
</pre>

To fix this error, modify common.mk line 317 or 965 using attachments(one or the other is sufficient) :

<pre>
% patch < patch-common.mk-TEST_EXCLUDE.txt 

(or)

% patch < patch-common.mk-yes-test-all.txt
</pre>

Then re-create the Makefile so that "make test-all" completes successfully.

<pre>
% ./configure
% make test-all
	BASERUBY = /usr/local/bin/ruby --disable=gems
	CC = clang
	LD = ld
	LDSHARED = clang -shared
	CFLAGS = -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fdeclspec  -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wmisleading-indentation -Wundef 
	XCFLAGS = -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/x86_64-freebsd13.4 -I./include -I. -I./prism -I./enc/unicode/15.0.0   -Dmodular_gc_dir=
	CPPFLAGS =   
	DLDFLAGS = -Wl,--compress-debug-sections=zlib -Wl,-soname,showflags -fstack-protector-strong -pie  
	SOLIBS = -lexecinfo -lprocstat -lz -lrt -lrt -ldl -lcrypt -lm -lthr
	LANG = ja_JP.UTF-8
	LC_ALL = 
	LC_CTYPE = 
	MFLAGS =  
	RUSTC = no
	YJIT_RUSTC_ARGS = --crate-name=yjit  --crate-type=staticlib  --edition=2021  -g  -C lto=thin  -C opt-level=3  -C overflow-checks=on  '--out-dir=/mnt/home/sakamoto/ruby-3.4.1/yjit/target/release/'  ./yjit/src/lib.rs
FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: x86_64-unknown-freebsd13.4
Thread model: posix
InstalledDir: /usr/bin
generating enc.mk
generating encdb.h
encdb.h unchanged
making enc
making srcs under enc
generating transdb.h
transdb.h unchanged
making trans
making encs
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
installing default coverage libraries
installing default date_core libraries
installing digest libraries
installing default digest libraries
installing default sha2 libraries
installing default fiddle libraries
installing default console libraries
installing default libraries
installing default monitor libraries
installing default objspace libraries
installing default openssl libraries
installing default pathname libraries
installing default psych libraries
installing default pty libraries
installing default ripper libraries
installing default libraries
installing default socket libraries
installing default strscan libraries
`ruby' is up to date.
Run options: 
  --seed=37281
  "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/.excludes
  --name=!/memory_leak/
  --

# Running tests:

Finished tests in 669.890724s, 47.8541 tests/s, 9779.2801 assertions/s.                                                                       
32057 tests, 6551049 assertions, 0 failures, 0 errors, 191 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
%
</pre>


Now "make check" will pass all tests and return "check succeeded" and exit normally (attachment:"ruby34-make-check.txt").

---Files--------------------------------
patch-common.mk-TEST_EXCLUDE.txt (433 Bytes)
patch-common.mk-yes-test-all.txt (373 Bytes)
ruby34-make-check.txt (14.7 KB)


-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-core:120746] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4
  2025-01-16 15:07 [ruby-core:120715] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4 hs (Hideki Sakamoto) via ruby-core
                   ` (2 preceding siblings ...)
  2025-01-17 16:08 ` [ruby-core:120728] " hs (Hideki Sakamoto) via ruby-core
@ 2025-01-20 14:18 ` hs (Hideki Sakamoto) via ruby-core
  3 siblings, 0 replies; 5+ messages in thread
From: hs (Hideki Sakamoto) via ruby-core @ 2025-01-20 14:18 UTC (permalink / raw)
  To: ruby-core; +Cc: hs (Hideki Sakamoto)

Issue #21045 has been updated by hs (Hideki Sakamoto).

File ruby34-test-all-13.4R.log added
File ruby34-test-all-13.4Rp2.log added
File freebsd-update.txt added

I tried a clean install of FreeBSD 13.4 on VMware, and the unpatched version still failed.
The records of all operations from installation to "make test-all" are as follows.

1. Download [ISO](https://download.freebsd.org/releases/ISO-IMAGES/13.4/FreeBSD-13.4-RELEASE-amd64-bootonly.iso) and install to new VM.
   ```
   $ uname -r 
   13.4-RELEASE
   $ freebsd-version 
   13.4-RELEASE
   ```

2. install required libraries
   ```
   $ su
   # pkg install libyaml
   # pkg instal libffi
   # exit
   ```

3. build ruby and do "make test-all" 
   ```
   $ cd /tmp
   $ tar xf ~/ruby-3.4.1.tar.xz
   $ cd ruby-3.4.1
   $ ./configure --with-libyaml-dir=/usr/local --with-libffi-dir=/usr/local
   $ make
   $ make test-all 2>&1 | tee /tmp/ruby34-test-all-13.4R.log
   ```
   failed: attachment:"ruby34-test-all-13.4R.log"

4. upgrade to 13.4-RELEASE-p2 (I cannot update to 'p1')
   ```
   $ su
   # freebsd-update fetch install 2&>1 | tee freebsd-update.txt
   # reboot
   ```
   (sorry, /usr/bin/make was not updated) attachment:"freebsd-update.txt"

5. make test-all with 13.4-RELEASE-p2 also failed.
   ```
   $ freebsd-version 
   13.4-RELEASE-p2
   $ cd /tmp
   $ rm -rf ruby-3.4.1
   $ tar xf ~/ruby-3.4.1.tar.xz
   $ cd ruby-3.4.1
   $ ./configure --with-libyaml-dir=/usr/local --with-libffi-dir=/usr/local
   $ make test-all 2>&1 | tee /tmp/ruby34-test-all-13.4Rp2.log
   ```
   also failed: attachment:"ruby34-test-all-13.4Rp2.log"



----------------------------------------
Bug #21045: [patch & workaround] "make test-all" failed with FreeBSD 13.4
https://bugs.ruby-lang.org/issues/21045#change-111579

* Author: hs (Hideki Sakamoto)
* Status: Feedback
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
"make test-all" fails when building Ruby 3.4.1 on FreeBSD 13.4.

Build and test steps:
<pre>
% freebsd-version 
13.4-RELEASE-p2
% tar xf ruby-3.4.1.tar.xz
% cd ruby-3.4.1/
% ./configure
% make
% make test-all

 (snip)

  1) Error:
TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type:
Errno::ECONNREFUSED: Failed to open TCP connection to localhost:34716 (Connection refused - connect(2) for "localhost" port 34716)
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'TCPSocket#initialize'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'IO.open'
    /tmp/ruby-3.4.1/lib/net/http.rb:1659:in 'block in Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/timeout.rb:185:in 'block in Timeout.timeout'
    /tmp/ruby-3.4.1/lib/timeout.rb:192:in 'Timeout.timeout'
    /tmp/ruby-3.4.1/lib/net/http.rb:1657:in 'Net::HTTP#connect'
    /tmp/ruby-3.4.1/lib/net/http.rb:1636:in 'Net::HTTP#do_start'
    /tmp/ruby-3.4.1/lib/net/http.rb:1625:in 'Net::HTTP#start'
    /tmp/ruby-3.4.1/lib/net/http.rb:2369:in 'Net::HTTP#request'
    /tmp/ruby-3.4.1/lib/net/http.rb:1984:in 'Net::HTTP#get'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1344:in 'TestNetHTTPForceEncoding#fe_request'
    /tmp/ruby-3.4.1/test/net/http/test_http.rb:1372:in 'TestNetHTTPForceEncoding#test_response_body_encoding_encoding_without_content_type'

 (snip)

Finished tests in 672.429322s, 47.6734 tests/s, 9743.0849 assertions/s.                                                            
32057 tests, 6551536 assertions, 0 failures, 7 errors, 192 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
*** Error code 7
</pre>


### 1. Seven tests in test/net/http/test_http.rb error with "(Connection refused - connect(2) for "localhost" port #####)"

These errors appear to be caused by the client in function "fe_request"( **test/net/http/test_http.rb** ) trying to connect to IPv4 ('127.0.0.1') address:
<pre>
  1324    CONFIG = {
* 1325      'host' => 'localhost',
  1326      'proxy_host' => nil,
  1327      'proxy_port' => nil,
  1328    }
  1329  
  1330    include TestNetHTTPUtils
  1331  
  1332    def fe_request(force_enc, content_type=nil)
  1333      @server.mount_proc('/fe') do |req, res|
  1334        res['Content-Type'] = content_type if content_type
  1335        res.body = "hello\u1234"
  1336      end
  1337  
* 1338      http = Net::HTTP.new(config('host'), config('port'))
  1339      http.local_host = Addrinfo.tcp(config('host'), config('port')).ip_address
  1340      assert_not_nil(http.local_host)
  1341      assert_nil(http.local_port)
  1342  
  1343      http.response_body_encoding = force_enc
  1344      http.get('/fe')
  1345    end
</pre>

while the @server on line 12 of **test/net/http/utils.rb**  listens on a socket with an IPv6 address (':: 1') when tested with ' **localhost** '. 
<pre>
     9    class HTTPServer
    10      def initialize(config, &block)
    11        @config = config
*   12        @server = TCPServer.new(@config['host'], 0)
    13        @port = @server.addr[1]
    14        @procs = {}
</pre>

I wasn't sure if this was a bug to fix.

As a workaround, remove the following line from /etc/hosts file to eliminate this error:
<pre>
::1			localhost ...
</pre>

### 2. make test-all stops with "*** Error code 7" after all tests are finished.

This is probably a bug in FreeBSD's make command, but it seems to be caused by two spaces at the end of the last command executed when running make test-all:

<pre>
exec ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -r./tool/lib/_tmpdir "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems" --excludes-dir=./test/.excludes --name=!/memory_leak/  ←(*here!!)
</pre>

To fix this error, modify common.mk line 317 or 965 using attachments(one or the other is sufficient) :

<pre>
% patch < patch-common.mk-TEST_EXCLUDE.txt 

(or)

% patch < patch-common.mk-yes-test-all.txt
</pre>

Then re-create the Makefile so that "make test-all" completes successfully.

<pre>
% ./configure
% make test-all
	BASERUBY = /usr/local/bin/ruby --disable=gems
	CC = clang
	LD = ld
	LDSHARED = clang -shared
	CFLAGS = -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fdeclspec  -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wmisleading-indentation -Wundef 
	XCFLAGS = -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/x86_64-freebsd13.4 -I./include -I. -I./prism -I./enc/unicode/15.0.0   -Dmodular_gc_dir=
	CPPFLAGS =   
	DLDFLAGS = -Wl,--compress-debug-sections=zlib -Wl,-soname,showflags -fstack-protector-strong -pie  
	SOLIBS = -lexecinfo -lprocstat -lz -lrt -lrt -ldl -lcrypt -lm -lthr
	LANG = ja_JP.UTF-8
	LC_ALL = 
	LC_CTYPE = 
	MFLAGS =  
	RUSTC = no
	YJIT_RUSTC_ARGS = --crate-name=yjit  --crate-type=staticlib  --edition=2021  -g  -C lto=thin  -C opt-level=3  -C overflow-checks=on  '--out-dir=/mnt/home/sakamoto/ruby-3.4.1/yjit/target/release/'  ./yjit/src/lib.rs
FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: x86_64-unknown-freebsd13.4
Thread model: posix
InstalledDir: /usr/bin
generating enc.mk
generating encdb.h
encdb.h unchanged
making enc
making srcs under enc
generating transdb.h
transdb.h unchanged
making trans
making encs
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
installing default coverage libraries
installing default date_core libraries
installing digest libraries
installing default digest libraries
installing default sha2 libraries
installing default fiddle libraries
installing default console libraries
installing default libraries
installing default monitor libraries
installing default objspace libraries
installing default openssl libraries
installing default pathname libraries
installing default psych libraries
installing default pty libraries
installing default ripper libraries
installing default libraries
installing default socket libraries
installing default strscan libraries
`ruby' is up to date.
Run options: 
  --seed=37281
  "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/.excludes
  --name=!/memory_leak/
  --

# Running tests:

Finished tests in 669.890724s, 47.8541 tests/s, 9779.2801 assertions/s.                                                                       
32057 tests, 6551049 assertions, 0 failures, 0 errors, 191 skips

ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-freebsd13.4]
%
</pre>


Now "make check" will pass all tests and return "check succeeded" and exit normally (attachment:"ruby34-make-check.txt").

---Files--------------------------------
patch-common.mk-TEST_EXCLUDE.txt (433 Bytes)
patch-common.mk-yes-test-all.txt (373 Bytes)
ruby34-make-check.txt (14.7 KB)
ruby34-test-all-13.4R.log (9.99 KB)
ruby34-test-all-13.4Rp2.log (9.99 KB)
freebsd-update.txt (3.45 KB)


-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-01-20 14:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-16 15:07 [ruby-core:120715] [Ruby master Bug#21045] [patch & workaround] "make test-all" failed with FreeBSD 13.4 hs (Hideki Sakamoto) via ruby-core
2025-01-17  8:59 ` [ruby-core:120725] " nobu (Nobuyoshi Nakada) via ruby-core
2025-01-17  9:00 ` [ruby-core:120726] " nobu (Nobuyoshi Nakada) via ruby-core
2025-01-17 16:08 ` [ruby-core:120728] " hs (Hideki Sakamoto) via ruby-core
2025-01-20 14:18 ` [ruby-core:120746] " hs (Hideki Sakamoto) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).