summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2008-11-26 18:56:16 +0000
committerDries Buytaert <dries@buytaert.net>2008-11-26 18:56:16 +0000
commit74f2efd561ed37512456be6afaf7f00a7e5eea44 (patch)
treeaa9db2ea5594682b0a6bbe910fdb07f8f63de700 /modules
parentfd67735fa2eb1bf2ebe9e392ef6de4c84e1f730d (diff)
downloadbrdo-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.module11
-rw-r--r--modules/system/system.test35
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 {