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): def putByteArrayValue(self, value):
return self.putValue(self.encodeByteArray(value), Hex2EncodedLatin1) return self.putValue(self.encodeByteArray(value), Hex2EncodedLatin1)
def putByteArrayValueByAddress(self, addr):
self.putValue(self.encodeByteArrayHelper(self.dereference(addr)),
Hex2EncodedLatin1)
def putStringValueByAddress(self, addr): def putStringValueByAddress(self, addr):
self.putValue(self.encodeStringHelper(self.dereference(addr)), self.putValue(self.encodeStringHelper(self.dereference(addr)),
Hex4EncodedLittleEndian) Hex4EncodedLittleEndian)

View File

@@ -231,6 +231,17 @@ def qdump__QTime(d, value):
d.putNumChild(0) 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): def qdump__QDateTime(d, value):
qtVersion = d.qtVersion() qtVersion = d.qtVersion()
isValid = False isValid = False

View File

@@ -1298,6 +1298,21 @@ void tst_Dumpers::dumper_data()
% Check("c", "'x' (120)", "@QChar").setForCdbOnly() % Check("c", "'x' (120)", "@QChar").setForCdbOnly()
% Check("c", "120", "@QChar").setEngines(DumpTestGdbEngine | DumpTestLldbEngine); % 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") QTest::newRow("QDate0")
<< Data("#include <QDate>\n", << Data("#include <QDate>\n",
"QDate date;\n" "QDate date;\n"

View File

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