From 39075a4f020a042969b3b89f17c4d4472bb74632 Mon Sep 17 00:00:00 2001 From: dsinclair Date: Mon, 25 Apr 2016 06:33:07 -0700 Subject: Standalone GN on mac Without the mac_deployment_target_build_override variable in build.gni the following error is produced. ERROR at //build/config/mac/mac_sdk.gni:17:27: Undefined identifier mac_deployment_target = mac_deployment_target_build_override ^----------------------------------- Added needed gtest/gtest_mac.* files. BUG=pdfium:106 Review URL: https://codereview.chromium.org/1907193002 --- testing/gtest_mac.h | 62 +++++++++++++++++++++++++++++++++ testing/gtest_mac.mm | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 testing/gtest_mac.h create mode 100644 testing/gtest_mac.mm (limited to 'testing') diff --git a/testing/gtest_mac.h b/testing/gtest_mac.h new file mode 100644 index 0000000000..0c0b6555a3 --- /dev/null +++ b/testing/gtest_mac.h @@ -0,0 +1,62 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +#ifndef TESTING_GTEST_MAC_H_ +#define TESTING_GTEST_MAC_H_ +#include +#include +#ifdef GTEST_OS_MAC +#import +namespace testing { +namespace internal { +// This overloaded version allows comparison between ObjC objects that conform +// to the NSObject protocol. Used to implement {ASSERT|EXPECT}_NSEQ(). +GTEST_API_ AssertionResult CmpHelperNSEQ(const char* expected_expression, + const char* actual_expression, + id expected, + id actual); +// This overloaded version allows comparison between ObjC objects that conform +// to the NSObject protocol. Used to implement {ASSERT|EXPECT}_NSNE(). +GTEST_API_ AssertionResult CmpHelperNSNE(const char* expected_expression, + const char* actual_expression, + id expected, + id actual); +#if !defined(GTEST_OS_IOS) +// This overloaded version allows comparison between NSRect objects using +// NSEqualRects. Used to implement {ASSERT|EXPECT}_NSEQ(). +GTEST_API_ AssertionResult CmpHelperNSEQ(const char* expected_expression, + const char* actual_expression, + const NSRect& expected, + const NSRect& actual); +// This overloaded version allows comparison between NSRect objects using +// NSEqualRects. Used to implement {ASSERT|EXPECT}_NSNE(). +GTEST_API_ AssertionResult CmpHelperNSNE(const char* expected_expression, + const char* actual_expression, + const NSRect& expected, + const NSRect& actual); +// This overloaded version allows comparison between NSPoint objects using +// NSEqualPoints. Used to implement {ASSERT|EXPECT}_NSEQ(). +GTEST_API_ AssertionResult CmpHelperNSEQ(const char* expected_expression, + const char* actual_expression, + const NSPoint& expected, + const NSPoint& actual); +// This overloaded version allows comparison between NSPoint objects using +// NSEqualPoints. Used to implement {ASSERT|EXPECT}_NSNE(). +GTEST_API_ AssertionResult CmpHelperNSNE(const char* expected_expression, + const char* actual_expression, + const NSPoint& expected, + const NSPoint& actual); +#endif // !GTEST_OS_IOS +} // namespace internal +} // namespace testing +// Tests that [expected isEqual:actual]. +#define EXPECT_NSEQ(expected, actual) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNSEQ, expected, actual) +#define EXPECT_NSNE(val1, val2) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNSNE, val1, val2) +#define ASSERT_NSEQ(expected, actual) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNSEQ, expected, actual) +#define ASSERT_NSNE(val1, val2) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNSNE, val1, val2) +#endif // GTEST_OS_MAC +#endif // TESTING_GTEST_MAC_H_ diff --git a/testing/gtest_mac.mm b/testing/gtest_mac.mm new file mode 100644 index 0000000000..b490f558bd --- /dev/null +++ b/testing/gtest_mac.mm @@ -0,0 +1,98 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +#import "gtest_mac.h" +#include +#include +#include +#include +#ifdef GTEST_OS_MAC +#import +namespace testing { +namespace internal { +// Handles nil values for |obj| properly by using safe printing of %@ in +// -stringWithFormat:. +static inline const char* StringDescription(id obj) { + return [[NSString stringWithFormat:@"%@", obj] UTF8String]; +} +// This overloaded version allows comparison between ObjC objects that conform +// to the NSObject protocol. Used to implement {ASSERT|EXPECT}_EQ(). +GTEST_API_ AssertionResult CmpHelperNSEQ(const char* expected_expression, + const char* actual_expression, + id expected, + id actual) { + if (expected == actual || [expected isEqual:actual]) { + return AssertionSuccess(); + } + return EqFailure(expected_expression, actual_expression, + std::string(StringDescription(expected)), + std::string(StringDescription(actual)), false); +} +// This overloaded version allows comparison between ObjC objects that conform +// to the NSObject protocol. Used to implement {ASSERT|EXPECT}_NE(). +GTEST_API_ AssertionResult CmpHelperNSNE(const char* expected_expression, + const char* actual_expression, + id expected, + id actual) { + if (expected != actual && ![expected isEqual:actual]) { + return AssertionSuccess(); + } + Message msg; + msg << "Expected: (" << expected_expression << ") != (" << actual_expression + << "), actual: " << StringDescription(expected) << " vs " + << StringDescription(actual); + return AssertionFailure(msg); +} +#if !defined(GTEST_OS_IOS) +GTEST_API_ AssertionResult CmpHelperNSEQ(const char* expected_expression, + const char* actual_expression, + const NSRect& expected, + const NSRect& actual) { + if (NSEqualRects(expected, actual)) { + return AssertionSuccess(); + } + return EqFailure(expected_expression, actual_expression, + [NSStringFromRect(expected) UTF8String], + [NSStringFromRect(actual) UTF8String], false); +} +GTEST_API_ AssertionResult CmpHelperNSNE(const char* expected_expression, + const char* actual_expression, + const NSRect& expected, + const NSRect& actual) { + if (!NSEqualRects(expected, actual)) { + return AssertionSuccess(); + } + Message msg; + msg << "Expected: (" << expected_expression << ") != (" << actual_expression + << "), actual: " << [NSStringFromRect(expected) UTF8String] << " vs " + << [NSStringFromRect(actual) UTF8String]; + return AssertionFailure(msg); +} +GTEST_API_ AssertionResult CmpHelperNSEQ(const char* expected_expression, + const char* actual_expression, + const NSPoint& expected, + const NSPoint& actual) { + if (NSEqualPoints(expected, actual)) { + return AssertionSuccess(); + } + return EqFailure(expected_expression, actual_expression, + [NSStringFromPoint(expected) UTF8String], + [NSStringFromPoint(actual) UTF8String], false); +} +GTEST_API_ AssertionResult CmpHelperNSNE(const char* expected_expression, + const char* actual_expression, + const NSPoint& expected, + const NSPoint& actual) { + if (!NSEqualPoints(expected, actual)) { + return AssertionSuccess(); + } + Message msg; + msg << "Expected: (" << expected_expression << ") != (" << actual_expression + << "), actual: " << [NSStringFromPoint(expected) UTF8String] << " vs " + << [NSStringFromPoint(actual) UTF8String]; + return AssertionFailure(msg); +} +#endif // !GTEST_OS_IOS +} // namespace internal +} // namespace testing +#endif // GTEST_OS_MAC -- cgit v1.2.3