• Kirill Smelkov's avatar
    fuzz: Hook encoder into the loop · 302c79ea
    Kirill Smelkov authored
    We can enhance our fuzz-testing coverage by hooking Encoder also into
    the loop: if input data is suceessfully decoded, we have an object that
    can be passed back to Encoder to generate a pickle. We can't tell that
    that pickle must be the same as original input data, since pickle
    machine allows multiple representations of the same data. However we can
    assert that when that pickle is decoded back it should be the same as
    encoded object.
    
    This catches several problems:
    
    - marker is currently returned as pickle result (see next patch).
    - text-based STRING and UNICODE are not properly decoded (no fix yet).
    - self-referencing data structures kill Encoder (no fix yet).
    302c79ea
fuzz.go 1.35 KB