tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

compressed_icc_test.cc (1445B)


      1 // Copyright (c) the JPEG XL Project Authors. All rights reserved.
      2 //
      3 // Use of this source code is governed by a BSD-style
      4 // license that can be found in the LICENSE file.
      5 
      6 #include "jxl/compressed_icc.h"
      7 
      8 #include <jxl/memory_manager.h>
      9 
     10 #include <cstddef>
     11 #include <cstdint>
     12 #include <cstring>
     13 
     14 #include "lib/jxl/color_encoding_internal.h"
     15 #include "lib/jxl/test_memory_manager.h"
     16 #include "lib/jxl/test_utils.h"
     17 #include "lib/jxl/testing.h"
     18 
     19 namespace jxl {
     20 namespace {
     21 
     22 TEST(CompressedIccTest, Roundtrip) {
     23  JxlMemoryManager* memory_manager = jxl::test::MemoryManager();
     24  uint8_t* compressed_icc;
     25  size_t compressed_icc_size;
     26  const IccBytes icc = jxl::test::GetIccTestProfile();
     27  ASSERT_TRUE(JxlICCProfileEncode(memory_manager, icc.data(), icc.size(),
     28                                  &compressed_icc, &compressed_icc_size));
     29 
     30  EXPECT_LT(compressed_icc_size, icc.size());
     31 
     32  uint8_t* decompressed_icc;
     33  size_t decompressed_icc_size;
     34  ASSERT_TRUE(JxlICCProfileDecode(memory_manager, compressed_icc,
     35                                  compressed_icc_size, &decompressed_icc,
     36                                  &decompressed_icc_size));
     37 
     38  ASSERT_EQ(decompressed_icc_size, icc.size());
     39 
     40  EXPECT_EQ(0, memcmp(decompressed_icc, icc.data(), decompressed_icc_size));
     41 
     42  memory_manager->free(memory_manager->opaque, compressed_icc);
     43  memory_manager->free(memory_manager->opaque, decompressed_icc);
     44 }
     45 
     46 }  // namespace
     47 }  // namespace jxl