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