Edit

kc3-lang/angle/src/common/Optional_unittest.cpp

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2015-03-19 13:42:14
    Hash : 64af27bd
    Message : Make Optional a proper helper class. Move this to a common area, out of perf tests. Change-Id: I53d36accfe0c53789c007edfb20ba7e964947def Reviewed-on: https://chromium-review.googlesource.com/260643 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>

  • src/common/Optional_unittest.cpp
  • //
    // Copyright (c) 2015 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // Unit tests for ANGLE's Optional helper class.
    //
    
    #include "gmock/gmock.h"
    #include "gtest/gtest.h"
    
    #include "common/Optional.h"
    
    namespace
    {
    
    TEST(OptionalTest, BasicInvalid)
    {
        Optional<int> testInvalid;
        ASSERT_FALSE(testInvalid.valid());
        ASSERT_EQ(Optional<int>::None(), testInvalid);
    }
    
    TEST(OptionalTest, BasicValid)
    {
        Optional<int> testValid(3);
        ASSERT_TRUE(testValid.valid());
        ASSERT_EQ(3, testValid.value());
        ASSERT_NE(Optional<int>::None(), testValid);
    }
    
    TEST(OptionalTest, Copies)
    {
        Optional<int> testValid(3);
        Optional<int> testInvalid;
    
        Optional<int> testCopy = testInvalid;
        ASSERT_FALSE(testCopy.valid());
        ASSERT_EQ(testInvalid, testCopy);
    
        testCopy = testValid;
        ASSERT_TRUE(testCopy.valid());
        ASSERT_EQ(3, testCopy.value());
        ASSERT_EQ(testValid, testCopy);
    }
    
    } // namespace