shill: device: require a non NULL error pointer be passed to Start

Require that a non NULL error pointer be passed to Start function so
that it is clear that the Start function can return an error.  Add
DCHECKs to the code so that coding errors can be caught by unit tests.

BUG=none
TEST=run unit tests, and run shill using the new modem manager
Change-Id: Ie5e50eb15a041a17357adcef7a9d95e16e2bb222
Reviewed-on: https://gerrit.chromium.org/gerrit/19912
Commit-Ready: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: Jason Glasgow <jglasgow@chromium.org>
3 files changed
tree: 275a7932babc261fda22abb7d28f181adaf98e9a
  1. dbus_bindings/
  2. .gitignore
  3. accessor_interface.h
  4. adaptor_interfaces.h
  5. async_connection.cc
  6. async_connection.h
  7. async_connection_unittest.cc
  8. byte_string.cc
  9. byte_string.h
  10. byte_string_unittest.cc
  11. callbacks.h
  12. cellular.cc
  13. cellular.h
  14. cellular_capability.cc
  15. cellular_capability.h
  16. cellular_capability_cdma.cc
  17. cellular_capability_cdma.h
  18. cellular_capability_cdma_unittest.cc
  19. cellular_capability_classic.cc
  20. cellular_capability_classic.h
  21. cellular_capability_classic_unittest.cc
  22. cellular_capability_gsm.cc
  23. cellular_capability_gsm.h
  24. cellular_capability_gsm_unittest.cc
  25. cellular_capability_universal.cc
  26. cellular_capability_universal.h
  27. cellular_error.cc
  28. cellular_error.h
  29. cellular_service.cc
  30. cellular_service.h
  31. cellular_service_unittest.cc
  32. cellular_unittest.cc
  33. connection.cc
  34. connection.h
  35. connection_unittest.cc
  36. control_interface.h
  37. crypto_des_cbc.cc
  38. crypto_des_cbc.h
  39. crypto_des_cbc_unittest.cc
  40. crypto_interface.h
  41. crypto_provider.cc
  42. crypto_provider.h
  43. crypto_provider_unittest.cc
  44. crypto_rot47.cc
  45. crypto_rot47.h
  46. crypto_rot47_unittest.cc
  47. dbus_adaptor.cc
  48. dbus_adaptor.h
  49. dbus_adaptor_unittest.cc
  50. dbus_control.cc
  51. dbus_control.h
  52. dbus_objectmanager_proxy.cc
  53. dbus_objectmanager_proxy.h
  54. dbus_objectmanager_proxy_interface.h
  55. dbus_properties.cc
  56. dbus_properties.h
  57. dbus_properties_proxy.cc
  58. dbus_properties_proxy.h
  59. dbus_properties_proxy_interface.h
  60. dbus_properties_unittest.cc
  61. dbus_property_matchers.h
  62. default_profile.cc
  63. default_profile.h
  64. default_profile_unittest.cc
  65. device.cc
  66. device.h
  67. device_dbus_adaptor.cc
  68. device_dbus_adaptor.h
  69. device_info.cc
  70. device_info.h
  71. device_info_unittest.cc
  72. device_stub.h
  73. device_unittest.cc
  74. dhcp_config.cc
  75. dhcp_config.h
  76. dhcp_config_unittest.cc
  77. dhcp_provider.cc
  78. dhcp_provider.h
  79. dhcp_provider_unittest.cc
  80. dhcp_proxy_interface.h
  81. dhcpcd_proxy.cc
  82. dhcpcd_proxy.h
  83. dns_client.cc
  84. dns_client.h
  85. dns_client_unittest.cc
  86. endpoint.cc
  87. endpoint.h
  88. ephemeral_profile.cc
  89. ephemeral_profile.h
  90. error.cc
  91. error.h
  92. error_unittest.cc
  93. ethernet.cc
  94. ethernet.h
  95. ethernet_service.cc
  96. ethernet_service.h
  97. event_dispatcher.cc
  98. event_dispatcher.h
  99. glib.cc
  100. glib.h
  101. glib_io_input_handler.cc
  102. glib_io_input_handler.h
  103. glib_io_ready_handler.cc
  104. glib_io_ready_handler.h
  105. HACKING
  106. http_proxy.cc
  107. http_proxy.h
  108. http_proxy_unittest.cc
  109. http_request.cc
  110. http_request.h
  111. http_request_unittest.cc
  112. http_url.cc
  113. http_url.h
  114. http_url_unittest.cc
  115. ieee80211.h
  116. io_handler.h
  117. ip_address.cc
  118. ip_address.h
  119. ip_address_unittest.cc
  120. ipconfig.cc
  121. ipconfig.h
  122. ipconfig_dbus_adaptor.cc
  123. ipconfig_dbus_adaptor.h
  124. ipconfig_unittest.cc
  125. key_file_store.cc
  126. key_file_store.h
  127. key_file_store_unittest.cc
  128. key_value_store.cc
  129. key_value_store.h
  130. key_value_store_unittest.cc
  131. l2tp_ipsec_driver.cc
  132. l2tp_ipsec_driver.h
  133. l2tp_ipsec_driver_unittest.cc
  134. LICENSE
  135. Makefile
  136. manager.cc
  137. manager.h
  138. manager_dbus_adaptor.cc
  139. manager_dbus_adaptor.h
  140. manager_unittest.cc
  141. metrics.cc
  142. metrics.h
  143. metrics_unittest.cc
  144. mm1_modem_modem3gpp_proxy.cc
  145. mm1_modem_modem3gpp_proxy.h
  146. mm1_modem_modem3gpp_proxy_interface.h
  147. mm1_modem_modemcdma_proxy.cc
  148. mm1_modem_modemcdma_proxy.h
  149. mm1_modem_modemcdma_proxy_interface.h
  150. mm1_modem_proxy.cc
  151. mm1_modem_proxy.h
  152. mm1_modem_proxy_interface.h
  153. mm1_modem_simple_proxy.cc
  154. mm1_modem_simple_proxy.h
  155. mm1_modem_simple_proxy_interface.h
  156. mm1_sim_proxy.cc
  157. mm1_sim_proxy.h
  158. mm1_sim_proxy_interface.h
  159. mock_adaptors.cc
  160. mock_adaptors.h
  161. mock_ares.cc
  162. mock_ares.h
  163. mock_async_connection.cc
  164. mock_async_connection.h
  165. mock_cellular.cc
  166. mock_cellular.h
  167. mock_connection.cc
  168. mock_connection.h
  169. mock_control.cc
  170. mock_control.h
  171. mock_dbus_objectmanager_proxy.cc
  172. mock_dbus_objectmanager_proxy.h
  173. mock_dbus_properties_proxy.cc
  174. mock_dbus_properties_proxy.h
  175. mock_device.cc
  176. mock_device.h
  177. mock_device_info.cc
  178. mock_device_info.h
  179. mock_dhcp_config.cc
  180. mock_dhcp_config.h
  181. mock_dhcp_provider.cc
  182. mock_dhcp_provider.h
  183. mock_dhcp_proxy.cc
  184. mock_dhcp_proxy.h
  185. mock_dns_client.cc
  186. mock_dns_client.h
  187. mock_event_dispatcher.cc
  188. mock_event_dispatcher.h
  189. mock_glib.cc
  190. mock_glib.h
  191. mock_http_request.cc
  192. mock_http_request.h
  193. mock_ipconfig.cc
  194. mock_ipconfig.h
  195. mock_manager.cc
  196. mock_manager.h
  197. mock_metrics.cc
  198. mock_metrics.h
  199. mock_modem.cc
  200. mock_modem.h
  201. mock_modem_cdma_proxy.cc
  202. mock_modem_cdma_proxy.h
  203. mock_modem_gsm_card_proxy.cc
  204. mock_modem_gsm_card_proxy.h
  205. mock_modem_gsm_network_proxy.cc
  206. mock_modem_gsm_network_proxy.h
  207. mock_modem_manager_proxy.cc
  208. mock_modem_manager_proxy.h
  209. mock_modem_proxy.cc
  210. mock_modem_proxy.h
  211. mock_modem_simple_proxy.cc
  212. mock_modem_simple_proxy.h
  213. mock_nss.cc
  214. mock_nss.h
  215. mock_openvpn_driver.cc
  216. mock_openvpn_driver.h
  217. mock_openvpn_management_server.cc
  218. mock_openvpn_management_server.h
  219. mock_portal_detector.cc
  220. mock_portal_detector.h
  221. mock_power_manager.cc
  222. mock_power_manager.h
  223. mock_power_manager_proxy.cc
  224. mock_power_manager_proxy.h
  225. mock_profile.cc
  226. mock_profile.h
  227. mock_property_store.cc
  228. mock_property_store.h
  229. mock_proxy_factory.cc
  230. mock_proxy_factory.h
  231. mock_resolver.cc
  232. mock_resolver.h
  233. mock_routing_table.cc
  234. mock_routing_table.h
  235. mock_rtnl_handler.cc
  236. mock_rtnl_handler.h
  237. mock_service.cc
  238. mock_service.h
  239. mock_sockets.cc
  240. mock_sockets.h
  241. mock_store.cc
  242. mock_store.h
  243. mock_supplicant_bss_proxy.cc
  244. mock_supplicant_bss_proxy.h
  245. mock_supplicant_interface_proxy.cc
  246. mock_supplicant_interface_proxy.h
  247. mock_supplicant_process_proxy.cc
  248. mock_supplicant_process_proxy.h
  249. mock_time.cc
  250. mock_time.h
  251. mock_vpn.cc
  252. mock_vpn.h
  253. mock_vpn_driver.cc
  254. mock_vpn_driver.h
  255. mock_vpn_service.cc
  256. mock_vpn_service.h
  257. mock_wifi.cc
  258. mock_wifi.h
  259. mock_wifi_service.cc
  260. mock_wifi_service.h
  261. modem.cc
  262. modem.h
  263. modem_1.cc
  264. modem_1_unittest.cc
  265. modem_cdma_proxy.cc
  266. modem_cdma_proxy.h
  267. modem_cdma_proxy_interface.h
  268. modem_classic.cc
  269. modem_gsm_card_proxy.cc
  270. modem_gsm_card_proxy.h
  271. modem_gsm_card_proxy_interface.h
  272. modem_gsm_network_proxy.cc
  273. modem_gsm_network_proxy.h
  274. modem_gsm_network_proxy_interface.h
  275. modem_info.cc
  276. modem_info.h
  277. modem_info_unittest.cc
  278. modem_manager.cc
  279. modem_manager.h
  280. modem_manager_proxy.cc
  281. modem_manager_proxy.h
  282. modem_manager_proxy_interface.h
  283. modem_manager_unittest.cc
  284. modem_proxy.cc
  285. modem_proxy.h
  286. modem_proxy_interface.h
  287. modem_simple_proxy.cc
  288. modem_simple_proxy.h
  289. modem_simple_proxy_interface.h
  290. modem_unittest.cc
  291. nice_mock_control.cc
  292. nice_mock_control.h
  293. nss.cc
  294. nss.h
  295. nss_unittest.cc
  296. openvpn_driver.cc
  297. openvpn_driver.h
  298. openvpn_driver_unittest.cc
  299. openvpn_management_server.cc
  300. openvpn_management_server.h
  301. openvpn_management_server_unittest.cc
  302. portal_detector.cc
  303. portal_detector.h
  304. portal_detector_unittest.cc
  305. power_manager.cc
  306. power_manager.h
  307. power_manager_proxy.cc
  308. power_manager_proxy.h
  309. power_manager_proxy_interface.h
  310. power_manager_unittest.cc
  311. profile.cc
  312. profile.h
  313. profile_dbus_adaptor.cc
  314. profile_dbus_adaptor.h
  315. profile_dbus_property_exporter.cc
  316. profile_dbus_property_exporter.h
  317. profile_dbus_property_exporter_unittest.cc
  318. profile_unittest.cc
  319. property_accessor.h
  320. property_accessor_unittest.cc
  321. property_iterator.h
  322. property_store.cc
  323. property_store.h
  324. property_store_unittest.cc
  325. property_store_unittest.h
  326. provider_db_unittest.bfd
  327. proxy_factory.cc
  328. proxy_factory.h
  329. refptr_types.h
  330. resolver.cc
  331. resolver.h
  332. resolver_unittest.cc
  333. routing_table.cc
  334. routing_table.h
  335. routing_table_entry.h
  336. routing_table_unittest.cc
  337. rpc_task.cc
  338. rpc_task.h
  339. rpc_task_dbus_adaptor.cc
  340. rpc_task_dbus_adaptor.h
  341. rpc_task_unittest.cc
  342. rtnl_handler.cc
  343. rtnl_handler.h
  344. rtnl_handler_unittest.cc
  345. rtnl_listener.cc
  346. rtnl_listener.h
  347. rtnl_listener_unittest.cc
  348. rtnl_message.cc
  349. rtnl_message.h
  350. rtnl_message_unittest.cc
  351. scope_logger.cc
  352. scope_logger.h
  353. scope_logger_unittest.cc
  354. service.cc
  355. service.h
  356. service_dbus_adaptor.cc
  357. service_dbus_adaptor.h
  358. service_sorter.h
  359. service_under_test.cc
  360. service_under_test.h
  361. service_unittest.cc
  362. shill.conf
  363. shill_ares.cc
  364. shill_ares.h
  365. shill_config.cc
  366. shill_config.h
  367. shill_daemon.cc
  368. shill_daemon.h
  369. shill_main.cc
  370. shill_test_config.cc
  371. shill_test_config.h
  372. shill_time.cc
  373. shill_time.h
  374. shill_unittest.cc
  375. sockets.cc
  376. sockets.h
  377. store_interface.h
  378. supplicant_bss_proxy.cc
  379. supplicant_bss_proxy.h
  380. supplicant_bss_proxy_interface.h
  381. supplicant_interface_proxy.cc
  382. supplicant_interface_proxy.h
  383. supplicant_interface_proxy_interface.h
  384. supplicant_process_proxy.cc
  385. supplicant_process_proxy.h
  386. supplicant_process_proxy_interface.h
  387. technology.cc
  388. technology.h
  389. technology_unittest.cc
  390. TESTING
  391. testrunner.cc
  392. vpn.cc
  393. vpn.h
  394. vpn_driver.h
  395. vpn_provider.cc
  396. vpn_provider.h
  397. vpn_provider_unittest.cc
  398. vpn_service.cc
  399. vpn_service.h
  400. vpn_service_unittest.cc
  401. vpn_unittest.cc
  402. wifi.cc
  403. wifi.h
  404. wifi_endpoint.cc
  405. wifi_endpoint.h
  406. wifi_endpoint_unittest.cc
  407. wifi_service.cc
  408. wifi_service.h
  409. wifi_service_unittest.cc
  410. wifi_unittest.cc
  411. wpa_supplicant.cc
  412. wpa_supplicant.h