Fix bug in SkGifCodec / Switch SkImageDec tests to use Codec

SkImageDecoder is still used throughout tests, tools, gms etc.
Deleting it from tests is an easy first step.

Bonus is that we add tests of SkCodec.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1733863003

Review URL: https://codereview.chromium.org/1733863003
diff --git a/tests/BadIcoTest.cpp b/tests/BadIcoTest.cpp
index 240de51..c387e15 100644
--- a/tests/BadIcoTest.cpp
+++ b/tests/BadIcoTest.cpp
@@ -8,7 +8,8 @@
 #include "Resources.h"
 #include "Test.h"
 #include "SkBitmap.h"
-#include "SkImageDecoder.h"
+#include "SkCodec.h"
+#include "SkStream.h"
 #include "SkOSFile.h"
 
 DEF_TEST(BadImage, reporter) {
@@ -27,12 +28,18 @@
 
     SkString resourcePath = GetResourcePath(badImagesFolder);
 
-    SkBitmap bm;
     for (size_t i = 0; i < SK_ARRAY_COUNT(badImages); ++i) {
         SkString fullPath = SkOSPath::Join(resourcePath.c_str(), badImages[i]);
-        bool success = SkImageDecoder::DecodeFile(fullPath.c_str(), &bm);
-        // These files are invalid, and should not decode. More importantly,
-        // though, we reached here without crashing.
-        REPORTER_ASSERT(reporter, !success);
+        SkAutoTDelete<SkStream> stream(SkStream::NewFromFile(fullPath.c_str()));
+        SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(stream.detach()));
+
+        // These images are corrupt.  It's not important whether we succeed/fail in codec
+        // creation or decoding.  We just want to make sure that we don't crash.
+        if (codec) {
+            SkBitmap bm;
+            bm.allocPixels(codec->getInfo());
+            codec->getPixels(codec->getInfo(), bm.getPixels(),
+                    bm.rowBytes());
+        }
     }
 }