#!/usr/bin/python
#
# Copyright 2010 Google Inc. All Rights Reserved.

"""Script to wrap test_that script.

Run this script and kill it. Then run ps -ef to see if sleep
is still running,. 
"""

__author__ = "asharif@google.com (Ahmad Sharif)"

import optparse
import os
import re
import sys
import subprocess

from utils import command_executer


def Usage(parser, message):
  print "ERROR: " + message
  parser.print_help()
  sys.exit(0)

def Main(argv):
  parser = optparse.OptionParser()
  parser.add_option("-c", "--chromeos_root", dest="chromeos_root",
                    help="ChromeOS root checkout directory")
  parser.add_option("-r", "--remote", dest="remote",
                    help="Remote chromeos device.")
  options = parser.parse_args(argv)[0]
  ce = command_executer.GetCommandExecuter()
  ce.RunCommand("ls; sleep 10000",
                machine=os.uname()[1])
  return 0


if __name__ == "__main__":
  Main(sys.argv)
