1*07fb1d06SElliott Hughes // Copyright 2019 The ChromiumOS Authors 2*07fb1d06SElliott Hughes // Use of this source code is governed by a BSD-style license that can be 3*07fb1d06SElliott Hughes // found in the LICENSE file. 4*07fb1d06SElliott Hughes 5*07fb1d06SElliott Hughes #include "base/logging.h" 6*07fb1d06SElliott Hughes #include "brillo/test_helpers.h" 7*07fb1d06SElliott Hughes 8*07fb1d06SElliott Hughes #include "puffin/src/bit_writer.h" 9*07fb1d06SElliott Hughes #include "puffin/src/include/puffin/common.h" 10*07fb1d06SElliott Hughes #include "puffin/src/include/puffin/huffer.h" 11*07fb1d06SElliott Hughes #include "puffin/src/puff_reader.h" 12*07fb1d06SElliott Hughes 13*07fb1d06SElliott Hughes using puffin::Buffer; 14*07fb1d06SElliott Hughes using puffin::BufferBitWriter; 15*07fb1d06SElliott Hughes using puffin::BufferPuffReader; 16*07fb1d06SElliott Hughes using puffin::ByteExtent; 17*07fb1d06SElliott Hughes using puffin::Huffer; 18*07fb1d06SElliott Hughes 19*07fb1d06SElliott Hughes namespace { FuzzHuff(const uint8_t * data,size_t size)20*07fb1d06SElliott Hughesvoid FuzzHuff(const uint8_t* data, size_t size) { 21*07fb1d06SElliott Hughes BufferPuffReader puff_reader(data, size); 22*07fb1d06SElliott Hughes Buffer deflate_buffer(size); 23*07fb1d06SElliott Hughes BufferBitWriter bit_writer(deflate_buffer.data(), deflate_buffer.size()); 24*07fb1d06SElliott Hughes Huffer huffer; 25*07fb1d06SElliott Hughes huffer.HuffDeflate(&puff_reader, &bit_writer); 26*07fb1d06SElliott Hughes } 27*07fb1d06SElliott Hughes 28*07fb1d06SElliott Hughes class Environment { 29*07fb1d06SElliott Hughes public: Environment()30*07fb1d06SElliott Hughes Environment() { 31*07fb1d06SElliott Hughes // To turn off the logging. 32*07fb1d06SElliott Hughes logging::SetMinLogLevel(logging::LOGGING_FATAL); 33*07fb1d06SElliott Hughes } 34*07fb1d06SElliott Hughes }; 35*07fb1d06SElliott Hughes 36*07fb1d06SElliott Hughes } // namespace 37*07fb1d06SElliott Hughes LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)38*07fb1d06SElliott Hughesextern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { 39*07fb1d06SElliott Hughes static Environment env; 40*07fb1d06SElliott Hughes 41*07fb1d06SElliott Hughes FuzzHuff(data, size); 42*07fb1d06SElliott Hughes return 0; 43*07fb1d06SElliott Hughes } 44