Issue metadata
Sign in to add a comment
|
BookmarkBarFolderViewTest failing with NSInvalidArgumentException in OCMock |
||||||||||||||||||||
Issue descriptionbrowser_side_navigation_unit_tests failing on chromium.mac/Mac10.12 Tests Builders failed on: - Mac10.12 Tests: https://build.chromium.org/p/chromium.mac/builders/Mac10.12%20Tests Sometime in between 24d26d96043e73f01c63b8965370657556eb52a0 and b674a6d9e1c8d0bb906163223eea585bdbab74c5 these two tests started failing: BookmarkBarFolderViewTest.BookmarkButtonDragAndDropAcrossProfiles BookmarkBarFolderViewTest.BookmarkButtonDragAndDrop
,
Aug 20 2017
I can confirm I came to the same conclusion: Last green: https://build.chromium.org/p/chromium.mac/builders/Mac10.12%20Tests/builds/4035 revision: 24d26d96043e73f01c63b8965370657556eb52a0 First red: https://build.chromium.org/p/chromium.mac/builders/Mac10.12%20Tests/builds/4038 revision: b674a6d9e1c8d0bb906163223eea585bdbab74c5 Gives blamelist: https://chromium.googlesource.com/chromium/src/+log/24d26d96043e73f01c63b8965370657556eb52a0..b674a6d9e1c8d0bb906163223eea585bdbab74c5?pretty=fuller The blamelist doesn't give any clues, so I'm assigning to rsesek@chromium.org due to the most recent changes in https://cs.chromium.org/chromium/src/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view_unittest.mm I'll disable the tests for now.
,
Aug 20 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8b9b1c33fe14cbe901f6547d11c516c820268889 commit 8b9b1c33fe14cbe901f6547d11c516c820268889 Author: Henrik Kjellander <kjellander@chromium.org> Date: Sun Aug 20 16:35:17 2017 Disable BookmarkBarFolderViewTest.BookmarkButtonDragAndDrop{,AcrossProfiles} test The test is failing on Mac10.12 Tests since https://build.chromium.org/p/chromium.mac/builders/Mac10.12%20Tests/builds/4038 BUG= 757063 TBR=rsesek@chromium.org Change-Id: Ib5afa8d0e25a77be00f8bbfab41c1369574abf43 Reviewed-on: https://chromium-review.googlesource.com/622788 Reviewed-by: Henrik Kjellander <kjellander@chromium.org> Commit-Queue: Henrik Kjellander <kjellander@chromium.org> Cr-Commit-Position: refs/heads/master@{#495842} [modify] https://crrev.com/8b9b1c33fe14cbe901f6547d11c516c820268889/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view_unittest.mm
,
Aug 20 2017
kjellander: I don't know which recent change you're referring to. I last touched the file 6 years ago.
,
Aug 21 2017
OK sorry for that, I didn't realize the change was 6 years old (code search blame layer doesn't show date). Assigning to OWNER in https://cs.chromium.org/chromium/src/chrome/browser/ui/cocoa/bookmarks/OWNERS then, since me as sheriff was unable to find a culprit. The test likely needs more debugging.
,
Aug 21 2017
I don't work on Mac bookmark code anymore. If there are specific to browser_side_navigation_unit_tests, which is PlzNavigate I believe, re-assigning over to jam@ for triage.
,
Aug 21 2017
Camille: can you take a look?
,
Aug 21 2017
actually I just took a quick look. this was failing on plznavigate and non-plznavigate runs, and the test has since been disabled.
,
Aug 21 2017
Thanks for looking. Updating title of the bug to not mention browser_side_navigation, then. I think this bug is for tracking fixing and re-enabling these tests. Since we have a revision range: https://chromium.googlesource.com/chromium/src/+log/24d26d96043e73f01c63b8965370657556eb52a0..b674a6d9e1c8d0bb906163223eea585bdbab74c5?pretty=fuller Assigning to possible culprit from that range that changed Mac code: https://chromium-review.googlesource.com/610501 Please take a look if it's your change to blame, or if not, please help find the right CL in the above range that's to blame. Thanks!
,
Aug 21 2017
I know little about Mac and even less about mocking, but this appears to be a bug in the mocking on Mac; sdefresne@, maybe you can shed some light on this? It's exceedingly unlikely that the test failure has anything to do with https://chromium-review.googlesource.com/610501, as that change merely tweaked the visual appearance of HTML INPUT TYPE=SEARCH fields. The exception text from the crashing tests is (absurdly) long: 2017-08-18 09:38:56.995 unit_tests[6999:141436] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Return value cannot be used for method; method signature declares '^{BookmarkModel=^^?^^?{unique_ptr<bookmarks::BookmarkClient, std::__1::default_delete<bookmarks::BookmarkClient> >={__compressed_pair<bookmarks::BookmarkClient *, std::__1::default_delete<bookmarks::BookmarkClient> >=^{}}}B{BookmarkNode=^^?{basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> >={__compressed_pair<std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> >::__rep, std::__1::allocator<unsigned short> >={__rep}}}^{}{vector<std::__1::unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> >, std::__1::allocator<std::__1::unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> > > >=^{}^{}{__compressed_pair<std::__1::unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> > *, std::__1::allocator<std::__1::unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> > > >=^{}}}^^?q{GURL={basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >={__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >={__rep}}}B{Parsed={Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}B^{}}{unique_ptr<GURL, std::__1::default_delete<GURL> >={__compressed_pair<GURL *, std::__1::default_delete<GURL> >=^{}}}}i{Time=q}{Time=q}{Image={scoped_refptr<gfx::internal::ImageStorage>=^{}}}i{unique_ptr<GURL, std::__1::default_delete<GURL> >={__compressed_pair<GURL *, std::__1::default_delete<GURL> >=^{}}}iq{unique_ptr<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >, std::__1::default_delete<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > > > >={__compressed_pair<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > > *, std::__1::default_delete<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > > > >=^{}}}q}^{}^{}^{}q{ObserverList<bookmarks::BookmarkModelObserver, false>={WeakReferenceOwner={scoped_refptr<base::internal::WeakReference::Flag>=^{}}}{vector<bookmarks::BookmarkModelObserver *, std::__1::allocator<bookmarks::BookmarkModelObserver *> >=^^{}^^{}{__compressed_pair<bookmarks::BookmarkModelObserver **, std::__1::allocator<bookmarks::BookmarkModelObserver *> >=^^{}}}ii}{multiset<bookmarks::BookmarkNode *, bookmarks::BookmarkModel::NodeURLComparator, std::__1::allocator<bookmarks::BookmarkNode *> >={__tree<bookmarks::BookmarkNode *, bookmarks::BookmarkModel::NodeURLComparator, std::__1::allocator<bookmarks::BookmarkNode *> >=^{}{__compressed_pair<std::__1::__tree_end_node<std::__1::__tree_node_base<void *> *>, std::__1::allocator<std::__1::__tree_node<bookmarks::BookmarkNode *, void *> > >={__tree_end_node<std::__1::__tree_node_base<void *> *>=^{}}}{__compressed_pair<unsigned long, bookmarks::BookmarkModel::NodeURLComparator>=Q}}}{Lock={LockImpl={_opaque_pthread_mutex_t=q[56c]}}}{CancelableTaskTracker={small_map<std::__1::map<long long, base::CancellationFlag *, std::__1::less<long long>, std::__1::allocator<std::__1::pair<const long long, base::CancellationFlag *> > >, 4, base::internal::select_equal_key<std::__1::map<long long, base::CancellationFlag *, std::__1::less<long long>, std::__1::allocator<std::__1::pair<const long long, base::CancellationFlag *> > >, false>::equal_key, base::internal::small_map_default_init<std::__1::map<long long, base::CancellationFlag *, std::__1::less<long long>, std::__1::allocator<std::__1::pair<const long long, base::CancellationFlag *> > > > >}q{SequenceChecker=}{WeakPtrFactory<base::CancelableTaskTracker>={WeakReferenceOwner={scoped_refptr<base::internal::WeakReference::Flag>=^{}}}Q}}{unique_ptr<bookmarks::BookmarkStorage, std::__1::default_delete<bookmarks::BookmarkStorage> >={__compressed_pair<bookmarks::BookmarkStorage *, std::__1::default_delete<bookmarks::BookmarkStorage> >=^{}}}{unique_ptr<bookmarks::TitledUrlIndex, std::__1::default_delete<bookmarks::TitledUrlIndex> >={__compressed_pair<bookmarks::TitledUrlIndex *, std::__1::default_delete<bookmarks::TitledUrlIndex> >=^{}}}{WaitableEvent=i{scoped_refptr<base::WaitableEvent::ReceiveRight>=^{}}{ScopedGeneric<unsigned int, base::mac::internal::SendRightTraits>={Data=I}}}i{unique_ptr<bookmarks::BookmarkExpandedStateTracker, std::__1::default_delete<bookmarks::BookmarkExpandedStateTracker> >={__compressed_pair<bookmarks::BookmarkExpandedStateTracker *, std::__1::default_delete<bookmarks::BookmarkExpandedStateTracker> >=^{}}}{set<std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::basic_string<char> > >={__tree<std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::basic_string<char> > >=^{}{__compressed_pair<std::__1::__tree_end_node<std::__1::__tree_node_base<void *> *>, std::__1::allocator<std::__1::__tree_node<std::__1::basic_string<char>, void *> > >={__tree_end_node<std::__1::__tree_node_base<void *> *>=^{}}}{__compressed_pair<unsigned long, std::__1::less<std::__1::basic_string<char> > >=Q}}}^{}{unique_ptr<bookmarks::BookmarkUndoDelegate, std::__1::default_delete<bookmarks::BookmarkUndoDelegate> >={__compressed_pair<bookmarks::BookmarkUndoDelegate *, std::__1::default_delete<bookmarks::BookmarkUndoDelegate> >=^{}}}}' but value is '^{BookmarkModel=^^?^^?{unique_ptr<bookmarks::BookmarkClient, std::__1::default_delete<bookmarks::BookmarkClient> >={__compressed_pair<bookmarks::BookmarkClient *, std::__1::default_delete<bookmarks::BookmarkClient> >=^{BookmarkClient}}}B{BookmarkNode=^^?{basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> >={__compressed_pair<std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> >::__rep, std::__1::allocator<unsigned short> >={__rep=(?={__long=QQ^S}{__short=(?=CS)[11S]}{__raw=[3Q]})}}}^{BookmarkNode}{vector<std::__1::unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> >, std::__1::allocator<std::__1::unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> > > >=^{unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> >}^{unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> >}{__compressed_pair<std::__1::unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> > *, std::__1::allocator<std::__1::unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> > > >=^{unique_ptr<bookmarks::BookmarkNode, std::__1::default_delete<bookmarks::BookmarkNode> >}}}^^?q{GURL={basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >={__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >={__rep=(?={__long=QQ*}{__short=(?=Cc)[23c]}{__raw=[3Q]})}}}B{Parsed={Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}B^{Parsed}}{unique_ptr<GURL, std::__1::default_delete<GURL> >={__compressed_pair<GURL *, std::__1::default_delete<GURL> >=^{GURL}}}}i{Time=q}{Time=q}{Image={scoped_refptr<gfx::internal::ImageStorage>=^{ImageStorage}}}i{unique_ptr<GURL, std::__1::default_delete<GURL> >={__compressed_pair<GURL *, std::__1::default_delete<GURL> >=^{GURL}}}iq{unique_ptr<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >, std::__1::default_delete<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > > > >={__compressed_pair<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > > *, std::__1::default_delete<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > > > >=^{map<std::__1::basic_string<char>, std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >}}}q}^{BookmarkPermanentNode}^{BookmarkPermanentNode}^{BookmarkPermanentNode}q{ObserverList<bookmarks::BookmarkModelObserver, false>={WeakReferenceOwner={scoped_refptr<base::internal::WeakReference::Flag>=^{Flag}}}{vector<bookmarks::BookmarkModelObserver *, std::__1::allocator<bookmarks::BookmarkModelObserver *> >=^^{BookmarkModelObserver}^^{BookmarkModelObserver}{__compressed_pair<bookmarks::BookmarkModelObserver **, std::__1::allocator<bookmarks::BookmarkModelObserver *> >=^^{BookmarkModelObserver}}}ii}{multiset<bookmarks::BookmarkNode *, bookmarks::BookmarkModel::NodeURLComparator, std::__1::allocator<bookmarks::BookmarkNode *> >={__tree<bookmarks::BookmarkNode *, bookmarks::BookmarkModel::NodeURLComparator, std::__1::allocator<bookmarks::BookmarkNode *> >=^{__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<bookmarks::BookmarkNode *, void *> > >={__tree_end_node<std::__1::__tree_node_base<void *> *>=^{__tree_node_base<void *>}}}{__compressed_pair<unsigned long, bookmarks::BookmarkModel::NodeURLComparator>=Q}}}{Lock={LockImpl={_opaque_pthread_mutex_t=q[56c]}}}{CancelableTaskTracker={small_map<std::__1::map<long long, base::CancellationFlag *, std::__1::less<long long>, std::__1::allocator<std::__1::pair<const long long, base::CancellationFlag *> > >, 4, base::internal::select_equal_key<std::__1::map<long long, base::CancellationFlag *, std::__1::less<long long>, std::__1::allocator<std::__1::pair<const long long, base::CancellationFlag *> > >, false>::equal_key, base::internal::small_map_default_init<std::__1::map<long long, base::CancellationFlag *, std::__1::less<long long>, std::__1::allocator<std::__1::pair<const long long, base::CancellationFlag *> > > > >=i{small_map_default_init<std::__1::map<long long, base::CancellationFlag *, std::__1::less<long long>, std::__1::allocator<std::__1::pair<const long long, base::CancellationFlag *> > > >=}(?=[4{ManualConstructor<std::__1::pair<const long long, base::CancellationFlag *> >=[16c]}]{ManualConstructor<std::__1::map<long long, base::CancellationFlag *, std::__1::less<long long>, std::__1::allocator<std::__1::pair<const long long, base::CancellationFlag *> > > >=[24c]})}q{SequenceChecker=}{WeakPtrFactory<base::CancelableTaskTracker>={WeakReferenceOwner={scoped_refptr<base::internal::WeakReference::Flag>=^{Flag}}}Q}}{unique_ptr<bookmarks::BookmarkStorage, std::__1::default_delete<bookmarks::BookmarkStorage> >={__compressed_pair<bookmarks::BookmarkStorage *, std::__1::default_delete<bookmarks::BookmarkStorage> >=^{BookmarkStorage}}}{unique_ptr<bookmarks::TitledUrlIndex, std::__1::default_delete<bookmarks::TitledUrlIndex> >={__compressed_pair<bookmarks::TitledUrlIndex *, std::__1::default_delete<bookmarks::TitledUrlIndex> >=^{TitledUrlIndex}}}{WaitableEvent=i{scoped_refptr<base::WaitableEvent::ReceiveRight>=^{ReceiveRight}}{ScopedGeneric<unsigned int, base::mac::internal::SendRightTraits>={Data=I}}}i{unique_ptr<bookmarks::BookmarkExpandedStateTracker, std::__1::default_delete<bookmarks::BookmarkExpandedStateTracker> >={__compressed_pair<bookmarks::BookmarkExpandedStateTracker *, std::__1::default_delete<bookmarks::BookmarkExpandedStateTracker> >=^{BookmarkExpandedStateTracker}}}{set<std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::basic_string<char> > >={__tree<std::__1::basic_string<char>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::basic_string<char> > >=^{__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::basic_string<char>, void *> > >={__tree_end_node<std::__1::__tree_node_base<void *> *>=^{__tree_node_base<void *>}}}{__compressed_pair<unsigned long, std::__1::less<std::__1::basic_string<char> > >=Q}}}^{BookmarkUndoDelegate}{unique_ptr<bookmarks::BookmarkUndoDelegate, std::__1::default_delete<bookmarks::BookmarkUndoDelegate> >={__compressed_pair<bookmarks::BookmarkUndoDelegate *, std::__1::default_delete<bookmarks::BookmarkUndoDelegate> >=^{BookmarkUndoDelegate}}}}'.' A similar problem is seen in Issue 736987, which is summarized as "The issue is that those two types are considered as incompatible by OCMock while the developer thought they were (and they probably were)... The code in third_party/ocmock/OCMock/OCMFunctions.m is supposed to parse those and accept those differences." Nothing in the regression range shown in #9 seems likely to have impacted this. The last CL /before/ the regression range (24d26d96043e73f01c63b8965370657556eb52a0) is "base::less -> std::less<> from C++14." which seems like it could be relevant.
,
Aug 22 2017
Removing sheriff label because the failing tests have been disabled.
,
Aug 22 2017
This is most likely caused by a change from base::less to std::less. |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by cmumford@chromium.org
, Aug 19 2017