kernel_BootMessagesServer: initial add of new test

This tests verifies that there are no new kernel dmesg warnings.

BUG=12280
TEST=Verified PASS and FAIL.

Change-Id: Iff2b1f6de7ec435928170393ec85e7b8b9201b23

Review URL: http://codereview.chromium.org/6544018
diff --git a/client/bin/site_utils.py b/client/bin/site_utils.py
index 8eb52f4..b6cc26f 100644
--- a/client/bin/site_utils.py
+++ b/client/bin/site_utils.py
@@ -61,3 +61,28 @@
         serial = open('/dev/ttyUSB0', 'w')
         serial.write("savevm %s\r\n" % checkpoint)
         logging.info('Done saving VM state "%s"' % checkpoint)
+
+
+def check_raw_dmesg(dmesg, message_level, whitelist):
+    """Checks dmesg for unexpected warnings.
+
+    This function parses dmesg for message with message_level <= message_level
+    which do not appear in the whitelist.
+
+    Arguments:
+      dmesg - string containing raw dmesg buffer
+      message_level - minimum message priority to check
+      whitelist - messages to ignore
+
+    Returns:
+      List of unexpected warnings
+    """
+
+    unexpected = []
+    for line in dmesg.splitlines():
+        if int(line[1]) <= message_level:
+            if not 'used greatest stack depth' in line:
+                stripped_line = line.split('] ', 1)[1]
+                if not stripped_line in whitelist:
+                    unexpected.append(stripped_line)
+    return unexpected