blob: da52837d44e079a09969a6b73d0bf93064eb4231 [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "cryptohome/crc32.h"
#include <vector>
#include <gtest/gtest.h>
namespace cryptohome {
// TODO(b/168049518): Move to libchrome.
TEST(Crc32, TestVector1) {
const std::vector<uint8_t> data = {0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00};
uint32_t sum = Crc32(data.data(), data.size());
EXPECT_EQ(sum, 0x6522DF69);
}
TEST(Crc32, TestVector2) {
const std::vector<uint8_t> data = {0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF};
uint32_t sum = Crc32(data.data(), data.size());
EXPECT_EQ(sum, 0x2144DF1C);
}
TEST(Crc32, TestVector3) {
const std::vector<uint8_t> data = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F};
uint32_t sum = Crc32(data.data(), data.size());
EXPECT_EQ(sum, 0x91267E8A);
}
TEST(Crc32, TestVector4) {
const std::vector<uint8_t> data = {
0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15,
0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A,
0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00};
uint32_t sum = Crc32(data.data(), data.size());
EXPECT_EQ(sum, 0x9AB0EF72);
}
} // namespace cryptohome