BrowserViewControllerTest.TestSharePageCommandHandling fails when building with Xcode 9 beta |
||||
Issue description
The test fails with a NSException. This is because OCMEqualTypesAllowingOpaqueStructs() returns false for the following two types:
^{ChromeBrowserState=^^?{map<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> >, std::__1::less<const void *>, std::__1::allocator<std::__1::pair<const void *const, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > > > >={__tree<std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > >, std::__1::__map_value_compare<const void *, std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > >, std::__1::less<const void *>, true>, std::__1::allocator<std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > > > >=^{}{__compressed_pair<std::__1::__tree_end_node<std::__1::__tree_node_base<void *> *>, std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > >, void *> > >={__tree_end_node<std::__1::__tree_node_base<void *> *>=^{}}}{__compressed_pair<unsigned long, std::__1::__map_value_compare<const void *, std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > >, std::__1::less<const void *>, true> >=Q}}}{SequenceChecker={Lock={PlatformThreadRef=^{}}{LockImpl={_opaque_pthread_mutex_t=q[56c]}}}{unique_ptr<base::SequenceCheckerImpl::Core, std::__1::default_delete<base::SequenceCheckerImpl::Core> >={__compressed_pair<base::SequenceCheckerImpl::Core *, std::__1::default_delete<base::SequenceCheckerImpl::Core> >=^{}}}}^{}{scoped_refptr<net::URLRequestContextGetter>=^{}}}
^{ChromeBrowserState=^^?{map<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> >, std::__1::less<const void *>, std::__1::allocator<std::__1::pair<const void *const, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > > > >={__tree<std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > >, std::__1::__map_value_compare<const void *, std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > >, std::__1::less<const void *>, true>, std::__1::allocator<std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > > > >=^{__tree_end_node<std::__1::__tree_node_base<void *> *>}{__compressed_pair<std::__1::__tree_end_node<std::__1::__tree_node_base<void *> *>, std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > >, void *> > >={__tree_end_node<std::__1::__tree_node_base<void *> *>=^{__tree_node_base<void *>}}}{__compressed_pair<unsigned long, std::__1::__map_value_compare<const void *, std::__1::__value_type<const void *, std::__1::unique_ptr<base::SupportsUserData::Data, std::__1::default_delete<base::SupportsUserData::Data> > >, std::__1::less<const void *>, true> >=Q}}}{SequenceChecker={Lock={PlatformThreadRef=^{_opaque_pthread_t}}{LockImpl={_opaque_pthread_mutex_t=q[56c]}}}{unique_ptr<base::SequenceCheckerImpl::Core, std::__1::default_delete<base::SequenceCheckerImpl::Core> >={__compressed_pair<base::SequenceCheckerImpl::Core *, std::__1::default_delete<base::SequenceCheckerImpl::Core> >=^{Core}}}}^{URLDataManagerIOSBackend}{scoped_refptr<net::URLRequestContextGetter>=^{URLRequestContextGetter}}}
Note that the differences are due to some unnamed types in substructures (compare for example "scoped_refptr<net::URLRequestContextGetter>=^{}" and "scoped_refptr<net::URLRequestContextGetter>=^{URLRequestContextGetter}").
,
Jun 8 2017
,
Jun 8 2017
,
Jun 9 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7405410d7e2280ae94a742af005204ef24d085b5 commit 7405410d7e2280ae94a742af005204ef24d085b5 Author: Sylvain Defresne <sdefresne@chromium.org> Date: Fri Jun 09 10:04:08 2017 Fix to allow OCMock to work with Xcode 9. The following two types should be considered equal: - scoped_refptr<net::URLRequestContextGetter>=^{} - scoped_refptr<net::URLRequestContextGetter>=^{URLRequestContextGetter} BUG= 731129 Change-Id: Ie7debc4b1fbfe8b5ad892e158af0f3ce34211b66 Reviewed-on: https://chromium-review.googlesource.com/527441 Reviewed-by: Justin Cohen <justincohen@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Commit-Queue: Sylvain Defresne <sdefresne@chromium.org> Cr-Commit-Position: refs/heads/master@{#478240} [modify] https://crrev.com/7405410d7e2280ae94a742af005204ef24d085b5/third_party/ocmock/OCMock/OCMFunctions.m [modify] https://crrev.com/7405410d7e2280ae94a742af005204ef24d085b5/third_party/ocmock/README.chromium
,
Jun 9 2017
|
||||
►
Sign in to add a comment |
||||
Comment 1 by sdefresne@chromium.org
, Jun 8 2017