util_memcmpzero_unittest.cc (1259B)
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 MemcmpZeroTest : public ::testing::Test { 13 protected: 14 unsigned int test_memcmp_zero(const std::vector<uint8_t> &mem) { 15 return NSS_SecureMemcmpZero(mem.data(), mem.size()); 16 }; 17 }; 18 19 TEST_F(MemcmpZeroTest, TestMemcmpZeroTrue) { 20 unsigned int rv = test_memcmp_zero(std::vector<uint8_t>(37, 0)); 21 EXPECT_EQ(0U, rv); 22 } 23 24 TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse5) { 25 std::vector<uint8_t> vec(37, 0); 26 vec[5] = 1; 27 unsigned int rv = test_memcmp_zero(vec); 28 EXPECT_NE(0U, rv); 29 } 30 31 TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse37) { 32 std::vector<uint8_t> vec(37, 0); 33 vec[vec.size() - 1] = 0xFF; 34 unsigned int rv = test_memcmp_zero(vec); 35 EXPECT_NE(0U, rv); 36 } 37 38 TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse0) { 39 std::vector<uint8_t> vec(37, 0); 40 vec[0] = 1; 41 unsigned int rv = test_memcmp_zero(vec); 42 EXPECT_NE(0U, rv); 43 } 44 45 } // namespace nss_test