App-GHGen
view release on metacpan or search on metacpan
lib/App/GHGen/Generator.pm view on Meta::CPAN
uses: actions/checkout@v7
- name: Setup PHP ${{ matrix.php-version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: mbstring, xml, ctype, json
coverage: xdebug
- name: Validate composer.json
run: composer validate --strict
- name: Cache Composer packages
uses: actions/cache@v6
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
t/function.t view on Meta::CPAN
memory_cycle_ok(\$comment, 'comment string has no circular references');
};
# âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
# 9. Logic-reduction proofs (post-refactoring invariant assertions)
# âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
# Proof: every rule in the apply_fixes dispatch table fires exactly once
# when presented with a matching issue, and never fires on a non-matching
# issue of the same type. This validates the deductive reduction â that
# cyclomatic complexity 8 (elif chain) is equivalent to complexity 1
# (dispatch loop) for every previously-reachable input.
subtest 'Fixer::apply_fixes dispatch â all 8 rules fire independently' => sub {
my %DISPATCH_RULES = (
# type => [ message_that_matches, message_that_does_not_match ]
'performance_caching' => [
'performance',
'No dependency caching found - increases build times and costs',
],
'security_unpinned' => [
( run in 0.646 second using v1.01-cache-2.11-cpan-d01c6094234 )