#91 Skip Socket timestamp tests on i686 and armv7hl.
Closed 3 months ago by jackorp. Opened 3 months ago by jackorp.
rpms/ jackorp/ruby rawhide  into  rawhide

file modified
+13 -1
@@ -22,7 +22,7 @@ 

  %endif

  

  

- %global release 149

+ %global release 150

  %{!?release_string:%define release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}}

  

  # The RubyGems library has to stay out of Ruby directory tree, since the
@@ -874,6 +874,14 @@ 

  DISABLE_TESTS=""

  MSPECOPTS=""

  

+ # test_timestamp and test_timestampns fail due to the way

+ # GLibc 2.34 pre-release curently handles 32bit timestamps.

I checked the sentence with the spell checker, and found the "curently" and "32bit" are wrong or not recommended.
The glibc is not called "GLibc", but called "glibc" or "GNU C Library".
https://en.wikipedia.org/wiki/GNU_C_Library

I think it's not "hundle" but "doesn't hundle", right?

I suggest the following kind of comment.

The tests fail, as the glibc 2.34 pre-release currently doesn't handle 32 bit timestamps.

+ # https://sourceware.org/pipermail/libc-alpha/2021-June/128113.html

+ %ifarch i686 %{arm}

+ DISABLE_TESTS="$DISABLE_TESTS"' -n !/test_timestamp$$/'

+ DISABLE_TESTS="$DISABLE_TESTS"' -n !/test_timestampns$$/'

+ %endif

+ 

  # Avoid `hostname' dependency.

  %{!?with_hostname:MSPECOPTS="-P 'Socket.gethostname returns the host name'"}

  
@@ -1355,6 +1363,10 @@ 

  

  

  %changelog

+ * Thu Jul 01 2021 Jarek Prokop <jprokop@redhat.com> - 3.0.1-150

+ - Skip Socket timestamp tests on i686 and armv7hl

+   Related: rhbz#1975140

+ 

  * Mon May 17 2021 Timm Bäder <tbaeder@redhat.com> - 3.0.1-149

  - Pass ldflags to gem install via CONFIGURE_ARGS

  

I applied the patch only for the 2 failing architectures.

We can revert this patch once the Glibc 2.34 contains a proper fix of the issue.

Related: rhbz#1975140

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

What's the reason you applied the patch rather than the DISABLE_TESTS way?

I think the following modification is equivalent with your patch.

$ git diff
diff --git a/ruby.spec b/ruby.spec
index ecc0576..ab805e9 100644
--- a/ruby.spec
+++ b/ruby.spec
@@ -874,6 +874,11 @@ make runruby TESTRUN_SCRIPT="--enable-gems %{SOURCE13}"
 DISABLE_TESTS=""
 MSPECOPTS=""

+%ifarch i686 armv7hl
+DISABLE_TESTS="$DISABLE_TESTS"' -n !/test_timestamp$$/'
+DISABLE_TESTS="$DISABLE_TESTS"' -n !/test_timestampns$$/'
+%endif
+
 # Avoid `hostname' dependency.
 %{!?with_hostname:MSPECOPTS="-P 'Socket.gethostname returns the host name'"}

For the -n option to exclude a specific test, you can see the help by $ ruby tool/test/runner.rb --help in ruby/ruby repo.

The current limitation in the testing framwork in Ruby is we can't specify the testing class name such as TestSocket in the -n !/NAME/ to exclude a test. You can see this ticket https://bugs.ruby-lang.org/issues/16936 .

You can use %ifarch i686 %{arm} instead of %ifarch i686 armv7hl, as sometimes the arm 32-bit architecture is changed.

$ rpm -E %{arm}
armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl armv8l armv8hl armv8hnl armv8hcnl

Oh right... I somehow forgot that the tests are actually run through make :) I'll disable them that way.

rebased onto 82c35227c9bcb3e087a32903defe6c980d70a287

3 months ago

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

I replaced the patch with the mentioned method of skipping tests through the shell variable.

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=71125031

It would be nice if you referred to the glibc ticket right above the disabled test case for better context. Neither small explanation of the issue would hurt.

Yeah, I agree with Vit. I showed the example without the comment above. But it doesn't mean I don't like adding the comment. (Sorry!)

I suggest adding 2 URLs to the comment to explain the context more.

# A comment.
# https://sourceware.org/pipermail/libc-alpha/2021-June/128113.html
# https://bugzilla.redhat.com/show_bug.cgi?id=1975140

I suggest adding 2 URLs to the comment to explain the context more.

Ah, adding one URL: https://sourceware.org/pipermail/libc-alpha/2021-June/128113.html might be good enough rather than adding 2 URLs. As the BZ ticket URL is referred by the upstream URL.

rebased onto ce3d250

3 months ago

I added the explanation comment above the disabled test cases.

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

I checked the sentence with the spell checker, and found the "curently" and "32bit" are wrong or not recommended.
The glibc is not called "GLibc", but called "glibc" or "GNU C Library".
https://en.wikipedia.org/wiki/GNU_C_Library

I think it's not "hundle" but "doesn't hundle", right?

I suggest the following kind of comment.

The tests fail, as the glibc 2.34 pre-release currently doesn't handle 32 bit timestamps.

My suggestion for the comment.

The timestamps tests crash in glibc 2.34 pre-release on the 32 bit architectures.

I could pass the scratch build for ruby-2.7-stream branch here.
https://koji.fedoraproject.org/koji/taskinfo?taskID=71449014 that is Fedora CI of the PR: https://src.fedoraproject.org/rpms/ruby/pull-request/90
The glibc version is 2.33.9000-38.fc35.

Closing this as the issue was fixed in glibc version glibc-devel-2.33.9000-39: https://bugzilla.redhat.com/show_bug.cgi?id=1975140

Passing scratch build for rawhide without this PR: https://koji.fedoraproject.org/koji/taskinfo?taskID=71576270

Pull-Request has been closed by jackorp

3 months ago
Metadata