diff --git a/py_gen/tests/of11.py b/py_gen/tests/of11.py
index c36e0f5..51514ce 100644
--- a/py_gen/tests/of11.py
+++ b/py_gen/tests/of11.py
@@ -108,15 +108,6 @@
 
     def test_show(self):
         expected_failures = [
-            ofp.common.flow_stats_entry,
-            ofp.message.aggregate_stats_request,
-            ofp.message.flow_add,
-            ofp.message.flow_delete,
-            ofp.message.flow_delete_strict,
-            ofp.message.flow_modify,
-            ofp.message.flow_modify_strict,
-            ofp.message.flow_removed,
-            ofp.message.flow_stats_request,
         ]
         for klass in self.klasses:
             def fn():
diff --git a/py_gen/tests/of12.py b/py_gen/tests/of12.py
index 2f144b5..3b0aefb 100644
--- a/py_gen/tests/of12.py
+++ b/py_gen/tests/of12.py
@@ -56,6 +56,21 @@
         self.assertTrue(hasattr(loxi.of12, "message"))
         self.assertTrue(hasattr(loxi.of12, "oxm"))
 
+class TestCommon(unittest.TestCase):
+    sample_empty_match_buf = ''.join([
+        '\x00\x01', # type
+        '\x00\x04', # length
+        '\x00\x00\x00\x00', # padding
+    ])
+
+    def test_empty_match_pack(self):
+        obj = ofp.match()
+        self.assertEquals(self.sample_empty_match_buf, obj.pack())
+
+    def test_empty_match_unpack(self):
+        obj = ofp.match.unpack(self.sample_empty_match_buf)
+        self.assertEquals(len(obj.oxm_list), 0)
+
 class TestOXM(unittest.TestCase):
     def test_oxm_in_phy_port_pack(self):
         import loxi.of12 as ofp
@@ -117,16 +132,12 @@
             ofp.common.instruction_header,
             ofp.common.instruction_write_actions,
             ofp.common.instruction_write_metadata,
-            ofp.common.match_v3,
             ofp.common.table_stats_entry,
-            ofp.message.aggregate_stats_request,
             ofp.message.flow_add,
             ofp.message.flow_delete,
             ofp.message.flow_delete_strict,
             ofp.message.flow_modify,
             ofp.message.flow_modify_strict,
-            ofp.message.flow_removed,
-            ofp.message.flow_stats_request,
             ofp.message.group_desc_stats_reply,
             ofp.message.group_mod,
             ofp.message.group_stats_reply,
@@ -146,17 +157,7 @@
 
     def test_show(self):
         expected_failures = [
-            ofp.common.flow_stats_entry,
             ofp.common.table_stats_entry,
-            ofp.message.aggregate_stats_request,
-            ofp.message.flow_add,
-            ofp.message.flow_delete,
-            ofp.message.flow_delete_strict,
-            ofp.message.flow_modify,
-            ofp.message.flow_modify_strict,
-            ofp.message.flow_removed,
-            ofp.message.flow_stats_request,
-            ofp.message.packet_in,
         ]
         for klass in self.klasses:
             def fn():
diff --git a/py_gen/tests/of13.py b/py_gen/tests/of13.py
index 6be63a4..915bbe8 100644
--- a/py_gen/tests/of13.py
+++ b/py_gen/tests/of13.py
@@ -170,7 +170,6 @@
             ofp.common.instruction_meter,
             ofp.common.instruction_write_actions,
             ofp.common.instruction_write_metadata,
-            ofp.common.match_v3,
             ofp.common.meter_band,
             ofp.common.meter_band_drop,
             ofp.common.meter_band_dscp_remark,
@@ -193,14 +192,11 @@
             ofp.common.table_feature_prop_write_actions_miss,
             ofp.common.table_feature_prop_write_setfield,
             ofp.common.table_feature_prop_write_setfield_miss,
-            ofp.message.aggregate_stats_request,
             ofp.message.flow_add,
             ofp.message.flow_delete,
             ofp.message.flow_delete_strict,
             ofp.message.flow_modify,
             ofp.message.flow_modify_strict,
-            ofp.message.flow_removed,
-            ofp.message.flow_stats_request,
             ofp.message.group_desc_stats_reply,
             ofp.message.group_mod,
             ofp.message.group_stats_reply,
