Fix for an incorrect call to `get_next` that was stopping the Croniter
`fuzz_iter` executing, see
[https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57139#c2](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57139#c2).
It was being called with a `datetime` object instead of a `datetime`
class as it's `ret_type` argument causing a type error. I've removed the
argument that's fixed it.
Also I've added the `undefined` sanitizer as it was missing from the
`project.yaml`. I've done a local run and it works fine with it enabled.
`fuzz_iter.py`
- Added coverage of optional `hash_id` parameter
- Added call to `is_valid` method
- Added call to `get_next` & `get_prev` methods for the returned
croniter iterator
`fuzz_match.py`
- Added fuzzing of `croniter.match`
`fuzz_range.py`
- Added fuzzing of `croniter.range`
This is to make it work with fuzz introspector.
Ref: https://github.com/ossf/fuzz-introspector/pull/613
Signed-off-by: David Korczynski <david@adalogics.com>
Signed-off-by: David Korczynski <david@adalogics.com>
* croniter: instrument fuzzing function
The Croniter build is having some troubles with coverage and I'm not
entirely sure why. It seems like the corpus is not there and I'm not
entirely sure if this has to do with some instrumentation underlyings.
Locally the end-to-end process of running, collecting seeds and
generating coverage works for me. The effort in this PR is to make the
setup similar to pyyalm where the coverage visualisation works -- the
only difference I could spot between fuzzers from the two projects is
that croniter does not have its fuzzer entry function instrumented.
* Instrument all. This is similar to protobuf-python