| // Copyright 2019 The Fuchsia 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 "fcs.h" |
| |
| #include <zxtest/zxtest.h> |
| |
| #include <vector> |
| |
| namespace { |
| |
| TEST(FcsTestCase, Blank) { |
| std::string data; |
| static constexpr uint16_t expect = 0xffff; |
| |
| const uint16_t fcs = ppp::Fcs( |
| ppp::kFrameCheckSequenceInit, |
| fbl::Span<const uint8_t>(reinterpret_cast<const uint8_t*>(data.data()), data.size())); |
| |
| ASSERT_EQ(fcs, expect); |
| } |
| |
| TEST(FcsTestCase, Single) { |
| std::string data = "A"; |
| static constexpr uint16_t expect = 0x5c0a; |
| |
| const uint16_t fcs = ppp::Fcs( |
| ppp::kFrameCheckSequenceInit, |
| fbl::Span<const uint8_t>(reinterpret_cast<const uint8_t*>(data.data()), data.size())); |
| |
| ASSERT_EQ(fcs, expect); |
| } |
| |
| TEST(FcsTestCase, Digits) { |
| std::string data = "0123456789"; |
| static constexpr uint16_t expect = 0xc3e9; |
| |
| const uint16_t fcs = ppp::Fcs( |
| ppp::kFrameCheckSequenceInit, |
| fbl::Span<const uint8_t>(reinterpret_cast<const uint8_t*>(data.data()), data.size())); |
| |
| ASSERT_EQ(fcs, expect); |
| } |
| |
| TEST(FcsTestCase, Alphabet) { |
| std::string data = "abcdefghijklmnopqrstuvwxyz"; |
| static constexpr uint16_t expect = 0xf2bc; |
| |
| const uint16_t fcs = ppp::Fcs( |
| ppp::kFrameCheckSequenceInit, |
| fbl::Span<const uint8_t>(reinterpret_cast<const uint8_t*>(data.data()), data.size())); |
| |
| ASSERT_EQ(fcs, expect); |
| } |
| |
| } // namespace |