mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	Calling some syscall functions such as Dir.chroot causes SIGSYS instead of EPERM on Android. This change skips all tests that stops the test-suite run.
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			718 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			718 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require_relative '../../spec_helper'
 | 
						|
 | 
						|
describe "Process.initgroups" do
 | 
						|
  platform_is_not :windows, :android do
 | 
						|
    as_user do
 | 
						|
      it "initializes the supplemental group access list" do
 | 
						|
        name = `id -un`.strip
 | 
						|
        groups = Process.groups
 | 
						|
        gid = groups.max.to_i + 1
 | 
						|
        augmented_groups = `id -G`.scan(/\d+/).map {|i| i.to_i} << gid
 | 
						|
        if Process.uid == 0
 | 
						|
          Process.groups = []
 | 
						|
          Process.initgroups(name, gid).sort.should == augmented_groups.sort
 | 
						|
          Process.groups.sort.should == augmented_groups.sort
 | 
						|
          Process.groups = groups
 | 
						|
        else
 | 
						|
          -> { Process.initgroups(name, gid) }.should raise_error(Errno::EPERM)
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |