Module: UIAutoMonkey::CommandHelper

Included in:
MonkeyRunner
Defined in:
lib/smart_monkey/command_helper.rb

Instance Method Summary collapse

Instance Method Details

#kill_all(process_name, signal = nil) ⇒ Object



60
61
62
63
64
# File 'lib/smart_monkey/command_helper.rb', line 60

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) ⇒ Object

def run_process(cmds)

puts "Run: #{cmds.inspect}"
Kernel.system(cmds[0], *cmds[1..-1])

end



20
21
22
# File 'lib/smart_monkey/command_helper.rb', line 20

def relaunch_app(device,app)
  `idevicedebug -u #{device} run #{app} >/dev/null 2>&1 &`
end

#run_process(cmds) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/smart_monkey/command_helper.rb', line 24

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: Application go to background! Auto-Re-Launch app!"
          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/
        app_hang_monitor_thread.kill
      end
    end
    app_hang_monitor_thread.kill
    instruments_stderr_thread.kill
  end
end

#shell(cmds) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/smart_monkey/command_helper.rb', line 7

def shell(cmds)
  puts "Shell: #{cmds.inspect}"
  Open3.popen3(*cmds) do |stdin, stdout, stderr|
    stdin.close
    return stdout.read
  end
end

#xcode_pathObject



66
67
68
# File 'lib/smart_monkey/command_helper.rb', line 66

def xcode_path
  @xcode_path ||= shell(%w(xcode-select -print-path)).strip
end