Fix memory leak on ChromeBrowserProxyResolverTest.

ChromeBrowserProxyResolverTest.SuccessTest was creating a duplicate
of the string returned by DBusMessageGetArgs_3() when the mocked
Chrome returns a proxy response. The caller of this interface
should not delete the returned pointers (as they are pointers to the
dbus message) so the test ended up leaking those strings.

This patch fixes that and uses a StrickMock for the dbus interface
to catch some unexpected calls also included on this fix. Finally,
testing::SetArgumentPointee() was deprecated in favor of
testing::SetArgPointee().

BUG=chromium:378548
TEST=`FEATURES="test" USE="clang asan" emerge-link update_engine` doesn't complain about ChromeBrowserProxyResolverTest.

Change-Id: Ie348eeab964fbfdeaafa68db9016d7ab36835552
Reviewed-on: https://chromium-review.googlesource.com/202071
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
1 file changed
tree: c42860fe84b6447065436d3e246d0729c5dc4c24
  1. init/
  2. payload_generator/
  3. update_manager/
  4. .gitignore
  5. action.h
  6. action_mock.h
  7. action_pipe.h
  8. action_pipe_unittest.cc
  9. action_processor.cc
  10. action_processor.h
  11. action_processor_mock.h
  12. action_processor_unittest.cc
  13. action_unittest.cc
  14. build
  15. bzip.cc
  16. bzip.h
  17. bzip_extent_writer.cc
  18. bzip_extent_writer.h
  19. bzip_extent_writer_unittest.cc
  20. certificate_checker.cc
  21. certificate_checker.h
  22. certificate_checker_mock.h
  23. certificate_checker_unittest.cc
  24. chrome_browser_proxy_resolver.cc
  25. chrome_browser_proxy_resolver.h
  26. chrome_browser_proxy_resolver_unittest.cc
  27. clock.cc
  28. clock.h
  29. clock_interface.h
  30. connection_manager.cc
  31. connection_manager.h
  32. connection_manager_unittest.cc
  33. constants.cc
  34. constants.h
  35. dbus_constants.h
  36. dbus_service.cc
  37. dbus_service.h
  38. dbus_wrapper_interface.h
  39. delta_performer.cc
  40. delta_performer.h
  41. delta_performer_unittest.cc
  42. download_action.cc
  43. download_action.h
  44. download_action_unittest.cc
  45. error_code.h
  46. extent_ranges.cc
  47. extent_ranges.h
  48. extent_ranges_unittest.cc
  49. extent_writer.cc
  50. extent_writer.h
  51. extent_writer_unittest.cc
  52. fake_clock.h
  53. fake_hardware.h
  54. fake_p2p_manager.h
  55. fake_p2p_manager_configuration.h
  56. fake_prefs.cc
  57. fake_prefs.h
  58. fake_system_state.cc
  59. fake_system_state.h
  60. file_descriptor.cc
  61. file_descriptor.h
  62. file_writer.cc
  63. file_writer.h
  64. file_writer_mock.h
  65. file_writer_unittest.cc
  66. filesystem_copier_action.cc
  67. filesystem_copier_action.h
  68. filesystem_copier_action_unittest.cc
  69. gen_coverage_html
  70. hardware.cc
  71. hardware.h
  72. hardware_interface.h
  73. http_common.cc
  74. http_common.h
  75. http_fetcher.cc
  76. http_fetcher.h
  77. http_fetcher_unittest.cc
  78. hwid_override.cc
  79. hwid_override.h
  80. hwid_override_unittest.cc
  81. inherit-review-settings-ok
  82. install_plan.cc
  83. install_plan.h
  84. libcurl_http_fetcher.cc
  85. libcurl_http_fetcher.h
  86. LICENSE
  87. local_coverage_rate
  88. main.cc
  89. metrics.cc
  90. metrics.h
  91. mock_connection_manager.h
  92. mock_dbus_wrapper.h
  93. mock_file_writer.h
  94. mock_hardware.h
  95. mock_http_fetcher.cc
  96. mock_http_fetcher.h
  97. mock_p2p_manager.h
  98. mock_payload_state.h
  99. multi_range_http_fetcher.cc
  100. multi_range_http_fetcher.h
  101. omaha_hash_calculator.cc
  102. omaha_hash_calculator.h
  103. omaha_hash_calculator_unittest.cc
  104. omaha_request_action.cc
  105. omaha_request_action.h
  106. omaha_request_action_unittest.cc
  107. omaha_request_params.cc
  108. omaha_request_params.h
  109. omaha_request_params_unittest.cc
  110. omaha_response.h
  111. omaha_response_handler_action.cc
  112. omaha_response_handler_action.h
  113. omaha_response_handler_action_unittest.cc
  114. p2p_manager.cc
  115. p2p_manager.h
  116. p2p_manager_unittest.cc
  117. payload_constants.cc
  118. payload_constants.h
  119. payload_signer.cc
  120. payload_signer.h
  121. payload_signer_unittest.cc
  122. payload_state.cc
  123. payload_state.h
  124. payload_state_interface.h
  125. payload_state_unittest.cc
  126. postinstall_runner_action.cc
  127. postinstall_runner_action.h
  128. postinstall_runner_action_unittest.cc
  129. prefs.cc
  130. prefs.h
  131. prefs_interface.h
  132. prefs_mock.h
  133. prefs_unittest.cc
  134. proxy_resolver.cc
  135. proxy_resolver.h
  136. real_dbus_wrapper.h
  137. real_system_state.cc
  138. real_system_state.h
  139. run_unittests
  140. sample_omaha_v3_response.xml
  141. SConstruct
  142. simple_key_value_store.cc
  143. simple_key_value_store.h
  144. simple_key_value_store_unittest.cc
  145. subprocess.cc
  146. subprocess.h
  147. subprocess_unittest.cc
  148. system_state.h
  149. terminator.cc
  150. terminator.h
  151. terminator_unittest.cc
  152. test_http_server.cc
  153. test_utils.cc
  154. test_utils.h
  155. testrunner.cc
  156. unittest_key.pem
  157. unittest_key2.pem
  158. update_attempter.cc
  159. update_attempter.h
  160. update_attempter_mock.h
  161. update_attempter_unittest.cc
  162. update_check_scheduler.cc
  163. update_check_scheduler.h
  164. update_check_scheduler_unittest.cc
  165. update_engine.xml
  166. update_engine_client.cc
  167. update_metadata.proto
  168. UpdateEngine.conf
  169. utils.cc
  170. utils.h
  171. utils_unittest.cc
  172. WATCHLISTS
  173. zip_unittest.cc