summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorskallweitNV <64953474+skallweitNV@users.noreply.github.com>2022-11-30 22:26:55 +0100
committerGitHub <noreply@github.com>2022-11-30 13:26:55 -0800
commit976f578585a4d4ed24e37d0c45a94a8e6afcff19 (patch)
tree60897092962bfd562d026b81a29096efbfc85816 /tools
parent09684224d5ab63f530d66c0be65fa50e6fc5290b (diff)
Cleanup DigestBuilder and MD5HashGen (#2539)
* Cleanup DigestBuilder and MD5HashGen * Fix templates Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/slang-unit-test/unit-test-digest-builder.cpp72
-rw-r--r--tools/slang-unit-test/unit-test-md5.cpp104
2 files changed, 99 insertions, 77 deletions
diff --git a/tools/slang-unit-test/unit-test-digest-builder.cpp b/tools/slang-unit-test/unit-test-digest-builder.cpp
new file mode 100644
index 000000000..b89b31a7b
--- /dev/null
+++ b/tools/slang-unit-test/unit-test-digest-builder.cpp
@@ -0,0 +1,72 @@
+// unit-test-digest-utils.cpp
+
+#include "tools/unit-test/slang-unit-test.h"
+
+#include "../../source/core/slang-digest-builder.h"
+#include "../../source/core/slang-digest-util.h"
+
+using namespace Slang;
+
+SLANG_UNIT_TEST(digestBuilder)
+{
+ // Raw numerical values, etc.
+ {
+ DigestBuilder builder;
+
+ int64_t valueA = -1;
+ uint64_t valueB = 1;
+ builder.append(valueA);
+ builder.append(valueB);
+
+ slang::Digest digest = builder.finalize();
+ SLANG_CHECK(DigestUtil::toString(digest) == "5BA171E20898BDD205639013746F2679");
+ }
+
+ // List
+ {
+ DigestBuilder builder;
+
+ List<int64_t> listA;
+ listA.add(1);
+ listA.add(2);
+ listA.add(3);
+ listA.add(4);
+ builder.append(listA);
+
+ slang::Digest digest = builder.finalize();
+ SLANG_CHECK(DigestUtil::toString(digest) == "9F66C130786A1A05E4731F71A3C5F172");
+ }
+
+ // UnownedStringSlice
+ {
+ DigestBuilder builder;
+
+ UnownedStringSlice stringSlice = UnownedStringSlice("String Slice Test");
+ builder.append(stringSlice);
+
+ slang::Digest digest = builder.finalize();
+ SLANG_CHECK(DigestUtil::toString(digest) == "5D6CC58E1824A4DFD0CF57395B603316");
+ }
+
+ // String
+ {
+ DigestBuilder builder;
+
+ String str = String("String Test");
+ builder.append(str);
+
+ slang::Digest digest = builder.finalize();
+ SLANG_CHECK(DigestUtil::toString(digest) == "DF5A79CC2170C7401CF0A506CEB0CE24");
+ }
+
+ // Digest
+ {
+ DigestBuilder builder;
+
+ slang::Digest hash;
+ builder.append(hash);
+
+ slang::Digest digest = builder.finalize();
+ SLANG_CHECK(DigestUtil::toString(digest) == "4AE71336E44BF9BF79D2752E234818A5");
+ }
+}
diff --git a/tools/slang-unit-test/unit-test-md5.cpp b/tools/slang-unit-test/unit-test-md5.cpp
index 41f3d6cf6..1297d4f17 100644
--- a/tools/slang-unit-test/unit-test-md5.cpp
+++ b/tools/slang-unit-test/unit-test-md5.cpp
@@ -9,89 +9,39 @@ using namespace Slang;
SLANG_UNIT_TEST(md5hash)
{
+ // Empty string
{
- // Raw numerical values, etc.
- MD5Context testCtx;
- MD5HashGen testHashGen;
- testHashGen.init(&testCtx);
-
- int64_t valueA = -1;
- uint64_t valueB = 1;
- testHashGen.update(&testCtx, valueA);
- testHashGen.update(&testCtx, valueB);
-
- slang::Digest testA;
- testHashGen.finalize(&testCtx, &testA);
-
- String testAString = DigestUtil::toString(testA);
- SLANG_CHECK(testAString.equals(String("5BA171E20898BDD205639013746F2679")));
+ MD5Context ctx;
+ MD5HashGen gen;
+ gen.init(&ctx);
+ slang::Digest digest;
+ gen.finalize(&ctx, &digest);
+ SLANG_CHECK(DigestUtil::toString(digest) == "D41D8CD98F00B204E9800998ECF8427E");
}
+ // One call to update()
{
- // List
- MD5Context testCtx;
- MD5HashGen testHashGen;
- testHashGen.init(&testCtx);
-
- List<int64_t> listA;
- listA.add(1);
- listA.add(2);
- listA.add(3);
- listA.add(4);
- testHashGen.update(&testCtx, listA);
-
- slang::Digest testB;
- testHashGen.finalize(&testCtx, &testB);
-
- String testBString = DigestUtil::toString(testB);
- SLANG_CHECK(testBString.equals(String("4352D88A78AA39750BF70CD6F27BCAA5")));
+ MD5Context ctx;
+ MD5HashGen gen;
+ gen.init(&ctx);
+ const String str("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
+ gen.update(&ctx, str.getBuffer(), str.getLength());
+ slang::Digest digest;
+ gen.finalize(&ctx, &digest);
+ SLANG_CHECK(DigestUtil::toString(digest) == "818C6E601A24F72750DA0F6C9B8EBE28");
}
+ // Two calls to update()
{
- // UnownedStringSlice
- MD5Context testCtx;
- MD5HashGen testHashGen;
- testHashGen.init(&testCtx);
-
- UnownedStringSlice stringSlice = UnownedStringSlice("String Slice Test");
- testHashGen.update(&testCtx, stringSlice);
-
- slang::Digest testC;
- testHashGen.finalize(&testCtx, &testC);
-
- String testCString = DigestUtil::toString(testC);
- SLANG_CHECK(testCString.equals(String("5D6CC58E1824A4DFD0CF57395B603316")));
- }
-
- {
- // String
- MD5Context testCtx;
- MD5HashGen testHashGen;
- testHashGen.init(&testCtx);
-
- String str = String("String Test");
- testHashGen.update(&testCtx, str);
-
- slang::Digest testD;
- testHashGen.finalize(&testCtx, &testD);
-
- String testDString = DigestUtil::toString(testD);
- SLANG_CHECK(testDString.equals(String("DF5A79CC2170C7401CF0A506CEB0CE24")));
- }
-
- {
- // Hash
- MD5Context testCtx;
- MD5HashGen testHashGen;
- testHashGen.init(&testCtx);
-
- slang::Digest Hash;
- testHashGen.update(&testCtx, Hash);
-
- slang::Digest testE;
- testHashGen.finalize(&testCtx, &testE);
-
- String testEString = DigestUtil::toString(testE);
- SLANG_CHECK(testEString.equals(String("4AE71336E44BF9BF79D2752E234818A5")));
+ MD5Context ctx;
+ MD5HashGen gen;
+ gen.init(&ctx);
+ const String str1("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
+ const String str2("Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.");
+ gen.update(&ctx, str1.getBuffer(), str1.getLength());
+ gen.update(&ctx, str2.getBuffer(), str2.getLength());
+ slang::Digest digest;
+ gen.finalize(&ctx, &digest);
+ SLANG_CHECK(DigestUtil::toString(digest) == "87D3CAECB0AB82FAAE84D60FDE994ACA");
}
}