class SimulatorUtil

Constants

DEVICE_ALREADY_SHUTDOWN
DEVICE_STATE_INVALID

Public Class Methods

boot_device(udid) click to toggle source
# File lib/jenkins_util/simulator_util.rb, line 62
def self.boot_device(udid)
  process = CommandLineScript.new("xcrun simctl boot #{udid}")

  LoggerUtil.fatal("Could not boot up device: #{udid}") if process.exit_status.nonzero? &&
                                                           process.exit_status != DEVICE_STATE_INVALID
end
devices() click to toggle source
# File lib/jenkins_util/simulator_util.rb, line 39
def self.devices
  flattened_devices = []

  devices_by_os.each do |os, devices|
    devices.each do |device|
      device['os'] = os
      flattened_devices << device
    end
  end

  flattened_devices
end
devices_by_os() click to toggle source
# File lib/jenkins_util/simulator_util.rb, line 27
def self.devices_by_os
  process = CommandLineScript.new('xcrun simctl list --json devices')

  json_string = ''
  process.stdout.each do |fragment|
    json_string += fragment
  end
  json = JSON.parse(json_string)

  json['devices']
end
devices_by_udid() click to toggle source
# File lib/jenkins_util/simulator_util.rb, line 52
def self.devices_by_udid
  devices_by_udid = {}

  devices.each do |device|
    devices_by_udid[device['udid']] = device
  end

  devices_by_udid
end
new() click to toggle source
# File lib/jenkins_util/simulator_util.rb, line 24
def initialize
end
reset_all_simulators() click to toggle source
# File lib/jenkins_util/simulator_util.rb, line 84
def self.reset_all_simulators
  CommandLineScript.new('killall "Simulator"')
  CommandLineScript.new('killall "Simulator (Watch)"')

  process = CommandLineScript.new('xcrun simctl shutdown all')
  LoggerUtil.fatal('Could not shutdown all simulators') if process.exit_status.nonzero?

  process = CommandLineScript.new('xcrun simctl erase all')
  LoggerUtil.fatal('Could not erase all simulators') if process.exit_status.nonzero?
end
reset_device(udid) click to toggle source
# File lib/jenkins_util/simulator_util.rb, line 77
def self.reset_device(udid)
  process = CommandLineScript.new("xcrun simctl erase #{udid}")

  LoggerUtil.fatal("Could not reset device: #{udid}") if process.exit_status.nonzero? &&
                                                         process.exit_status != DEVICE_STATE_INVALID
end
shutdown_device(udid) click to toggle source
# File lib/jenkins_util/simulator_util.rb, line 69
def self.shutdown_device(udid)
  process = CommandLineScript.new("xcrun simctl shutdown #{udid}")

  LoggerUtil.fatal("Could not shutdown device: #{udid}") if process.exit_status.nonzero? &&
                                                            process.exit_status != DEVICE_STATE_INVALID &&
                                                            process.exit_status != DEVICE_ALREADY_SHUTDOWN
end