blob: b5701d713eb44b5434cdcb68c8a860f6c097c998 [file] [log] [blame]
// Copyright 2015 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef TESTING_TEST_SUPPORT_H_
#define TESTING_TEST_SUPPORT_H_
#include <stdint.h>
#include "core/fxcrt/compiler_specific.h"
#include "core/fxcrt/span.h"
namespace pdfium {
#define STR_IN_TEST_CASE(input_literal, ...) \
{ \
reinterpret_cast<const uint8_t*>(input_literal), \
sizeof(input_literal) - 1, __VA_ARGS__ \
}
#define STR_IN_OUT_CASE(input_literal, expected_literal, ...) \
{ \
reinterpret_cast<const uint8_t*>(input_literal), \
sizeof(input_literal) - 1, \
reinterpret_cast<const uint8_t*>(expected_literal), \
sizeof(expected_literal) - 1, __VA_ARGS__ \
}
struct StrFuncTestData {
pdfium::span<const uint8_t> input_span() const {
// SAFETY: size determined from literal via macro above.
return UNSAFE_BUFFERS(pdfium::make_span(input, input_size));
}
pdfium::span<const uint8_t> expected_span() const {
// SAFETY: size determined from literal via macro above.
return UNSAFE_BUFFERS(pdfium::make_span(expected, expected_size));
}
const uint8_t* input;
uint32_t input_size;
const uint8_t* expected;
uint32_t expected_size;
};
struct DecodeTestData {
pdfium::span<const uint8_t> input_span() const {
// SAFETY: size determined from literal via macro above.
return UNSAFE_BUFFERS(pdfium::make_span(input, input_size));
}
pdfium::span<const uint8_t> expected_span() const {
// SAFETY: size determined from literal via macro above.
return UNSAFE_BUFFERS(pdfium::make_span(expected, expected_size));
}
const uint8_t* input;
uint32_t input_size;
const uint8_t* expected;
uint32_t expected_size;
// The size of input string being processed.
uint32_t processed_size;
};
struct NullTermWstrFuncTestData {
const wchar_t* input;
const wchar_t* expected;
};
} // namespace pdfium
#endif // TESTING_TEST_SUPPORT_H_