module UIAutoMonkey::CommandHelper
Public Instance Methods
instruments_deviceinfo(device)
click to toggle source
# File lib/smart_monkey/command_helper.rb, line 7 def instruments_deviceinfo(device) `"instruments" -s devices | grep "#{device}"`.strip end
is_simulator()
click to toggle source
# File lib/smart_monkey/command_helper.rb, line 11 def is_simulator deviceinfo = instruments_deviceinfo(device) if deviceinfo.include? "-" true else false end end
kill_all(process_name, signal=nil)
click to toggle source
# File lib/smart_monkey/command_helper.rb, line 77 def kill_all(process_name, signal=nil) signal = signal ? "-#{signal}" : '' # puts "killall #{signal} #{process_name}" Kernel.system("killall #{signal} '#{process_name}' >/dev/null 2>&1") end
relaunch_app(device,app)
click to toggle source
def run_process
(cmds)
puts "Run: #{cmds.inspect}" Kernel.system(cmds[0], *cmds[1..-1])
end
# File lib/smart_monkey/command_helper.rb, line 33 def relaunch_app(device,app) if is_simulator `xcrun simctl launch #{device} #{app} >/dev/null 2>&1 &` else `idevicedebug -u #{device} run #{app} >/dev/null 2>&1 &` end end
run_process(cmds)
click to toggle source
# File lib/smart_monkey/command_helper.rb, line 41 def run_process(cmds) puts "Run: #{cmds.inspect}" device = cmds[2] app = cmds[-7] Open3.popen3(*cmds) do |stdin, stdout, stderr, thread| @tmpline = "" stdin.close app_hang_monitor_thread = Thread.start{ sleep 30 while true current_line = @tmpline sleep 30 after_sleep_line = @tmpline if current_line == after_sleep_line puts "WARN: no response in log, trigger re-launch action." relaunch_app(device, app) end end } instruments_stderr_thread = Thread.start{ stderr.each do |line| puts line end } stdout.each do |line| @tmpline = line.strip puts @tmpline if @tmpline =~ /MonkeyTest finish/ || @tmpline =~ /Script was stopped by the user/ app_hang_monitor_thread.kill end end app_hang_monitor_thread.kill instruments_stderr_thread.kill end end
shell(cmds)
click to toggle source
# File lib/smart_monkey/command_helper.rb, line 20 def shell(cmds) puts "Shell: #{cmds.inspect}" Open3.popen3(*cmds) do |stdin, stdout, stderr| stdin.close return stdout.read end end
xcode_path()
click to toggle source
# File lib/smart_monkey/command_helper.rb, line 83 def xcode_path @xcode_path ||= shell(%w(xcode-select -print-path)).strip end