+void CompareLoadedImageData(const ImageDetails& image, const LoadFunctions& functions, const uint32_t* master)
+{
+ FILE* filePointer = fopen(image.name.c_str(), "rb");
+ AutoCloseFile autoClose(filePointer);
+ DALI_TEST_CHECK(filePointer != NULL);
+
+ // Check the header file.
+ unsigned int width = 0, height = 0;
+ const Dali::ImageLoader::Input input(filePointer);
+ DALI_TEST_CHECK(functions.header(input, width, height));
+
+ DALI_TEST_EQUALS(width, image.reportedWidth, TEST_LOCATION);
+ DALI_TEST_EQUALS(height, image.reportedHeight, TEST_LOCATION);
+
+ // Loading the header moves the pointer within the file so reset to start of file.
+ fseek(filePointer, 0, SEEK_SET);
+
+ Dali::Devel::PixelBuffer bitmap;
+
+ // Load Bitmap and check its return values.
+ DALI_TEST_CHECK(functions.loader(input, bitmap));
+ DALI_TEST_EQUALS(image.width, bitmap.GetWidth(), TEST_LOCATION);
+ DALI_TEST_EQUALS(image.height, bitmap.GetHeight(), TEST_LOCATION);
+
+ // Check the bytes per pixel.
+ const Pixel::Format pixelFormat = bitmap.GetPixelFormat();
+ const unsigned int bytesPerPixel = Pixel::GetBytesPerPixel(pixelFormat);
+
+ // Compare buffer generated with reference buffer.
+ Dali::Integration::PixelBuffer* pBitmapData(bitmap.GetBuffer());
+ const uint32_t* pMaster(master);
+
+ // Loop through each pixel in the bitmap.
+ for(unsigned int i = 0; i < image.refBufferSize; ++i, ++pMaster)
+ {
+ unsigned int color = 0;
+ // Loop through each byte per pixel, to build up a color value for that pixel.
+ for(unsigned int j = 0; j < bytesPerPixel; ++j, ++pBitmapData)
+ {
+ color = (color << 8) | *pBitmapData;
+ }
+
+ // Check the color value is what we expect.
+ DALI_TEST_EQUALS(color, *pMaster, TEST_LOCATION);
+ }
+}
+
+void DumpImageBufferToTempFile(std::string filename, std::string targetFilename, const LoadFunctions& functions)