| Index: tests/CodecTest.cpp
 | 
| diff --git a/tests/CodecTest.cpp b/tests/CodecTest.cpp
 | 
| index 9c60be4b6bf8ac8313297ccf9bf6939fb3c380a9..b01750d41074a42b7b4d4e9139f9bc42b741e1b5 100644
 | 
| --- a/tests/CodecTest.cpp
 | 
| +++ b/tests/CodecTest.cpp
 | 
| @@ -1120,3 +1120,33 @@ DEF_TEST(Codec_PngRoundTrip, r) {
 | 
|      REPORTER_ASSERT(r, SkCodec::kSuccess == result);
 | 
|      check_round_trip(r, bm2);
 | 
|  }
 | 
| +
 | 
| +static void test_conversion_possible(skiatest::Reporter* r, const char* path,
 | 
| +                                     bool testScanlineDecoder) {
 | 
| +    SkAutoTDelete<SkStream> stream(resource(path));
 | 
| +    SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(stream.release()));
 | 
| +    SkImageInfo infoF16 = codec->getInfo().makeColorType(kRGBA_F16_SkColorType);
 | 
| +
 | 
| +    SkBitmap bm;
 | 
| +    bm.allocPixels(infoF16);
 | 
| +    SkCodec::Result result = codec->getPixels(infoF16, bm.getPixels(), bm.rowBytes());
 | 
| +    REPORTER_ASSERT(r, SkCodec::kInvalidConversion == result);
 | 
| +    if (testScanlineDecoder) {
 | 
| +        result = codec->startScanlineDecode(infoF16);
 | 
| +        REPORTER_ASSERT(r, SkCodec::kInvalidConversion == result);
 | 
| +    }
 | 
| +
 | 
| +    infoF16 = infoF16.makeColorSpace(infoF16.colorSpace()->makeLinearGamma());
 | 
| +    result = codec->getPixels(infoF16, bm.getPixels(), bm.rowBytes());
 | 
| +    REPORTER_ASSERT(r, SkCodec::kSuccess == result);
 | 
| +    if (testScanlineDecoder) {
 | 
| +        result = codec->startScanlineDecode(infoF16);
 | 
| +        REPORTER_ASSERT(r, SkCodec::kSuccess == result);
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +DEF_TEST(Codec_F16ConversionPossible, r) {
 | 
| +    test_conversion_possible(r, "color_wheel.webp", false);
 | 
| +    test_conversion_possible(r, "mandrill_512_q075.jpg", true);
 | 
| +    test_conversion_possible(r, "yellow_rose.png", true);
 | 
| +}
 | 
| 
 |