Do not print additional shutdown message when gc.DEBUG_SAVEALL is set
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index fba9583..1ba5a23 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -482,8 +482,7 @@
             x.x = x
             x.y = X('second')
             del x
-            if %d:
-                gc.set_debug(gc.DEBUG_UNCOLLECTABLE)
+            gc.set_debug(%s)
         """
         def run_command(code):
             p = subprocess.Popen([sys.executable, "-c", code],
@@ -494,13 +493,19 @@
             self.assertEqual(stdout.strip(), b"")
             return strip_python_stderr(stderr)
 
-        stderr = run_command(code % 0)
+        stderr = run_command(code % "0")
         self.assertIn(b"gc: 2 uncollectable objects at shutdown", stderr)
         self.assertNotIn(b"[<X 'first'>, <X 'second'>]", stderr)
         # With DEBUG_UNCOLLECTABLE, the garbage list gets printed
-        stderr = run_command(code % 1)
+        stderr = run_command(code % "gc.DEBUG_UNCOLLECTABLE")
         self.assertIn(b"gc: 2 uncollectable objects at shutdown", stderr)
         self.assertIn(b"[<X 'first'>, <X 'second'>]", stderr)
+        # With DEBUG_SAVEALL, no additional message should get printed
+        # (because gc.garbage also contains normally reclaimable cyclic
+        # references, and its elements get printed at runtime anyway).
+        stderr = run_command(code % "gc.DEBUG_SAVEALL")
+        self.assertNotIn(b"uncollectable objects at shutdown", stderr)
+
 
 class GCTogglingTests(unittest.TestCase):
     def setUp(self):