AU/unittest: allow use of a parametric update completed marker

This should allow unit tests to be run in parallel. We introduce
a private constructor available only to specific test classes of
UpdateAttempter, which allows us to set a different marker.

Note that, in all unit tests that do not specifically make use of this
marker, we actually want UpdateAttempter to ignore it entirely. I'm not
entirely positive whether not ignoring would lead to interferences
between concurrently run tests, but I think it's better to err on the
safe side.  (The marker is never ignored when used with any code other
than UpdateAttempter unit testing code.)

BUG=chromium:236465
TEST=Unit tests pass incl ignore semantics when not needed

Change-Id: I30fbed2ae2c21368d79127ed44811007e2a66e77
Reviewed-on: https://gerrit.chromium.org/gerrit/63840
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
3 files changed
tree: f474824d9bf3cc5e7c1d00b4b795080c16fb0e8f
  1. .gitignore
  2. 99-gpio-dutflag.rules
  3. action.h
  4. action_mock.h
  5. action_pipe.h
  6. action_pipe_unittest.cc
  7. action_processor.cc
  8. action_processor.h
  9. action_processor_mock.h
  10. action_processor_unittest.cc
  11. action_unittest.cc
  12. build
  13. bzip.cc
  14. bzip.h
  15. bzip_extent_writer.cc
  16. bzip_extent_writer.h
  17. bzip_extent_writer_unittest.cc
  18. certificate_checker.cc
  19. certificate_checker.h
  20. certificate_checker_mock.h
  21. certificate_checker_unittest.cc
  22. chrome_browser_proxy_resolver.cc
  23. chrome_browser_proxy_resolver.h
  24. chrome_browser_proxy_resolver_unittest.cc
  25. clock.cc
  26. clock.h
  27. clock_interface.h
  28. connection_manager.cc
  29. connection_manager.h
  30. connection_manager_unittest.cc
  31. constants.cc
  32. constants.h
  33. cycle_breaker.cc
  34. cycle_breaker.h
  35. cycle_breaker_unittest.cc
  36. dbus_constants.h
  37. dbus_interface.h
  38. dbus_service.cc
  39. dbus_service.h
  40. delta_diff_generator.cc
  41. delta_diff_generator.h
  42. delta_diff_generator_unittest.cc
  43. delta_performer.cc
  44. delta_performer.h
  45. delta_performer_unittest.cc
  46. download_action.cc
  47. download_action.h
  48. download_action_unittest.cc
  49. error_code.h
  50. extent_mapper.cc
  51. extent_mapper.h
  52. extent_mapper_unittest.cc
  53. extent_ranges.cc
  54. extent_ranges.h
  55. extent_ranges_unittest.cc
  56. extent_writer.cc
  57. extent_writer.h
  58. extent_writer_unittest.cc
  59. fake_clock.h
  60. fake_hardware.cc
  61. fake_hardware.h
  62. file_descriptor.cc
  63. file_descriptor.h
  64. file_writer.cc
  65. file_writer.h
  66. file_writer_mock.h
  67. file_writer_unittest.cc
  68. filesystem_copier_action.cc
  69. filesystem_copier_action.h
  70. filesystem_copier_action_unittest.cc
  71. filesystem_iterator.cc
  72. filesystem_iterator.h
  73. filesystem_iterator_unittest.cc
  74. full_update_generator.cc
  75. full_update_generator.h
  76. full_update_generator_unittest.cc
  77. gen_coverage_html
  78. generate_delta_main.cc
  79. gpio_handler.cc
  80. gpio_handler.h
  81. gpio_handler_unittest.cc
  82. gpio_handler_unittest.h
  83. gpio_mock_file_descriptor.cc
  84. gpio_mock_file_descriptor.h
  85. gpio_mock_udev_interface.cc
  86. gpio_mock_udev_interface.h
  87. graph_types.h
  88. graph_utils.cc
  89. graph_utils.h
  90. graph_utils_unittest.cc
  91. hardware.cc
  92. hardware.h
  93. hardware_interface.h
  94. hardware_unittest.cc
  95. http_common.cc
  96. http_common.h
  97. http_fetcher.cc
  98. http_fetcher.h
  99. http_fetcher_unittest.cc
  100. inherit-review-settings-ok
  101. install_plan.cc
  102. install_plan.h
  103. libcurl_http_fetcher.cc
  104. libcurl_http_fetcher.h
  105. LICENSE
  106. local_coverage_rate
  107. main.cc
  108. marshal.list
  109. metadata.cc
  110. metadata.h
  111. metadata_unittest.cc
  112. mock_connection_manager.h
  113. mock_dbus_interface.h
  114. mock_file_writer.h
  115. mock_gpio_handler.h
  116. mock_http_fetcher.cc
  117. mock_http_fetcher.h
  118. mock_payload_state.h
  119. mock_system_state.cc
  120. mock_system_state.h
  121. multi_range_http_fetcher.cc
  122. multi_range_http_fetcher.h
  123. omaha_hash_calculator.cc
  124. omaha_hash_calculator.h
  125. omaha_hash_calculator_unittest.cc
  126. omaha_request_action.cc
  127. omaha_request_action.h
  128. omaha_request_action_unittest.cc
  129. omaha_request_params.cc
  130. omaha_request_params.h
  131. omaha_request_params_unittest.cc
  132. omaha_response.h
  133. omaha_response_handler_action.cc
  134. omaha_response_handler_action.h
  135. omaha_response_handler_action_unittest.cc
  136. org.chromium.UpdateEngine.service
  137. payload_signer.cc
  138. payload_signer.h
  139. payload_signer_unittest.cc
  140. payload_state.cc
  141. payload_state.h
  142. payload_state_interface.h
  143. payload_state_unittest.cc
  144. postinstall_runner_action.cc
  145. postinstall_runner_action.h
  146. postinstall_runner_action_unittest.cc
  147. prefs.cc
  148. prefs.h
  149. prefs_interface.h
  150. prefs_mock.h
  151. prefs_unittest.cc
  152. proxy_resolver.cc
  153. proxy_resolver.h
  154. real_system_state.h
  155. run_unittests
  156. sample_omaha_v3_response.xml
  157. SConstruct
  158. setup_dev_packages
  159. simple_key_value_store.cc
  160. simple_key_value_store.h
  161. simple_key_value_store_unittest.cc
  162. subprocess.cc
  163. subprocess.h
  164. subprocess_unittest.cc
  165. system_state.cc
  166. system_state.h
  167. tarjan.cc
  168. tarjan.h
  169. tarjan_unittest.cc
  170. terminator.cc
  171. terminator.h
  172. terminator_unittest.cc
  173. test_http_server.cc
  174. test_utils.cc
  175. test_utils.h
  176. testrunner.cc
  177. topological_sort.cc
  178. topological_sort.h
  179. topological_sort_unittest.cc
  180. udev_interface.h
  181. unittest_key.pem
  182. unittest_key2.pem
  183. update_attempter.cc
  184. update_attempter.h
  185. update_attempter_mock.h
  186. update_attempter_unittest.cc
  187. update_check_scheduler.cc
  188. update_check_scheduler.h
  189. update_check_scheduler_unittest.cc
  190. update_engine.xml
  191. update_engine_client.cc
  192. update_metadata.proto
  193. UpdateEngine.conf
  194. utils.cc
  195. utils.h
  196. utils_unittest.cc
  197. WATCHLISTS
  198. zip_unittest.cc