text: /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
     file Copyright.txt or https://cmake.org/licensing#kwsys for details.  */
  #include "kwsysPrivate.h"
  #include KWSYS_HEADER(MD5.h)
  
  /* Work-around CMake dependency scanning limitation.  This must
     duplicate the above list of headers.  */
  #if 0
  #  include "MD5.h.in"
  #endif
  
  #include <stdio.h>
  #include <string.h>
  
  static const unsigned char testMD5input1[] =
    "  A quick brown fox jumps over the lazy dog.\n"
    "  This is sample text for MD5 sum input.\n";
  static const char testMD5output1[] = "8f146af46ed4f267921bb937d4d3500c";
  
  static const int testMD5input2len = 28;
  static const unsigned char testMD5input2[] = "the cow jumped over the moon";
  static const char testMD5output2[] = "a2ad137b746138fae4e5adca9c85d3ae";
  
  static int testMD5_1(kwsysMD5* md5)
  {
    char md5out[33];
    kwsysMD5_Initialize(md5);
    kwsysMD5_Append(md5, testMD5input1, -1);
    kwsysMD5_FinalizeHex(md5, md5out);
    md5out[32] = 0;
    printf("md5sum 1: expected [%s]\n"
           "               got [%s]\n",
           testMD5output1, md5out);
    return (strcmp(md5out, testMD5output1) != 0) ? 1 : 0;
  }
  
  static int testMD5_2(kwsysMD5* md5)
  {
    unsigned char digest[16];
    char md5out[33];
    kwsysMD5_Initialize(md5);
    kwsysMD5_Append(md5, testMD5input2, testMD5input2len);
    kwsysMD5_Finalize(md5, digest);
    kwsysMD5_DigestToHex(digest, md5out);
    md5out[32] = 0;
    printf("md5sum 2: expected [%s]\n"
           "               got [%s]\n",
           testMD5output2, md5out);
    return (strcmp(md5out, testMD5output2) != 0) ? 1 : 0;
  }
  
  int testEncode(int argc, char* argv[])
  {
    int result = 0;
    (void)argc;
    (void)argv;
  
    /* Test MD5 digest.  */
    {
      kwsysMD5* md5 = kwsysMD5_New();
      result |= testMD5_1(md5);
      result |= testMD5_2(md5);
      kwsysMD5_Delete(md5);
    }
  
    return result;
  }
  