2013-11-24 14:32:52 +01:00
|
|
|
# Testing utilities
|
2015-01-07 12:41:31 +01:00
|
|
|
# Copyright (c) 2013-2015, Jouni Malinen <j@w1.fi>
|
2013-11-24 14:32:52 +01:00
|
|
|
#
|
|
|
|
# This software may be distributed under the terms of the BSD license.
|
|
|
|
# See README for more details.
|
|
|
|
|
|
|
|
def get_ifnames():
|
|
|
|
ifnames = []
|
|
|
|
with open("/proc/net/dev", "r") as f:
|
|
|
|
lines = f.readlines()
|
|
|
|
for l in lines:
|
|
|
|
val = l.split(':', 1)
|
|
|
|
if len(val) == 2:
|
|
|
|
ifnames.append(val[0].strip(' '))
|
|
|
|
return ifnames
|
2015-01-07 12:41:31 +01:00
|
|
|
|
|
|
|
class HwsimSkip(Exception):
|
|
|
|
def __init__(self, reason):
|
|
|
|
self.reason = reason
|
|
|
|
def __str__(self):
|
|
|
|
return self.reason
|
2015-01-05 21:00:22 +01:00
|
|
|
|
|
|
|
class alloc_fail(object):
|
|
|
|
def __init__(self, dev, count, funcs):
|
|
|
|
self._dev = dev
|
|
|
|
self._count = count
|
|
|
|
self._funcs = funcs
|
|
|
|
def __enter__(self):
|
|
|
|
cmd = "TEST_ALLOC_FAIL %d:%s" % (self._count, self._funcs)
|
|
|
|
if "OK" not in self._dev.request(cmd):
|
|
|
|
raise HwsimSkip("TEST_ALLOC_FAIL not supported")
|
|
|
|
def __exit__(self, type, value, traceback):
|
|
|
|
if type is None:
|
|
|
|
if self._dev.request("GET_ALLOC_FAIL") != "0:%s" % self._funcs:
|
|
|
|
raise Exception("Allocation failure did not trigger")
|
2015-03-02 15:30:13 +01:00
|
|
|
|
|
|
|
def require_under_vm():
|
|
|
|
with open('/proc/1/cmdline', 'r') as f:
|
|
|
|
cmd = f.read()
|
|
|
|
if "inside.sh" not in cmd:
|
|
|
|
raise HwsimSkip("Not running under VM")
|