summaryrefslogtreecommitdiff
path: root/spec/mspec/lib/mspec/guards/superuser.rb
blob: 24daf9b26cd2e58cddb0ae8dc5415e1a4a7f752c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
require 'mspec/guards/guard'

class SuperUserGuard < SpecGuard
  def match?
    Process.euid == 0
  end
end

class RealSuperUserGuard < SpecGuard
  def match?
    Process.uid == 0
  end
end

def as_superuser(&block)
  SuperUserGuard.new.run_if(:as_superuser, &block)
end

def as_real_superuser(&block)
  RealSuperUserGuard.new.run_if(:as_real_superuser, &block)
end

def as_user(&block)
  SuperUserGuard.new.run_unless(:as_user, &block)
end