Index: modules/simpletest/tests/common.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/common.test,v
retrieving revision 1.96
diff -u -r1.96 common.test
--- modules/simpletest/tests/common.test	10 Dec 2009 15:39:43 -0000	1.96
+++ modules/simpletest/tests/common.test	11 Dec 2009 00:49:50 -0000
@@ -1545,6 +1545,13 @@
     }
   }
 
+  function testFatalErrorReporting() {
+    $this->collectedErrors = array();
+    $this->drupalGet('error-test/generate-fatal-with-report');
+    // TODO: implement error collection for fatal errors.
+    //$this->assertEqual(count($this->collectedErrors), 1, t('One fatal error was collected'));
+  }
+
   protected function error($message = '', $group = 'Other', array $caller = NULL) {
     // This function overiddes DrupalWebTestCase::error(). We collect an error...
     $this->collectedErrors[] = array(
Index: modules/simpletest/tests/error_test.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/error_test.module,v
retrieving revision 1.5
diff -u -r1.5 error_test.module
--- modules/simpletest/tests/error_test.module	4 Dec 2009 16:49:47 -0000	1.5
+++ modules/simpletest/tests/error_test.module	11 Dec 2009 00:49:50 -0000
@@ -18,6 +18,19 @@
     'access callback' => TRUE,
     'type' => MENU_CALLBACK,
   );
+  $items['error-test/generate-fatal'] = array(
+    'title' => 'Generate fatal error',
+    'page callback' => 'error_test_generate_fatal',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+  );
+  $items['error-test/generate-fatal-with-report'] = array(
+    'title' => 'Generate fatal error with SimpleTest reporting',
+    'page callback' => 'error_test_generate_fatal',
+    'page arguments' => array(TRUE),
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+  );
   $items['error-test/trigger-exception'] = array(
     'title' => 'Trigger an exception',
     'page callback' => 'error_test_trigger_exception',
@@ -64,3 +77,14 @@
   define('SIMPLETEST_COLLECT_ERRORS', FALSE);
   db_query('SELECT * FROM bananas_are_awesome');
 }
+
+/**
+ * Trigger a fatal error to test if it is handled properly.
+ */
+function error_test_generate_fatal($collect_errors = FALSE) {
+  // Tell Drupal error reporter to send errors to Simpletest or not.
+  define('SIMPLETEST_COLLECT_ERRORS', $collect_errors);
+  // Call an obviously undefined function.
+  this_will_trigger_a_fatal_error();
+  return "";
+}
