summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/utils/qemurunner.py
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2017-03-24 01:44:59 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-27 08:15:06 +0100
commitb742fd023e71320990b26b979dd65632fbd347a2 (patch)
tree9454d7b5c045f3b4bb9d5ef17f54b6e0af95b5e1 /meta/lib/oeqa/utils/qemurunner.py
parent58e6e7c2043d7f4b48ec3b4b9daf25f5766fa5d2 (diff)
downloadpoky-b742fd023e71320990b26b979dd65632fbd347a2.tar.gz
oeqa/targetcontrol.py: modify it to test runqemu
Modify the following files to test runqemu: targetcontrol.py utils/commands.py utils/qemurunner.py We need simulate how "runqemu" works in command line, so when test "runqemu", the targetcontrol.py, utils/commands.py and utils/qemurunner.py don't have to find the rootfs or set env vars. [YOCTO #10249] (From OE-Core rev: 9305d816bdf8837ea3a407091cb7f24a9a3ae8dc) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/utils/qemurunner.py')
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index c0abb96546..c292b759bc 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -97,7 +97,7 @@ class QemuRunner:
97 self._dump_host() 97 self._dump_host()
98 raise SystemExit 98 raise SystemExit
99 99
100 def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqemuparams=''): 100 def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqemuparams='', launch_cmd=None):
101 if self.display: 101 if self.display:
102 os.environ["DISPLAY"] = self.display 102 os.environ["DISPLAY"] = self.display
103 # Set this flag so that Qemu doesn't do any grabs as SDL grabs 103 # Set this flag so that Qemu doesn't do any grabs as SDL grabs
@@ -117,6 +117,20 @@ class QemuRunner:
117 else: 117 else:
118 os.environ["DEPLOY_DIR_IMAGE"] = self.deploy_dir_image 118 os.environ["DEPLOY_DIR_IMAGE"] = self.deploy_dir_image
119 119
120 if not launch_cmd:
121 launch_cmd = 'runqemu snapshot'
122 if self.use_kvm:
123 logger.info('Using kvm for runqemu')
124 launch_cmd += ' kvm'
125 else:
126 logger.info('Not using kvm for runqemu')
127 if not self.display:
128 launch_cmd += ' nographic'
129 launch_cmd += ' %s %s' % (self.machine, self.rootfs)
130
131 return self.launch(launch_cmd, qemuparams=qemuparams, get_ip=get_ip, extra_bootparams=extra_bootparams, runqemuparams=runqemuparams)
132
133 def launch(self, launch_cmd, get_ip = True, qemuparams = None, extra_bootparams = None, runqemuparams=''):
120 try: 134 try:
121 threadsock, threadport = self.create_socket() 135 threadsock, threadport = self.create_socket()
122 self.server_socket, self.serverport = self.create_socket() 136 self.server_socket, self.serverport = self.create_socket()
@@ -124,27 +138,19 @@ class QemuRunner:
124 logger.error("Failed to create listening socket: %s" % msg[1]) 138 logger.error("Failed to create listening socket: %s" % msg[1])
125 return False 139 return False
126 140
127
128 bootparams = 'console=tty1 console=ttyS0,115200n8 printk.time=1' 141 bootparams = 'console=tty1 console=ttyS0,115200n8 printk.time=1'
129 if extra_bootparams: 142 if extra_bootparams:
130 bootparams = bootparams + ' ' + extra_bootparams 143 bootparams = bootparams + ' ' + extra_bootparams
131 144
132 self.qemuparams = 'bootparams="{0}" qemuparams="-serial tcp:127.0.0.1:{1}"'.format(bootparams, threadport) 145 self.qemuparams = 'bootparams="{0}" qemuparams="-serial tcp:127.0.0.1:{1}"'.format(bootparams, threadport)
133 if not self.display:
134 self.qemuparams = 'nographic ' + self.qemuparams
135 if qemuparams: 146 if qemuparams:
136 self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"' 147 self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"'
137 148
149 launch_cmd += ' tcpserial=%s %s' % (self.serverport, self.qemuparams)
150
138 self.origchldhandler = signal.getsignal(signal.SIGCHLD) 151 self.origchldhandler = signal.getsignal(signal.SIGCHLD)
139 signal.signal(signal.SIGCHLD, self.handleSIGCHLD) 152 signal.signal(signal.SIGCHLD, self.handleSIGCHLD)
140 153
141 launch_cmd = 'runqemu snapshot %s ' % runqemuparams
142 if self.use_kvm:
143 logger.info('Using kvm for runqemu')
144 launch_cmd += 'kvm '
145 else:
146 logger.info('Not using kvm for runqemu')
147 launch_cmd += 'tcpserial=%s %s %s %s' % (self.serverport, self.machine, self.rootfs, self.qemuparams)
148 logger.info('launchcmd=%s'%(launch_cmd)) 154 logger.info('launchcmd=%s'%(launch_cmd))
149 155
150 # FIXME: We pass in stdin=subprocess.PIPE here to work around stty 156 # FIXME: We pass in stdin=subprocess.PIPE here to work around stty