diff --git a/py_gen/tests/generic_util.py b/py_gen/tests/generic_util.py
new file mode 100644
index 0000000..81ecee2
--- /dev/null
+++ b/py_gen/tests/generic_util.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# Copyright 2013, Big Switch Networks, Inc.
+#
+# LoxiGen is licensed under the Eclipse Public License, version 1.0 (EPL), with
+# the following special exception:
+#
+# LOXI Exception
+#
+# As a special exception to the terms of the EPL, you may distribute libraries
+# generated by LoxiGen (LoxiGen Libraries) under the terms of your choice, provided
+# that copyright and licensing notices generated by LoxiGen are not altered or removed
+# from the LoxiGen Libraries and the notice provided below is (i) included in
+# the LoxiGen Libraries, if distributed in source code form and (ii) included in any
+# documentation for the LoxiGen Libraries, if distributed in binary form.
+#
+# Notice: "Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler."
+#
+# You may not use this file except in compliance with the EPL or LOXI Exception. You may obtain
+# a copy of the EPL at:
+#
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# EPL for the specific language governing permissions and limitations
+# under the EPL.
+import unittest
+
+try:
+    import loxi
+    import loxi.generic_util
+except ImportError:
+    exit("loxi package not found. Try setting PYTHONPATH.")
+
+class TestUnpackArray(unittest.TestCase):
+    def test_simple(self):
+        a = loxi.generic_util.unpack_array(str, 3, "abcdefghi")
+        self.assertEquals(['abc', 'def', 'ghi'], a)
+
+        with self.assertRaisesRegexp(loxi.ProtocolError, "invalid array length"):
+            loxi.generic_util.unpack_array(str, 3, "abcdefgh")
+
+class TestUnpackList(unittest.TestCase):
+    def test_simple(self):
+        a = loxi.generic_util.unpack_list(str, '!B', "\x04abc\x03de\x02f\x01")
+        self.assertEquals(['\x04abc', '\x03de', '\x02f', '\x01'], a)
+
+if __name__ == '__main__':
+    unittest.main()
