aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorzhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386>2010-10-14 06:51:27 +0000
committerzhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386>2010-10-14 06:51:27 +0000
commit2321b2a6757328bbf30b69af434c28dac3060b83 (patch)
tree0e4466573cd7a188dc37658acc7b2653f2e67db7 /test
parent7dfbea4976d41421b82c7988017cf1c695104236 (diff)
downloadgoogletest-2321b2a6757328bbf30b69af434c28dac3060b83.tar.gz
googletest-2321b2a6757328bbf30b69af434c28dac3060b83.tar.bz2
googletest-2321b2a6757328bbf30b69af434c28dac3060b83.zip
Adds action SaveArgPointee.
Diffstat (limited to 'test')
-rw-r--r--test/gmock-more-actions_test.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/gmock-more-actions_test.cc b/test/gmock-more-actions_test.cc
index 64c4e081..43ff55d8 100644
--- a/test/gmock-more-actions_test.cc
+++ b/test/gmock-more-actions_test.cc
@@ -40,6 +40,7 @@
#include <string>
#include "gmock/gmock.h"
#include "gtest/gtest.h"
+#include "gtest/internal/gtest-linked_ptr.h"
namespace testing {
namespace gmock_more_actions_test {
@@ -59,11 +60,13 @@ using testing::Return;
using testing::ReturnArg;
using testing::ReturnPointee;
using testing::SaveArg;
+using testing::SaveArgPointee;
using testing::SetArgReferee;
using testing::StaticAssertTypeEq;
using testing::Unused;
using testing::WithArg;
using testing::WithoutArgs;
+using testing::internal::linked_ptr;
// For suppressing compiler warnings on conversion possibly losing precision.
inline short Short(short n) { return n; } // NOLINT
@@ -506,6 +509,30 @@ TEST(SaveArgActionTest, WorksForCompatibleType) {
EXPECT_EQ('a', result);
}
+TEST(SaveArgPointeeActionTest, WorksForSameType) {
+ int result = 0;
+ const int value = 5;
+ const Action<void(const int*)> a1 = SaveArgPointee<0>(&result);
+ a1.Perform(make_tuple(&value));
+ EXPECT_EQ(5, result);
+}
+
+TEST(SaveArgPointeeActionTest, WorksForCompatibleType) {
+ int result = 0;
+ char value = 'a';
+ const Action<void(bool, char*)> a1 = SaveArgPointee<1>(&result);
+ a1.Perform(make_tuple(true, &value));
+ EXPECT_EQ('a', result);
+}
+
+TEST(SaveArgPointeeActionTest, WorksForLinkedPtr) {
+ int result = 0;
+ linked_ptr<int> value(new int(5));
+ const Action<void(linked_ptr<int>)> a1 = SaveArgPointee<0>(&result);
+ a1.Perform(make_tuple(value));
+ EXPECT_EQ(5, result);
+}
+
TEST(SetArgRefereeActionTest, WorksForSameType) {
int value = 0;
const Action<void(int&)> a1 = SetArgReferee<0>(1);