Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Side by Side Diff: flimflam_proxy_unittest.cc

Issue 5860003: AU: fix double-free warning in flimflam proxy unittest (Closed) Base URL: http://git.chromium.org/git/update_engine.git@master
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <base/logging.h> 5 #include <base/logging.h>
6 #include <gtest/gtest.h> 6 #include <gtest/gtest.h>
7 7
8 #include "update_engine/flimflam_proxy.h" 8 #include "update_engine/flimflam_proxy.h"
9 #include "update_engine/mock_dbus_interface.h" 9 #include "update_engine/mock_dbus_interface.h"
10 10
(...skipping 28 matching lines...) Expand all
39 int number = 1; 39 int number = 1;
40 DBusGConnection* kMockSystemBus = 40 DBusGConnection* kMockSystemBus =
41 reinterpret_cast<DBusGConnection*>(number++); 41 reinterpret_cast<DBusGConnection*>(number++);
42 DBusGProxy* kMockFlimFlamManagerProxy = 42 DBusGProxy* kMockFlimFlamManagerProxy =
43 reinterpret_cast<DBusGProxy*>(number++); 43 reinterpret_cast<DBusGProxy*>(number++);
44 DBusGProxy* kMockFlimFlamServiceProxy = 44 DBusGProxy* kMockFlimFlamServiceProxy =
45 reinterpret_cast<DBusGProxy*>(number++); 45 reinterpret_cast<DBusGProxy*>(number++);
46 ASSERT_NE(kMockSystemBus, reinterpret_cast<DBusGConnection*>(NULL)); 46 ASSERT_NE(kMockSystemBus, reinterpret_cast<DBusGConnection*>(NULL));
47 const char* kServicePath = "/foo/service"; 47 const char* kServicePath = "/foo/service";
48 const char kGetPropertiesMethod[] = "GetProperties"; 48 const char kGetPropertiesMethod[] = "GetProperties";
49 49
50 MockDbusGlib dbus_iface; 50 MockDbusGlib dbus_iface;
51 51
52 EXPECT_CALL(dbus_iface, 52 EXPECT_CALL(dbus_iface,
53 ProxyNewForNameOwner(kMockSystemBus, 53 ProxyNewForNameOwner(kMockSystemBus,
54 StrEq(kFlimFlamDbusService), 54 StrEq(kFlimFlamDbusService),
55 StrEq(kFlimFlamDbusManagerPath), 55 StrEq(kFlimFlamDbusManagerPath),
56 StrEq(kFlimFlamDbusManagerInterface), 56 StrEq(kFlimFlamDbusManagerInterface),
57 _)) 57 _))
58 .WillOnce(Return(kMockFlimFlamManagerProxy)); 58 .WillOnce(Return(kMockFlimFlamManagerProxy));
59 EXPECT_CALL(dbus_iface, 59 EXPECT_CALL(dbus_iface,
60 ProxyNewForNameOwner(kMockSystemBus, 60 ProxyNewForNameOwner(kMockSystemBus,
61 StrEq(kFlimFlamDbusService), 61 StrEq(kFlimFlamDbusService),
62 StrEq(kServicePath), 62 StrEq(kServicePath),
63 StrEq(kFlimFlamDbusServiceInterface), 63 StrEq(kFlimFlamDbusServiceInterface),
64 _)) 64 _))
65 .WillOnce(Return(kMockFlimFlamServiceProxy)); 65 .WillOnce(Return(kMockFlimFlamServiceProxy));
66 66
67 EXPECT_CALL(dbus_iface, ProxyUnref(kMockFlimFlamManagerProxy)); 67 EXPECT_CALL(dbus_iface, ProxyUnref(kMockFlimFlamManagerProxy));
68 EXPECT_CALL(dbus_iface, ProxyUnref(kMockFlimFlamServiceProxy)); 68 EXPECT_CALL(dbus_iface, ProxyUnref(kMockFlimFlamServiceProxy));
69 69
70 EXPECT_CALL(dbus_iface, BusGet(DBUS_BUS_SYSTEM, _)) 70 EXPECT_CALL(dbus_iface, BusGet(DBUS_BUS_SYSTEM, _))
71 .Times(2) 71 .Times(2)
72 .WillRepeatedly(Return(kMockSystemBus)); 72 .WillRepeatedly(Return(kMockSystemBus));
73 73
74 // Set up return value for first dbus call (to Manager object). 74 // Set up return value for first dbus call (to Manager object).
75 GHashTable* manager_hash_table = g_hash_table_new(g_str_hash, g_str_equal); 75 GHashTable* manager_hash_table = g_hash_table_new(g_str_hash, g_str_equal);
76 ScopedRelease<GHashTable*, g_hash_table_unref> manager_hash_table_unref( 76
77 manager_hash_table);
78
79 GArray* array = g_array_new(FALSE, FALSE, sizeof(const char*)); 77 GArray* array = g_array_new(FALSE, FALSE, sizeof(const char*));
80 ASSERT_TRUE(array != NULL); 78 ASSERT_TRUE(array != NULL);
81 79
82 EXPECT_EQ(array, g_array_append_val(array, kServicePath)); 80 EXPECT_EQ(array, g_array_append_val(array, kServicePath));
83 GValue array_value = {0, {{0}}}; 81 GValue array_value = {0, {{0}}};
84 EXPECT_EQ(&array_value, g_value_init(&array_value, G_TYPE_ARRAY)); 82 EXPECT_EQ(&array_value, g_value_init(&array_value, G_TYPE_ARRAY));
85 g_value_take_boxed(&array_value, array); 83 g_value_take_boxed(&array_value, array);
86 g_hash_table_insert(manager_hash_table, 84 g_hash_table_insert(manager_hash_table,
87 const_cast<char*>("Services"), 85 const_cast<char*>("Services"),
88 &array_value); 86 &array_value);
89 87
90 // Set up return value for second dbus call (to Service object). 88 // Set up return value for second dbus call (to Service object).
91 89
92 GHashTable* service_hash_table = g_hash_table_new(g_str_hash, g_str_equal); 90 GHashTable* service_hash_table = g_hash_table_new(g_str_hash, g_str_equal);
93 ScopedRelease<GHashTable*, g_hash_table_unref> service_hash_table_unref( 91
94 service_hash_table);
95
96 GValue service_type_value = {0, {{0}}}; 92 GValue service_type_value = {0, {{0}}};
97 EXPECT_EQ(&service_type_value, 93 EXPECT_EQ(&service_type_value,
98 g_value_init(&service_type_value, G_TYPE_STRING)); 94 g_value_init(&service_type_value, G_TYPE_STRING));
99 g_value_set_static_string(&service_type_value, service_type); 95 g_value_set_static_string(&service_type_value, service_type);
100 96
101 g_hash_table_insert(service_hash_table, 97 g_hash_table_insert(service_hash_table,
102 const_cast<char*>("Type"), 98 const_cast<char*>("Type"),
103 &service_type_value); 99 &service_type_value);
104 100
105 EXPECT_CALL(dbus_iface, ProxyCall(kMockFlimFlamManagerProxy, 101 EXPECT_CALL(dbus_iface, ProxyCall(kMockFlimFlamManagerProxy,
106 StrEq(kGetPropertiesMethod), 102 StrEq(kGetPropertiesMethod),
107 _, 103 _,
108 G_TYPE_INVALID, 104 G_TYPE_INVALID,
109 dbus_g_type_get_map("GHashTable", 105 dbus_g_type_get_map("GHashTable",
110 G_TYPE_STRING, 106 G_TYPE_STRING,
111 G_TYPE_VALUE), 107 G_TYPE_VALUE),
112 _, 108 _,
113 G_TYPE_INVALID)) 109 G_TYPE_INVALID))
114 .WillOnce(DoAll(SetArgumentPointee<5>(manager_hash_table), Return(TRUE))); 110 .WillOnce(DoAll(SetArgumentPointee<5>(manager_hash_table), Return(TRUE)));
115 111
116 EXPECT_CALL(dbus_iface, ProxyCall(kMockFlimFlamServiceProxy, 112 EXPECT_CALL(dbus_iface, ProxyCall(kMockFlimFlamServiceProxy,
117 StrEq(kGetPropertiesMethod), 113 StrEq(kGetPropertiesMethod),
118 _, 114 _,
119 G_TYPE_INVALID, 115 G_TYPE_INVALID,
120 dbus_g_type_get_map("GHashTable", 116 dbus_g_type_get_map("GHashTable",
121 G_TYPE_STRING, 117 G_TYPE_STRING,
122 G_TYPE_VALUE), 118 G_TYPE_VALUE),
123 _, 119 _,
124 G_TYPE_INVALID)) 120 G_TYPE_INVALID))
125 .WillOnce(DoAll(SetArgumentPointee<5>(service_hash_table), Return(TRUE))); 121 .WillOnce(DoAll(SetArgumentPointee<5>(service_hash_table), Return(TRUE)));
126 122
127 NetworkConnectionType type; 123 NetworkConnectionType type;
128 124
129 EXPECT_TRUE(FlimFlamProxy::GetConnectionType(&dbus_iface, &type)); 125 EXPECT_TRUE(FlimFlamProxy::GetConnectionType(&dbus_iface, &type));
130 EXPECT_EQ(expected_type, type); 126 EXPECT_EQ(expected_type, type);
131 } 127 }
132 128
133 TEST_F(FlimFlamProxyTest, SimpleTest) { 129 TEST_F(FlimFlamProxyTest, SimpleTest) {
134 TestWithServiceType(kFlimFlamNetTypeEthernet, kNetEthernet); 130 TestWithServiceType(kFlimFlamNetTypeEthernet, kNetEthernet);
135 TestWithServiceType(kFlimFlamNetTypeWifi, kNetWifi); 131 TestWithServiceType(kFlimFlamNetTypeWifi, kNetWifi);
136 TestWithServiceType(kFlimFlamNetTypeWimax, kNetWimax); 132 TestWithServiceType(kFlimFlamNetTypeWimax, kNetWimax);
137 TestWithServiceType(kFlimFlamNetTypeBluetooth, kNetBluetooth); 133 TestWithServiceType(kFlimFlamNetTypeBluetooth, kNetBluetooth);
138 TestWithServiceType(kFlimFlamNetTypeCellular, kNetCellular); 134 TestWithServiceType(kFlimFlamNetTypeCellular, kNetCellular);
(...skipping 21 matching lines...) Expand all
160 EXPECT_EQ(kFlimFlamNetTypeBluetooth, 156 EXPECT_EQ(kFlimFlamNetTypeBluetooth,
161 FlimFlamProxy::StringForConnectionType(kNetBluetooth)); 157 FlimFlamProxy::StringForConnectionType(kNetBluetooth));
162 EXPECT_EQ(kFlimFlamNetTypeCellular, 158 EXPECT_EQ(kFlimFlamNetTypeCellular,
163 FlimFlamProxy::StringForConnectionType(kNetCellular)); 159 FlimFlamProxy::StringForConnectionType(kNetCellular));
164 EXPECT_EQ("Unknown", FlimFlamProxy::StringForConnectionType(kNetUnknown)); 160 EXPECT_EQ("Unknown", FlimFlamProxy::StringForConnectionType(kNetUnknown));
165 EXPECT_EQ("Unknown", FlimFlamProxy::StringForConnectionType( 161 EXPECT_EQ("Unknown", FlimFlamProxy::StringForConnectionType(
166 static_cast<NetworkConnectionType>(999999))); 162 static_cast<NetworkConnectionType>(999999)));
167 } 163 }
168 164
169 } // namespace chromeos_update_engine 165 } // namespace chromeos_update_engine
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698