diff --git a/rbutil/rbutilqt/test/compareversion.cpp b/rbutil/rbutilqt/test/compareversion.cpp new file mode 100644 index 0000000000..db1c62e5d5 --- /dev/null +++ b/rbutil/rbutilqt/test/compareversion.cpp @@ -0,0 +1,86 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 Dominik Riebeling + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include +#include "utils.h" + + +class TestVersionCompare : public QObject +{ + Q_OBJECT + private slots: + void testMain(); +}; + + +struct testvector { + const char* first; + const char* second; + const int expected; +}; + +const struct testvector testdata[] = +{ + { "1.2.3", "1.2.3 ", 0 }, + { "1.2.3", " 1.2.3", 0 }, + { "1.2.3", "1.2.4", 1 }, + { "1.2.3", "1.3.0", 1 }, + { "1.2.3", "2.0.0", 1 }, + { "10.22.33", "10.22.33", 0 }, + { "10.22.33", "10.23.0", 1 }, + { "10.22.33", "11.0.0", 1 }, + { "1.2.3", "1.2.3.1", 1 }, + { "1.2.3", "1.2.3-1", 1 }, + { "1.2.3", "1.2.3a", 1 }, + { "1.2.3a", "1.2.3b", 1 }, + { "1.2.3", "1.2.3b", 1 }, + { "1.2.3.0", "2.0.0", 1 }, + { "1.2.3b", "2.0.0", 1 }, + { "1.2.3", "2.0.0.1", 1 }, + { "test-1.2.3", "test-1.2.3.tar.gz", 0 }, + { "1.2.3", "test-1.2.3.tar.bz2", 0 }, + { "test-1.2.3.tar.gz", "test-1.2.3.tar.bz2", 0 }, + { "test-1.2.3.tar.gz", "program-1.2.3.1.tar.bz2", 1 }, + { "program-1.2.3.zip", "program-1.2.3a.zip", 1 }, + { "program-1.2.3.tar.bz2", "2.0.0", 1 }, +}; + + +void TestVersionCompare::testMain() +{ + unsigned int i; + for(i = 0; i < sizeof(testdata) / sizeof(struct testvector); i++) { + QCOMPARE(Utils::compareVersionStrings(testdata[i].first, + testdata[i].second), testdata[i].expected); + // inverse test possible because function return values are symmetrical. + QCOMPARE(Utils::compareVersionStrings(testdata[i].second, + testdata[i].first), -testdata[i].expected); + } +} + + +QTEST_MAIN(TestVersionCompare) + +// this include is needed because we don't use a separate header file for the +// test class. It also needs to be at the end. +#include "compareversion.moc" + diff --git a/rbutil/rbutilqt/test/compareversion.pro b/rbutil/rbutilqt/test/compareversion.pro new file mode 100644 index 0000000000..84344438ec --- /dev/null +++ b/rbutil/rbutilqt/test/compareversion.pro @@ -0,0 +1,38 @@ +# +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id$ +# +# All files in this archive are subject to the GNU General Public License. +# See the file COPYING in the source tree root for full license agreement. +# +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# KIND, either express or implied. +# + +# Test: Utils::compareVersionStrings(). +# +include(tests.pri) + +TEMPLATE = app +TARGET = compareversion +INCLUDEPATH += . ../base + +# Input +SOURCES += \ + compareversion.cpp \ + ../base/rbsettings.cpp \ + ../base/rockboxinfo.cpp \ + ../base/systeminfo.cpp \ + ../base/utils.cpp + +HEADERS += \ + ../base/rbsettings.h \ + ../base/rockboxinfo.h \ + ../base/systeminfo.h \ + ../base/utils.h + diff --git a/rbutil/rbutilqt/test/tests.pri b/rbutil/rbutilqt/test/tests.pri new file mode 100644 index 0000000000..072edd2c98 --- /dev/null +++ b/rbutil/rbutilqt/test/tests.pri @@ -0,0 +1,25 @@ +# +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id$ +# +# All files in this archive are subject to the GNU General Public License. +# See the file COPYING in the source tree root for full license agreement. +# +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# KIND, either express or implied. +# + +# common settings for tests. + +CONFIG += qtestlib +DEPENDPATH += . +OBJECTS_DIR = build +UI_DIR = build +MOC_DIR = build +RCC_DIR = build +