Changeset 1115
- Timestamp:
- 09/08/08 05:23:26 (3 months ago)
- Files:
-
- branches/arnoschn/cache/lib/AkUnitTest.php (modified) (1 diff)
- branches/arnoschn/cache/lib/utils/scripts/ci-test.php (modified) (3 diffs)
- branches/arnoschn/cache/script/extras/TPL-caching.yml (added)
- branches/arnoschn/cache/script/extras/TPL-ci-config.yaml (modified) (1 diff)
- branches/arnoschn/cache/test/unit/lib/AkCache.php (modified) (2 diffs)
- branches/arnoschn/cache/test/unit/lib/AkCache/AkMemcache.php (modified) (2 diffs)
- branches/arnoschn/cache/test/unit/suites/config (added)
- branches/arnoschn/cache/test/unit/suites/config/memcached (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/arnoschn/cache/lib/AkUnitTest.php
r1063 r1115 38 38 } 39 39 40 /** 41 * Gets a list of test names. Normally that will 42 * be all internal methods that start with the 43 * name "test". This method should be overridden 44 * if you want a different rule. 45 * @return array List of test names. 46 * @access public 47 */ 48 function getTests() { 49 $methods = array(); 50 if (isset($this->skip) && $this->skip == true) { 51 return $methods; 52 } 53 foreach (get_class_methods(get_class($this)) as $method) { 54 if ($this->_isTest($method)) { 55 $methods[] = $method; 56 } 57 } 58 return $methods; 59 } 60 40 61 function _configure() 41 62 { 63 $this->skip = !$this->_checkIfEnabled(); 42 64 $this->_loadFixtures(); 65 66 } 67 68 function _checkIfEnabled($file = null) 69 { 70 if ($file == null) { 71 $file = isset($this->check_file)?$this->check_file:null; 72 } 73 if ($file!=null && file_exists($file)) { 74 $val = file_get_contents($file); 75 if ($val == 0) { 76 return false; 77 } 78 } 79 return true; 43 80 } 44 81 branches/arnoschn/cache/lib/utils/scripts/ci-test.php
r1114 r1115 151 151 } 152 152 153 if (!$this->_checkMemcacheInstallation()) { 154 return false; 155 } 153 156 154 157 } else { … … 159 162 } 160 163 $this->loadSettings(); 161 } 164 $this->_setupMemcache(); 165 } 166 162 167 $this->_fixTestInstallationPermissions(); 163 168 $this->configured['ci-config.yaml'] = true; … … 428 433 exec('chmod -Rf 777 '.AK_CI_TEST_DIR.$dir); 429 434 } 435 } 436 437 function _setupMemcache() 438 { 439 $memcachedInstalled = $this->promptUserVar('Certain tests need a memcached running. Do you have a memcached installation?',array('default'=>'No')); 440 441 if (!in_array(strtolower($memcachedInstalled),array('y','yes','si','ja','1'))) { 442 $installation = $this->settings['test-installation']; 443 $memcacheTestConfigFile = $installation.DS.'test'.DS.'unit'.DS.'suites'.DS.'config'.DS.'memcached'; 444 file_put_contents($memcacheTestConfigFile,'0'); 445 return; 446 } else { 447 $socket = $this->_configureMemcache(); 448 if ($socket !== false) { 449 $res = $this->_createMemcachedConfig($socket); 450 if (!$res) { 451 $this->error('Could not create caching.yml. Disabling memcached support.'); 452 $installation = $this->settings['test-installation']; 453 $memcacheTestConfigFile = $installation.DS.'test'.DS.'unit'.DS.'suites'.DS.'config'.DS.'memcached'; 454 file_put_contents($memcacheTestConfigFile,'0'); 455 return; 456 } else { 457 458 } 459 } 460 } 461 } 462 463 function _createMemcachedConfig($socket) 464 { 465 $file1 = AK_CI_TEST_DIR.DS.'test'.DS.'fixtures'.DS.'app'.DS.'config'.DS.'caching.yml'; 466 $file2 = AK_CI_TEST_DIR.DS.'config'.DS.'caching.yml'; 467 $templateFile = AK_BASE_DIR.DS.'script'.DS.'extras'.DS.'TPL-caching.yml'; 468 $this->info('Creating caching configuration for'); 469 $res1 = file_put_contents($file1,str_replace('${memcached_server}',$socket,file_get_contents($templateFile)))>0; 470 $res2 = file_put_contents($file1,str_replace('${memcached_server}',$socket,file_get_contents($templateFile)))>0; 471 $res3 = file_put_contents(AK_CI_CONFIG_FILE,str_replace('${memcached-socket}',$socket,file_get_contents(AK_CI_CONFIG_FILE))); 472 return $res1 && $res2 && $res3; 473 } 474 475 function _checkMemcacheInstallation($socket = null) 476 { 477 if ($socket == null) { 478 $socket = $this->settings['memcached-socket']; 479 } 480 require_once(AK_BASE_DIR.DS.'lib'.DS.'AkCache'.DS.'AkMemcache.php'); 481 $memcache = new AkMemcache(); 482 return @$memcached->init(array('servers'=>array($socket))); 483 } 484 function _configureMemcache() 485 { 486 require_once(AK_BASE_DIR.DS.'lib'.DS.'AkCache'.DS.'AkMemcache.php'); 487 $memcache = new AkMemcache(); 488 while (($socket = $this->promptUserVar('Please provide the socket memcached is running on',array('default'=>'localhost:11211')) && !$this->_checkMemcacheInstallation($socket))) { 489 $this->error('Could not connect to memcached at socket: '.$socket); 490 $tryAgain = $this->promptUserVar('Want to try again configuring memcached support?',array('default'=>'Yes')); 491 if (!in_array(strtolower($memcachedInstalled),array('y','yes','si','ja','1'))) { 492 return false; 493 } 494 } 495 return $socket; 430 496 } 431 497 function loadSettings($filename=AK_CI_CONFIG_FILE) branches/arnoschn/cache/script/extras/TPL-ci-config.yaml
r1110 r1115 2 2 test-installation: ${test-installation} 3 3 test-url: ${test-url} 4 memcached-socket: ${memcached-socket} 4 5 5 6 executables: branches/arnoschn/cache/test/unit/lib/AkCache.php
r899 r1115 6 6 7 7 require_once(AK_LIB_DIR.DS.'AkCache.php'); 8 9 defined('AK_TEST_MEMCACHED_CHECKFILE')? null: define('AK_TEST_MEMCACHED_CHECKFILE',AK_TEST_DIR.DS.'lib'.DS.'unit'.DS.'suites'.DS.'config'.DS.'memcached'); 10 8 11 9 12 class AkCache_TestCase extends AkUnitTest … … 23 26 function test_all_caches() 24 27 { 25 26 $cacheHandlers = array('cache_lite'=>1,'akadodbcache'=>2,'akmemcache'=>3); 28 $cacheHandlers = array('cache_lite'=>1,'akadodbcache'=>2); 29 $memcacheEnabled = $this->_checkIfEnabled(AK_TEST_MEMCACHED_CHECKFILE); 30 if ($memcacheEnabled) { 31 $cacheHandlers['akmemcache'] = 3; 32 } 27 33 $unitTests = array('_testInit','_test_get_and_save','_testremove', '_Testclean'); 28 34 branches/arnoschn/cache/test/unit/lib/AkCache/AkMemcache.php
r949 r1115 3 3 require_once(AK_LIB_DIR.DS.'AkCache.php'); 4 4 require_once(AK_LIB_DIR.DS.'AkCache'.DS.'AkMemcache.php'); 5 6 defined('AK_TEST_MEMCACHED_CHECKFILE')? null: define('AK_TEST_MEMCACHED_CHECKFILE',AK_TEST_DIR.DS.'lib'.DS.'unit'.DS.'suites'.DS.'config'.DS.'memcached'); 5 7 6 8 class Test_AkMemcache extends UnitTestCase … … 10 12 */ 11 13 var $memcache; 14 15 var $check_file = AK_TEST_MEMCACHED_CHECKFILE; 16 12 17 function setUp() 13 18 {
