]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Optimize process memory reading using join
authorBenjamin Berg <benjamin.berg@intel.com>
Mon, 25 Dec 2023 10:21:06 +0000 (12:21 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 13 Jan 2024 18:08:57 +0000 (20:08 +0200)
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>
tests/hwsim/test_ap_psk.py

index ab76372578b4962cb3d02302a9a5abe93c2435f9..d175259b53ab4e2e7b5d073b39b2a47c345cf485 100644 (file)
@@ -2625,7 +2625,7 @@ def find_wpas_process(dev):
     raise Exception("Could not find wpa_supplicant process")
 
 def read_process_memory(pid, key=None):
-    buf = bytes()
+    buf = []
     logger.info("Reading process memory (pid=%d)" % pid)
     with open('/proc/%d/maps' % pid, 'r') as maps, \
          open('/proc/%d/mem' % pid, 'rb') as mem:
@@ -2651,11 +2651,11 @@ def read_process_memory(pid, key=None):
             except OSError as e:
                 logger.info("Could not read mem: start=%d end=%d: %s" % (start, end, str(e)))
                 continue
-            buf += data
+            buf.append(data)
             if key and key in data:
                 logger.info("Key found in " + l)
     logger.info("Total process memory read: %d bytes" % len(buf))
-    return buf
+    return b''.join(buf)
 
 def verify_not_present(buf, key, fname, keyname):
     pos = buf.find(key)