Fix image unit test compilation when wxUSE_GIF==0

Don't compile GIF-related test cases and don't add GIF image handler in
this build configuration.
This commit is contained in:
Vadim Zeitlin
2018-06-20 18:15:38 +02:00
parent abce91f967
commit 01cd3cc019

View File

@@ -73,9 +73,11 @@ private:
CPPUNIT_TEST( CompareSavedImage ); CPPUNIT_TEST( CompareSavedImage );
CPPUNIT_TEST( SavePNG ); CPPUNIT_TEST( SavePNG );
CPPUNIT_TEST( SaveTIFF ); CPPUNIT_TEST( SaveTIFF );
CPPUNIT_TEST( SaveAnimatedGIF );
CPPUNIT_TEST( ReadCorruptedTGA ); CPPUNIT_TEST( ReadCorruptedTGA );
#if wxUSE_GIF
CPPUNIT_TEST( SaveAnimatedGIF );
CPPUNIT_TEST( GIFComment ); CPPUNIT_TEST( GIFComment );
#endif // wxUSE_GIF
CPPUNIT_TEST( DibPadding ); CPPUNIT_TEST( DibPadding );
CPPUNIT_TEST( BMPFlippingAndRLECompression ); CPPUNIT_TEST( BMPFlippingAndRLECompression );
CPPUNIT_TEST( ScaleCompare ); CPPUNIT_TEST( ScaleCompare );
@@ -89,9 +91,11 @@ private:
void CompareSavedImage(); void CompareSavedImage();
void SavePNG(); void SavePNG();
void SaveTIFF(); void SaveTIFF();
void SaveAnimatedGIF();
void ReadCorruptedTGA(); void ReadCorruptedTGA();
#if wxUSE_GIF
void SaveAnimatedGIF();
void GIFComment(); void GIFComment();
#endif // wxUSE_GIF
void DibPadding(); void DibPadding();
void BMPFlippingAndRLECompression(); void BMPFlippingAndRLECompression();
void ScaleCompare(); void ScaleCompare();
@@ -113,7 +117,9 @@ ImageTestCase::ImageTestCase()
wxImage::AddHandler(new wxANIHandler); wxImage::AddHandler(new wxANIHandler);
wxImage::AddHandler(new wxBMPHandler); wxImage::AddHandler(new wxBMPHandler);
wxImage::AddHandler(new wxCURHandler); wxImage::AddHandler(new wxCURHandler);
#if wxUSE_GIF
wxImage::AddHandler(new wxGIFHandler); wxImage::AddHandler(new wxGIFHandler);
#endif // wxUSE_GIF
wxImage::AddHandler(new wxJPEGHandler); wxImage::AddHandler(new wxJPEGHandler);
wxImage::AddHandler(new wxPCXHandler); wxImage::AddHandler(new wxPCXHandler);
wxImage::AddHandler(new wxPNMHandler); wxImage::AddHandler(new wxPNMHandler);
@@ -1134,42 +1140,6 @@ void ImageTestCase::SaveTIFF()
TestTIFFImage(wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL, 2, &alphaImage); TestTIFFImage(wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL, 2, &alphaImage);
} }
void ImageTestCase::SaveAnimatedGIF()
{
#if wxUSE_PALETTE
wxImage image("horse.gif");
CPPUNIT_ASSERT( image.IsOk() );
wxImageArray images;
images.Add(image);
for (int i = 0; i < 4-1; ++i)
{
images.Add( images[i].Rotate90() );
images[i+1].SetPalette(images[0].GetPalette());
}
wxMemoryOutputStream memOut;
CPPUNIT_ASSERT( wxGIFHandler().SaveAnimation(images, &memOut) );
wxGIFHandler handler;
wxMemoryInputStream memIn(memOut);
CPPUNIT_ASSERT(memIn.IsOk());
const int imageCount = handler.GetImageCount(memIn);
CPPUNIT_ASSERT_EQUAL(4, imageCount);
for (int i = 0; i < imageCount; ++i)
{
wxFileOffset pos = memIn.TellI();
CPPUNIT_ASSERT( handler.LoadFile(&image, memIn, true, i) );
memIn.SeekI(pos);
wxINFO_FMT("Compare test for GIF frame number %d failed", i);
CHECK_THAT(image, RGBSameAs(images[i]));
}
#endif // #if wxUSE_PALETTE
}
void ImageTestCase::ReadCorruptedTGA() void ImageTestCase::ReadCorruptedTGA()
{ {
static unsigned char corruptTGA[18+1+3] = static unsigned char corruptTGA[18+1+3] =
@@ -1206,6 +1176,44 @@ void ImageTestCase::ReadCorruptedTGA()
CPPUNIT_ASSERT( !tgaImage.LoadFile(memIn) ); CPPUNIT_ASSERT( !tgaImage.LoadFile(memIn) );
} }
#if wxUSE_GIF
void ImageTestCase::SaveAnimatedGIF()
{
#if wxUSE_PALETTE
wxImage image("horse.gif");
CPPUNIT_ASSERT( image.IsOk() );
wxImageArray images;
images.Add(image);
for (int i = 0; i < 4-1; ++i)
{
images.Add( images[i].Rotate90() );
images[i+1].SetPalette(images[0].GetPalette());
}
wxMemoryOutputStream memOut;
CPPUNIT_ASSERT( wxGIFHandler().SaveAnimation(images, &memOut) );
wxGIFHandler handler;
wxMemoryInputStream memIn(memOut);
CPPUNIT_ASSERT(memIn.IsOk());
const int imageCount = handler.GetImageCount(memIn);
CPPUNIT_ASSERT_EQUAL(4, imageCount);
for (int i = 0; i < imageCount; ++i)
{
wxFileOffset pos = memIn.TellI();
CPPUNIT_ASSERT( handler.LoadFile(&image, memIn, true, i) );
memIn.SeekI(pos);
wxINFO_FMT("Compare test for GIF frame number %d failed", i);
CHECK_THAT(image, RGBSameAs(images[i]));
}
#endif // #if wxUSE_PALETTE
}
static void TestGIFComment(const wxString& comment) static void TestGIFComment(const wxString& comment)
{ {
wxImage image("horse.gif"); wxImage image("horse.gif");
@@ -1281,6 +1289,8 @@ void ImageTestCase::GIFComment()
} }
} }
#endif // wxUSE_GIF
void ImageTestCase::DibPadding() void ImageTestCase::DibPadding()
{ {
/* /*