diff options
author | Remi Collet <remi@remirepo.net> | 2018-01-22 09:37:52 +0100 |
---|---|---|
committer | Remi Collet <remi@remirepo.net> | 2018-01-22 09:37:52 +0100 |
commit | ca32fba3bc98387f21efb37bf47a72789b084118 (patch) | |
tree | 19816827f69d90b1748255c7d040edf89c298115 |
duplicate php-hamcrest
-rw-r--r-- | .gitignore | 8 | ||||
-rw-r--r-- | bootstrap-autoload.patch | 18 | ||||
-rw-r--r-- | composer.json | 32 | ||||
-rw-r--r-- | php-hamcrest-upstream.patch | 69 | ||||
-rw-r--r-- | php-hamcrest2.spec | 141 |
5 files changed, 268 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc9aa8c --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +clog +package-*.xml +*.tgz +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/bootstrap-autoload.patch b/bootstrap-autoload.patch new file mode 100644 index 0000000..49cad37 --- /dev/null +++ b/bootstrap-autoload.patch @@ -0,0 +1,18 @@ +diff -up tests/bootstrap.php.rpm tests/bootstrap.php +--- tests/bootstrap.php.rpm 2015-01-05 13:27:31.069437796 +0100 ++++ tests/bootstrap.php 2015-01-05 13:27:40.291470405 +0100 +@@ -1,6 +1,7 @@ + <?php + error_reporting(E_ALL | E_STRICT); +-require __DIR__ . '/../vendor/autoload.php'; ++require __DIR__ . '/../hamcrest/Hamcrest/autoload.php'; ++require __DIR__ . '/autoload.php'; + + if (defined('E_DEPRECATED')) { + error_reporting(error_reporting() | E_DEPRECATED); +@@ -14,5 +15,3 @@ set_include_path(implode(PATH_SEPARATOR, + HAMCREST_BASE . '/hamcrest', + get_include_path() + ))); +- +-require_once 'Hamcrest.php'; diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..a1b48c1 --- /dev/null +++ b/composer.json @@ -0,0 +1,32 @@ +{ + "name": "hamcrest/hamcrest-php", + "type": "library", + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": ["test"], + "license": "BSD", + "authors": [ + ], + + "autoload": { + "classmap": ["hamcrest"], + "files": ["hamcrest/Hamcrest.php"] + }, + "autoload-dev": { + "classmap": ["tests", "generator"] + }, + + "require": { + "php": ">=5.3.2" + }, + + "require-dev": { + "satooshi/php-coveralls": "dev-master", + "phpunit/php-file-iterator": "1.3.3" + }, + + "replace": { + "kodova/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "cordoval/hamcrest-php": "*" + } +} diff --git a/php-hamcrest-upstream.patch b/php-hamcrest-upstream.patch new file mode 100644 index 0000000..65c3ec6 --- /dev/null +++ b/php-hamcrest-upstream.patch @@ -0,0 +1,69 @@ +From c2aecc2127c92e5e6a77b9b23bf3f409ffd56e4a Mon Sep 17 00:00:00 2001 +From: mikeSimonson <mike.simonson@gmail.com> +Date: Wed, 6 Jan 2016 22:26:02 +0100 +Subject: [PATCH] Removing php 7 from the allowed failure + +Fixing the backward incompatible change of PHP 7 and adding tests for it. +--- + .travis.yml | 1 - + hamcrest/Hamcrest/Type/IsNumeric.php | 20 ++++++++++++++++++++ + tests/Hamcrest/Type/IsNumericTest.php | 4 ++++ + 3 files changed, 24 insertions(+), 1 deletion(-) + +diff --git a/hamcrest/Hamcrest/Type/IsNumeric.php b/hamcrest/Hamcrest/Type/IsNumeric.php +index 9fe8a7a..bc74405 100644 +--- a/hamcrest/Hamcrest/Type/IsNumeric.php ++++ b/hamcrest/Hamcrest/Type/IsNumeric.php +@@ -19,10 +19,30 @@ public function __construct() + + public function matches($item) + { ++ if ($this->isHexadecimal($item)) { ++ return true; ++ } ++ + return is_numeric($item); + } + + /** ++ * Return if the string passed is a valid hexadecimal number. ++ * This check is necessary because PHP 7 doesn't recognize hexadecimal string as numeric anymore. ++ * ++ * @param mixed $item ++ * @return boolean ++ */ ++ private function isHexadecimal($item) ++ { ++ if (is_string($item) && preg_match('/^0x(.*)$/', $item, $matches)) { ++ return ctype_xdigit($matches[1]); ++ } ++ ++ return false; ++ } ++ ++ /** + * Is the value a numeric? + * + * @factory +diff --git a/tests/Hamcrest/Type/IsNumericTest.php b/tests/Hamcrest/Type/IsNumericTest.php +index e718485..1fd83ef 100644 +--- a/tests/Hamcrest/Type/IsNumericTest.php ++++ b/tests/Hamcrest/Type/IsNumericTest.php +@@ -25,6 +25,7 @@ public function testEvaluatesToTrueIfArgumentMatchesType() + assertThat('0.053e-2', numericValue()); + assertThat('-53.253e+25', numericValue()); + assertThat('+53.253e+25', numericValue()); ++ assertThat(0x4F2a04, numericValue()); + assertThat('0x4F2a04', numericValue()); + } + +@@ -34,6 +35,9 @@ public function testEvaluatesToFalseIfArgumentDoesntMatchType() + assertThat('foo', not(numericValue())); + assertThat('foo5', not(numericValue())); + assertThat('5foo', not(numericValue())); ++ assertThat('0x42A04G', not(numericValue())); // G is not in the hexadecimal range. ++ assertThat('1x42A04', not(numericValue())); // 1x is not a valid hexadecimal sequence. ++ assertThat('0x', not(numericValue())); + } + + public function testHasAReadableDescription() diff --git a/php-hamcrest2.spec b/php-hamcrest2.spec new file mode 100644 index 0000000..3742c53 --- /dev/null +++ b/php-hamcrest2.spec @@ -0,0 +1,141 @@ +# remirepo/fedora spec file for php-hamcrest +# +# Copyright (c) 2015-2017 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit b37020aa976fa52d3de9aa904aa2522dc518f79c +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner hamcrest +%global gh_project hamcrest-php +%global with_tests 0%{!?_without_tests:1} + +Name: php-hamcrest +Version: 1.2.2 +Release: 4%{?dist} +Summary: PHP port of Hamcrest Matchers + +Group: Development/Libraries +License: BSD +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz + +# Use generated autoloader instead of composer one +Patch0: bootstrap-autoload.patch +# Upstream patch for PHP 7+ +Patch1: %{name}-upstream.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch +BuildRequires: php-fedora-autoloader-devel +%if %{with_tests} +BuildRequires: php-composer(phpunit/phpunit) +# composer.json +# "php": ">=5.3.2" +BuildRequires: php(language) >= 5.3.2 +# From phpcompatinfo report for 1.2.2 +BuildRequires: php-dom +BuildRequires: php-pcre +BuildRequires: php-spl +%endif + +Requires: php(language) >= 5.3.2 +# From phpcompatinfo report for 1.2.2 +Requires: php-dom +Requires: php-pcre +Requires: php-spl +# Autoloader +Requires: php-composer(fedora/autoloader) + +Provides: php-composer(hamcrest/hamcrest-php) = %{version} + + +%description +Hamcrest is a matching library originally written for Java, +but subsequently ported to many other languages. + +%{name} is the official PHP port of Hamcrest and essentially follows +a literal translation of the original Java API for Hamcrest, +with a few Exceptions, mostly down to PHP language barriers. + +To use this library, you just have to add, in your project: + require_once '%{_datadir}/php/Hamcrest/autoload.php'; + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +%patch0 -p0 -b .rpm +%patch1 -p1 -b .upstream +find . -name \*.upstream -exec rm {} \; + +# Move to Library tree +mv hamcrest/Hamcrest.php hamcrest/Hamcrest/Hamcrest.php + + +%build +# Library autoloader +%{_bindir}/phpab \ + --template fedora \ + --output hamcrest/Hamcrest/autoload.php \ + hamcrest/Hamcrest + +cat << 'EOF' | tee -a hamcrest/Hamcrest/autoload.php + +// Functions +require __DIR__ . '/Hamcrest.php'; +EOF + +# Test suite autoloader +%{_bindir}/phpab \ + --output tests/autoload.php \ + --exclude '*Test.php' \ + tests + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{_datadir}/php +cp -pr hamcrest/* %{buildroot}%{_datadir}/php + + +%check +%if %{with_tests} +cd tests +ret=0 +for cmd in php56 php70 php71 php; do + if which $cmd; then + $cmd %{_bindir}/phpunit --verbose || ret=1 + fi +done +exit $ret +%else +: Test suite disabled +%endif + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%{!?_licensedir:%global license %%doc} +%license LICENSE.txt +%doc CHANGES.txt README.md TODO.txt +%doc composer.json +%{_datadir}/php/Hamcrest + + +%changelog +* Fri Feb 17 2017 Remi Collet <remi@fedoraproject.org> - 1.2.2-4 +- add upstream patch for PHP 7, fix FTBFS +- switch to fedora/autoloader + +* Thu Oct 15 2015 Remi Collet <remi@fedoraproject.org> - 1.2.2-1 +- update to 1.2.2 + +* Mon Jan 5 2015 Remi Collet <remi@fedoraproject.org> - 1.2.0-1 +- initial package |