Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
flatpak-qt-creator
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
f11185be
Commit
f11185be
authored
Jul 22, 2009
by
ck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added dumper auto test for QObjectSignalList.
parent
824d8e24
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
83 additions
and
10 deletions
+83
-10
tests/auto/debugger/main.cpp
tests/auto/debugger/main.cpp
+83
-10
No files found.
tests/auto/debugger/main.cpp
View file @
f11185be
...
...
@@ -3,6 +3,7 @@
#include <QtCore/QObject>
#include <QtCore/QProcess>
#include <QtCore/QFileInfo>
#include <QtCore/QMetaMethod>
#include <QtCore/QModelIndex>
#if QT_VERSION >= 0x040500
#include <QtCore/QSharedPointer>
...
...
@@ -155,6 +156,7 @@ private slots:
void
dumpQObjectMethodList
();
void
dumpQObjectPropertyList
();
void
dumpQObjectSignal
();
void
dumpQObjectSignalList
();
void
dumpQPixmap
();
#if QT_VERSION >= 0x040500
void
dumpQSharedPointer
();
...
...
@@ -187,6 +189,7 @@ private:
void
dumpQObjectMethodListHelper
(
QObject
&
obj
);
void
dumpQObjectPropertyListHelper
(
QObject
&
obj
);
void
dumpQObjectSignalHelper
(
QObject
&
o
,
int
sigNum
);
void
dumpQObjectSignalListHelper
(
QObject
&
o
);
void
dumpQPixmapHelper
(
QPixmap
&
p
);
#if QT_VERSION >= 0x040500
template
<
typename
T
>
...
...
@@ -1082,22 +1085,26 @@ static const char *connectionType(uint type)
return
output
;
};
void
tst_Debugger
::
dumpQObjectSignalHelper
(
QObject
&
o
,
int
sigNum
)
class
Cheater
:
public
QObject
{
class
Cheater
:
public
QObject
public:
static
QObjectPrivate
*
getPrivate
(
QObject
&
o
)
{
public:
static
QObjectPrivate
*
getPrivate
(
QObject
&
o
)
{
return
dynamic_cast
<
QObjectPrivate
*>
(
static_cast
<
Cheater
&>
(
o
).
d_ptr
);
}
};
return
dynamic_cast
<
QObjectPrivate
*>
(
static_cast
<
Cheater
&>
(
o
).
d_ptr
);
}
};
typedef
QVector
<
QObjectPrivate
::
ConnectionList
>
ConnLists
;
void
tst_Debugger
::
dumpQObjectSignalHelper
(
QObject
&
o
,
int
sigNum
)
{
QByteArray
expected
(
"addr='<synthetic>',numchild='1',type='"
NS
"QObjectSignal'"
);
#if QT_VERSION >= 0x040400
expected
.
append
(
",children=["
);
const
QObjectPrivate
*
p
=
Cheater
::
getPrivate
(
o
);
Q_ASSERT
(
p
!=
0
);
typedef
QVector
<
QObjectPrivate
::
ConnectionList
>
ConnLists
;
const
ConnLists
*
connLists
=
reinterpret_cast
<
const
ConnLists
*>
(
p
->
connectionLists
);
QObjectPrivate
::
ConnectionList
connList
=
connLists
!=
0
&&
connLists
->
size
()
>
sigNum
?
...
...
@@ -1176,9 +1183,75 @@ void tst_Debugger::dumpQObjectSignal()
dumpQObjectSignalHelper
(
m
,
signalIndex
);
}
void
tst_Debugger
::
dumpQPixmapHelper
(
QPixmap
&
p
)
void
tst_Debugger
::
dumpQObjectSignalListHelper
(
QObject
&
o
)
{
const
QMetaObject
*
mo
=
o
.
metaObject
();
QList
<
QMetaMethod
>
methods
;
for
(
int
i
=
0
;
i
<
mo
->
methodCount
();
++
i
)
{
const
QMetaMethod
&
method
=
mo
->
method
(
i
);
if
(
method
.
methodType
()
==
QMetaMethod
::
Signal
)
methods
.
append
(
method
);
}
QString
sizeStr
=
QString
::
number
(
methods
.
size
());
QByteArray
addrString
=
ptrToBa
(
&
o
);
QByteArray
expected
=
QByteArray
(
"tiname='$I',addr='$A',type='QObjectSignalList',value='<"
).
append
(
sizeStr
).
append
(
" items>',addr='"
).
append
(
addrString
).
append
(
"',numchild='"
).
append
(
sizeStr
).
append
(
"'"
);
#if QT_VERSION >= 0x040400
expected
.
append
(
",children=["
);
const
QObjectPrivate
*
p
=
Cheater
::
getPrivate
(
o
);
Q_ASSERT
(
p
!=
0
);
const
ConnLists
*
connLists
=
reinterpret_cast
<
const
ConnLists
*>
(
p
->
connectionLists
);
for
(
int
i
=
0
;
i
<
methods
.
size
();
++
i
)
{
const
char
*
const
signature
=
methods
.
at
(
i
).
signature
();
int
sigNum
=
mo
->
indexOfSignal
(
signature
);
QObjectPrivate
::
ConnectionList
connList
=
connLists
!=
0
&&
connLists
->
size
()
>
sigNum
?
connLists
->
at
(
sigNum
)
:
QObjectPrivate
::
ConnectionList
();
expected
.
append
(
"{name='"
).
append
(
QString
::
number
(
sigNum
)).
append
(
"',value='"
).
append
(
signature
).
append
(
"',numchild='"
).
append
(
QString
::
number
(
connList
.
size
())).
append
(
"',addr='"
).
append
(
addrString
).
append
(
"',type='"
NS
"QObjectSignal'}"
);
if
(
i
<
methods
.
size
()
-
1
)
expected
.
append
(
","
);
}
expected
.
append
(
"]"
);
#endif
testDumper
(
expected
,
&
o
,
NS
"QObjectSignalList"
,
true
);
}
void
tst_Debugger
::
dumpQObjectSignalList
()
{
// Case 1: Simple QObject.
QObject
o
;
o
.
setObjectName
(
"Test"
);
dumpQObjectSignalListHelper
(
o
);
// Case 2: QAbstractItemModel with no connections.
QStringListModel
m
(
QStringList
()
<<
"Test1"
<<
"Test2"
);
dumpQObjectSignalListHelper
(
m
);
// Case 3: QAbstractItemModel with connections to itself and to another
// object, using different connection types.
qRegisterMetaType
<
QModelIndex
>
(
"QModelIndex"
);
connect
(
&
m
,
SIGNAL
(
columnsAboutToBeInserted
(
const
QModelIndex
&
,
int
,
int
)),
&
o
,
SLOT
(
deleteLater
()),
Qt
::
DirectConnection
);
connect
(
&
m
,
SIGNAL
(
columnsAboutToBeRemoved
(
const
QModelIndex
&
,
int
,
int
)),
&
m
,
SLOT
(
revert
()),
Qt
::
QueuedConnection
);
connect
(
&
m
,
SIGNAL
(
columnsAboutToBeRemoved
(
const
QModelIndex
&
,
int
,
int
)),
&
m
,
SLOT
(
submit
()),
Qt
::
QueuedConnection
);
connect
(
&
m
,
SIGNAL
(
columnsInserted
(
const
QModelIndex
&
,
int
,
int
)),
&
m
,
SLOT
(
submit
()),
Qt
::
BlockingQueuedConnection
);
connect
(
&
m
,
SIGNAL
(
columnsRemoved
(
const
QModelIndex
&
,
int
,
int
)),
&
m
,
SLOT
(
deleteLater
()),
Qt
::
AutoConnection
);
dumpQObjectSignalListHelper
(
m
);
}
void
tst_Debugger
::
dumpQPixmapHelper
(
QPixmap
&
p
)
{
QByteArray
expected
=
QByteArray
(
"value='("
).
append
(
QString
::
number
(
p
.
width
())).
append
(
"x"
).
append
(
QString
::
number
(
p
.
height
())).
append
(
"',type='"
NS
"QPixmap',numchild='0'"
);
testDumper
(
expected
,
&
p
,
NS
"QPixmap"
,
true
);
}
void
tst_Debugger
::
dumpQPixmap
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment