[Kde-pim] Will not package kdepim-runtime for 4.13.2 with failing tests

Martin Steigerwald Martin at lichtvoll.de
Sun Jun 8 18:56:36 BST 2014


Am Sonntag, 8. Juni 2014, 19:48:09 schrieb Albert Astals Cid:
> El Diumenge, 8 de juny de 2014, a les 18:33:54, Martin Steigerwald va
> 
> escriure:
> > Am Sonntag, 8. Juni 2014, 18:31:42 schrieb Martin Steigerwald:
> > > Am Sonntag, 8. Juni 2014, 18:25:52 schrieb Martin Steigerwald:
> > > > Am Sonntag, 8. Juni 2014, 18:05:25 schrieb Albert Astals Cid:
> > > > > El Diumenge, 8 de juny de 2014, a les 17:15:10, Kevin Krammer va
> > 
> > escriure:
> > > > > > On Sunday, 2014-06-08, 16:48:53, Martin Steigerwald wrote:
> > > > > > > Hi Albert, hi Kevin, hi Daniel, hi KDEPIM devs,
> > > > > > > 
> > > > > > > 
> > > > > > > If there is anything missing, please enlighten me as to what. As
> > > > > > > I
> > > > > > > do
> > > > > > > not
> > > > > > > know what it is. Please consider that I am a newbie in all of
> > > > > > > this
> > > > > > > and
> > > > > > > do
> > > > > > > not magically know all possible pitfalls regarding testcases in
> > > > > > > KDEPIM.
> > > > > > > 
> > > > > > > The only idea I have still left is that moving down the sorting
> > > > > > > to
> > > > > > > the
> > > > > > > tagListHash.contains may unveilled that another tests fails
> > > > > > > *sometimes*,
> > > > > > > depending on the unsorted order of the entries, but that doesn´t
> > > > > > > match
> > > > > > > 
> > > > > > > FAIL!  : ItemFetchTest::testListingMaildir()
> > > > > > > '!tagListHash.contains(
> > > > > > > items[
> > > > > > > 0 ].remoteId() )' returned FALSE. ()
> > > > > > > 
> > > > > > >    Loc: [/srv/jenkins/workspace/kdepim-
> > > > > > > 
> > > > > > > runtime_stable/resources/mixedmaildir/tests/itemfetchtest.cpp(37
> > > > > > > 6)
> > > > > > > ]
> > > > > > > 
> > > > > > > from
> > > > > > > 
> > > > > > > http://build.kde.org/view/KDE SC stable/job/kdepim-
> > > > > > > runtime_stable/lastCompletedBuild/testReport/(root)/TestSuite/mi
> > > > > > > xe
> > > > > > > dm
> > > > > > > ai
> > > > > > > ld
> > > > > > > ir
> > > > > > > _i temfetchtest/
> > > > > > 
> > > > > > The items used to be sorted by file name, i.e.  basically by their
> > > > > > remote
> > > > > > ID.
> > > > > > 
> > > > > > I think qSort(items) uses Entity::operator<() which sorts by Item
> > > > > > ID.
> > > > > > 
> > > > > > You'll most likely need a "less than" function, something like
> > > > > > 
> > > > > > static bool itemLessThanByRemoteId(const Item &item1, const Item
> > > > > > &item2)
> > > > > > {
> > > > > > 
> > > > > >     return item1.remoteId() < item2.remoteId();
> > > > > > 
> > > > > > }
> > > > > > 
> > > > > > qSort(items.begin(), items.end(), itemLessThanByRemoteId);
> > > > > 
> > > > > This does defenitely make the test pass.
> > > > > 
> > > > > Should I commit it? Or you Kevin want to do it?
> > > > 
> > > > I am preparing a patch right now.
> > > 
> > > With
> > > 
> > > diff --git a/resources/mixedmaildir/tests/itemfetchtest.cpp
> > > b/resources/mixedmaildir/tests/itemfetchtest.cpp index fe034be..5372ce5
> > > 100644
> > > --- a/resources/mixedmaildir/tests/itemfetchtest.cpp
> > > +++ b/resources/mixedmaildir/tests/itemfetchtest.cpp
> > > @@ -72,6 +72,13 @@ static QSet<QByteArray> messageParts( const
> > > KMime::Message::Ptr &msgPtr ) return set;
> > > 
> > >  }
> > > 
> > > +// needed to sort maildir directory entries by filename which is their
> > > +// remoteId. tagListHash.contains tests below need sorting of entries.
> > > +static bool itemLessThanByRemoteId(const Item &item1, const Item
> > > &item2)
> > > +{
> > > +    return item1.remoteId() < item2.remoteId();
> > > +}
> > > +
> > > 
> > >  class ItemFetchTest : public QObject
> > >  {
> > >  
> > >    Q_OBJECT
> > > 
> > > @@ -369,7 +376,7 @@ void ItemFetchTest::testListingMaildir()
> > > 
> > >    // tagListHash.contains tests below needs sorting of entries,
> > >    // but libmaildir does not sort for performance reasons.
> > >    // TODO: Check should not depend on any specific ordering.
> > > 
> > > -  qSort(items);
> > > +  qSort(items.begin(), items.end(), itemLessThanByRemoteId);
> > > 
> > >    tagListHash = var.value< QHash<QString, QVariant> >();
> > >    QCOMPARE( (int)tagListHash.count(), 3 );
> > > 
> > > I get:
> > > 
> > > The following tests FAILED:
> > >          12 - imap-testretrievecollectionmetadatatask (Failed)
> > >          33 - mixedmaildir-storecompacttest (Failed)
> > > 
> > > Thus is seems to break a different test case for me on BTRFS.
> > > 
> > > I am reachable on #akonadi channel.
> > 
> > Hmmm, not on second or third run of make test.
> > 
> > Will prepare a review request.
> 
> We're back to green. Thanks all.

Thanks for helping me along, Kevin and Albert.

I learned a lot with this simple maildir nosort changes.

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list