Serenity Operating System
at master 35 lines 1.2 kB view raw
1/* 2 * Copyright (c) 2021, Peter Bocan <me@pbocan.net> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <LibCrypto/Checksum/Adler32.h> 8#include <LibCrypto/Checksum/CRC32.h> 9#include <LibTest/TestCase.h> 10 11TEST_CASE(test_adler32) 12{ 13 auto do_test = [](ReadonlyBytes input, u32 expected_result) { 14 auto digest = Crypto::Checksum::Adler32(input).digest(); 15 EXPECT_EQ(digest, expected_result); 16 }; 17 18 do_test(DeprecatedString("").bytes(), 0x1); 19 do_test(DeprecatedString("a").bytes(), 0x00620062); 20 do_test(DeprecatedString("abc").bytes(), 0x024d0127); 21 do_test(DeprecatedString("message digest").bytes(), 0x29750586); 22 do_test(DeprecatedString("abcdefghijklmnopqrstuvwxyz").bytes(), 0x90860b20); 23} 24 25TEST_CASE(test_crc32) 26{ 27 auto do_test = [](ReadonlyBytes input, u32 expected_result) { 28 auto digest = Crypto::Checksum::CRC32(input).digest(); 29 EXPECT_EQ(digest, expected_result); 30 }; 31 32 do_test(DeprecatedString("").bytes(), 0x0); 33 do_test(DeprecatedString("The quick brown fox jumps over the lazy dog").bytes(), 0x414FA339); 34 do_test(DeprecatedString("various CRC algorithms input data").bytes(), 0x9BD366AE); 35}