Index: modules/simpletest/simpletest.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/simpletest.module,v
retrieving revision 1.7
diff -u -r1.7 simpletest.module
--- modules/simpletest/simpletest.module	16 Jul 2008 21:59:27 -0000	1.7
+++ modules/simpletest/simpletest.module	8 Aug 2008 17:53:17 -0000
@@ -63,7 +63,7 @@
   $tests = simpletest_categorize_tests($uncategorized_tests);
   if (isset($_SESSION['test_id'])) {
     $results = db_query("SELECT * FROM {simpletest} WHERE test_id = %d ORDER BY test_class, message_id", $_SESSION['test_id']);
-    unset($_SESSION['test_id']);
+
     $summary = array(
       '#theme' => 'simpletest_result_summary',
       '#pass' => 0,
@@ -113,6 +113,14 @@
       }
       unset($element);
     }
+
+    // Clear test results.
+    if (variable_get('simpletest_clear_results', TRUE)) {
+      db_query('DELETE FROM {simpletest} WHERE test_id = %d', $_SESSION['test_id']);
+      db_query('DELETE FROM {simpletest_test_id} WHERE test_id = %d', $_SESSION['test_id']);
+    }
+    unset($_SESSION['test_id']);
+
     $all_ok = TRUE;
     foreach ($form['results'] as $group => &$elements) {
       $group_ok = TRUE;
@@ -466,6 +474,7 @@
 function simpletest_clean_environment() {
   simpletest_clean_database();
   simpletest_clean_temporary_directories();
+  simpletest_clean_results_table();
 }
 
 /**
@@ -556,3 +565,18 @@
   }
   rmdir($path);
 }
+
+/**
+ * Clear the test results tables.
+ */
+function simpletest_clean_results_table() {
+  if (variable_get('simpletest_clear_results', TRUE)) {
+    $count = db_result(db_query('SELECT COUNT(test_id) FROM {simpletest_test_id}'));
+
+    // Clear test results.
+    db_query('DELETE FROM {simpletest}');
+    db_query('DELETE FROM {simpletest_test_id}');
+
+    drupal_set_message(t('Removed @count test results.', array('@count' => $count)));
+  }
+}
