summaryrefslogtreecommitdiff
path: root/spec/ruby/core/process
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-01-09 15:57:10 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-01-09 15:58:46 +0900
commitb0e9db65c3f05e1443c2d8f4ca139182a771500c (patch)
tree6b6b3ac4979638b8929b6cf044ae435791b97acb /spec/ruby/core/process
parentb369f5e8a2c1e4bc90c561365d42dc5674f83d6e (diff)
Include the standard `id` command output
On macOS, GNU coreutils `id` is limited to NGROUPS_MAX groups, because of the backward compatibility of getgroups(2).
Diffstat (limited to 'spec/ruby/core/process')
-rw-r--r--spec/ruby/core/process/groups_spec.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/spec/ruby/core/process/groups_spec.rb b/spec/ruby/core/process/groups_spec.rb
index cbbe4fed25..33e0f9d7b3 100644
--- a/spec/ruby/core/process/groups_spec.rb
+++ b/spec/ruby/core/process/groups_spec.rb
@@ -4,6 +4,10 @@ describe "Process.groups" do
platform_is_not :windows do
it "gets an Array of the gids of groups in the supplemental group access list" do
groups = `id -G`.scan(/\d+/).map { |i| i.to_i }
+ # Include the standard `id` command output. On macOS, GNU
+ # coreutils `id` is limited to NGROUPS_MAX groups, because of
+ # the backward compatibility of getgroups(2).
+ (groups |= `/usr/bin/id -G`.scan(/\d+/).map { |i| i.to_i }) rescue nil
gid = Process.gid
expected = (groups.sort - [gid]).uniq.sort