Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 31 additions & 19 deletions .github/workflows/testsuite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
run: prove -b xt

linux:
name: "linux ${{ matrix.perl-version }}"
name: "linux ${{ matrix.perl-version }} ${{ matrix.backend }} ${{ matrix.backend-version }}"
needs: [ubuntu]
env:
PERL_USE_UNSAFE_INC: 0
Expand All @@ -49,14 +49,17 @@ jobs:
backend-version: 0
perl-version: latest
- backend: JSON::XS
backend-version: 4.00
backend-version: 4.04
perl-version: latest
- backend: JSON::XS
backend-version: 3.02
perl-version: latest
- backend: JSON::XS
backend-version: 2.34
perl-version: latest
- backend: JSON::PP
backend-version: 4.18
perl-version: latest
- backend: JSON::PP
backend-version: 2.97001
perl-version: latest
Expand All @@ -67,44 +70,50 @@ jobs:
backend-version: 2.27101
perl-version: latest
- backend: Cpanel::JSON::XS
backend-version: 4.32
backend-version: 4.38
perl-version: latest
- backend: Cpanel::JSON::XS
backend-version: 4.08
backend-version: 4.32
perl-version: latest
# - backend: Cpanel::JSON::XS
# backend-version: 4.08 (build failing)
# perl-version: latest
- backend: Cpanel::JSON::XS
backend-version: 3.0218
perl-version: latest
- backend: JSON::XS
backend-version: 4.00
perl-version: 5.8
backend-version: 4.04
perl-version: 5.8-buster
- backend: JSON::XS
backend-version: 3.02
perl-version: 5.8
perl-version: 5.8-buster
- backend: JSON::XS
backend-version: 2.34
perl-version: 5.8
perl-version: 5.8-buster
- backend: JSON::PP
backend-version: 2.97001
perl-version: 5.8
perl-version: 5.8-buster
- backend: JSON::PP
backend-version: 2.27400
perl-version: 5.8
perl-version: 5.8-buster
- backend: JSON::PP
backend-version: 2.27101
perl-version: 5.8
perl-version: 5.8-buster
- backend: Cpanel::JSON::XS
backend-version: 0
perl-version: 5.8
perl-version: 5.8-buster
- backend: Cpanel::JSON::XS
backend-version: 4.38
perl-version: 5.8-buster
- backend: Cpanel::JSON::XS
backend-version: 4.32
perl-version: 5.8
perl-version: 5.8-buster
- backend: Cpanel::JSON::XS
backend-version: 4.08
perl-version: 5.8
perl-version: 5.8-buster
- backend: Cpanel::JSON::XS
backend-version: 3.0218
perl-version: 5.8
perl-version: 5.8-buster

container:
image: perl:${{ matrix.perl-version }}
Expand All @@ -113,23 +122,26 @@ jobs:
- uses: actions/checkout@v1
- name: perl -V
run: perl -V; echo "${{ matrix.backend }}"; echo "${{ matrix.backend-version }}"
- name: install dependencies
if: ${{ matrix.perl-version == '5.8-buster' }}
run: cpanm -n --installdeps . && cpanm -n version
- name: install backend
if: ${{ matrix.backend-version != '0' && matrix.backend != 'JSON::backportPP' }}
run: cpanm -n ${{ matrix.backend }}@${{ matrix.backend-version }}
run: cpanm -nv ${{ matrix.backend }}@${{ matrix.backend-version }}
- name: install backend2
if: ${{ matrix.backend-version == '0' && matrix.backend != 'JSON::backportPP' }}
run: cpanm -n ${{ matrix.backend }}
run: cpanm -nv ${{ matrix.backend }}
- name: Makefile.PL
run: perl -I$(pwd) Makefile.PL
- name: make test
run: PERL_JSON_BACKEND=${{ matrix.backend }} make test
- name: load JSON after backend
if: ${{ matrix.backend == 'Cpanel::JSON::XS' || matrix.backend == 'JSON::XS' }}
run: cpanm -n Test::Warnings JSON::PP@4.12; perl -Ilib -we 'use Test::More; use Test::Warnings qw(:report_warnings); use ${{ matrix.backend }} (); use JSON (); done_testing'
run: cpanm -n Test::Warnings JSON::PP@4.18; perl -Ilib -we 'use Test::More; use Test::Warnings qw(:report_warnings); use ${{ matrix.backend }} (); use JSON (); done_testing'
- name: load JSON before backend
continue-on-error: true
if: ${{ matrix.backend == 'Cpanel::JSON::XS' || matrix.backend == 'JSON::XS' }}
run: cpanm -n Test::Warnings JSON::PP@4.12; perl -Ilib -we 'use Test::More; use Test::Warnings qw(:report_warnings); use JSON (); use ${{ matrix.backend }} (); done_testing'
run: cpanm -n Test::Warnings JSON::PP@4.18; perl -Ilib -we 'use Test::More; use Test::Warnings qw(:report_warnings); use JSON (); use ${{ matrix.backend }} (); done_testing'
- name: load JSON::backportPP after backend
if: ${{ matrix.backend == 'Cpanel::JSON::XS' || matrix.backend == 'JSON::XS' }}
run: cpanm -n Test::Warnings; perl -Ilib -we 'use Test::More; use Test::Warnings qw(:report_warnings); use ${{ matrix.backend }} (); use JSON::backportPP (); done_testing'
Expand Down
3 changes: 2 additions & 1 deletion Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ WriteMakefile(
'ABSTRACT_FROM' => 'lib/JSON.pm', # retrieve abstract from module
'AUTHOR' => 'Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>',
'PREREQ_PM' => {
'Test::More' => 0,
'Test::More' => 0.88,
'Scalar::Util' => '1.08'
},
( $ExtUtils::MakeMaker::VERSION >= 6.3002 ? ('LICENSE' => 'perl', ) : () ),

Expand Down
14 changes: 12 additions & 2 deletions author/bin/sync_pp.pl
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
$content =~ s/use JSON::PP::Boolean/use JSON::backportPP::Boolean/;
$content =~ s/JSON::PP::Compat/JSON::backportPP::Compat/g;
$content =~ s/\$JSON::PP::([\w:]+)VERSION/\$JSON::backportPP::$1VERSION/g;
$content =~ s/\$JSON::PP::VERSION/\$JSON::backportPP::VERSION/g;
$content =~ s/\@JSON::PP::ISA/\@JSON::backportPP::ISA/g;
$content =~ s/our \$VERSION/\$JSON::backportPP::VERSION/g;
$content =~ s/our \@ISA/\@JSON::backportPP::ISA/g;
$root->child('lib/JSON/backportPP.pm')->spew($content);
}

Expand All @@ -49,6 +49,13 @@
print STDERR "copied $pp_test to $json_test\n";
next;
}
if ($basename =~ /\.pl$/) {
my $content = $pp_test->slurp;
$content =~ s/JSON::PP(::|->|;)/JSON$1/g;
$json_test->spew($content);
print STDERR "copied $pp_test to $json_test\n";
next;
}
if ($basename =~ /\.t$/) {
my $content = $pp_test->slurp;
$content =~ s/JSON::PP(::|->|;| |\.|$)/JSON$1/mg;
Expand Down Expand Up @@ -115,6 +122,9 @@
$content =~ s|JSON->can\('CORE_BOOL'\)|JSON->backend->can('CORE_BOOL')|g;
$content =~ s|JSON::CORE_BOOL|JSON->backend->CORE_BOOL|g;
}
if ($basename =~ /^99_binary\d+/) {
$content =~ s|099_binary|99_binary|g;
}

$json_test->spew($content);
print STDERR "copied $pp_test to $json_test\n";
Expand Down
Loading