Debugger: Add dumper for QTimeZone

Change-Id: I1b20529d7ecdcbf5480e95d6e7be89a2fdb6a8b7
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
hjk
2013-11-30 23:41:05 +01:00
parent 4a88290591
commit 23d6a1a23e
4 changed files with 40 additions and 0 deletions

View File

@@ -330,6 +330,10 @@ class DumperBase:
def putByteArrayValue(self, value):
return self.putValue(self.encodeByteArray(value), Hex2EncodedLatin1)
def putByteArrayValueByAddress(self, addr):
self.putValue(self.encodeByteArrayHelper(self.dereference(addr)),
Hex2EncodedLatin1)
def putStringValueByAddress(self, addr):
self.putValue(self.encodeStringHelper(self.dereference(addr)),
Hex4EncodedLittleEndian)

View File

@@ -231,6 +231,17 @@ def qdump__QTime(d, value):
d.putNumChild(0)
def qdump__QTimeZone(d, value):
base = d.dereferenceValue(value)
if d.isNull(base):
d.putValue("(null)")
d.putNumChild(0)
return
idAddr = base + 2 * d.ptrSize() # [QSharedData] + [vptr]
d.putByteArrayValueByAddress(idAddr)
d.putPlainChildren(value["d"])
def qdump__QDateTime(d, value):
qtVersion = d.qtVersion()
isValid = False

View File

@@ -1298,6 +1298,21 @@ void tst_Dumpers::dumper_data()
% Check("c", "'x' (120)", "@QChar").setForCdbOnly()
% Check("c", "120", "@QChar").setEngines(DumpTestGdbEngine | DumpTestLldbEngine);
QTest::newRow("QTimeZone0")
<< Data("#include <QTimeZone>\n",
"QTimeZone tz;\n"
"unused(&tz);\n")
% CoreProfile()
% Check("tz", "(null)", "@QTimeZone");
QTest::newRow("QTimeZone1")
<< Data("#include <QTimeZone>\n",
"QTimeZone tz(\"UTC+05:00\");\n"
"unused(&tz);\n")
% CoreProfile()
% Check("tz", "\"UTC+05:00\"", "@QTimeZone")
% Check("tz.d.m_name", "\"UTC+05:00\"", "@QString");
QTest::newRow("QDate0")
<< Data("#include <QDate>\n",
"QDate date;\n"

View File

@@ -168,6 +168,7 @@ void dummyStatement(...) {}
#include <QStandardItemModel>
#include <QTextCursor>
#include <QTextDocument>
#include <QTimeZone>
#endif
#if USE_SCRIPTLIB
@@ -708,6 +709,14 @@ namespace undefined {
namespace qdatetime {
void testQTimeZone()
{
QTimeZone zz;
QTimeZone tz("UTC+05:00");
BREAK_HERE;
dummyStatement(&zz, &tz);
}
void testQDate()
{
QDate date;
@@ -768,6 +777,7 @@ namespace qdatetime {
void testDateTime()
{
testQTimeZone();
testQDate();
testQDateTime();
testQTime();