2016-10-26 15:20:39 +02:00

71 lines
3.4 KiB
Python
Executable File

#!/usr/bin/env python3
# Copyright (C) 2016 Kaspar Schleiser <kaspar@schleiser.de>
#
# This file is subject to the terms and conditions of the GNU Lesser
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.
import os
import sys
from datetime import datetime
sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
import testrunner
class InvalidTimeout(Exception):
pass
def testfunc(child):
child.expect_exact(u"Calling test_sock_ip_create__EAFNOSUPPORT()")
child.expect_exact(u"Calling test_sock_ip_create__EINVAL_addr()")
child.expect_exact(u"Calling test_sock_ip_create__EINVAL_netif()")
child.expect_exact(u"Calling test_sock_ip_create__no_endpoints()")
child.expect_exact(u"Calling test_sock_ip_create__only_local()")
child.expect_exact(u"Calling test_sock_ip_create__only_local_reuse_ep()")
child.expect_exact(u"Calling test_sock_ip_create__only_remote()")
child.expect_exact(u"Calling test_sock_ip_create__full()")
child.expect_exact(u"Calling test_sock_ip_recv__EADDRNOTAVAIL()")
child.expect_exact(u"Calling test_sock_ip_recv__ENOBUFS()")
child.expect_exact(u"Calling test_sock_ip_recv__EPROTO()")
child.expect_exact(u"Calling test_sock_ip_recv__ETIMEDOUT()")
child.match # get to ensure program reached that point
start = datetime.now()
child.expect_exact(u" * Calling sock_ip_recv()")
child.expect(u" \\* \\(timed out with timeout (\\d+)\\)")
exp_diff = int(child.match.group(1))
stop = datetime.now()
diff = (stop - start)
diff = (diff.seconds * 1000000) + diff.microseconds
# fail within 5% of expected
if diff > (exp_diff + (exp_diff * 0.05)) or \
diff < (exp_diff - (exp_diff * 0.05)):
raise InvalidTimeout("Invalid timeout %d (expected %d)" % (diff, exp_diff));
else:
print("Timed out correctly: %d (expected %d)" % (diff, exp_diff))
child.expect_exact(u"Calling test_sock_ip_recv__socketed()")
child.expect_exact(u"Calling test_sock_ip_recv__socketed_with_remote()")
child.expect_exact(u"Calling test_sock_ip_recv__unsocketed()")
child.expect_exact(u"Calling test_sock_ip_recv__unsocketed_with_remote()")
child.expect_exact(u"Calling test_sock_ip_recv__with_timeout()")
child.expect_exact(u"Calling test_sock_ip_send__EAFNOSUPPORT()")
child.expect_exact(u"Calling test_sock_ip_send__EINVAL_addr()")
child.expect_exact(u"Calling test_sock_ip_send__EINVAL_netif()")
child.expect_exact(u"Calling test_sock_ip_send__ENOTCONN()")
child.expect_exact(u"Calling test_sock_ip_send__socketed_no_local_no_netif()")
child.expect_exact(u"Calling test_sock_ip_send__socketed_no_netif()")
child.expect_exact(u"Calling test_sock_ip_send__socketed_no_local()")
child.expect_exact(u"Calling test_sock_ip_send__socketed()")
child.expect_exact(u"Calling test_sock_ip_send__socketed_other_remote()")
child.expect_exact(u"Calling test_sock_ip_send__unsocketed_no_local_no_netif()")
child.expect_exact(u"Calling test_sock_ip_send__unsocketed_no_netif()")
child.expect_exact(u"Calling test_sock_ip_send__unsocketed_no_local()")
child.expect_exact(u"Calling test_sock_ip_send__unsocketed()")
child.expect_exact(u"Calling test_sock_ip_send__no_sock_no_netif()")
child.expect_exact(u"Calling test_sock_ip_send__no_sock()")
child.expect_exact(u"ALL TESTS SUCCESSFUL")
if __name__ == "__main__":
sys.exit(testrunner.run(testfunc))