mirror of
https://git.yoctoproject.org/poky
synced 2026-02-13 12:13:02 +01:00
It is possible to call exported tests with --target-ip set to ":22" where IP address is not set at all. Detect this case and fail the test instead of calling ping without an IP address. (From OE-Core rev: 17c995c53775b8cee279ca4ced916092067e1195) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
#
|
|
# Copyright OpenEmbedded Contributors
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
from subprocess import Popen, PIPE
|
|
from time import sleep
|
|
|
|
from oeqa.runtime.case import OERuntimeTestCase
|
|
from oeqa.core.decorator.oetimeout import OETimeout
|
|
from oeqa.core.exception import OEQATimeoutError
|
|
|
|
class PingTest(OERuntimeTestCase):
|
|
|
|
@OETimeout(30)
|
|
def test_ping(self):
|
|
output = ''
|
|
count = 0
|
|
self.assertNotEqual(len(self.target.ip), 0, msg="No target IP address set")
|
|
try:
|
|
while count < 5:
|
|
cmd = 'ping -c 1 %s' % self.target.ip
|
|
proc = Popen(cmd, shell=True, stdout=PIPE)
|
|
output += proc.communicate()[0].decode('utf-8')
|
|
if proc.poll() == 0:
|
|
count += 1
|
|
else:
|
|
count = 0
|
|
sleep(1)
|
|
except OEQATimeoutError:
|
|
self.fail("Ping timeout error for address %s, count %s, output: %s" % (self.target.ip, count, output))
|
|
msg = ('Expected 5 consecutive, got %d.\n'
|
|
'ping output is:\n%s' % (count,output))
|
|
self.assertEqual(count, 5, msg = msg)
|