Project

General

Profile

Bug #16679

Test of Ruby fails under multiple OS user userland installations

Added by humptydumpty (Jens With) 8 months ago. Updated 2 months ago.

Status:
Feedback
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.6.5p114 (2019-10-01 revision 67812) [i686-linux]
[ruby-core:97404]

Description

I do user land installations where each of multiple installations of a complex system under it's own OS user installs it's own version of tools from sources if the OS installed version doesn't match necessary criteria.
The system has to be installable under Linux OEL 4.x up to OL8, SuSE 10 up to openSUSE 15.1, and SLES 10 up to SLES 15.
I always let run make check/test for each OSS tool I install from sources.

Ruby has to be one these tools in future versions.

One of the errors I run into when testing is:

Current OS user is imppg.

9) Error:
TestGemCommandsCertCommand#test_execute_re_sign_with_cert_expiration_length_days:
Errno::EACCES: Permission denied @ rb_sysopen - /tmp/expired_cert.pem
/imphome/imppg/.install/impmake/ruby/ruby-2.6.5/test/rubygems/test_gem_commands_cert_command.rb:627:in write'
/imphome/imppg/.install/impmake/ruby/ruby-2.6.5/test/rubygems/test_gem_commands_cert_command.rb:627:in
test_execute_re_sign_with_cert_expiration_length_days'

10) Error:
TestGemCommandsCertCommand#test_execute_re_sign:
Errno::EACCES: Permission denied @ rb_sysopen - /tmp/expired_cert.pem
/imphome/imppg/.install/impmake/ruby/ruby-2.6.5/test/rubygems/test_gem_commands_cert_command.rb:596:in write'
/imphome/imppg/.install/impmake/ruby/ruby-2.6.5/test/rubygems/test_gem_commands_cert_command.rb:596:in
test_execute_re_sign'

Path of /tmp/expired_cert.pem is identical for every OS user:

imppg@imptstdvl(001):~/impmake/ruby/current$ ls -l /tmp/expired_cert.pem
-rw-r----- 1 imptst imptst 1111 Mar 4 01:11 /tmp/expired_cert.pem

Updated by jeremyevans0 (Jeremy Evans) 2 months ago

  • Status changed from Open to Feedback

From the error you are receiving, it is trying to write to a read-only file, and that is raising an error. The same tests don't usually raise an error, so this is probably specific to your environment. Is it possible for you to come up with a way to reproduce the error outside of your environment?

In my environment:

make test-all TESTOPTS="-- test/rubygems/test_gem_commands_cert_command.rb"
exec ./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems "./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/ -- test/rubygems/test_gem_commands_cert_command.rb
Run options: "--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 0.942977s, 34.9955 tests/s, 164.3730 assertions/s.
33 tests, 155 assertions, 0 failures, 0 errors, 0 skips

ruby -v: ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-openbsd]

Also available in: Atom PDF