trings (major.minor.patch)
=item * C<jwt> - JWT-like tokens (base64url format)
=item * C<json> - Simple JSON objects
=item * C<base64> - Base64-encoded strings
=item * C<md5> - MD5 hashes (32 hex
$payload.$signature";
}
},
description => 'JWT-like tokens (base64url format)',
},
json => {
code => q{
Gen {
my @keys = qw(id name value status count);
my $key = $keys
my $value = 1 + int(rand(1000));
qq({"$key":$value});
}
},
description => 'Simple JSON objects',
},
base64 => {
code => q{
Gen {
my @chars = ('A'..'Z', 'a'..'z', '0'..
lls
sub _dedup_cases
{
my $cases = shift;
require JSON::MaybeXS;
JSON::MaybeXS->import();
my %seen;
my @rc = grep {
my $dump = encode_json($_);
!$seen{$dump}++
} @{$cases};
return \@rc;
#!/usr/bin/env perl
use strict;
use warnings;
use autodie qw(:all);
use JSON::MaybeXS;
use File::Glob ':glob';
use File::Slurp;
use File::stat;
use POSIX qw(strftime);
use Readonly;
Readonly my %co
r_db => 'cover_db/cover.json',
output => 'cover_html/index.html'
);
# Read and decode coverage data
my $json_text = read_file($config{cover_db});
my $data = decode_json($json_text);
my $coverage_pc
ob("coverage_history/*.json");
# Cache historical data instead of reading for each file
my %historical_cache;
for my $hist_file (@history_files) {
my $json = eval { decode_json(read_file($hist_file)