147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org/* 247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * Copyright 2012 The WebRTC Project Authors. All rights reserved. 347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * 447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * Use of this source code is governed by a BSD-style license 547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * that can be found in the LICENSE file in the root of the source 647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * tree. An additional intellectual property rights grant can be found 747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * in the file PATENTS. All contributing project authors may 847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * be found in the AUTHORS file in the root of the source tree. 947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org */ 1047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/crc32.h" 1247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/gunit.h" 1347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include <string> 1547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgnamespace rtc { 1747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(Crc32Test, TestBasic) { 1947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, ComputeCrc32("")); 2047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0x352441C2U, ComputeCrc32("abc")); 2147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0x171A3F5FU, 2247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ComputeCrc32("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")); 2347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 2447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 2547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(Crc32Test, TestMultipleUpdates) { 2647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::string input = 2747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; 2847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 c = 0; 2947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (size_t i = 0; i < input.size(); ++i) { 3047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org c = UpdateCrc32(c, &input[i], 1); 3147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 3247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0x171A3F5FU, c); 3347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 3447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 3547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} // namespace rtc 36