tests: Optimize process memory reading using join
Appending to a bytes() object is rather inefficient. As such, avoid doing so by first creating a list and then joining all buffers together at the end only. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
This commit is contained in:
parent
a1d7a9e3b7
commit
dc766bb57e
1 changed files with 3 additions and 3 deletions
|
@ -2625,7 +2625,7 @@ def find_wpas_process(dev):
|
||||||
raise Exception("Could not find wpa_supplicant process")
|
raise Exception("Could not find wpa_supplicant process")
|
||||||
|
|
||||||
def read_process_memory(pid, key=None):
|
def read_process_memory(pid, key=None):
|
||||||
buf = bytes()
|
buf = []
|
||||||
logger.info("Reading process memory (pid=%d)" % pid)
|
logger.info("Reading process memory (pid=%d)" % pid)
|
||||||
with open('/proc/%d/maps' % pid, 'r') as maps, \
|
with open('/proc/%d/maps' % pid, 'r') as maps, \
|
||||||
open('/proc/%d/mem' % pid, 'rb') as mem:
|
open('/proc/%d/mem' % pid, 'rb') as mem:
|
||||||
|
@ -2651,11 +2651,11 @@ def read_process_memory(pid, key=None):
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
logger.info("Could not read mem: start=%d end=%d: %s" % (start, end, str(e)))
|
logger.info("Could not read mem: start=%d end=%d: %s" % (start, end, str(e)))
|
||||||
continue
|
continue
|
||||||
buf += data
|
buf.append(data)
|
||||||
if key and key in data:
|
if key and key in data:
|
||||||
logger.info("Key found in " + l)
|
logger.info("Key found in " + l)
|
||||||
logger.info("Total process memory read: %d bytes" % len(buf))
|
logger.info("Total process memory read: %d bytes" % len(buf))
|
||||||
return buf
|
return b''.join(buf)
|
||||||
|
|
||||||
def verify_not_present(buf, key, fname, keyname):
|
def verify_not_present(buf, key, fname, keyname):
|
||||||
pos = buf.find(key)
|
pos = buf.find(key)
|
||||||
|
|
Loading…
Add table
Reference in a new issue