import { FuzzedDataProvider } from " @vitiate/fuzzed-data-provider " ;
FuzzedDataProvider consumes bytes from a fuzzer-generated buffer and produces typed values. It follows the same design as LLVM’s FuzzedDataProvider .
new FuzzedDataProvider ( data : Uint8Array )
Creates a provider that consumes bytes from data. A Buffer (which extends Uint8Array) can be passed directly.
Property Type Description remainingBytesnumberNumber of unconsumed bytes remaining
Method Return Type Description consumeBoolean()booleanConsume one byte as a boolean consumeBooleans(maxLength)boolean[]Consume up to maxLength bytes, interpreting each byte’s LSB as a boolean
Method Return Type Description consumeIntegral(maxNumBytes, isSigned?)numberConsume up to maxNumBytes (1-6) as an integer. isSigned defaults to false. consumeIntegralInRange(min, max)numberConsume an integer uniformly distributed in [min, max] consumeIntegrals(maxLength, numBytesPerIntegral, isSigned?)number[]Consume an array of integers
Method Return Type Description consumeBigIntegral(maxNumBytes, isSigned?)bigintConsume up to maxNumBytes as a BigInt consumeBigIntegralInRange(min, max)bigintConsume a BigInt in [min, max] consumeBigIntegrals(maxLength, numBytesPerIntegral, isSigned?)bigint[]Consume an array of BigInts
Method Return Type Description consumeNumber()numberConsume 8 bytes as a number (double) consumeNumberInRange(min, max)numberConsume a number in [min, max] consumeFloat()numberConsume 4 bytes as a float consumeFloatInRange(min, max)numberConsume a float in [min, max] consumeDouble()numberAlias for consumeNumber() consumeDoubleInRange(min, max)numberAlias for consumeNumberInRange() consumeNumbers(maxLength)number[]Consume an array of doubles consumeProbabilityFloat()numberConsume a float in [0.0, 1.0] consumeProbabilityDouble()numberConsume a double in [0.0, 1.0]
Method Return Type Description consumeBytes(maxLength)Uint8ArrayConsume up to maxLength bytes consumeRemainingAsBytes()Uint8ArrayConsume all remaining bytes
Method Return Type Description consumeString(maxLength, options?)stringConsume up to maxLength characters consumeRemainingAsString(options?)stringConsume all remaining bytes as a string consumeStringArray(maxArrayLength, maxStringLength, options?)string[]Consume an array of strings
Field Type Default Description encodingstring"utf-8"String encoding printablebooleanfalseRestrict to printable ASCII characters
Method Return Type Description pickValue<T>(array)TPick a random element from the array pickValues<T>(array, numValues)T[]Pick numValues elements (with replacement)
When no bytes remain, consume methods return zero-values: 0 for numbers, false for booleans, "" for strings, empty arrays for array methods. They do not throw.