This commit is contained in:
Alexandra Latysheva 2020-09-23 21:18:17 +00:00
parent 358d919ea0
commit 6f3acfabb0
6 changed files with 53 additions and 55 deletions

View File

@ -35,9 +35,9 @@ static const std::vector<unsigned char> cluster_0 = {0, 0, 2, 0, 138, 139};
static const std::vector<unsigned char> cluster_64 = {0, 0, 9, 6, 134, 119};
static const std::vector<unsigned char> cluster_128 = {44, 40, 63, 59, 230, 95};
static int check_cluster(int cluster,
const sapi::v::Array<unsigned char> &buffer,
const std::vector<unsigned char> &expected_cluster) {
static int CheckCluster(int cluster,
const sapi::v::Array<unsigned char> &buffer,
const std::vector<unsigned char> &expected_cluster) {
unsigned char *target = buffer.GetData() + cluster * 6;
if (!std::memcmp(target, expected_cluster.data(), 6)) {
@ -56,9 +56,9 @@ static int check_cluster(int cluster,
return 1;
}
static int check_rgb_pixel(int pixel, int min_red, int max_red, int min_green,
int max_green, int min_blue, int max_blue,
const sapi::v::Array<unsigned char> &buffer) {
static int CheckRgbPixel(int pixel, int min_red, int max_red, int min_green,
int max_green, int min_blue, int max_blue,
const sapi::v::Array<unsigned char> &buffer) {
unsigned char *rgb = buffer.GetData() + 3 * pixel;
if (rgb[0] >= min_red && rgb[0] <= max_red && rgb[1] >= min_green &&
@ -74,10 +74,10 @@ static int check_rgb_pixel(int pixel, int min_red, int max_red, int min_green,
return 1;
}
static int check_rgba_pixel(int pixel, int min_red, int max_red, int min_green,
int max_green, int min_blue, int max_blue,
int min_alpha, int max_alpha,
const sapi::v::Array<unsigned> &buffer) {
static int CheckRgbaPixel(int pixel, int min_red, int max_red, int min_green,
int max_green, int min_blue, int max_blue,
int min_alpha, int max_alpha,
const sapi::v::Array<unsigned> &buffer) {
// RGBA images are upside down - adjust for normal ordering
int adjusted_pixel = pixel % 128 + (127 - (pixel / 128)) * 128;
uint32 rgba = buffer[adjusted_pixel];
@ -133,8 +133,7 @@ int main(int argc, char **argv) {
std::string srcfile;
// "test/images/quad-tile.jpg.tiff"
std::string srcfilerel =
"quad-tile.jpg.tiff";
std::string srcfilerel = "quad-tile.jpg.tiff";
if (argc < 2) {
srcfile = GetFilePath(srcfilerel);
@ -200,9 +199,9 @@ int main(int argc, char **argv) {
return 1;
}
if (check_cluster(0, buffer_, cluster_0) ||
check_cluster(64, buffer_, cluster_64) ||
check_cluster(128, buffer_, cluster_128)) {
if (CheckCluster(0, buffer_, cluster_0) ||
CheckCluster(64, buffer_, cluster_64) ||
CheckCluster(128, buffer_, cluster_128)) {
return 1;
}
@ -230,9 +229,9 @@ int main(int argc, char **argv) {
}
unsigned pixel_status = 0;
pixel_status |= check_rgb_pixel(0, 15, 18, 0, 0, 18, 41, buffer2_);
pixel_status |= check_rgb_pixel(64, 0, 0, 0, 0, 0, 2, buffer2_);
pixel_status |= check_rgb_pixel(512, 5, 6, 34, 36, 182, 196, buffer2_);
pixel_status |= CheckRgbPixel(0, 15, 18, 0, 0, 18, 41, buffer2_);
pixel_status |= CheckRgbPixel(64, 0, 0, 0, 0, 0, 2, buffer2_);
pixel_status |= CheckRgbPixel(512, 5, 6, 34, 36, 182, 196, buffer2_);
if (!api.TIFFClose(&tif).ok()) {
std::cerr << "TIFFClose error\n";
@ -260,11 +259,10 @@ int main(int argc, char **argv) {
}
pixel_status |=
check_rgba_pixel(0, 15, 18, 0, 0, 18, 41, 255, 255, rgba_buffer_);
CheckRgbaPixel(0, 15, 18, 0, 0, 18, 41, 255, 255, rgba_buffer_);
pixel_status |= CheckRgbaPixel(64, 0, 0, 0, 0, 0, 2, 255, 255, rgba_buffer_);
pixel_status |=
check_rgba_pixel(64, 0, 0, 0, 0, 0, 2, 255, 255, rgba_buffer_);
pixel_status |=
check_rgba_pixel(512, 5, 6, 34, 36, 182, 196, 255, 255, rgba_buffer_);
CheckRgbaPixel(512, 5, 6, 34, 36, 182, 196, 255, 255, rgba_buffer_);
if (!api.TIFFClose(&tif2).ok()) {
std::cerr << "TIFFClose erro\n";

View File

@ -14,6 +14,7 @@
#include <linux/futex.h>
#include <syscall.h>
#include <utility>
#include "sandboxed_api/util/flag.h"
@ -65,4 +66,4 @@ class TiffSapiSandbox : public TiffSandbox {
std::string dir_, file_;
};
} // namespace
} // namespace

View File

@ -40,7 +40,7 @@ static const unsigned short kBps = 8;
static const unsigned short kRowsPerStrip = 1;
static const unsigned short kSamplePerPixel = 1;
void test_writing(const char* mode, int tiled, int height) {
void TestWriting(const char* mode, int tiled, int height) {
sapi::StatusOr<std::string> status_or_path =
sandbox2::CreateNamedTempFileAndClose("defer_strile_writing.tif");
ASSERT_THAT(status_or_path, IsOk()) << "Could not create temp file";
@ -314,9 +314,9 @@ void test_writing(const char* mode, int tiled, int height) {
TEST(SandboxTest, DeferStrileWriting) {
for (int tiled = 0; tiled <= 1; ++tiled) {
test_writing("w", tiled, 1);
test_writing("w", tiled, 10);
test_writing("w8", tiled, 1);
test_writing("wD", tiled, 1);
TestWriting("w", tiled, 1);
TestWriting("w", tiled, 10);
TestWriting("w8", tiled, 1);
TestWriting("wD", tiled, 1);
}
}

View File

@ -26,13 +26,13 @@
* TIFFSetField
*/
struct long_tag {
struct LongTag {
ttag_t tag;
short count;
unsigned value;
};
const std::vector<long_tag> long_tags = {
const std::vector<LongTag> long_tags = {
{TIFFTAG_SUBFILETYPE, 1,
FILETYPE_REDUCEDIMAGE | FILETYPE_PAGE | FILETYPE_MASK}};
#define SPP 3 // kSamplePerPixel
@ -132,4 +132,4 @@ TEST(SandboxTest, LongTag) {
ASSERT_THAT(api.TIFFClose(&tif2), IsOk()) << "TIFFClose fatal error";
unlink(srcfile.c_str());
}
}

View File

@ -32,9 +32,9 @@ static const std::vector<unsigned char> cluster_0 = {0, 0, 2, 0, 138, 139};
static const std::vector<unsigned char> cluster_64 = {0, 0, 9, 6, 134, 119};
static const std::vector<unsigned char> cluster_128 = {44, 40, 63, 59, 230, 95};
static int check_cluster(int cluster,
const sapi::v::Array<unsigned char> &buffer,
const std::vector<unsigned char> &expected_cluster) {
static int CheckCluster(int cluster,
const sapi::v::Array<unsigned char> &buffer,
const std::vector<unsigned char> &expected_cluster) {
unsigned char *target = buffer.GetData() + cluster * 6;
bool comp = !(std::memcmp(target, expected_cluster.data(), 6) == 0);
@ -50,9 +50,9 @@ static int check_cluster(int cluster,
return comp;
}
static int check_rgb_pixel(int pixel, int min_red, int max_red, int min_green,
int max_green, int min_blue, int max_blue,
const sapi::v::Array<unsigned char> &buffer) {
static int CheckRgbPixel(int pixel, int min_red, int max_red, int min_green,
int max_green, int min_blue, int max_blue,
const sapi::v::Array<unsigned char> &buffer) {
unsigned char *rgb = buffer.GetData() + 3 * pixel;
bool comp =
@ -68,10 +68,10 @@ static int check_rgb_pixel(int pixel, int min_red, int max_red, int min_green,
return comp;
}
static int check_rgba_pixel(int pixel, int min_red, int max_red, int min_green,
int max_green, int min_blue, int max_blue,
int min_alpha, int max_alpha,
const sapi::v::Array<unsigned> &buffer) {
static int CheckRgbaPixel(int pixel, int min_red, int max_red, int min_green,
int max_green, int min_blue, int max_blue,
int min_alpha, int max_alpha,
const sapi::v::Array<unsigned> &buffer) {
/* RGBA images are upside down - adjust for normal ordering */
int adjusted_pixel = pixel % 128 + (127 - (pixel / 128)) * 128;
unsigned rgba = buffer[adjusted_pixel];
@ -140,9 +140,9 @@ TEST(SandboxTest, RawDecode) {
<< "Did not get expected result code from TIFFReadEncodedTile()("
<< (int)status_or_long.value() << " instead of " << (int)sz << ")";
ASSERT_FALSE(check_cluster(0, buffer_, cluster_0) ||
check_cluster(64, buffer_, cluster_64) ||
check_cluster(128, buffer_, cluster_128))
ASSERT_FALSE(CheckCluster(0, buffer_, cluster_0) ||
CheckCluster(64, buffer_, cluster_64) ||
CheckCluster(128, buffer_, cluster_128))
<< "Clusters did not match expected results";
status_or_int =
@ -164,9 +164,9 @@ TEST(SandboxTest, RawDecode) {
<< "Did not get expected result code from TIFFReadEncodedTile()("
<< status_or_long.value() << " instead of " << sz;
pixel_status |= check_rgb_pixel(0, 15, 18, 0, 0, 18, 41, buffer2_);
pixel_status |= check_rgb_pixel(64, 0, 0, 0, 0, 0, 2, buffer2_);
pixel_status |= check_rgb_pixel(512, 5, 6, 34, 36, 182, 196, buffer2_);
pixel_status |= CheckRgbPixel(0, 15, 18, 0, 0, 18, 41, buffer2_);
pixel_status |= CheckRgbPixel(64, 0, 0, 0, 0, 0, 2, buffer2_);
pixel_status |= CheckRgbPixel(512, 5, 6, 34, 36, 182, 196, buffer2_);
ASSERT_THAT(api.TIFFClose(&tif), IsOk()) << "TIFFClose fatal error";
@ -186,11 +186,10 @@ TEST(SandboxTest, RawDecode) {
<< "TIFFReadRGBATile() returned failure code";
pixel_status |=
check_rgba_pixel(0, 15, 18, 0, 0, 18, 41, 255, 255, rgba_buffer_);
CheckRgbaPixel(0, 15, 18, 0, 0, 18, 41, 255, 255, rgba_buffer_);
pixel_status |= CheckRgbaPixel(64, 0, 0, 0, 0, 0, 2, 255, 255, rgba_buffer_);
pixel_status |=
check_rgba_pixel(64, 0, 0, 0, 0, 0, 2, 255, 255, rgba_buffer_);
pixel_status |=
check_rgba_pixel(512, 5, 6, 34, 36, 182, 196, 255, 255, rgba_buffer_);
CheckRgbaPixel(512, 5, 6, 34, 36, 182, 196, 255, 255, rgba_buffer_);
EXPECT_THAT(api.TIFFClose(&tif2), IsOk()) << "TIFFClose fatal error";

View File

@ -34,17 +34,17 @@ static const unsigned short kPhotometric = PHOTOMETRIC_RGB;
static const unsigned short kRowsPerStrip = 1;
static const unsigned short kPlanarConfig = PLANARCONFIG_CONTIG;
struct single_tag {
struct SingleTag {
const ttag_t tag;
const unsigned short value;
};
struct paired_tag {
struct PairedTag {
const ttag_t tag;
const std::array<unsigned short, 2> values;
};
static const std::vector<single_tag> short_single_tags = {
static const std::vector<SingleTag> short_single_tags = {
{TIFFTAG_COMPRESSION, COMPRESSION_NONE},
{TIFFTAG_FILLORDER, FILLORDER_MSB2LSB},
{TIFFTAG_ORIENTATION, ORIENTATION_BOTRIGHT},
@ -55,7 +55,7 @@ static const std::vector<single_tag> short_single_tags = {
{TIFFTAG_NUMBEROFINKS, SPP},
{TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_UINT}};
static const std::vector<paired_tag> short_paired_tags = {
static const std::vector<PairedTag> short_paired_tags = {
{TIFFTAG_PAGENUMBER, {1, 1}},
{TIFFTAG_HALFTONEHINTS, {0, 255}},
{TIFFTAG_DOTRANGE, {8, 16}},