#print (args)
try:
- proc = subprocess.Popen(args, bufsize=1, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
+ proc = subprocess.Popen(args, bufsize=1, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, preexec_fn=os.setsid)
except FileNotFoundError:
print("["+FileReader().filename+":"+str(self.linenumber)+"] Cannot start '"+args[0]+"': File not found")
tesh_exit(3)
except OSError as osE:
if osE.errno == 8:
- osE.strerror += "\nOSError: [Errno 8] Executed scripts should start with shebang line (like #!/bin/sh)"
+ osE.strerror += "\nOSError: [Errno 8] Executed scripts should start with shebang line (like #!/usr/bin/env sh)"
raise osE
cmdName = FileReader().filename+":"+str(self.linenumber)
(stdout_data, stderr_data) = proc.communicate("\n".join(self.input_pipe), self.timeout)
except subprocess.TimeoutExpired:
print("Test suite `"+FileReader().filename+"': NOK (<"+cmdName+"> timeout after "+str(self.timeout)+" sec)")
- proc.kill()
+ os.killpg(os.getpgid(proc.pid), signal.SIGKILL)
tesh_exit(3)
if self.output_display:
tesh_exit(1)
if options.cd is not None:
+ print("[Tesh/INFO] change directory to " + options.cd)
os.chdir(options.cd)
if options.ignore_jenkins: