1
0
Fork 0
forked from len0rd/rockbox

Fix RockboxInfo() not handling git hashes correctly.

With the transition to git the assumption of the version starting with "r"
isn't true anymore for non-release builds. This caused the wrong strings to be
used when constructing various download URLs.

Remove the test binary which was never intended to be added and fix some
warnings in the test implementation.

Change-Id: I879fdff201cb85f3c89cca73ab6a0514edb5a2df
This commit is contained in:
Dominik Riebeling 2012-02-19 17:40:24 +01:00
parent 37dff886f4
commit 2d7a4e9dfa
3 changed files with 38 additions and 32 deletions

View file

@ -33,38 +33,40 @@ RockboxInfo::RockboxInfo(QString mountpoint, QString fname)
return;
// read file contents
QRegExp hash("^Version:\\s+(r?)([0-9a-fM]+)");
QRegExp version("^Version:\\s+(\\S.*)");
QRegExp release("^Version:\\s+([0-9\\.]+)");
QRegExp target("^Target:\\s+(\\S.*)");
QRegExp features("^Features:\\s+(\\S.*)");
QRegExp targetid("^Target id:\\s+(\\S.*)");
QRegExp memory("^Memory:\\s+(\\S.*)");
while (!file.atEnd())
{
QString line = file.readLine();
QString line = file.readLine().trimmed();
if(line.contains("Version:"))
{
m_version = line.remove("Version:").trimmed();
if(m_version.startsWith("r")) {
m_revision = m_version;
m_revision.remove("r").replace(QRegExp("-.+$"), "");
m_release = "";
if(version.indexIn(line) >= 0) {
m_version = version.cap(1);
}
else {
m_release = m_version;
m_revision = "";
if(release.indexIn(line) >= 0) {
m_release = release.cap(1);
}
if(hash.indexIn(line) >= 0) {
// git hashes are usually at least 7 characters.
// svn revisions are expected to be at least 4 digits.
if(hash.cap(2).size() > 3)
m_revision = hash.cap(2);
}
else if(line.contains("Target: "))
{
m_target = line.remove("Target: ").trimmed();
else if(target.indexIn(line) >= 0) {
m_target = target.cap(1);
}
else if(line.contains("Features:"))
{
m_features = line.remove("Features:").trimmed();
else if(features.indexIn(line) >= 0) {
m_features = features.cap(1);
}
else if(line.contains("Target id:"))
{
m_targetid = line.remove("Target id:").trimmed();
else if(targetid.indexIn(line) >= 0) {
m_targetid = targetid.cap(1);
}
else if(line.contains("Memory:"))
{
m_ram = line.remove("Memory:").trimmed().toInt();
else if(memory.indexIn(line) >= 0) {
m_ram = memory.cap(1).toInt();
}
}

View file

@ -49,6 +49,10 @@ void TestRockboxInfo::testVersion()
{ "Version: r29629M-110321", "29629M", "r29629M-110321", "" },
{ "Version: 3.10", "", "3.10", "3.10" },
{ "Version:\t3.10", "", "3.10", "3.10" },
{ "#Version: r29629-110321", "", "", "" },
{ "Version: e5b1b0f-120218", "e5b1b0f", "e5b1b0f-120218", "" },
{ "Version: e5b1b0fM-120218", "e5b1b0fM", "e5b1b0fM-120218", "" },
{ "#Version: e5b1b0f-120218", "", "", "" },
};
@ -70,7 +74,7 @@ void TestRockboxInfo::testVersion()
void TestRockboxInfo::testTarget()
{
unsigned int i, j;
int i, j;
QStringList targets;
targets << "sansae200" << "gigabeats" << "iriverh100" << "unknown";
QStringList prefix;
@ -94,7 +98,7 @@ void TestRockboxInfo::testTarget()
void TestRockboxInfo::testMemory()
{
unsigned int i, j;
int i, j;
QStringList memsizes;
memsizes << "8" << "16" << "32" << "64";
QStringList prefix;
@ -118,7 +122,7 @@ void TestRockboxInfo::testMemory()
void TestRockboxInfo::testFeatures()
{
unsigned int i, j;
int i, j;
QStringList features;
features << "backlight_brightness:button_light:dircache:flash_storage"
<< "pitchscreen:multivolume:multidrive_usb:quickscreen";