Instead of printing the exception when you interrupt a test (Ctrl-C),
print the status so far and suppress printing the exception (but still exit).
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 1734eba..e7601c8 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -334,7 +334,15 @@
             tracer.runctx('runtest(test, generate, verbose, quiet, testdir)',
                           globals=globals(), locals=vars())
         else:
-            ok = runtest(test, generate, verbose, quiet, testdir, huntrleaks)
+            try:
+                ok = runtest(test, generate, verbose, quiet, testdir,
+                             huntrleaks)
+            except KeyboardInterrupt:
+                # print a newline separate from the ^C
+                print
+                break
+            except:
+                raise
             if ok > 0:
                 good.append(test)
             elif ok == 0: