summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2018-01-22 09:37:52 +0100
committerRemi Collet <remi@remirepo.net>2018-01-22 09:37:52 +0100
commitca32fba3bc98387f21efb37bf47a72789b084118 (patch)
tree19816827f69d90b1748255c7d040edf89c298115
duplicate php-hamcrest
-rw-r--r--.gitignore8
-rw-r--r--bootstrap-autoload.patch18
-rw-r--r--composer.json32
-rw-r--r--php-hamcrest-upstream.patch69
-rw-r--r--php-hamcrest2.spec141
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