diff --git a/Lib/test/output/test_charmapcodec b/Lib/test/output/test_charmapcodec
deleted file mode 100644
index beeebd3..0000000
--- a/Lib/test/output/test_charmapcodec
+++ /dev/null
@@ -1,16 +0,0 @@
-test_charmapcodec
-abc == abc: OK
-abcdef == abcdef: OK
-defabc == defabc: OK
-dabcf == dabcf: OK
-dabcfabc == dabcfabc: OK
-abc == abc: OK
-abcdef == abcdef: OK
-defabc == defabc: OK
-dabcf == dabcf: OK
-dabcfabc == dabcfabc: OK
-def == def: OK
-def == def: OK
-df == df: OK
-df == df: OK
-\001 maps to undefined: OK
diff --git a/Lib/test/test_charmapcodec.py b/Lib/test/test_charmapcodec.py
index af7d434..337d6e5 100644
--- a/Lib/test/test_charmapcodec.py
+++ b/Lib/test/test_charmapcodec.py
@@ -9,35 +9,39 @@
 
 """#"
 
-def check(a, b):
-    if a != b:
-        print '*** check failed: %s != %s' % (repr(a), repr(b))
-    else:
-        print '%s == %s: OK' % (a, b)
+import test.test_support, unittest
 
 # test codec's full path name (see test/testcodec.py)
 codecname = 'test.testcodec'
 
-check(unicode('abc', codecname), u'abc')
-check(unicode('xdef', codecname), u'abcdef')
-check(unicode('defx', codecname), u'defabc')
-check(unicode('dxf', codecname), u'dabcf')
-check(unicode('dxfx', codecname), u'dabcfabc')
+class CharmapCodecTest(unittest.TestCase):
+    def test_constructorx(self):
+        self.assertEquals(unicode('abc', codecname), u'abc')
+        self.assertEquals(unicode('xdef', codecname), u'abcdef')
+        self.assertEquals(unicode('defx', codecname), u'defabc')
+        self.assertEquals(unicode('dxf', codecname), u'dabcf')
+        self.assertEquals(unicode('dxfx', codecname), u'dabcfabc')
 
-check(u'abc'.encode(codecname), 'abc')
-check(u'xdef'.encode(codecname), 'abcdef')
-check(u'defx'.encode(codecname), 'defabc')
-check(u'dxf'.encode(codecname), 'dabcf')
-check(u'dxfx'.encode(codecname), 'dabcfabc')
+    def test_encodex(self):
+        self.assertEquals(u'abc'.encode(codecname), 'abc')
+        self.assertEquals(u'xdef'.encode(codecname), 'abcdef')
+        self.assertEquals(u'defx'.encode(codecname), 'defabc')
+        self.assertEquals(u'dxf'.encode(codecname), 'dabcf')
+        self.assertEquals(u'dxfx'.encode(codecname), 'dabcfabc')
 
-check(unicode('ydef', codecname), u'def')
-check(unicode('defy', codecname), u'def')
-check(unicode('dyf', codecname), u'df')
-check(unicode('dyfy', codecname), u'df')
+    def test_constructory(self):
+        self.assertEquals(unicode('ydef', codecname), u'def')
+        self.assertEquals(unicode('defy', codecname), u'def')
+        self.assertEquals(unicode('dyf', codecname), u'df')
+        self.assertEquals(unicode('dyfy', codecname), u'df')
 
-try:
-    unicode('abc\001', codecname)
-except UnicodeError:
-    print '\\001 maps to undefined: OK'
-else:
-    print '*** check failed: \\001 does not map to undefined'
+    def test_maptoundefined(self):
+        self.assertRaises(UnicodeError, unicode, 'abc\001', codecname)
+
+def test_main():
+    suite = unittest.TestSuite()
+    suite.addTest(unittest.makeSuite(CharmapCodecTest))
+    test.test_support.run_suite(suite)
+
+if __name__ == "__main__":
+    test_main()
