diff --git a/core/modules/simpletest/tests/update_script_test.module b/core/modules/simpletest/tests/update_script_test.module
index b3d9bbc..4db8d97 100644
--- a/core/modules/simpletest/tests/update_script_test.module
+++ b/core/modules/simpletest/tests/update_script_test.module
@@ -1 +1,18 @@
 <?php
+
+/**
+ * @file
+ * This file provides testing functionality for update.php.
+ */
+
+/**
+ * Implements hook_flush_caches().
+ *
+ * This sets a message to confirm that all caches are cleared whenever
+ * update.php completes.
+ *
+ * @see UpdateScriptFunctionalTest::testRequirements()
+ */
+function update_script_test_flush_caches() {
+  drupal_set_message(t('hook_flush_caches() invoked for update_script_test.module.'));
+}
diff --git a/core/modules/system/system.test b/core/modules/system/system.test
index 6cf203d..e0672c9 100644
--- a/core/modules/system/system.test
+++ b/core/modules/system/system.test
@@ -2137,12 +2137,15 @@ class UpdateScriptFunctionalTest extends DrupalWebTestCase {
     $this->drupalGet($this->update_url, array('external' => TRUE));
     $this->drupalPost(NULL, array(), t('Continue'));
     $this->assertText(t('No pending updates.'), t('End of update process was reached.'));
+    // Confirm that all caches were cleared.
+    $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared when there were no requirements warnings or errors.');
 
     // If there is a requirements warning, we expect it to be initially
     // displayed, but clicking the link to proceed should allow us to go
-    // through the rest of the update process uninterrupted. (First run this
-    // test with pending updates to make sure they can be run successfully;
-    // then try again without pending updates to make sure that works too.)
+    // through the rest of the update process uninterrupted.
+
+    // First, run this test with pending updates to make sure they can be run
+    // successfully.
     variable_set('update_script_test_requirement_type', REQUIREMENT_WARNING);
     drupal_set_installed_schema_version('update_script_test', drupal_get_installed_schema_version('update_script_test') - 1);
     $this->drupalGet($this->update_url, array('external' => TRUE));
@@ -2152,12 +2155,18 @@ class UpdateScriptFunctionalTest extends DrupalWebTestCase {
     $this->drupalPost(NULL, array(), t('Continue'));
     $this->drupalPost(NULL, array(), t('Apply pending updates'));
     $this->assertText(t('The update_script_test_update_8000() update was executed successfully.'), t('End of update process was reached.'));
+    // Confirm that all caches were cleared.
+    $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared after resolving a requirements warning and applying updates.');
+
+    // Now try again without pending updates to make sure that works too.
     $this->drupalGet($this->update_url, array('external' => TRUE));
     $this->assertText('This is a requirements warning provided by the update_script_test module.');
     $this->clickLink('try again');
     $this->assertNoText('This is a requirements warning provided by the update_script_test module.');
     $this->drupalPost(NULL, array(), t('Continue'));
     $this->assertText(t('No pending updates.'), t('End of update process was reached.'));
+    // Confirm that all caches were cleared.
+    $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared after applying updates and re-running the script.');
 
     // If there is a requirements error, it should be displayed even after
     // clicking the link to proceed (since the problem that triggered the error
