File: DrawingTest.cs
Web Access
Project: src\src\System.Drawing.Common\tests\System.Drawing.Common.Tests.csproj (System.Drawing.Common.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Drawing.Imaging;
 
namespace System.Drawing.Tests;
 
public abstract class DrawingTest
{
    private static readonly Security.Cryptography.SHA256 s_md5 = Security.Cryptography.SHA256.Create();
 
    protected static unsafe void ValidateBitmapContent(Bitmap bitmap, params byte[] expectedHash)
    {
        BitmapData data = bitmap.LockBits(new Rectangle(default, bitmap.Size), ImageLockMode.ReadWrite, bitmap.PixelFormat);
        try
        {
            byte[] hash = new byte[expectedHash.Length];
            if (!s_md5.TryComputeHash(
                new ReadOnlySpan<byte>((void*)data.Scan0, data.Stride * data.Height),
                hash,
                out _))
            {
                Assert.Fail("Could not compute hash.");
            }
 
            Assert.Equal(expectedHash, hash);
        }
        finally
        {
            bitmap.UnlockBits(data);
        }
    }
}