mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-20 10:32:42 -05:00
rbutil: Update and fix unit tests.
- Fix changed dependencies and provide real stubs. - Update to use QTest global data for test table, so individual test vector entries show up as individual tests. That way a single comparison failing doesn't make all appear as failed and provide better indication what went wrong. Change-Id: I69681c3acd5ceceb4c8ceb1feb341e90a65dd603
This commit is contained in:
parent
b064a6cbb5
commit
3300815c44
3 changed files with 76 additions and 25 deletions
31
rbutil/rbutilqt/test/stubs/stubs-compareversion.cpp
Normal file
31
rbutil/rbutilqt/test/stubs/stubs-compareversion.cpp
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
#include "playerbuildinfo.h"
|
||||
#include "rbsettings.h"
|
||||
#include "rockboxinfo.h"
|
||||
|
||||
// not used by the test, just to make things compile.
|
||||
QVariant RbSettings::value(RbSettings::UserSettings setting)
|
||||
{
|
||||
(void)setting;
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
|
||||
// not used in the test. If used the test will crash!
|
||||
PlayerBuildInfo* PlayerBuildInfo::instance()
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QVariant PlayerBuildInfo::value(PlayerBuildInfo::DeviceInfo item, QString target)
|
||||
{
|
||||
(void)item;
|
||||
(void)target;
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
RockboxInfo::RockboxInfo(QString, QString)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -28,17 +28,17 @@ class TestVersionCompare : public QObject
|
|||
Q_OBJECT
|
||||
private slots:
|
||||
void testCompare();
|
||||
void testCompare_data();
|
||||
void testTrim();
|
||||
void testTrim_data();
|
||||
};
|
||||
|
||||
|
||||
struct compvector {
|
||||
struct {
|
||||
const char* first;
|
||||
const char* second;
|
||||
const int expected;
|
||||
};
|
||||
|
||||
const struct compvector compdata[] =
|
||||
} const compdata[] =
|
||||
{
|
||||
{ "1.2.3", "1.2.3 ", 0 },
|
||||
{ "1.2.3", " 1.2.3", 0 },
|
||||
|
|
@ -74,12 +74,10 @@ const struct compvector compdata[] =
|
|||
{ "prog-1.2a-64bit.tar.bz2","prog-1.2.3-64bit.tar.bz2", 1 },
|
||||
};
|
||||
|
||||
struct trimvector {
|
||||
struct {
|
||||
const char* input;
|
||||
const QString expected;
|
||||
};
|
||||
|
||||
const struct trimvector trimdata[] =
|
||||
} const trimdata[] =
|
||||
{
|
||||
{ "prog-1.2-64bit.tar.bz2", "1.2" },
|
||||
{ "prog-1.2.tar.bz2", "1.2" },
|
||||
|
|
@ -95,24 +93,47 @@ const struct trimvector trimdata[] =
|
|||
{ "prog-1.2a-64bit.tar.bz2","1.2a" },
|
||||
};
|
||||
|
||||
void TestVersionCompare::testCompare()
|
||||
|
||||
void TestVersionCompare::testCompare_data()
|
||||
{
|
||||
unsigned int i;
|
||||
for(i = 0; i < sizeof(compdata) / sizeof(struct compvector); i++) {
|
||||
QCOMPARE(Utils::compareVersionStrings(compdata[i].first,
|
||||
compdata[i].second), compdata[i].expected);
|
||||
// inverse test possible because function return values are symmetrical.
|
||||
if(compdata[i].expected != 0)
|
||||
QCOMPARE(Utils::compareVersionStrings(compdata[i].second,
|
||||
compdata[i].first), -compdata[i].expected);
|
||||
QTest::addColumn<QString>("first");
|
||||
QTest::addColumn<QString>("second");
|
||||
QTest::addColumn<int>("expected");
|
||||
for(size_t i = 0; i < sizeof(compdata) / sizeof(compdata[0]); i++) {
|
||||
QTest::newRow("") << compdata[i].first << compdata[i].second << compdata[i].expected;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TestVersionCompare::testCompare()
|
||||
{
|
||||
QFETCH(QString, first);
|
||||
QFETCH(QString, second);
|
||||
QFETCH(int, expected);
|
||||
|
||||
QCOMPARE(Utils::compareVersionStrings(first, second), expected);
|
||||
if(expected != 0) {
|
||||
QCOMPARE(Utils::compareVersionStrings(second, first), -expected);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TestVersionCompare::testTrim_data()
|
||||
{
|
||||
QTest::addColumn<QString>("input");
|
||||
QTest::addColumn<QString>("expected");
|
||||
for(size_t i = 0; i < sizeof(trimdata) / sizeof(trimdata[0]); i++) {
|
||||
QTest::newRow("") << trimdata[i].input << trimdata[i].expected;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TestVersionCompare::testTrim()
|
||||
{
|
||||
for(size_t i = 0; i < sizeof(trimdata) / sizeof(struct trimvector); i++) {
|
||||
QCOMPARE(Utils::trimVersionString(trimdata[i].input), trimdata[i].expected);
|
||||
}
|
||||
QFETCH(QString, input);
|
||||
QFETCH(QString, expected);
|
||||
|
||||
QCOMPARE(Utils::trimVersionString(input), expected);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
# Test: Utils::compareVersionStrings().
|
||||
#
|
||||
include(tests.pri)
|
||||
|
||||
QT += testlib
|
||||
|
||||
TEMPLATE = app
|
||||
TARGET = test-compareversion
|
||||
|
|
@ -25,14 +26,12 @@ INCLUDEPATH += . ../base stubs
|
|||
# Input
|
||||
SOURCES += \
|
||||
test-compareversion.cpp \
|
||||
../base/rbsettings.cpp \
|
||||
../base/rockboxinfo.cpp \
|
||||
../base/systeminfo.cpp \
|
||||
stubs/stubs-compareversion.cpp \
|
||||
../base/utils.cpp
|
||||
|
||||
HEADERS += \
|
||||
../base/rbsettings.h \
|
||||
../base/playerbuildinfo.h \
|
||||
../base/rockboxinfo.h \
|
||||
../base/systeminfo.h \
|
||||
../base/utils.h
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue