Revision history for App-Test-Generator

0.19	Wed Nov 26 07:50:22 EST 2025
	Fixed the loop iterating over mandatory args
	Ensure mandatory_args honours matches

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
