summaryrefslogtreecommitdiff
path: root/test/etc/test_etc.rb
AgeCommit message (Collapse)Author
2025-07-08[ruby/etc] Prefer dedicated assertionsNobuyoshi Nakada
https://github.com/ruby/etc/commit/9caddede76
2025-06-04[ruby/etc] Removed workaround for assert_ractorHiroshi SHIBATA
https://github.com/ruby/etc/commit/fd61177b71
2025-06-03[ruby/etc] Alias value or join to take in old RubyHiroshi SHIBATA
https://github.com/ruby/etc/commit/3dbe760bed
2025-05-31`Ractor::Port`Koichi Sasada
* Added `Ractor::Port` * `Ractor::Port#receive` (support multi-threads) * `Rcator::Port#close` * `Ractor::Port#closed?` * Added some methods * `Ractor#join` * `Ractor#value` * `Ractor#monitor` * `Ractor#unmonitor` * Removed some methods * `Ractor#take` * `Ractor.yield` * Change the spec * `Racotr.select` You can wait for multiple sequences of messages with `Ractor::Port`. ```ruby ports = 3.times.map{ Ractor::Port.new } ports.map.with_index do |port, ri| Ractor.new port,ri do |port, ri| 3.times{|i| port << "r#{ri}-#{i}"} end end p ports.each{|port| pp 3.times.map{port.receive}} ``` In this example, we use 3 ports, and 3 Ractors send messages to them respectively. We can receive a series of messages from each port. You can use `Ractor#value` to get the last value of a Ractor's block: ```ruby result = Ractor.new do heavy_task() end.value ``` You can wait for the termination of a Ractor with `Ractor#join` like this: ```ruby Ractor.new do some_task() end.join ``` `#value` and `#join` are similar to `Thread#value` and `Thread#join`. To implement `#join`, `Ractor#monitor` (and `Ractor#unmonitor`) is introduced. This commit changes `Ractor.select()` method. It now only accepts ports or Ractors, and returns when a port receives a message or a Ractor terminates. We removes `Ractor.yield` and `Ractor#take` because: * `Ractor::Port` supports most of similar use cases in a simpler manner. * Removing them significantly simplifies the code. We also change the internal thread scheduler code (thread_pthread.c): * During barrier synchronization, we keep the `ractor_sched` lock to avoid deadlocks. This lock is released by `rb_ractor_sched_barrier_end()` which is called at the end of operations that require the barrier. * fix potential deadlock issues by checking interrupts just before setting UBF. https://bugs.ruby-lang.org/issues/21262 Notes: Merged: https://github.com/ruby/ruby/pull/13445
2025-03-28[ruby/etc] Skip TestEtc#test_ractor_parallel on ModGC workflowNaoto Ono
(https://github.com/ruby/etc/pull/55) https://bugs.ruby-lang.org/issues/21204 TestEtc#test_ractor_parallel is only failing intermittently on ModGC workflow after 87fb0c4. So, we'll skip this test on ModGC workflow. https://github.com/ruby/etc/commit/fb037c5162
2025-03-27[ruby/etc] Attempt to re-enable TestEtc#test_ractor_parallelBenoit Daloze
* If this fails, please revert this commit in ruby/etc to keep the repos sync'ed. https://github.com/ruby/etc/commit/87fb0c4a83
2025-03-27[ruby/etc] Speedup TestEtc#test_ractor_parallelBenoit Daloze
https://github.com/ruby/etc/commit/18c12c084c
2025-03-27[ruby/etc] Increase timeout for test_ractor_parallelBenoit Daloze
* It seems much slower on macOS (locally on Linux it's always < 1 second). https://github.com/ruby/etc/commit/9e46857011
2025-03-27Pend a test for ractor in etcYusuke Endoh
... because it is flaky Notes: Merged: https://github.com/ruby/ruby/pull/12992
2025-03-25[ruby/etc] Etc.sysconfdir does not work in a RactorBenoit Daloze
* Because it uses RbConfig::CONFIG. * See https://github.com/ruby/ruby/actions/runs/14069312270/job/39399502142#step:12:947 https://github.com/ruby/etc/commit/12dbe03b6a
2025-03-25[ruby/etc] Most Etc methods are not Ractor-safe currentlyBenoit Daloze
* See https://bugs.ruby-lang.org/issues/21115 https://github.com/ruby/etc/commit/ae62b7619c
2024-10-17[ruby/etc] Fix sysconfdir when load-relativeNobuyoshi Nakada
When relative load paths option is enabled, the prefix is determined at the runtime. The only way to get it outside libruby is to use rbconfig.rb. https://github.com/ruby/etc/commit/e5b498fad9
2021-03-24Fix leaked file descriptor in passwd testPeter Zhu
Notes: Merged: https://github.com/ruby/ruby/pull/4312
2020-12-22[ruby/etc] Make Ractor safeMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3954
2020-02-12test/etc/test_etc.rb: skip some tests on AndroidYusuke Endoh
Android user management seems different from normal Unix system.
2017-09-29test_etc.rb: fix test_getgrnam for duplicated group namessonots
* test/etc/test_etc.rb: Etc.getgrnam would not return the first entry in the order of Etc.group for duplicated group names. follow-up: [Bug #6935] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29{ext,test}/etc: Specify frozen_string_literal: true.kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16Add frozen_string_literal: false for all filesnaruse
When you change this to true, you may need to add more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-10test_etc.rb: relax comparisonsnobu
* test/etc/test_etc.rb (test_getgrgid, test_getgrnam): relax comparisons. getgrent() does not return mem properly in some circumstances (possibly, involved in Open Directory on OSX). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-10win32.c: login name encodingnobu
* ext/etc/etc.c (etc_getlogin): set login name encoding properly. [ruby-core:66163] [Bug #10493] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-02* ext/etc/etc.c (etc_nprocessors): New method.akr
Accepted by matz at RubyKaigi 2014. [ruby-core:65142] [Feature #10267] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-18test_etc.rb: omit unrunnable testsnobu
* test/etc/test_etc.rb (test_sysconf, test_confstr, test_pathconf): define test cases only if corresponding constants are available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-18[DOC]akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-18* ext/etc/etc.c: Etc.sysconf, Etc.confstr and IO#pathconf implemented.akr
* ext/etc/extconf.rb: Check sysconf(), confstr() and fpathconf(). * ext/etc/mkconstants.rb: New file. [ruby-core:62600] [Feature #9842] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-18* ext/etc/etc.c: Etc.uname method implemented.akr
* ext/etc/extconf.rb: Check uname() function. [ruby-core:62139] [Feature #9770] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-27test_etc.rb: fix for non unique GIDshirosaki
* test/etc/test_etc.rb (TestEtc#test_getgrgid): fix for non unique GID. No unixen systems guarantee that GID is unique. Etc.getgrgid would not return the first entry in the order of Etc.group for shared GID. [ruby-core:47312] [Bug #6935] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-06* test/etc/test_etc.rb (TestEtc#test_getpwuid): `s' is never set to nil.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-05test_etc.rb: remove implicit assumptionnobu
* test/etc/test_etc.rb (TestEtc#test_getpwuid): remove implicit assumption, that getpwuid() would return the first entry in the order of getpw(), for shared UID. apparently it is not true on MacOS X 10.8. [ruby-core:46975][Bug #6831] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-26* test/etc/test_etc.rb (TestEtc#test_get{pw,gr}nam): skip entriesnobu
start with + sign, which means NIS. these are returned in the case that passwd and group entries in /etc/nsswitch.conf are set to use "nis" explicitly on Debian. fixed #3683 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-05* test/etc/test_etc.rb: assert only when any value is given.nobu
[Bug #1575] [ruby-core:23722] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-06* test/etc/test_etc.rb: trivial.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-03* test/etc/test_etc.rb(test_getpwnam, test_getgrgid, test_getgrnam):mame
support an envirionment that has duplicative entries. a patch from Tomoyuki Chikanaga <chikanag at nippon-control-system.co.jp> in [ruby-dev:37882]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-03* test/etc/test_etc.rb (test_getpwuid, test_getgrgid): usemame
Process.euid and egid instead of Etc.getlogin to identify current user which may be different from a login one (e.g., su command). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-03* test/etc/test_etc.rb: check only typical use ofmame
setpwent/getpwent/endpwent and setgrent/getgrent/endgrent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-29* test/etc/test_etc.rb (test_passwd): age field may be string undermame
some environments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-29* test/etc/test_etc.rb (test_getpwuid): fix for users whose uid isnaruse
shared. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-18* test/etc/test_etc.rb: avoid infinite loop. [ruby-dev:35158]mame
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-04avoid infinite loop on FreeBSD 6.3.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-03* test/etc/test_etc.rb: new tests for etc.mame
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e