mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-21 02:52:50 -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
|
Q_OBJECT
|
||||||
private slots:
|
private slots:
|
||||||
void testCompare();
|
void testCompare();
|
||||||
|
void testCompare_data();
|
||||||
void testTrim();
|
void testTrim();
|
||||||
|
void testTrim_data();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct compvector {
|
struct {
|
||||||
const char* first;
|
const char* first;
|
||||||
const char* second;
|
const char* second;
|
||||||
const int expected;
|
const int expected;
|
||||||
};
|
} const compdata[] =
|
||||||
|
|
||||||
const struct compvector compdata[] =
|
|
||||||
{
|
{
|
||||||
{ "1.2.3", "1.2.3 ", 0 },
|
{ "1.2.3", "1.2.3 ", 0 },
|
||||||
{ "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 },
|
{ "prog-1.2a-64bit.tar.bz2","prog-1.2.3-64bit.tar.bz2", 1 },
|
||||||
};
|
};
|
||||||
|
|
||||||
struct trimvector {
|
struct {
|
||||||
const char* input;
|
const char* input;
|
||||||
const QString expected;
|
const QString expected;
|
||||||
};
|
} const trimdata[] =
|
||||||
|
|
||||||
const struct trimvector trimdata[] =
|
|
||||||
{
|
{
|
||||||
{ "prog-1.2-64bit.tar.bz2", "1.2" },
|
{ "prog-1.2-64bit.tar.bz2", "1.2" },
|
||||||
{ "prog-1.2.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" },
|
{ "prog-1.2a-64bit.tar.bz2","1.2a" },
|
||||||
};
|
};
|
||||||
|
|
||||||
void TestVersionCompare::testCompare()
|
|
||||||
|
void TestVersionCompare::testCompare_data()
|
||||||
{
|
{
|
||||||
unsigned int i;
|
QTest::addColumn<QString>("first");
|
||||||
for(i = 0; i < sizeof(compdata) / sizeof(struct compvector); i++) {
|
QTest::addColumn<QString>("second");
|
||||||
QCOMPARE(Utils::compareVersionStrings(compdata[i].first,
|
QTest::addColumn<int>("expected");
|
||||||
compdata[i].second), compdata[i].expected);
|
for(size_t i = 0; i < sizeof(compdata) / sizeof(compdata[0]); i++) {
|
||||||
// inverse test possible because function return values are symmetrical.
|
QTest::newRow("") << compdata[i].first << compdata[i].second << compdata[i].expected;
|
||||||
if(compdata[i].expected != 0)
|
|
||||||
QCOMPARE(Utils::compareVersionStrings(compdata[i].second,
|
|
||||||
compdata[i].first), -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()
|
void TestVersionCompare::testTrim()
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < sizeof(trimdata) / sizeof(struct trimvector); i++) {
|
QFETCH(QString, input);
|
||||||
QCOMPARE(Utils::trimVersionString(trimdata[i].input), trimdata[i].expected);
|
QFETCH(QString, expected);
|
||||||
}
|
|
||||||
|
QCOMPARE(Utils::trimVersionString(input), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
|
|
||||||
# Test: Utils::compareVersionStrings().
|
# Test: Utils::compareVersionStrings().
|
||||||
#
|
#
|
||||||
include(tests.pri)
|
|
||||||
|
QT += testlib
|
||||||
|
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
TARGET = test-compareversion
|
TARGET = test-compareversion
|
||||||
|
|
@ -25,14 +26,12 @@ INCLUDEPATH += . ../base stubs
|
||||||
# Input
|
# Input
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
test-compareversion.cpp \
|
test-compareversion.cpp \
|
||||||
../base/rbsettings.cpp \
|
stubs/stubs-compareversion.cpp \
|
||||||
../base/rockboxinfo.cpp \
|
|
||||||
../base/systeminfo.cpp \
|
|
||||||
../base/utils.cpp
|
../base/utils.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
../base/rbsettings.h \
|
../base/rbsettings.h \
|
||||||
|
../base/playerbuildinfo.h \
|
||||||
../base/rockboxinfo.h \
|
../base/rockboxinfo.h \
|
||||||
../base/systeminfo.h \
|
|
||||||
../base/utils.h
|
../base/utils.h
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue