diff options
| author | skallweitNV <64953474+skallweitNV@users.noreply.github.com> | 2022-11-30 22:26:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-30 13:26:55 -0800 |
| commit | 976f578585a4d4ed24e37d0c45a94a8e6afcff19 (patch) | |
| tree | 60897092962bfd562d026b81a29096efbfc85816 /tools | |
| parent | 09684224d5ab63f530d66c0be65fa50e6fc5290b (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.cpp | 72 | ||||
| -rw-r--r-- | tools/slang-unit-test/unit-test-md5.cpp | 104 |
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"); } } |
