Revision history for App-Test-Generator
0.18 Tue Nov 25 11:58:12 EST 2025
Removed one place sending '' if test_empty was disabled
Don't send long strings if matches is set
Fixed handling of position code with more than argument
Renamed the sample module
0.17 Tue Nov 25 10:24:36 EST 2025
Improved TEST_VERBOSE output for Corpus tests
Make the strings more random
Added test_non_ascii (default 1) to the configuration matrix
Removed all legacy conf code
Re-ordered the POD
Don't give 42 if max < 42
Added App::Test::Generator::SchemaExtractor
0.16 Thu Nov 20 08:38:17 EST 2025
Use Data::Random::String to generate the string
Use Data::Random::Structure to generate references to hashes and arrays
Remove legacy support for Perl config files
Handle the case when all inputs should cause a die(),
allows App::Test::Generator to sanity test itself
If something is expected to die, don't look at its return code
More boolean edge cases
Don't pass _NAME to validate_strict
When a routine dies, it shouldn't return anything
Begin to use semantic types
Use Test::LectroTest to create more tests
Added custom properties
Separated the Template into its own class to ease maintenance
Use reusable functions to generate cases
Rand_set returns and array, so look at the first element
0.15 Tue Nov 11 19:30:18 EST 2025
Documented how to Fuzz test a CPAN module
populate_positions - don't attempt to deref a scalar
carp when undef is a corpus test case, but test_undefs is not set
Improved handling of cases array for WARNS and DIES
Improved handling of validating position settings in config files
Croak if the schema_file can't be opened
Close stdin and use /dev/null
Fixed logic in testing short strings when min >= 2
0.14 Fri Nov 7 20:26:32 EST 2025
Fixed logic when neither memberof nor notmemberof were defined,
which could cause an empty notmemberof array to be created
Transform: better number of items for arrayrefs
At least one of module and function must be defined
Don't send wrong data types in transform testing built ins
Document the edge_cases_array and ensure all tests in that array are run
Better handing of "input: undef" in the config file
Fix handling of matches in output schemas
0.13 Tue Nov 4 11:52:49 EST 2025
Added better documentation for transforms
transform: filled in more types for the foundation set of data
Added "value" to the transform keywords
Refactored and enabled the code to validate that $module exists and is installed
Added deprecation notice about loading configs from perl code
Allow yes/no as booleans in schema config settings
Fix sprintf issue when the text contains a % sign
0.12 Sun Nov 2 19:38:10 EST 2025
undef can now be used to indicate no input or output
Sending with no args if now configured using "test_undef" rather than "test_empty"
Use Data::Random::String::Matches to create random string that matches a regex
Flag keywords that are yet to be handled
$module can now be set to "builtin"
Initial basic support for positional arguments and transforms
0.11 Sun Oct 26 14:39:19 EDT 2025
Only add to candidate_bad those test cases which are requested
Better matches and nomatch tests
Only load JSON module when dedup is enabled
Added the -o and -r options to bin/fuzz-harness-generator
0.10 Wed Oct 22 09:23:38 EDT 2025
Send wrong data types - should die, e.g. string to an integer field
Fix syntax error when Math::Simple is installed
Added test_empty config (default is on)
0.09 Sun Oct 19 21:14:29 EDT 2025
Better handling of false/true in config files
Better handling of regex into the input structure
0.08 Thu Oct 16 20:44:22 EDT 2025
Allow $new to be set but not defined, this will call new() with no arguments
Started to add support for "nomatch"
Allow specs that specify no input if they have output
If a routine takes no input, it won't die if it has no input
0.07 Tue Oct 14 16:36:33 EDT 2025
Bump minimum versions
Added float that was missing some places
Use Data::Random
Fix GitHub#3
Show how to use this module to automatically schedule random tests
Test for code doing if($string) rather than if(defined($string)) which is confused if $string is '0'
Allow the special word "undef" in the YAML specification for output
0.06 Fri Oct 10 08:55:36 EDT 2025
Allow real config files to be read
Validate the configuration file
0.05 Thu Oct 9 18:23:03 EDT 2025
Removed duplicate regex candidate table
Validate that the corpus inputs are arrayrefs
Only load Class::Simple when needed
Use rel2abs
Load the configuration file in a (slightly) safer way
The test code is now in a template toolkit
Improved random test generator, more knowledgable about min/max, memberof and matches
0.04 Wed Oct 8 08:39:49 EDT 2025
Add fuzzy regex generator
Do basic hard-coded tests where possible, to get it started
Allow pathnames in the module name
Added qwrap - GitHub#1 - thanks to neo1ite
Don't try to fuzz input if no %input is given
Added %config - GitHub#2
Generate tests for routines that take one unnamed parameter - GitHub#2
Added fallback for perl_quote for hashes and objects
0.03 Mon Sep 29 18:18:36 EDT 2025
If minimum is not set, verify 0 or empty fields are allowable
Added the testing dashboard
Fixed handling of memberof in input/output array creation
If TEST_VERBOSE is set, print the generated dataset when running it
Always ensure mandatory strings are passed when testing other arguments
rand_int and rand_numb now also sometimes return very large and very small numbers
Put utf-8 and NUL bytes into strings
0.02 Sun Sep 28 09:03:49 EDT 2025
Use gtar on OS/X to generate the distro
Added edge case test generator for booleans and memberof
0.01 Sun Sep 28 08:43:35 EDT 2025
First draft