tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

util_select_unittest.cc (1681B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include "gtest/gtest.h"
      8 #include "scoped_ptrs_util.h"
      9 
     10 namespace nss_test {
     11 
     12 class SelectTest : public ::testing::Test {
     13 protected:
     14  void test_select(std::vector<uint8_t> &dest, const std::vector<uint8_t> &src0,
     15                   const std::vector<uint8_t> &src1, unsigned char b) {
     16    EXPECT_EQ(src0.size(), src1.size());
     17    EXPECT_GE(dest.size(), src0.size());
     18    return NSS_SecureSelect(dest.data(), src0.data(), src1.data(), src0.size(),
     19                            b);
     20  };
     21 };
     22 
     23 TEST_F(SelectTest, TestSelectZero) {
     24  std::vector<uint8_t> dest(32, 255);
     25  std::vector<uint8_t> src0(32, 0);
     26  std::vector<uint8_t> src1(32, 1);
     27  test_select(dest, src0, src1, 0);
     28  EXPECT_EQ(dest, src0);
     29 }
     30 
     31 TEST_F(SelectTest, TestSelectOne) {
     32  std::vector<uint8_t> dest(32, 255);
     33  std::vector<uint8_t> src0(32, 0);
     34  std::vector<uint8_t> src1(32, 1);
     35  test_select(dest, src0, src1, 1);
     36  EXPECT_EQ(dest, src1);
     37 }
     38 
     39 TEST_F(SelectTest, TestSelect170) {
     40  std::vector<uint8_t> dest(32, 255);
     41  std::vector<uint8_t> src0(32, 0);
     42  std::vector<uint8_t> src1(32, 1);
     43  test_select(dest, src0, src1, 170);
     44  EXPECT_EQ(dest, src1);
     45 }
     46 
     47 TEST_F(SelectTest, TestSelect255) {
     48  std::vector<uint8_t> dest(32, 255);
     49  std::vector<uint8_t> src0(32, 0);
     50  std::vector<uint8_t> src1(32, 1);
     51  test_select(dest, src0, src1, 255);
     52  EXPECT_EQ(dest, src1);
     53 }
     54 
     55 }  // namespace nss_test