Revision: 3123
Author: jprantan
Date: Mon May 3 06:04:35 2010
Log: Started to fix the tests to work on Windows. Some cleanup is still
required.
http://code.google.com/p/robotframework/source/detail?r=3123
Modified:
/trunk/atest/robot/running/JavaStarter.py
/trunk/atest/robot/running/ProcessManager.py
/trunk/atest/robot/running/stopping_with_signal.txt
=======================================
--- /trunk/atest/robot/running/JavaStarter.py Mon May 3 02:45:26 2010
+++ /trunk/atest/robot/running/JavaStarter.py Mon May 3 06:04:35 2010
@@ -11,12 +11,14 @@
jython_jar = os.path.join(self._jython_home, 'jython.jar')
self._classpath = jython_jar + os.pathsep +
os.getenv('CLASSPATH','')
java_home = os.getenv('JAVA_HOME')
- self._java = os.path.join(java_home, 'java') if java_home
else 'java'
+ if java_home and java_home.startswith('"') and
java_home.endswith('"'):
+ java_home = java_home[1:-1]
+ self._java = os.path.join(java_home, 'bin', 'java') if java_home
else 'java'
def get_jython_path(self):
if not self._jython_home:
raise RuntimeError('This test requires JYTHON_HOME environment
variable to be set.')
- return '%s -Dpython.home=%s -classpath %s
org.python.util.jython' % (self._java,self._jython_home,self._classpath)
+ return '%s -Dpython.home=%s -classpath %s
org.python.util.jython' % (self._java, self._jython_home, self._classpath)
# CP="/home/peke/Prog/jython2.2/jython.jar"
=======================================
--- /trunk/atest/robot/running/ProcessManager.py Mon May 3 02:45:26 2010
+++ /trunk/atest/robot/running/ProcessManager.py Mon May 3 06:04:35 2010
@@ -7,8 +7,12 @@
def __init__(self):
self._current_running_process = None
- def start_process(self,*args):
- self._current_running_process = subprocess.Popen(args, shell=True,
stderr=subprocess.PIPE,
+ def start_process(self, *args):
+ if ' ' in args[0]:
+ args = args[0].split() + list(args[1:])
+ print args
+ print ' '.join(args)
+ self._current_running_process = subprocess.Popen(args,
shell=False, stderr=subprocess.PIPE,
stdout=subprocess.PIPE)
self._output = ''
self._err = ''
@@ -17,9 +21,17 @@
self._current_running_process.poll()
return self._current_running_process.returncode
- def send_terminate(self, signal_):
+ def send_terminate(self, signal_name):
+ signal_to_send = getattr(signal, signal_name)
pid = self._current_running_process.pid
- os.kill(pid, getattr(signal, signal_))
+ if not os.name == 'nt':
+ os.kill(pid, signal_to_send)
+ else:
+ print "Process pid is:", pid
+ signal.signal(signal.SIGINT, signal.SIG_IGN)
+ import ctypes
+ kernel32 = ctypes.windll.kernel32
+ kernel32.GenerateConsoleCtrlEvent(0, 0)
def get_stdout(self):
self._output += self._current_running_process.stdout.read()
=======================================
--- /trunk/atest/robot/running/stopping_with_signal.txt Mon May 3 03:40:19
2010
+++ /trunk/atest/robot/running/stopping_with_signal.txt Mon May 3 06:04:35
2010
@@ -66,16 +66,16 @@
[arguments] ${datasource} ${teardown sleep}
Set Runners
${path to datasource} = Set Variables And Get Datasources
${datasource}
- ProcessManager.start process ${ROBOT} --output ${OUTFILE} --report
None --log None --variable TEARDOWNSLEEP:${teardown sleep} ${path to
datasource}
+ ${path to runner} = Join Path ${ROBOTPATH} runner.py
+ ProcessManager.start process ${INTERPRETER} ${path to runner}
--output ${OUTFILE} --report None --log None --variable
TEARDOWNSLEEP:${teardown sleep} ${path to datasource}
Start Running Jybot
[arguments] ${datasource} ${teardown sleep}
${jybot} = Get Jython Path
Set Runners
${path to datasource} = Set Variables And Get Datasources
${datasource}
- ${robot_jybot} = Join Path ${ROBOTPATH} runner.py
- log ${jybot} ${robot_jybot} --output ${OUTFILE} --report None --log
None ${path to datasource}
- ProcessManager.start process ${jybot} ${robot_jybot} --output
${OUTFILE} --report None --log None --variable TEARDOWNSLEEP:${teardown
sleep} ${path to datasource}
+ ${path to runner} = Join Path ${ROBOTPATH} runner.py
+ ProcessManager.start process ${jybot} ${path to runner} --output
${OUTFILE} --report None --log None --variable
TEARDOWNSLEEP:${teardown sleep} ${path to datasource}
Check Test Cases Have Failed Correctly
Check Test Case Test FAIL Execution terminated by signal