diff options
author | Dries Buytaert <dries@buytaert.net> | 2008-11-26 18:56:16 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2008-11-26 18:56:16 +0000 |
commit | 74f2efd561ed37512456be6afaf7f00a7e5eea44 (patch) | |
tree | aa9db2ea5594682b0a6bbe910fdb07f8f63de700 /modules | |
parent | fd67735fa2eb1bf2ebe9e392ef6de4c84e1f730d (diff) | |
download | brdo-74f2efd561ed37512456be6afaf7f00a7e5eea44.tar.gz brdo-74f2efd561ed37512456be6afaf7f00a7e5eea44.tar.bz2 |
- Patch #314870 by drewish: removed some code that accidentically got committed with api.php and that broke the tests.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/system/system.module | 11 | ||||
-rw-r--r-- | modules/system/system.test | 35 |
2 files changed, 7 insertions, 39 deletions
diff --git a/modules/system/system.module b/modules/system/system.module index dcc4d44ba..a2af7f54d 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -1508,15 +1508,18 @@ function system_cron() { db_query('DELETE FROM {batch} WHERE timestamp < %d', REQUEST_TIME - 864000); // Remove temporary files that are older than DRUPAL_MAXIMUM_TEMP_FILE_AGE. - $result = db_query('SELECT fid FROM {files} WHERE status & :permanent != :permanent AND timestamp < :timestamp', array(':permanent' => FILE_STATUS_PERMANENT, ':timestamp' => REQUEST_TIME - DRUPAL_MAXIMUM_TEMP_FILE_AGE)); - foreach ($result as $row) { - if ($file = file_load($row->fid)) { + $result = db_query('SELECT * FROM {files} WHERE status = %d and timestamp < %d', FILE_STATUS_TEMPORARY, REQUEST_TIME - DRUPAL_MAXIMUM_TEMP_FILE_AGE); + while ($file = db_fetch_object($result)) { + if (file_exists($file->filepath)) { + // If files that exist cannot be deleted, continue so the database remains + // consistent. if (!file_delete($file)) { watchdog('file system', 'Could not delete temporary file "%path" during garbage collection', array('%path' => $file->filepath), WATCHDOG_ERROR); + continue; } } + db_query('DELETE FROM {files} WHERE fid = %d', $file->fid); } - $core = array('cache', 'cache_block', 'cache_filter', 'cache_page', 'cache_form', 'cache_menu'); $cache_tables = array_merge(module_invoke_all('flush_caches'), $core); foreach ($cache_tables as $table) { diff --git a/modules/system/system.test b/modules/system/system.test index 1c6be0701..a88cef457 100644 --- a/modules/system/system.test +++ b/modules/system/system.test @@ -252,41 +252,6 @@ class CronRunTestCase extends DrupalWebTestCase { // Execute cron directly. $this->assertTrue(drupal_cron_run(), t('Cron ran successfully.')); } - - /** - * Ensure that temporary files are removed. - */ - function testTempFileCleanup() { - // Create files for all the possible combinations of age and status. We're - // using UPDATE statments rather than file_save() because it would set the - // timestamp. - - // Temporary file that is older than DRUPAL_MAXIMUM_TEMP_FILE_AGE. - $temp_old = file_save_data(''); - db_query('UPDATE {files} SET status = :status, timestamp = :timestamp WHERE fid = :fid', array(':status' => FILE_STATUS_TEMPORARY, ':timestamp' => 1, ':fid' => $temp_old->fid)); - $this->assertTrue(file_exists($temp_old->filepath), t('Old temp file was created correctly.')); - - // Temporary file that is less than DRUPAL_MAXIMUM_TEMP_FILE_AGE. - $temp_new = file_save_data(''); - db_query('UPDATE {files} SET status = :status WHERE fid = :fid', array(':status' => FILE_STATUS_TEMPORARY, ':fid' => $temp_new->fid)); - $this->assertTrue(file_exists($temp_new->filepath), t('New temp file was created correctly.')); - - // Permanent file that is older than DRUPAL_MAXIMUM_TEMP_FILE_AGE. - $perm_old = file_save_data(''); - db_query('UPDATE {files} SET timestamp = :timestamp WHERE fid = :fid', array(':timestamp' => 1, ':fid' => $perm_old->fid)); - $this->assertTrue(file_exists($perm_old->filepath), t('Old permanent file was created correctly.')); - - // Permanent file that is newer than DRUPAL_MAXIMUM_TEMP_FILE_AGE. - $perm_new = file_save_data(''); - $this->assertTrue(file_exists($perm_new->filepath), t('New permanent file was created correctly.')); - - // Run cron and then ensure that only the old, temp file was deleted. - $this->assertTrue(drupal_cron_run(), t('Cron ran successfully.')); - $this->assertFalse(file_exists($temp_old->filepath), t('Old temp file was correctly removed.')); - $this->assertTrue(file_exists($temp_new->filepath), t('New temp file was correctly ignored.')); - $this->assertTrue(file_exists($perm_old->filepath), t('Old permanent file was correctly ignored.')); - $this->assertTrue(file_exists($perm_new->filepath), t('New permanent file was correctly ignored.')); - } } class AdminOverviewTestCase extends DrupalWebTestCase { |