| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "core/fxcodec/codec/codec_int.h" | 9 #include "core/fxcodec/codec/codec_int.h" |
| 10 #include "testing/fx_string_testhelpers.h" | 10 #include "testing/fx_string_testhelpers.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 12 |
| 13 static const OPJ_OFF_T kSkipError = static_cast<OPJ_OFF_T>(-1); | 13 static const OPJ_OFF_T kSkipError = static_cast<OPJ_OFF_T>(-1); |
| 14 static const OPJ_SIZE_T kReadError = static_cast<OPJ_SIZE_T>(-1); | 14 static const OPJ_SIZE_T kReadError = static_cast<OPJ_SIZE_T>(-1); |
| 15 static const OPJ_SIZE_T kWriteError = static_cast<OPJ_SIZE_T>(-1); | 15 static const OPJ_SIZE_T kWriteError = static_cast<OPJ_SIZE_T>(-1); |
| 16 | 16 |
| 17 static unsigned char stream_data[] = { | 17 static unsigned char stream_data[] = { |
| 18 0x00, 0x01, 0x02, 0x03, | 18 0x00, 0x01, 0x02, 0x03, |
| 19 0x84, 0x85, 0x86, 0x87, // Include some hi-bytes, too. | 19 0x84, 0x85, 0x86, 0x87, // Include some hi-bytes, too. |
| 20 }; | 20 }; |
| 21 | 21 |
| 22 union Float_t { |
| 23 Float_t(float num = 0.0f) : f(num) {} |
| 24 |
| 25 int32_t i; |
| 26 FX_FLOAT f; |
| 27 }; |
| 28 |
| 29 TEST(fxcodec, CMYK_Rounding) { |
| 30 // Testing all floats from 0.0 to 1.0 takes about 35 seconds in release |
| 31 // builds and much longer in debug builds, so just test the known-dangerous |
| 32 // range. |
| 33 const FX_FLOAT startValue = 0.001f; |
| 34 const FX_FLOAT endValue = 0.003f; |
| 35 FX_FLOAT R = 0.0f, G = 0.0f, B = 0.0f; |
| 36 // Iterate through floats by incrementing the representation, as discussed in |
| 37 // https://randomascii.wordpress.com/2012/01/23/stupid-float-tricks-2/ |
| 38 for (Float_t f = startValue; f.f < endValue; f.i++) { |
| 39 AdobeCMYK_to_sRGB(f.f, f.f, f.f, f.f, R, G, B); |
| 40 } |
| 41 // Check various other 'special' numbers. |
| 42 AdobeCMYK_to_sRGB(0.0f, 0.25f, 0.5f, 1.0f, R, G, B); |
| 43 } |
| 44 |
| 22 TEST(fxcodec, DecodeDataNullDecodeData) { | 45 TEST(fxcodec, DecodeDataNullDecodeData) { |
| 23 unsigned char buffer[16]; | 46 unsigned char buffer[16]; |
| 24 DecodeData* ptr = nullptr; | 47 DecodeData* ptr = nullptr; |
| 25 | 48 |
| 26 // Error codes, not segvs, should callers pass us a nullptr pointer. | 49 // Error codes, not segvs, should callers pass us a nullptr pointer. |
| 27 EXPECT_EQ(kReadError, opj_read_from_memory(buffer, sizeof(buffer), ptr)); | 50 EXPECT_EQ(kReadError, opj_read_from_memory(buffer, sizeof(buffer), ptr)); |
| 28 EXPECT_EQ(kWriteError, opj_write_from_memory(buffer, sizeof(buffer), ptr)); | 51 EXPECT_EQ(kWriteError, opj_write_from_memory(buffer, sizeof(buffer), ptr)); |
| 29 EXPECT_EQ(kSkipError, opj_skip_from_memory(1, ptr)); | 52 EXPECT_EQ(kSkipError, opj_skip_from_memory(1, ptr)); |
| 30 EXPECT_FALSE(opj_seek_from_memory(1, ptr)); | 53 EXPECT_FALSE(opj_seek_from_memory(1, ptr)); |
| 31 } | 54 } |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 EXPECT_NE(img.comps[0].h, img.comps[1].h); | 546 EXPECT_NE(img.comps[0].h, img.comps[1].h); |
| 524 EXPECT_NE(img.comps[0].w, img.comps[2].w); | 547 EXPECT_NE(img.comps[0].w, img.comps[2].w); |
| 525 EXPECT_NE(img.comps[0].h, img.comps[2].h); | 548 EXPECT_NE(img.comps[0].h, img.comps[2].h); |
| 526 } | 549 } |
| 527 FX_Free(img.comps[0].data); | 550 FX_Free(img.comps[0].data); |
| 528 FX_Free(img.comps[1].data); | 551 FX_Free(img.comps[1].data); |
| 529 FX_Free(img.comps[2].data); | 552 FX_Free(img.comps[2].data); |
| 530 } | 553 } |
| 531 FX_Free(img.comps); | 554 FX_Free(img.comps); |
| 532 } | 555 } |
| OLD | NEW |