diff --git a/tools/test/scenarios/bin/onos-find-and-check-map b/tools/test/scenarios/bin/onos-find-and-check-map
new file mode 100755
index 0000000..b419ca1
--- /dev/null
+++ b/tools/test/scenarios/bin/onos-find-and-check-map
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+
+# -----------------------------------------------------------------------------
+# Invokes the ONOS CLI and looks for a 'maps' entry with the given name
+# -----------------------------------------------------------------------------
+
+import subprocess
+import json
+import sys
+
+if len(sys.argv) != 4:
+    print "usage: onos-find-and-check-map onos-node map-name should-be-zero"
+    sys.exit(1)
+
+node = sys.argv[1]
+mapName = sys.argv[2]
+shouldBeZero = sys.argv[3]
+
+cli = subprocess.Popen(["onos", node, "maps", "-j"], stdout=subprocess.PIPE)
+json = json.loads(cli.communicate()[0])
+
+for map in json:
+    foundMapName = map["name"]
+    foundMapSize = map["size"]
+
+    print foundMapName
+    print foundMapSize
+
+    if foundMapName == mapName:
+        if (shouldBeZero == 'yes' and foundMapSize == 0) or \
+           (shouldBeZero != 'yes' and foundMapSize != 0):
+            sys.exit(0)
+        else:
+            sys.exit(1)
+
+sys.exit(1)
diff --git a/tools/test/scenarios/bin/onos-find-map b/tools/test/scenarios/bin/onos-find-map
new file mode 100755
index 0000000..b84b1a1
--- /dev/null
+++ b/tools/test/scenarios/bin/onos-find-map
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# -----------------------------------------------------------------------------
+# Invokes the ONOS CLI and looks for a 'maps' entry with the given name
+# -----------------------------------------------------------------------------
+
+NODE=$1
+MAP=$2
+ID=$3
+
+map_text=`( onos ${NODE} onos:maps ) | grep ${MAP}`
+
+if [ $? -ne 0 ]; then
+    exit 1
+fi
+
+map_size=`echo ${map_text} | sed s#^.*size=##`
+echo "@stc ${ID}Size=${map_size}"
