Port r71408 to py3k: issue 5665, add more pickling tests.
diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py
index 65a7adc..bb681bf 100644
--- a/Lib/test/test_pickle.py
+++ b/Lib/test/test_pickle.py
@@ -6,6 +6,7 @@
 from test.pickletester import AbstractPickleTests
 from test.pickletester import AbstractPickleModuleTests
 from test.pickletester import AbstractPersistentPicklerTests
+from test.pickletester import AbstractPicklerUnpicklerObjectTests
 
 try:
     import _pickle
@@ -60,6 +61,12 @@
         return u.load()
 
 
+class PyPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+
+    pickler_class = pickle._Pickler
+    unpickler_class = pickle._Unpickler
+
+
 if has_c_implementation:
     class CPicklerTests(PyPicklerTests):
         pickler = _pickle.Pickler
@@ -69,11 +76,26 @@
         pickler = _pickle.Pickler
         unpickler = _pickle.Unpickler
 
+    class CDumpPickle_LoadPickle(PyPicklerTests):
+        pickler = _pickle.Pickler
+        unpickler = pickle._Unpickler
+
+    class DumpPickle_CLoadPickle(PyPicklerTests):
+        pickler = pickle._Pickler
+        unpickler = _pickle.Unpickler
+
+    class CPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+        pickler_class = _pickle.Pickler
+        unpickler_class = _pickle.Unpickler
+
 
 def test_main():
     tests = [PickleTests, PyPicklerTests, PyPersPicklerTests]
     if has_c_implementation:
-        tests.extend([CPicklerTests, CPersPicklerTests])
+        tests.extend([CPicklerTests, CPersPicklerTests,
+                      CDumpPickle_LoadPickle, DumpPickle_CLoadPickle,
+                      PyPicklerUnpicklerObjectTests,
+                      CPicklerUnpicklerObjectTests])
     support.run_unittest(*tests)
     support.run_doctest(pickle)