Skip to content

Commit

Permalink
testing php 8.1 (#118)
Browse files Browse the repository at this point in the history
* testing php 8.1

* narrowing php versions
  • Loading branch information
jaydiablo authored Dec 4, 2021
1 parent b35b7d2 commit 525c174
Show file tree
Hide file tree
Showing 14 changed files with 110 additions and 81 deletions.
34 changes: 10 additions & 24 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,14 @@ jobs:
fail-fast: false
matrix:
operating-system: [ubuntu-latest]
php-versions: ['7.2', '7.3', '7.4']
php-versions: ['7.4', '8.0', '8.1']
composer-args: ['', '--prefer-lowest']
include:
- operating-system: ubuntu-latest
php-versions: '8.0'
composer-args: '--ignore-platform-reqs --no-scripts'
- operating-system: ubuntu-latest
php-versions: '8.0'
composer-args: '--prefer-lowest --ignore-platform-reqs --no-scripts'
runs-on: ${{ matrix.operating-system }}
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.4.0
- name: Setup PHP
uses: shivammathur/setup-php@2.10.0
uses: shivammathur/setup-php@2.16.0
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring
Expand All @@ -39,7 +32,7 @@ jobs:
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.7
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: php${{ matrix.php-versions }}-composer-${{ matrix.composer-args }}-${{ hashFiles('**/composer.json') }}
Expand All @@ -50,21 +43,14 @@ jobs:
- name: PHPStan
run: composer phpstan
- name: Code Style Check
env:
PHP_CS_FIXER_IGNORE_ENV: true
run: composer style-check -- --format=checkstyle | cs2pr
- name: Test
run: composer test-with-coverage
- name: Upload Coverage
run: bash <(curl -s https://codecov.io/bash) -f ./clover.xml
merge-me:
name: Merge me!
needs:
- build
runs-on: ubuntu-latest
steps:
- name: Merge me!
uses: ridedott/merge-me-action@master
uses: codecov/codecov-action@v2
with:
# This must be used as GitHub Actions token does not support
# pushing to protected branches.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_LOGIN: 'dependabot[bot]'
files: ./clover.xml
fail_ci_if_error: true
verbose: true
32 changes: 32 additions & 0 deletions .github/workflows/merge-me.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Merge me!

on:
workflow_run:
types:
- completed
workflows:
- 'Build'

jobs:
merge-me:
name: Merge me!
runs-on: ubuntu-latest
steps:
- # It is often a desired behavior to merge only when a workflow execution
# succeeds. This can be changed as needed.
if: ${{ github.event.workflow_run.conclusion == 'success' }}
name: Merge me!
uses: ridedott/merge-me-action@v2
with:
# Depending on branch protection rules, a manually populated
# `GITHUB_TOKEN_WORKAROUND` secret with permissions to push to
# a protected branch must be used. This secret can have an arbitrary
# name, as an example, this repository uses `DOTTBOTT_TOKEN`.
#
# When using a custom token, it is recommended to leave the following
# comment for other developers to be aware of the reasoning behind it:
#
# This must be used as GitHub Actions token does not support pushing
# to protected branches.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ENABLE_GITHUB_API_PREVIEW: true
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
/composer.lock
/clover.xml
.php_cs.cache
.phpunit.result.cache
.phpunit.result.cache
.php-cs-fixer.cache
9 changes: 4 additions & 5 deletions .php_cs → .php-cs-fixer.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,16 @@
->in(__DIR__)
;

return PhpCsFixer\Config::create()
->setRiskyAllowed(true)
$config = new PhpCsFixer\Config();
return $config->setRiskyAllowed(true)
->setRules(array(
'@PSR2' => true,
'@PHPUnit60Migration:risky' => true,
'@PHPUnit84Migration:risky' => true,
'binary_operator_spaces' => array('align_double_arrow' => true, 'align_equals' => true),
'binary_operator_spaces' => array('operators' => array('=' => 'align', '=>' => 'align')),
'single_quote' => true,
'array_syntax' => array('syntax' => 'long'),
'concat_space' => array('spacing' => 'one'),
'psr0' => false
'psr_autoloading' => array('dir' => 'src'),
))
->setUsingCache(true)
->setFinder($finder);
Expand Down
12 changes: 6 additions & 6 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"homepage": "http://framework.zend.com/",
"license": "BSD-3-Clause",
"require": {
"php": "^7.0 || ^8.0",
"php": "^7.4 || ~8.0.0 || ~8.1.0",
"diablomedia/zendframework1-exception": "^1.0.0",
"diablomedia/zendframework1-config": "^1.0.0 || ^2.0.0",
"diablomedia/zendframework1-loader": "^1.0.0"
Expand All @@ -28,11 +28,11 @@
}
},
"require-dev": {
"phpunit/phpunit": "^8.0",
"phpstan/phpstan": "0.12.82",
"friendsofphp/php-cs-fixer": "2.18.4",
"maglnet/composer-require-checker": "^1.1.0 || ^2.0.0",
"phpro/grumphp-shim": "^0.22.0 || ^1.1"
"phpunit/phpunit": "^9.5.10",
"phpstan/phpstan": "1.2.0",
"friendsofphp/php-cs-fixer": "3.3.2",
"maglnet/composer-require-checker": "^3.0.0",
"phpro/grumphp-shim": "^1.5.0"
},
"archive": {
"exclude": [
Expand Down
2 changes: 1 addition & 1 deletion grumphp.yml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ grumphp:
config_file: require-checker-config.json
phpcsfixer2:
allow_risky: true
config: .php_cs
config: .php-cs-fixer.php
phpstan:
configuration: phpstan.neon
phpunit:
Expand Down
16 changes: 9 additions & 7 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ parameters:
level: 8
paths:
- ./
excludes_analyse:
excludePaths:
- ./tests/*
- ./vendor/*
bootstrapFiles:
Expand All @@ -12,24 +12,26 @@ parameters:
# Zend_Config has an __isset overload defined so that these array-like calls will work
- '#Cannot access offset .+ on array\|Zend_Config\.#'
# call_user_func does accept an array as the callable
- '#Parameter \#1 \$(function|callback) of function call_user_func expects callable\(\): mixed, array\(string, .factory.\) given\.#'
-
message: '#Parameter \#1 \$(function|callback) of function call_user_func expects callable\(\): mixed, array{string, .factory.} given\.#'
path: './src/Zend/Log.php'
-
message: '#Parameter \#2 \$priority of method Zend_Log::log\(\) expects int, int\|string given\.#'
path: %currentWorkingDirectory%/src/Zend/Log.php
path: './src/Zend/Log.php'
-
message: '#Cannot access offset int on array\|bool\.#'
path: %currentWorkingDirectory%/src/Zend/Log.php
path: './src/Zend/Log.php'
-
message: '#Property Zend_Log_Writer_Stream::\$_stream \(resource\|null\) does not accept resource\|false\.#'
path: %currentWorkingDirectory%/src/Zend/Log/Writer/Stream.php
path: './src/Zend/Log/Writer/Stream.php'
-
message: '#Parameter \#1 \$(fp|stream) of function fwrite expects resource, resource\|null given\.#'
path: %currentWorkingDirectory%/src/Zend/Log/Writer/Stream.php
path: './src/Zend/Log/Writer/Stream.php'
# All of these are defensive coding in case an object isn't returned from _constructFromConfig (which is
# possible, since it's a call_user_func return)
-
message: '#Else branch is unreachable because ternary operator condition is always true.#'
path: %currentWorkingDirectory%/src/Zend/Log.php
path: './src/Zend/Log.php'
-
message: '#Parameter \#1 \$(argument|objectOrClass) of class ReflectionClass constructor expects class-string<T of object>\|T of object, string given\.#'
path: ./src/Zend/Log.php
30 changes: 12 additions & 18 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
<phpunit
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
beStrictAboutTestsThatDoNotTestAnything="true"
backupGlobals="true"
stderr="true"
colors="true">
<testsuites>
<testsuite name="default">
<directory>./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./src</directory>
</whitelist>
</filter>
<?xml version="1.0"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" beStrictAboutTestsThatDoNotTestAnything="true" backupGlobals="true" stderr="true" colors="true" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage includeUncoveredFiles="true">
<include>
<directory suffix=".php">./src</directory>
</include>
</coverage>
<testsuites>
<testsuite name="default">
<directory>./tests</directory>
</testsuite>
</testsuites>
</phpunit>
19 changes: 19 additions & 0 deletions phpunit.xml.dist.bak
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<phpunit
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
beStrictAboutTestsThatDoNotTestAnything="true"
backupGlobals="true"
stderr="true"
colors="true">
<testsuites>
<testsuite name="default">
<directory>./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./src</directory>
</whitelist>
</filter>
</phpunit>
2 changes: 1 addition & 1 deletion tests/Zend/Log/Filter/MessageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public function testMessageFilterRecognizesInvalidRegularExpression()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/invalid reg/i', $e->getMessage());
$this->assertMatchesRegularExpression('/invalid reg/i', $e->getMessage());
}
}

Expand Down
4 changes: 2 additions & 2 deletions tests/Zend/Log/Filter/PriorityTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public function testConstructorThrowsOnInvalidPriority()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/must be an integer/i', $e->getMessage());
$this->assertMatchesRegularExpression('/must be an integer/i', $e->getMessage());
}
}

Expand Down Expand Up @@ -86,7 +86,7 @@ public function testFactory()
);
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/must be an integer/', $e->getMessage());
$this->assertMatchesRegularExpression('/must be an integer/', $e->getMessage());
}
}
}
2 changes: 1 addition & 1 deletion tests/Zend/Log/Formatter/SimpleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public function testConstructorThrowsOnBadFormatString()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/must be a string/i', $e->getMessage());
$this->assertMatchesRegularExpression('/must be a string/i', $e->getMessage());
}
}

Expand Down
16 changes: 6 additions & 10 deletions tests/Zend/Log/LogTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ public function testLoggerThrowsWhenNoWriters()
$logger->log('message', Zend_Log::INFO);
$this->fail();
} catch (Zend_Log_Exception $e) {
$this->assertRegExp('/no writer/i', $e->getMessage());
$this->assertMatchesRegularExpression('/no writer/i', $e->getMessage());
}
}

Expand Down Expand Up @@ -126,7 +126,7 @@ public function testLogThrowsOnBadLogPriority()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/bad log priority/i', $e->getMessage());
$this->assertMatchesRegularExpression('/bad log priority/i', $e->getMessage());
}
}

Expand All @@ -138,7 +138,7 @@ public function testLogThrough__callThrowsOnBadLogPriority()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/bad log priority/i', $e->getMessage());
$this->assertMatchesRegularExpression('/bad log priority/i', $e->getMessage());
}
}

Expand All @@ -150,7 +150,7 @@ public function testAddingPriorityThrowsWhenOverridingBuiltinLogPriority()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/existing priorities/i', $e->getMessage());
$this->assertMatchesRegularExpression('/existing priorities/i', $e->getMessage());
}
}

Expand Down Expand Up @@ -370,7 +370,7 @@ public function testExceptionConstructWriterFromConfig()
$logger->addWriter($writer);
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp(
$this->assertMatchesRegularExpression(
'#^(Zend_Log_Writer_NotExtendedWriterAbstract|The\sspecified\swriter)#',
$e->getMessage()
);
Expand All @@ -388,7 +388,7 @@ public function testExceptionConstructFilterFromConfig()
$logger->addFilter($filter);
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp(
$this->assertMatchesRegularExpression(
'#^(Zend_Log_Filter_NotImplementsFilterInterface|The\sspecified\sfilter)#',
$e->getMessage()
);
Expand Down Expand Up @@ -517,10 +517,6 @@ public function testFactoryShouldKeepDefaultTimestampFormat()
*/
public function testFactorySupportsPHP53Namespaces()
{
if (version_compare(PHP_VERSION, '5.3.0') < 0) {
$this->markTestSkipped('PHP < 5.3.0 does not support namespaces');
}

// preload namespaced class from custom path
Zend_Loader::loadClass('\Zfns\Writer', array(dirname(__FILE__) . '/_files'));

Expand Down
10 changes: 5 additions & 5 deletions tests/Zend/Log/Writer/StreamTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public function testConstructorThrowsWhenResourceIsNotStream()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/not a stream/i', $e->getMessage());
$this->assertMatchesRegularExpression('/not a stream/i', $e->getMessage());
} catch (Throwable $e) {
// PHP 8 throws a TypeError here
$this->assertInstanceOf(TypeError::class, $e);
Expand Down Expand Up @@ -72,7 +72,7 @@ public function testConstructorThrowsWhenModeSpecifiedForExistingStream()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/existing stream/i', $e->getMessage());
$this->assertMatchesRegularExpression('/existing stream/i', $e->getMessage());
}
}

Expand All @@ -83,7 +83,7 @@ public function testConstructorThrowsWhenStreamCannotBeOpened()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/cannot be opened/i', $e->getMessage());
$this->assertMatchesRegularExpression('/cannot be opened/i', $e->getMessage());
} catch (Throwable $e) {
// PHP 8 throws a ValueError here
$this->assertInstanceOf(ValueError::class, $e);
Expand Down Expand Up @@ -116,7 +116,7 @@ public function testWriteThrowsWhenStreamWriteFails()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/unable to write/i', $e->getMessage());
$this->assertMatchesRegularExpression('/unable to write/i', $e->getMessage());
}
}

Expand All @@ -132,7 +132,7 @@ public function testShutdownClosesStreamResource()
$this->fail();
} catch (Exception $e) {
$this->assertTrue($e instanceof Zend_Log_Exception);
$this->assertRegExp('/unable to write/i', $e->getMessage());
$this->assertMatchesRegularExpression('/unable to write/i', $e->getMessage());
}
}

Expand Down

0 comments on commit 525c174

Please sign in to comment.