Class: Thrust::IOSSpecLauncher

Inherits:
Object
  • Object
show all
Defined in:
lib/thrust/ios_spec_launcher.rb

Instance Method Summary collapse

Constructor Details

#initialize(out = $stdout, thrust_executor = Thrust::Executor.new) ⇒ IOSSpecLauncher

Returns a new instance of IOSSpecLauncher.



5
6
7
8
# File 'lib/thrust/ios_spec_launcher.rb', line 5

def initialize(out = $stdout, thrust_executor = Thrust::Executor.new)
  @thrust_executor = thrust_executor
  @out = out
end

Instance Method Details

#run(executable_name, build_configuration, build_sdk, os_version, device_name, timeout, build_directory, simulator_binary, environment_variables) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/thrust/ios_spec_launcher.rb', line 10

def run(executable_name, build_configuration, build_sdk, os_version, device_name, timeout, build_directory, simulator_binary, environment_variables)
  device_type_id = "com.apple.CoreSimulator.SimDeviceType.#{device_name}, #{os_version}"
  app_executable = File.join(build_directory, "#{build_configuration}-#{build_sdk}", "#{executable_name}.app")
  simulator_binary ||= 'ios-sim'
  output_file = "tmp/thrust_specs_output"

  arguments = ["--devicetypeid \"#{device_type_id}\"",
               "--timeout #{timeout || '30'}",
               "--stdout #{output_file}",
               "--setenv CFFIXED_USER_HOME=\"#{Dir.tmpdir}\"",]

  environment_variables.each do |key, value|
    arguments << "--setenv #{key}=\"#{value}\""
  end

  @thrust_executor.system_or_exit("#{simulator_binary} launch #{app_executable} #{arguments.compact.join(' ')}")

  results = File.read(output_file)
  FileUtils.rm_r('tmp')

  @out.puts 'Results:'
  @out.puts results

  Thrust::CedarResultsParser.parse_results_for_success(results)
end