Skip to content

Commit

Permalink
Add apcu package.xml test
Browse files Browse the repository at this point in the history
  • Loading branch information
c9s committed Oct 29, 2014
1 parent 979d03a commit 8abefea
Show file tree
Hide file tree
Showing 4 changed files with 212 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/PEARX/Package.php
Expand Up @@ -365,13 +365,16 @@ public function getInstallFileList($sourceDir = null, $distDir = null)
return $filelist;
}

public function addConfigureOptions($optName, $prompt, $default = NULL) {
public function addConfigureOption($optName, $prompt, $default = NULL) {
$this->configureOptions[] = array(
'name' => $optName,
'prompt' => $prompt,
'default' => $default,
);
}

public function getConfigureOptions() {
return $this->configureOptions;
}
}

7 changes: 4 additions & 3 deletions src/PEARX/PackageXml/Parser.php
Expand Up @@ -58,9 +58,10 @@ public function parse($arg)
if ($extName = $xml->providesextension->__toString()) {
$package->setProvidesExtension($extName);
}
if ($releaseInfo = $xml->extsrcrelease) {
foreach ($releaseInfo->configureoption as $opt) {
$package->addConfigureOptions($opt->name, $opt->prompt, $opt->default);

if ($extsrcrelease = $xml->extsrcrelease) {
foreach ($extsrcrelease->children() as $opt) {
$package->addConfigureOption($opt['name'], $opt['prompt'], $opt['default']);
}
}

Expand Down
18 changes: 18 additions & 0 deletions tests/PEARX/PackageXml/ParserTest.php
Expand Up @@ -61,6 +61,24 @@ public function testForExtension()
ok($package->getZendExtSrcRelease());
}

public function testConfigureOptions()
{
$parser = new PEARX\PackageXml\Parser;
ok($parser);

$package = $parser->parse('tests/data/package_xml/apcu/package.xml');
$options = $package->getConfigureOptions();
$this->assertNotEmpty($options);

count_ok( 2, $options);
foreach($options as $option) {
ok( isset($option['name']) );
ok( isset($option['prompt']) );
ok( isset($option['default']) );
}

}

public function testForCompatibility()
{
$parser = new PEARX\PackageXml\Parser;
Expand Down
186 changes: 186 additions & 0 deletions tests/data/package_xml/apcu/package.xml
@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8"?>
<package packagerversion="1.9.4" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>apcu</name>
<channel>pecl.php.net</channel>
<summary>APCu - APC User Cache</summary>
<description>APC User Caching</description>
<lead>
<name>Joe Watkins</name>
<user>krakjoe</user>
<email>krakjoe@php.net</email>
<active>yes</active>
</lead>
<developer>
<name>Anatol Belski</name>
<user>ab</user>
<email>ab@php.net</email>
<active>yes</active>
</developer>
<date>2013-04-28</date>
<time>03:10:00</time>
<version>
<release>4.0.2</release>
<api>4.0.2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
- Fixed bug #15 APC compatibility option broken. (Anatol)
- Fixed bug #20 APCu's APCIterator constructor is not compatable with APC. (Anatol)
- Fixed resource leak when data preload fails. (Anatol)
- Fixed issue #29 php_apcu.dll does not load anymore under X64. (Anatol)
</notes>
<contents>
<dir name="/">
<file name="tests/023-2.inc" role="test" />
<file name="tests/024.phpt" role="test" />
<file name="tests/apc_001.phpt" role="test" />
<file name="tests/apc_002.phpt" role="test" />
<file name="tests/apc_003.phpt" role="test" />
<file name="tests/apc_003b.phpt" role="test" />
<file name="tests/apc_004.phpt" role="test" />
<file name="tests/apc_005.phpt" role="test" />
<file name="tests/apc_006.phpt" role="test" />
<file name="tests/apc_007.phpt" role="test" />
<file name="tests/apc_008.phpt" role="test" />
<file name="tests/apc_010.phpt" role="test" />
<file name="tests/apc_011.phpt" role="test" />
<file name="tests/apc54_014.phpt" role="test" />
<file name="tests/apc54_018.phpt" role="test" />
<file name="tests/apc_bin_001.phpt" role="test" />
<file name="tests/apc_bin_002.phpt" role="test" />
<file name="tests/apc_bin_003.phpt" role="test" />
<file name="tests/apc_bin_004.phpt" role="test" />
<file name="tests/bug63224.phpt" role="test" />
<file name="tests/get_included_files_inc1.inc" role="test" />
<file name="tests/get_included_files_inc2.inc" role="test" />
<file name="tests/get_included_files_inc3.inc" role="test" />
<file name="tests/iterator_001.phpt" role="test" />
<file name="tests/iterator_002.phpt" role="test" />
<file name="tests/iterator_003.phpt" role="test" />
<file name="tests/iterator_004.phpt" role="test" />
<file name="tests/iterator_005.phpt" role="test" />
<file name="tests/iterator_006.phpt" role="test" />
<file name="tests/iterator_007.phpt" role="test" />
<file name="tests/iterator_008.phpt" role="test" />
<file name="tests/php_5_3_ns.inc" role="test" />
<file name="tests/server_test.inc" role="test" />
<file name="tests/skipif.inc" role="test" />
<file name="tests/data/abc.data" role="test" />
<file name="apc_api.h" role="src" />
<file name="apc_bin_api.h" role="src" />
<file name="apc_bin.c" role="src" />
<file name="apc_bin.h" role="src" />
<file name="apc.c" role="src" />
<file name="apc_cache_api.h" role="src" />
<file name="apc_cache.c" role="src" />
<file name="apc_cache.h" role="src" />
<file name="apc_globals.h" role="src" />
<file name="apc.h" role="src" />
<file name="apc_iterator.c" role="src" />
<file name="apc_iterator.h" role="src" />
<file name="apc_lock_api.h" role="src" />
<file name="apc_lock.c" role="src" />
<file name="apc_lock.h" role="src" />
<file name="apc_mmap.c" role="src" />
<file name="apc_mmap.h" role="src" />
<file name="apc.php" role="src" />
<file name="apc_php.h" role="src" />
<file name="apc_php_pcre.h" role="src" />
<file name="apc_pool_api.h" role="src" />
<file name="apc_pool.c" role="src" />
<file name="apc_pool.h" role="src" />
<file name="apc_rfc1867.c" role="src" />
<file name="apc_shm.c" role="src" />
<file name="apc_shm.h" role="src" />
<file name="apc_signal.c" role="src" />
<file name="apc_signal.h" role="src" />
<file name="apc_sma_api.h" role="src" />
<file name="apc_sma.c" role="src" />
<file name="apc_sma.h" role="src" />
<file name="apc_stack.c" role="src" />
<file name="apc_stack.h" role="src" />
<file name="apc_windows_srwlock_kernel.c" role="src" />
<file name="apc_windows_srwlock_kernel.h" role="src" />
<file name="pgsql_s_lock.h" role="src" />
<file name="pgsql_s_lock.c" role="src" />
<file name="apc_serializer.h" role="src" />
<file name="config.m4" role="src" />
<file name="config.w32" role="src" />
<file name="INSTALL" role="src" />
<file name="LICENSE" role="src" />
<file name="Makefile.frag" role="src" />
<file name="NOTICE" role="src" />
<file name="php_apc.c" role="src" />
<file name="php_apc.h" role="src" />
<file name="README.md" role="src" />
<file name="TECHNOTES.txt" role="src" />
<file name="TODO" role="src" />
</dir>
</contents>
<dependencies>
<required>
<php>
<!--
Actually the APC codebase support 5.2+
Support can not provided for crusty versions of PHP
-->
<min>5.3.0</min>
</php>
<pearinstaller>
<min>1.4.0b1</min>
</pearinstaller>
</required>
</dependencies>
<providesextension>apcu</providesextension>
<extsrcrelease>
<configureoption name="enable-apc-bc" default="yes" prompt="Enable full APC compatibility" />
<configureoption name="enable-apcu-debug" default="no" prompt="Enable internal debugging in APCu" />
</extsrcrelease>
<changelog>
<release>
</release>
<date>2013-04-28</date>
<time>03:10:00</time>
<version>
<release>4.0.1</release>
<api>4.0.1</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
- Fix crash in cli on apc_store where enable_cli=0
- Testing eval serializers
- Change apc_* to apcu_* in apc.php
- Fix exports in API
- Expose to userland whether APCu is compiled with the APC compatibility.
See the APCU_APC_FULL_BC constant. (Anatol)
- Fixed bin dump producing garbage data in multithreaded env. (Anatol)
</notes>
<release>
<date>2013-03-27</date>
<time>03:10:00</time>
<version>
<release>4.0.0</release>
<api>4.0.0</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
All opcode caching abilities removed
The default locking is now rwlocks
APCu API installed in build environment
Please see TECHNOTES/README.md
</notes>
</release>
</changelog>
</package>

0 comments on commit 8abefea

Please sign in to comment.