Commit: 49a25d28ec9e8d6e7693392e2dba9e7effcfd903 Author: Matt Ficken <v-maf...@microsoft.com> Thu, 12 Sep 2013 15:15:20 -0700 Parents: e11c28677ead6d19e81211ea353c38337bb733ba Branches: master
Link: http://git.php.net/?p=pftt2.git;a=commitdiff;h=49a25d28ec9e8d6e7693392e2dba9e7effcfd903 Log: conf changes Former-commit-id: 17bc5740700d8e3f943a766d866a058c14be6946 Changed paths: D cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll D cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.pdb M conf/app/azure_sdk.groovy M conf/app/drupal.groovy M conf/app/mediawiki.groovy M conf/app/phpbb3.groovy M conf/app/phpmyadmin.groovy M conf/app/semantic_mediawiki.groovy M conf/default.groovy M conf/not/not_opcache_builtin_web.groovy A conf/not/not_wincacheu_builtin_web.groovy A conf/not/not_wincacheu_no_code_cache.groovy M conf/task/code_coverage.groovy M conf/task/code_profile.groovy M conf/task/list_builtin_functions.groovy D conf/task/rctest.groovy D conf/task/rctest1.groovy D conf/task/rctest2.groovy A conf/task/release_test_full.groovy A conf/task/release_test_h1.groovy A conf/task/release_test_h2.groovy M conf/task/snap_test.groovy
diff --git a/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll b/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll deleted file mode 100644 index 93c6788..0000000 Binary files a/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll and /dev/null differ diff --git a/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.pdb b/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.pdb deleted file mode 100644 index 32fbed1..0000000 Binary files a/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.pdb and /dev/null differ diff --git a/conf/app/azure_sdk.groovy b/conf/app/azure_sdk.groovy index 8eaa521..86decb9 100644 --- a/conf/app/azure_sdk.groovy +++ b/conf/app/azure_sdk.groovy @@ -34,6 +34,6 @@ class AzureSDKPhpUnitTestPack extends PhpUnitSourceTestPack { } // end class AzureSDKPhpUnitTestPack -def getPhpUnitSourceTestPack() { +/*def getPhpUnitSourceTestPack() { return new AzureSDKPhpUnitTestPack(); -} +}*/ diff --git a/conf/app/drupal.groovy b/conf/app/drupal.groovy index 92368d6..0a16071 100644 --- a/conf/app/drupal.groovy +++ b/conf/app/drupal.groovy @@ -48,6 +48,6 @@ class DrupalPhpUnitTestPack extends RequiredDatabasePhpUnitSourceTestPack { } // end class DrupalPhpUnitTestPack -def getPhpUnitSourceTestPack() { +/*def getPhpUnitSourceTestPack() { return new DrupalPhpUnitTestPack(); -} +}*/ diff --git a/conf/app/mediawiki.groovy b/conf/app/mediawiki.groovy index 1c61845..aa0af99 100644 --- a/conf/app/mediawiki.groovy +++ b/conf/app/mediawiki.groovy @@ -178,6 +178,6 @@ require_once( "\$IP/includes/installer/CliInstaller.php"); } // end class MediaWikiPhpUnitTestPack -def getPhpUnitSourceTestPack() { +/*def getPhpUnitSourceTestPack() { return new MediaWikiPhpUnitTestPack(); -} +}*/ diff --git a/conf/app/phpbb3.groovy b/conf/app/phpbb3.groovy index 949f557..688b358 100644 --- a/conf/app/phpbb3.groovy +++ b/conf/app/phpbb3.groovy @@ -55,6 +55,6 @@ class PhpBB3PhpUnitTestPack extends RequiredDatabasePhpUnitSourceTestPack { } // end class PhpBB3PhpUnitTestPack -def getPhpUnitSourceTestPack() { +/*def getPhpUnitSourceTestPack() { new PhpBB3PhpUnitTestPack(); -} +}*/ diff --git a/conf/app/phpmyadmin.groovy b/conf/app/phpmyadmin.groovy index 2750e61..2715423 100644 --- a/conf/app/phpmyadmin.groovy +++ b/conf/app/phpmyadmin.groovy @@ -40,6 +40,6 @@ class PhpMyAdminPhpUnitTestPack extends RequiredDatabasePhpUnitSourceTestPack { } // end class PhpMyAdminPhpUnitTestPack -def getPhpUnitSourceTestPack() { +/*def getPhpUnitSourceTestPack() { new PhpMyAdminPhpUnitTestPack(); -} +}*/ diff --git a/conf/app/semantic_mediawiki.groovy b/conf/app/semantic_mediawiki.groovy index 277f838..de5c4ff 100644 --- a/conf/app/semantic_mediawiki.groovy +++ b/conf/app/semantic_mediawiki.groovy @@ -186,6 +186,6 @@ require_once( "\$IP/includes/installer/CliInstaller.php"); } // end class SemanticMediaWikiPhpUnitTestPack -def getPhpUnitSourceTestPack() { +/*def getPhpUnitSourceTestPack() { return new SemanticMediaWikiPhpUnitTestPack(); -} +}*/ diff --git a/conf/default.groovy b/conf/default.groovy index d4231c8..a341040 100644 --- a/conf/default.groovy +++ b/conf/default.groovy @@ -2,6 +2,7 @@ import com.mostc.pftt.scenario.Scenario; /** this file is automatically loaded if no configuration file is specified. + * (if one or more configuration files are specified, this file is not loaded at all) * */ diff --git a/conf/not/not_opcache_builtin_web.groovy b/conf/not/not_opcache_builtin_web.groovy index 16504f3..945702f 100644 --- a/conf/not/not_opcache_builtin_web.groovy +++ b/conf/not/not_opcache_builtin_web.groovy @@ -4,5 +4,54 @@ def describe() { } def notScenarios() { - ['Opcache_Local-FileSystem_Builtin-Web', 'Opcache_SMB-DFS_Builtin-Web', 'Opcache_SMB-CA_Builtin-Web', 'Opcache_SMB-Basic_Builtin-Web', 'Opcache_SMB-Deduplication_Builtin-Web'] + [ + 'Opcache_Local-FileSystem_Builtin-Web', + 'Opcache_SMB-DFS_Builtin-Web', + 'Opcache_SMB-CA_Builtin-Web', + 'Opcache_SMB-Basic_Builtin-Web', + 'Opcache_SMB-Deduplication_Builtin-Web', + + 'Opcache_Local-FileSystem_Builtin-Web_WinCacheU-File-And-User', + 'Opcache_SMB-DFS_Builtin-Web_WinCacheU-File-And-User', + 'Opcache_SMB-CA_Builtin-Web_WinCacheU-File-And-User', + 'Opcache_SMB-Basic_Builtin-Web_WinCacheU-File-And-User', + 'Opcache_SMB-Deduplication_Builtin-Web_WinCacheU-File-And-User', + + 'Opcache_Local-FileSystem_Builtin-Web_WinCacheU-Only-User', + 'Opcache_SMB-DFS_Builtin-Web_WinCacheU-Only-User', + 'Opcache_SMB-CA_Builtin-Web_WinCacheU-Only-User', + 'Opcache_SMB-Basic_Builtin-Web_WinCacheU-Only-User', + 'Opcache_SMB-Deduplication_Builtin-Web_WinCacheU-Only-User', + + 'Opcache_Local-FileSystem_Builtin-Web_WinCacheU-Only-File', + 'Opcache_SMB-DFS_Builtin-Web_WinCacheU-Only-File', + 'Opcache_SMB-CA_Builtin-Web_WinCacheU-Only-File', + 'Opcache_SMB-Basic_Builtin-Web_WinCacheU-Only-File', + 'Opcache_SMB-Deduplication_Builtin-Web_WinCacheU-Only-File', + + + 'Opcache_Local-FileSystem_MySQL-5.6_Builtin-Web', + 'Opcache_SMB-DFS_MySQL-5.6_Builtin-Web', + 'Opcache_SMB-CA_MySQL-5.6_Builtin-Web', + 'Opcache_SMB-Basic_MySQL-5.6_Builtin-Web', + 'Opcache_SMB-Deduplication_MySQL-5.6_Builtin-Web', + + 'Opcache_Local-FileSystem_Builtin-Web_MySQL-5.6_WinCacheU-File-And-User', + 'Opcache_SMB-DFS_Builtin-Web_MySQL-5.6_WinCacheU-File-And-User', + 'Opcache_SMB-CA_Builtin-Web_MySQL-5.6_WinCacheU-File-And-User', + 'Opcache_SMB-Basic_Builtin-Web_MySQL-5.6_WinCacheU-File-And-User', + 'Opcache_SMB-Deduplication_Builtin-Web_MySQL-5.6_WinCacheU-File-And-User', + + 'Opcache_Local-FileSystem_Builtin-Web_MySQL-5.6_WinCacheU-Only-User', + 'Opcache_SMB-DFS_Builtin-Web_MySQL-5.6_WinCacheU-Only-User', + 'Opcache_SMB-CA_Builtin-Web_MySQL-5.6_WinCacheU-Only-User', + 'Opcache_SMB-Basic_Builtin-Web_MySQL-5.6_WinCacheU-Only-User', + 'Opcache_SMB-Deduplication_Builtin-Web_MySQL-5.6_WinCacheU-Only-User', + + 'Opcache_Local-FileSystem_Builtin-Web_MySQL-5.6_WinCacheU-Only-File', + 'Opcache_SMB-DFS_Builtin-Web_MySQL-5.6_WinCacheU-Only-File', + 'Opcache_SMB-CA_Builtin-Web_MySQL-5.6_WinCacheU-Only-File', + 'Opcache_SMB-Basic_Builtin-Web_MySQL-5.6_WinCacheU-Only-File', + 'Opcache_SMB-Deduplication_Builtin-Web_MySQL-5.6_WinCacheU-Only-File' + ] } diff --git a/conf/not/not_wincacheu_builtin_web.groovy b/conf/not/not_wincacheu_builtin_web.groovy new file mode 100644 index 0000000..dd5fe5f --- /dev/null +++ b/conf/not/not_wincacheu_builtin_web.groovy @@ -0,0 +1,33 @@ + +def describe() { + "Don't run WinCacheU with Builtin-Web" +} + +def notScenarios() { + [ + 'Local-FileSystem_MySQL-5.6_Builtin-Web_WinCacheU-File-And-User', + 'Local-FileSystem_MySQL-5.6_Builtin-Web_WinCacheU-Only-File', + 'Local-FileSystem_MySQL-5.6_Builtin-Web_WinCacheU-Only-User', + 'SMB-DFS_MySQL-5.6_Builtin-Web_WinCacheU-File-And-User', + 'SMB-DFS_MySQL-5.6_Builtin-Web_WinCacheU-Only-File', + 'SMB-DFS_MySQL-5.6_Builtin-Web_WinCacheU-Only-User', + 'SMB-Basic_MySQL-5.6_Builtin-Web_WinCacheU-File-And-User', + 'SMB-Basic_MySQL-5.6_Builtin-Web_WinCacheU-Only-File', + 'SMB-Basic_MySQL-5.6_Builtin-Web_WinCacheU-Only-User', + 'SMB-Deduplication_MySQL-5.6_Builtin-Web_WinCacheU-File-And-User', + 'SMB-Deduplication_MySQL-5.6_Builtin-Web_WinCacheU-Only-File', + 'SMB-Deduplication_MySQL-5.6_Builtin-Web_WinCacheU-Only-User', + 'Local-FileSystem_Builtin-Web_WinCacheU-File-And-User', + 'Local-FileSystem_Builtin-Web_WinCacheU-Only-File', + 'Local-FileSystem_Builtin-Web_WinCacheU-Only-User', + 'SMB-DFS_Builtin-Web_WinCacheU-File-And-User', + 'SMB-DFS_Builtin-Web_WinCacheU-Only-File', + 'SMB-DFS_Builtin-Web_WinCacheU-Only-User', + 'SMB-Basic_Builtin-Web_WinCacheU-File-And-User', + 'SMB-Basic_Builtin-Web_WinCacheU-Only-File', + 'SMB-Basic_Builtin-Web_WinCacheU-Only-User', + 'SMB-Deduplication_Builtin-Web_WinCacheU-File-And-User', + 'SMB-Deduplication_Builtin-Web_WinCacheU-Only-File', + 'SMB-Deduplication_Builtin-Web_WinCacheU-Only-User' + ] +} diff --git a/conf/not/not_wincacheu_no_code_cache.groovy b/conf/not/not_wincacheu_no_code_cache.groovy new file mode 100644 index 0000000..8f3bbf9 --- /dev/null +++ b/conf/not/not_wincacheu_no_code_cache.groovy @@ -0,0 +1,57 @@ + +def describe() { + "Don't run WinCacheU without Opcache" +} + +def notScenarios() { + [ + 'Local-FileSystem_MySQL-5.6_CLI_WinCacheU-File-And-User', + 'Local-FileSystem_MySQL-5.6_CLI_WinCacheU-Only-File', + 'Local-FileSystem_MySQL-5.6_CLI_WinCacheU-Only-User', + 'SMB-DFS_MySQL-5.6_CLI_WinCacheU-File-And-User', + 'SMB-DFS_MySQL-5.6_CLI_WinCacheU-Only-File', + 'SMB-DFS_MySQL-5.6_CLI_WinCacheU-Only-User', + 'SMB-Basic_MySQL-5.6_CLI_WinCacheU-File-And-User', + 'SMB-Basic_MySQL-5.6_CLI_WinCacheU-Only-File', + 'SMB-Basic_MySQL-5.6_CLI_WinCacheU-Only-User', + 'SMB-Deduplication_MySQL-5.6_CLI_WinCacheU-File-And-User', + 'SMB-Deduplication_MySQL-5.6_CLI_WinCacheU-Only-File', + 'SMB-Deduplication_MySQL-5.6_CLI_WinCacheU-Only-User', + 'Local-FileSystem_CLI_WinCacheU-File-And-User', + 'Local-FileSystem_CLI_WinCacheU-Only-File', + 'Local-FileSystem_CLI_WinCacheU-Only-User', + 'SMB-DFS_CLI_WinCacheU-File-And-User', + 'SMB-DFS_CLI_WinCacheU-Only-File', + 'SMB-DFS_CLI_WinCacheU-Only-User', + 'SMB-Basic_CLI_WinCacheU-File-And-User', + 'SMB-Basic_CLI_WinCacheU-Only-File', + 'SMB-Basic_CLI_WinCacheU-Only-User', + 'SMB-Deduplication_CLI_WinCacheU-File-And-User', + 'SMB-Deduplication_CLI_WinCacheU-Only-File', + 'SMB-Deduplication_CLI_WinCacheU-Only-User', + 'Local-FileSystem_MySQL-5.6_Builtin-Web_WinCacheU-File-And-User', + 'Local-FileSystem_MySQL-5.6_Builtin-Web_WinCacheU-Only-File', + 'Local-FileSystem_MySQL-5.6_Builtin-Web_WinCacheU-Only-User', + 'SMB-DFS_MySQL-5.6_Builtin-Web_WinCacheU-File-And-User', + 'SMB-DFS_MySQL-5.6_Builtin-Web_WinCacheU-Only-File', + 'SMB-DFS_MySQL-5.6_Builtin-Web_WinCacheU-Only-User', + 'SMB-Basic_MySQL-5.6_Builtin-Web_WinCacheU-File-And-User', + 'SMB-Basic_MySQL-5.6_Builtin-Web_WinCacheU-Only-File', + 'SMB-Basic_MySQL-5.6_Builtin-Web_WinCacheU-Only-User', + 'SMB-Deduplication_MySQL-5.6_Builtin-Web_WinCacheU-File-And-User', + 'SMB-Deduplication_MySQL-5.6_Builtin-Web_WinCacheU-Only-File', + 'SMB-Deduplication_MySQL-5.6_Builtin-Web_WinCacheU-Only-User', + 'Local-FileSystem_Builtin-Web_WinCacheU-File-And-User', + 'Local-FileSystem_Builtin-Web_WinCacheU-Only-File', + 'Local-FileSystem_Builtin-Web_WinCacheU-Only-User', + 'SMB-DFS_Builtin-Web_WinCacheU-File-And-User', + 'SMB-DFS_Builtin-Web_WinCacheU-Only-File', + 'SMB-DFS_Builtin-Web_WinCacheU-Only-User', + 'SMB-Basic_Builtin-Web_WinCacheU-File-And-User', + 'SMB-Basic_Builtin-Web_WinCacheU-Only-File', + 'SMB-Basic_Builtin-Web_WinCacheU-Only-User', + 'SMB-Deduplication_Builtin-Web_WinCacheU-File-And-User', + 'SMB-Deduplication_Builtin-Web_WinCacheU-Only-File', + 'SMB-Deduplication_Builtin-Web_WinCacheU-Only-User' + ] +} diff --git a/conf/task/code_coverage.groovy b/conf/task/code_coverage.groovy index fe538d9..7e894cd 100644 --- a/conf/task/code_coverage.groovy +++ b/conf/task/code_coverage.groovy @@ -1,6 +1,9 @@ def describe() { - "Monitor and report PHP code coverage using Xdebug (Dynamic Run-Time Analysis)." + """Monitor and report PHP code coverage using Xdebug (Dynamic Run-Time Analysis). + +ANSWERS How much of application was tested? +""" } def scenarios() { diff --git a/conf/task/code_profile.groovy b/conf/task/code_profile.groovy index d57b076..11af618 100644 --- a/conf/task/code_profile.groovy +++ b/conf/task/code_profile.groovy @@ -1,6 +1,11 @@ def describe() { - "Profile code to get run-times and find slow code points using Xdebug (Dynamic Run-Time Analysis)" + """Profile code to get run-times and find slow code points using Xdebug (Dynamic Run-Time Analysis) + +Stores *.cachegrind file in result-pack for each test-pack and scenario set. + +ANSWERS How fast/slow? +""" } def scenarios() { diff --git a/conf/task/list_builtin_functions.groovy b/conf/task/list_builtin_functions.groovy index f1a256a..aca0ffb 100644 --- a/conf/task/list_builtin_functions.groovy +++ b/conf/task/list_builtin_functions.groovy @@ -14,7 +14,10 @@ import com.mostc.pftt.results.PhptTestResult; def describe() { """Adds list of the builtin functions test cases use to the result-pack (Static Analysis). -The hard part of code analysis is navigating all the data, this helps by listing only the builtin functions""" +The hard part of code analysis is navigating all the data, this helps by listing only the builtin functions + +ANSWERS What core functions are used? +""" } def scenarios() { diff --git a/conf/task/rctest.groovy b/conf/task/rctest.groovy deleted file mode 100644 index 0fba95f..0000000 --- a/conf/task/rctest.groovy +++ /dev/null @@ -1,15 +0,0 @@ - -def describe() { - "Tests Release Candidate and Final builds covering more Scenario Sets than normal snapshot testing." -} - -def processConsoleOptions(List options) { - options.add("-c") - // test local and remote file systems - // (basically snap_test * 4 file-system scenarios) - options.add("smb,dfs,deduplication,localfs,not_remote_fs_builtin_web") - options.add("-c") - options.add("snap_test") - - // TODO iis wincacheu apcu mediawiki drupal joomla typo3 cake_php zend semantic_mediawiki -} diff --git a/conf/task/rctest1.groovy b/conf/task/rctest1.groovy deleted file mode 100644 index 069a407..0000000 --- a/conf/task/rctest1.groovy +++ /dev/null @@ -1,15 +0,0 @@ - -def describe() { - "Runs first half of the tests for a Release Candidate" -} - -def processConsoleOptions(List options) { - options.add("-c") - // test local and remote file systems - // (basically snap_test * 4 file-system scenarios) - options.add("smb,dfs,not_remote_fs_builtin_web") - options.add("-c") - options.add("snap_test") - - // TODO iis wincacheu apcu mediawiki drupal joomla typo3 cake_php zend semantic_mediawiki -} diff --git a/conf/task/rctest2.groovy b/conf/task/rctest2.groovy deleted file mode 100644 index d21cbb9..0000000 --- a/conf/task/rctest2.groovy +++ /dev/null @@ -1,15 +0,0 @@ - -def describe() { - "Runs second half of the tests for a Release Candidate" -} - -def processConsoleOptions(List options) { - options.add("-c") - // test local and remote file systems - // (basically snap_test * 4 file-system scenarios) - options.add("deduplication,localfs,not_remote_fs_builtin_web") - options.add("-c") - options.add("snap_test") - - // TODO iis wincacheu apcu mediawiki drupal joomla typo3 cake_php zend semantic_mediawiki -} diff --git a/conf/task/release_test_full.groovy b/conf/task/release_test_full.groovy new file mode 100644 index 0000000..0fba95f --- /dev/null +++ b/conf/task/release_test_full.groovy @@ -0,0 +1,15 @@ + +def describe() { + "Tests Release Candidate and Final builds covering more Scenario Sets than normal snapshot testing." +} + +def processConsoleOptions(List options) { + options.add("-c") + // test local and remote file systems + // (basically snap_test * 4 file-system scenarios) + options.add("smb,dfs,deduplication,localfs,not_remote_fs_builtin_web") + options.add("-c") + options.add("snap_test") + + // TODO iis wincacheu apcu mediawiki drupal joomla typo3 cake_php zend semantic_mediawiki +} diff --git a/conf/task/release_test_h1.groovy b/conf/task/release_test_h1.groovy new file mode 100644 index 0000000..069a407 --- /dev/null +++ b/conf/task/release_test_h1.groovy @@ -0,0 +1,15 @@ + +def describe() { + "Runs first half of the tests for a Release Candidate" +} + +def processConsoleOptions(List options) { + options.add("-c") + // test local and remote file systems + // (basically snap_test * 4 file-system scenarios) + options.add("smb,dfs,not_remote_fs_builtin_web") + options.add("-c") + options.add("snap_test") + + // TODO iis wincacheu apcu mediawiki drupal joomla typo3 cake_php zend semantic_mediawiki +} diff --git a/conf/task/release_test_h2.groovy b/conf/task/release_test_h2.groovy new file mode 100644 index 0000000..d21cbb9 --- /dev/null +++ b/conf/task/release_test_h2.groovy @@ -0,0 +1,15 @@ + +def describe() { + "Runs second half of the tests for a Release Candidate" +} + +def processConsoleOptions(List options) { + options.add("-c") + // test local and remote file systems + // (basically snap_test * 4 file-system scenarios) + options.add("deduplication,localfs,not_remote_fs_builtin_web") + options.add("-c") + options.add("snap_test") + + // TODO iis wincacheu apcu mediawiki drupal joomla typo3 cake_php zend semantic_mediawiki +} diff --git a/conf/task/snap_test.groovy b/conf/task/snap_test.groovy index d67e289..519cc79 100644 --- a/conf/task/snap_test.groovy +++ b/conf/task/snap_test.groovy @@ -10,16 +10,26 @@ def processConsoleOptions(List options) { // test these SAPIs options.add("apache,cli,builtin_web") options.add("-c") - // test with and without opcache - options.add("opcache,no_code_cache,not_opcache_cli,not_opcache_builtin_web") + // test with and without opcache + options.add("opcache,no_code_cache,not_opcache_builtin_web") + //options.add("-c") + // test with WinCacheU: + // users probably won't run wincacheu_only_file in production (skip) + // users probably won't run wincacheu* with no_code_cache (skip) + // no_user_cache => test without wincacheu, enables scenariosets that wincacheu doesn't support + //options.add("no_user_cache,not_wincacheu_no_code_cache,wincacheu_only_user,not_wincacheu_builtin_web,wincacheu_file_and_user") options.add("-c") // test with these Applications (to make sure new PHP build doesn't break them) - options.add("symfony,wordpress,local_mysql") + options.add("joomla,symfony,wordpress") options.add("-c") // load up mysql and http(curl) scenarios options.add("local_mysql,http") - // TODO wincacheu apcu mssql postgresql sqlite3 ftp xmlrpc soap - // TODO mediawiki drupal joomla typo3 cake_php zend semantic_mediawiki tiki fengoffice phpbb squirelmail + // run each scenarioset/test-pack for up to 1 hour + options.add("-max_run_time_millis") + options.add(""+(1*60*60*1000)) + + // TODO apcu mssql postgresql sqlite3 ftp xmlrpc soap + // TODO mediawiki drupal typo3 cake_php zend semantic_mediawiki tiki fengoffice phpbb squirelmail }