#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_IMAGE_DECODERS_IMAGE_DECODER_TEST_HELPERS_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_IMAGE_DECODERS_IMAGE_DECODER_TEST_HELPERS_H_
#include <memory>
#include "base/metrics/histogram_base.h"
#include "third_party/blink/renderer/platform/image-decoders/image_decoder.h"
#include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
#include "third_party/blink/renderer/platform/wtf/text/string_view.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
class SkBitmap;
namespace blink {
class ImageDecoder;
const char kDecodersTestingDir[] = …;
const unsigned kDefaultSegmentTestSize = …;
const unsigned kDefaultTestSize = …;
DecoderCreator;
DecoderCreatorWithAlpha;
inline void PrepareReferenceData(char* buffer, size_t size) { … }
Vector<char> ReadFile(StringView file_name);
Vector<char> ReadFile(const char* dir, const char* file_name);
scoped_refptr<SharedBuffer> ReadFileToSharedBuffer(StringView file_name);
scoped_refptr<SharedBuffer> ReadFileToSharedBuffer(const char* dir,
const char* file_name);
unsigned HashBitmap(const SkBitmap&);
void CreateDecodingBaseline(DecoderCreator,
SharedBuffer*,
Vector<unsigned>* baseline_hashes);
void TestByteByByteDecode(DecoderCreator create_decoder,
SharedBuffer* data,
size_t expected_frame_count,
int expected_repetition_count);
void TestByteByByteDecode(DecoderCreator create_decoder,
const char* file,
size_t expected_frame_count,
int expected_repetition_count);
void TestByteByByteDecode(DecoderCreator create_decoder,
const char* dir,
const char* file,
size_t expected_frame_count,
int expected_repetition_count);
void TestRandomFrameDecode(DecoderCreator,
const char* file,
size_t skipping_step = 5);
void TestRandomFrameDecode(DecoderCreator,
const char* dir,
const char* file,
size_t skipping_step = 5);
void TestRandomDecodeAfterClearFrameBufferCache(DecoderCreator,
const char* file,
size_t skipping_step = 5);
void TestRandomDecodeAfterClearFrameBufferCache(DecoderCreator,
const char* dir,
const char* file,
size_t skipping_step = 5);
void TestDecodeAfterReallocatingData(DecoderCreator, const char* file);
void TestDecodeAfterReallocatingData(DecoderCreator,
const char* dir,
const char* file);
void TestByteByByteSizeAvailable(DecoderCreator,
const char* file,
size_t frame_offset,
bool has_color_space,
int expected_repetition_count);
void TestByteByByteSizeAvailable(DecoderCreator,
const char* dir,
const char* file,
size_t frame_offset,
bool has_color_space,
int expected_repetition_count);
void TestProgressiveDecoding(DecoderCreator,
const char* file,
size_t increment = 1);
void TestProgressiveDecoding(DecoderCreator,
const char* dir,
const char* file,
size_t increment = 1);
void TestUpdateRequiredPreviousFrameAfterFirstDecode(DecoderCreator,
const char* dir,
const char* file);
void TestUpdateRequiredPreviousFrameAfterFirstDecode(DecoderCreator,
const char* file);
void TestAlphaBlending(DecoderCreatorWithAlpha, const char*);
void TestBppHistogram(DecoderCreator create_decoder,
const char* image_type,
const char* image_name,
const char* histogram_name,
base::HistogramBase::Sample sample);
}
#endif