summaryrefslogtreecommitdiffstats
path: root/Source/kwsys/testEncode.c
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-03-14 19:12:10 (GMT)
committerBrad King <brad.king@kitware.com>2007-03-14 19:12:10 (GMT)
commit6d2f08b6e1dd1c0f5dc9f277834e839138a8ddba (patch)
tree0290f061e6018efec0dd41256696dd81c1ce1994 /Source/kwsys/testEncode.c
parenta724f0d425f42a1352f5a7a6a6403f27c8acd145 (diff)
downloadCMake-6d2f08b6e1dd1c0f5dc9f277834e839138a8ddba.zip
CMake-6d2f08b6e1dd1c0f5dc9f277834e839138a8ddba.tar.gz
CMake-6d2f08b6e1dd1c0f5dc9f277834e839138a8ddba.tar.bz2
ENH: Added MD5 implementation to KWSys.
Diffstat (limited to 'Source/kwsys/testEncode.c')
-rw-r--r--Source/kwsys/testEncode.c78
1 files changed, 78 insertions, 0 deletions
diff --git a/Source/kwsys/testEncode.c b/Source/kwsys/testEncode.c
new file mode 100644
index 0000000..fb576c4
--- /dev/null
+++ b/Source/kwsys/testEncode.c
@@ -0,0 +1,78 @@
+/*=========================================================================
+
+ Program: KWSys - Kitware System Library
+ Module: $RCSfile$
+
+ Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#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[] =
+" Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.\n"
+" See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n";
+static const char testMD5output1[] = "04051e509e81ef0b1612ddf0e52ca89e";
+
+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;
+}