Changeset View
Changeset View
Standalone View
Standalone View
plugins/gdb/unittests/test_gdbprinters.cpp
Show First 20 Lines • Show All 139 Lines • ▼ Show 20 Line(s) | 136 | { | |||
---|---|---|---|---|---|
140 | gdb.execute("run"); | 140 | gdb.execute("run"); | ||
141 | gdb.execute(QStringLiteral("break 'doStuff<%1>()'").arg(container).toLocal8Bit()); | 141 | gdb.execute(QStringLiteral("break 'doStuff<%1>()'").arg(container).toLocal8Bit()); | ||
142 | gdb.execute("cont"); | 142 | gdb.execute("cont"); | ||
143 | { // <int> | 143 | { // <int> | ||
144 | gdb.execute("break qlistcontainer.cpp:34"); | 144 | gdb.execute("break qlistcontainer.cpp:34"); | ||
145 | gdb.execute("cont"); | 145 | gdb.execute("cont"); | ||
146 | QByteArray out = gdb.execute("print intList"); | 146 | QByteArray out = gdb.execute("print intList"); | ||
147 | qWarning() << "FOO" << out; | 147 | qWarning() << "FOO" << out; | ||
148 | QVERIFY(out.contains(QString("empty %1<int>").arg(container).toLocal8Bit())); | 148 | QVERIFY(out.contains(QString("%1<int> (size = 0)").arg(container).toLocal8Bit())); | ||
149 | gdb.execute("next"); | 149 | gdb.execute("next"); | ||
150 | out = gdb.execute("print intList"); | 150 | out = gdb.execute("print intList"); | ||
151 | QVERIFY(out.contains(QString("%1<int>").arg(container).toLocal8Bit())); | 151 | QVERIFY(out.contains(QString("%1<int> (size = 2)").arg(container).toLocal8Bit())); | ||
152 | if (container != QLatin1String("QSet")) { | 152 | if (container != QLatin1String("QSet")) { | ||
153 | QVERIFY(out.contains("[0] = 10")); | 153 | QVERIFY(out.contains("[0] = 10")); | ||
154 | QVERIFY(out.contains("[1] = 20")); | 154 | QVERIFY(out.contains("[1] = 20")); | ||
155 | QVERIFY(!out.contains("[2] = 30")); | 155 | QVERIFY(!out.contains("[2] = 30")); | ||
156 | } else { // QSet order is undefined | 156 | } else { // QSet order is undefined | ||
157 | QVERIFY(out.contains("] = 10")); | 157 | QVERIFY(out.contains("] = 10")); | ||
158 | QVERIFY(out.contains("] = 20")); | 158 | QVERIFY(out.contains("] = 20")); | ||
159 | QVERIFY(!out.contains("] = 30")); | 159 | QVERIFY(!out.contains("] = 30")); | ||
160 | } | 160 | } | ||
161 | gdb.execute("next"); | 161 | gdb.execute("next"); | ||
162 | out = gdb.execute("print intList"); | 162 | out = gdb.execute("print intList"); | ||
163 | QVERIFY(out.contains(QString("%1<int>").arg(container).toLocal8Bit())); | 163 | QVERIFY(out.contains(QString("%1<int> (size = 3)").arg(container).toLocal8Bit())); | ||
164 | if (container != QLatin1String("QSet")) { | 164 | if (container != QLatin1String("QSet")) { | ||
165 | QVERIFY(out.contains("[0] = 10")); | 165 | QVERIFY(out.contains("[0] = 10")); | ||
166 | QVERIFY(out.contains("[1] = 20")); | 166 | QVERIFY(out.contains("[1] = 20")); | ||
167 | QVERIFY(out.contains("[2] = 30")); | 167 | QVERIFY(out.contains("[2] = 30")); | ||
168 | } else { // QSet order is undefined | 168 | } else { // QSet order is undefined | ||
169 | QVERIFY(out.contains("] = 10")); | 169 | QVERIFY(out.contains("] = 10")); | ||
170 | QVERIFY(out.contains("] = 20")); | 170 | QVERIFY(out.contains("] = 20")); | ||
171 | QVERIFY(out.contains("] = 30")); | 171 | QVERIFY(out.contains("] = 30")); | ||
172 | } | 172 | } | ||
173 | } | 173 | } | ||
174 | { // <QString> | 174 | { // <QString> | ||
175 | gdb.execute("next"); | 175 | gdb.execute("next"); | ||
176 | QByteArray out = gdb.execute("print stringList"); | 176 | QByteArray out = gdb.execute("print stringList"); | ||
177 | QVERIFY(out.contains(QString("empty %1<QString>").arg(container).toLocal8Bit())); | 177 | QVERIFY(out.contains(QString("%1<QString> (size = 0)").arg(container).toLocal8Bit())); | ||
178 | gdb.execute("next"); | 178 | gdb.execute("next"); | ||
179 | out = gdb.execute("print stringList"); | 179 | out = gdb.execute("print stringList"); | ||
180 | QVERIFY(out.contains(QString("%1<QString>").arg(container).toLocal8Bit())); | 180 | QVERIFY(out.contains(QString("%1<QString> (size = 2)").arg(container).toLocal8Bit())); | ||
181 | if (container != QLatin1String("QSet")) { | 181 | if (container != QLatin1String("QSet")) { | ||
182 | QVERIFY(out.contains("[0] = \"a\"")); | 182 | QVERIFY(out.contains("[0] = \"a\"")); | ||
183 | QVERIFY(out.contains("[1] = \"bc\"")); | 183 | QVERIFY(out.contains("[1] = \"bc\"")); | ||
184 | QVERIFY(!out.contains("[2] = \"d\"")); | 184 | QVERIFY(!out.contains("[2] = \"d\"")); | ||
185 | } else { // QSet order is undefined | 185 | } else { // QSet order is undefined | ||
186 | QVERIFY(out.contains("] = \"a\"")); | 186 | QVERIFY(out.contains("] = \"a\"")); | ||
187 | QVERIFY(out.contains("] = \"bc\"")); | 187 | QVERIFY(out.contains("] = \"bc\"")); | ||
188 | QVERIFY(!out.contains("] = \"d\"")); | 188 | QVERIFY(!out.contains("] = \"d\"")); | ||
189 | } | 189 | } | ||
190 | gdb.execute("next"); | 190 | gdb.execute("next"); | ||
191 | out = gdb.execute("print stringList"); | 191 | out = gdb.execute("print stringList"); | ||
192 | QVERIFY(out.contains(QString("%1<QString>").arg(container).toLocal8Bit())); | 192 | QVERIFY(out.contains(QString("%1<QString> (size = 3)").arg(container).toLocal8Bit())); | ||
193 | if (container != QLatin1String("QSet")) { | 193 | if (container != QLatin1String("QSet")) { | ||
194 | QVERIFY(out.contains("[0] = \"a\"")); | 194 | QVERIFY(out.contains("[0] = \"a\"")); | ||
195 | QVERIFY(out.contains("[1] = \"bc\"")); | 195 | QVERIFY(out.contains("[1] = \"bc\"")); | ||
196 | QVERIFY(out.contains("[2] = \"d\"")); | 196 | QVERIFY(out.contains("[2] = \"d\"")); | ||
197 | } else { // QSet order is undefined | 197 | } else { // QSet order is undefined | ||
198 | QVERIFY(out.contains("] = \"a\"")); | 198 | QVERIFY(out.contains("] = \"a\"")); | ||
199 | QVERIFY(out.contains("] = \"bc\"")); | 199 | QVERIFY(out.contains("] = \"bc\"")); | ||
200 | QVERIFY(out.contains("] = \"d\"")); | 200 | QVERIFY(out.contains("] = \"d\"")); | ||
201 | } | 201 | } | ||
202 | } | 202 | } | ||
203 | { // <struct A> | 203 | { // <struct A> | ||
204 | gdb.execute("next"); | 204 | gdb.execute("next"); | ||
205 | QByteArray out = gdb.execute("print structList"); | 205 | QByteArray out = gdb.execute("print structList"); | ||
206 | QVERIFY(out.contains(QString("empty %1<A>").arg(container).toLocal8Bit())); | 206 | QVERIFY(out.contains(QString("%1<A> (size = 0)").arg(container).toLocal8Bit())); | ||
207 | gdb.execute("next"); | 207 | gdb.execute("next"); | ||
208 | out = gdb.execute("print structList"); | 208 | out = gdb.execute("print structList"); | ||
209 | QVERIFY(out.contains(QString("%1<A>").arg(container).toLocal8Bit())); | 209 | QVERIFY(out.contains(QString("%1<A> (size = 1)").arg(container).toLocal8Bit())); | ||
210 | QVERIFY(out.contains("[0] = {")); | 210 | QVERIFY(out.contains("[0] = {")); | ||
211 | QVERIFY(out.contains("a = \"a\"")); | 211 | QVERIFY(out.contains("a = \"a\"")); | ||
212 | QVERIFY(out.contains("b = \"b\"")); | 212 | QVERIFY(out.contains("b = \"b\"")); | ||
213 | QVERIFY(out.contains("c = 100")); | 213 | QVERIFY(out.contains("c = 100")); | ||
214 | QVERIFY(out.contains("d = -200")); | 214 | QVERIFY(out.contains("d = -200")); | ||
215 | gdb.execute("next"); | 215 | gdb.execute("next"); | ||
216 | out = gdb.execute("print structList"); | 216 | out = gdb.execute("print structList"); | ||
217 | QVERIFY(out.contains(QString("%1<A>").arg(container).toLocal8Bit())); | 217 | QVERIFY(out.contains(QString("%1<A> (size = 2)").arg(container).toLocal8Bit())); | ||
218 | QVERIFY(out.contains("[1] = {")); | 218 | QVERIFY(out.contains("[1] = {")); | ||
219 | } | 219 | } | ||
220 | { // <int*> | 220 | { // <int*> | ||
221 | gdb.execute("next"); | 221 | gdb.execute("next"); | ||
222 | QByteArray out = gdb.execute("print pointerList"); | 222 | QByteArray out = gdb.execute("print pointerList"); | ||
223 | QVERIFY(out.contains(QString("empty %1<int *>").arg(container).toLocal8Bit())); | 223 | QVERIFY(out.contains(QString("%1<int *> (size = 0)").arg(container).toLocal8Bit())); | ||
224 | gdb.execute("next"); | 224 | gdb.execute("next"); | ||
225 | out = gdb.execute("print pointerList"); | 225 | out = gdb.execute("print pointerList"); | ||
226 | QVERIFY(out.contains(QString("%1<int *>").arg(container).toLocal8Bit())); | 226 | QVERIFY(out.contains(QString("%1<int *> (size = 2)").arg(container).toLocal8Bit())); | ||
227 | QVERIFY(out.contains("[0] = 0x")); | 227 | QVERIFY(out.contains("[0] = 0x")); | ||
228 | QVERIFY(out.contains("[1] = 0x")); | 228 | QVERIFY(out.contains("[1] = 0x")); | ||
229 | QVERIFY(!out.contains("[2] = 0x")); | 229 | QVERIFY(!out.contains("[2] = 0x")); | ||
230 | gdb.execute("next"); | 230 | gdb.execute("next"); | ||
231 | out = gdb.execute("print pointerList"); | 231 | out = gdb.execute("print pointerList"); | ||
232 | QVERIFY(out.contains(QString("%1<int *> (size = 3)").arg(container).toLocal8Bit())); | ||||
232 | QVERIFY(out.contains("[0] = 0x")); | 233 | QVERIFY(out.contains("[0] = 0x")); | ||
233 | QVERIFY(out.contains("[1] = 0x")); | 234 | QVERIFY(out.contains("[1] = 0x")); | ||
234 | QVERIFY(out.contains("[2] = 0x")); | 235 | QVERIFY(out.contains("[2] = 0x")); | ||
235 | gdb.execute("next"); | 236 | gdb.execute("next"); | ||
236 | } | 237 | } | ||
237 | { // <QPair<int, int> > | 238 | { // <QPair<int, int> > | ||
238 | gdb.execute("next"); | 239 | gdb.execute("next"); | ||
239 | QByteArray out = gdb.execute("print pairList"); | 240 | QByteArray out = gdb.execute("print pairList"); | ||
240 | QVERIFY(out.contains(QString("empty %1<QPair<int, int>>").arg(container).toLocal8Bit())); | 241 | QVERIFY(out.contains(QString("%1<QPair<int, int>> (size = 0)").arg(container).toLocal8Bit())); | ||
241 | gdb.execute("next"); | 242 | gdb.execute("next"); | ||
242 | out = gdb.execute("print pairList"); | 243 | out = gdb.execute("print pairList"); | ||
243 | QVERIFY(out.contains(QString("%1<QPair<int, int>>").arg(container).toLocal8Bit())); | 244 | QVERIFY(out.contains(QString("%1<QPair<int, int>> (size = 2)").arg(container).toLocal8Bit())); | ||
244 | if (container != QLatin1String("QSet")) { | 245 | if (container != QLatin1String("QSet")) { | ||
245 | QVERIFY(out.contains("[0] = {\n first = 1, \n second = 2\n }")); | 246 | QVERIFY(out.contains("[0] = {\n first = 1, \n second = 2\n }")); | ||
246 | QVERIFY(out.contains("[1] = {\n first = 2, \n second = 3\n }")); | 247 | QVERIFY(out.contains("[1] = {\n first = 2, \n second = 3\n }")); | ||
247 | } else { // order is undefined in QSet | 248 | } else { // order is undefined in QSet | ||
248 | QVERIFY(out.contains("] = {\n first = 1, \n second = 2\n }")); | 249 | QVERIFY(out.contains("] = {\n first = 1, \n second = 2\n }")); | ||
249 | QVERIFY(out.contains("] = {\n first = 2, \n second = 3\n }")); | 250 | QVERIFY(out.contains("] = {\n first = 2, \n second = 3\n }")); | ||
250 | } | 251 | } | ||
251 | QVERIFY(!out.contains("[2] = ")); | 252 | QVERIFY(!out.contains("[2] = ")); | ||
252 | gdb.execute("next"); | 253 | gdb.execute("next"); | ||
253 | out = gdb.execute("print pairList"); | 254 | out = gdb.execute("print pairList"); | ||
255 | QVERIFY(out.contains(QString("%1<QPair<int, int>> (size = 3)").arg(container).toLocal8Bit())); | ||||
254 | if (container != QLatin1String("QSet")) { | 256 | if (container != QLatin1String("QSet")) { | ||
255 | QVERIFY(out.contains("[0] = {\n first = 1, \n second = 2\n }")); | 257 | QVERIFY(out.contains("[0] = {\n first = 1, \n second = 2\n }")); | ||
256 | QVERIFY(out.contains("[1] = {\n first = 2, \n second = 3\n }")); | 258 | QVERIFY(out.contains("[1] = {\n first = 2, \n second = 3\n }")); | ||
257 | QVERIFY(out.contains("[2] = {\n first = 4, \n second = 5\n }")); | 259 | QVERIFY(out.contains("[2] = {\n first = 4, \n second = 5\n }")); | ||
258 | } else { // order is undefined in QSet | 260 | } else { // order is undefined in QSet | ||
259 | QVERIFY(out.contains("] = {\n first = 1, \n second = 2\n }")); | 261 | QVERIFY(out.contains("] = {\n first = 1, \n second = 2\n }")); | ||
260 | QVERIFY(out.contains("] = {\n first = 2, \n second = 3\n }")); | 262 | QVERIFY(out.contains("] = {\n first = 2, \n second = 3\n }")); | ||
261 | QVERIFY(out.contains("] = {\n first = 4, \n second = 5\n }")); | 263 | QVERIFY(out.contains("] = {\n first = 4, \n second = 5\n }")); | ||
262 | } | 264 | } | ||
263 | } | 265 | } | ||
264 | } | 266 | } | ||
265 | 267 | | |||
266 | void QtPrintersTest::testQMapInt() | 268 | void QtPrintersTest::testQMapInt() | ||
267 | { | 269 | { | ||
268 | GdbProcess gdb(QStringLiteral("debuggee_qmapint")); | 270 | GdbProcess gdb(QStringLiteral("debuggee_qmapint")); | ||
269 | gdb.execute("break qmapint.cpp:7"); | 271 | gdb.execute("break qmapint.cpp:7"); | ||
270 | gdb.execute("run"); | 272 | gdb.execute("run"); | ||
271 | QByteArray out = gdb.execute("print m"); | 273 | QByteArray out = gdb.execute("print m"); | ||
272 | QVERIFY(out.contains("QMap<int, int>")); | 274 | QVERIFY(out.contains("QMap<int, int> (size = 2)")); | ||
273 | QVERIFY(out.contains("[10] = 100")); | 275 | QVERIFY(out.contains("[10] = 100")); | ||
274 | QVERIFY(out.contains("[20] = 200")); | 276 | QVERIFY(out.contains("[20] = 200")); | ||
275 | gdb.execute("next"); | 277 | gdb.execute("next"); | ||
276 | out = gdb.execute("print m"); | 278 | out = gdb.execute("print m"); | ||
279 | QVERIFY(out.contains("QMap<int, int> (size = 3)")); | ||||
277 | QVERIFY(out.contains("[30] = 300")); | 280 | QVERIFY(out.contains("[30] = 300")); | ||
278 | } | 281 | } | ||
279 | 282 | | |||
280 | void QtPrintersTest::testQMapString() | 283 | void QtPrintersTest::testQMapString() | ||
281 | { | 284 | { | ||
282 | GdbProcess gdb(QStringLiteral("debuggee_qmapstring")); | 285 | GdbProcess gdb(QStringLiteral("debuggee_qmapstring")); | ||
283 | gdb.execute("break qmapstring.cpp:8"); | 286 | gdb.execute("break qmapstring.cpp:8"); | ||
284 | gdb.execute("run"); | 287 | gdb.execute("run"); | ||
285 | QByteArray out = gdb.execute("print m"); | 288 | QByteArray out = gdb.execute("print m"); | ||
286 | QVERIFY(out.contains("QMap<QString, QString>")); | 289 | QVERIFY(out.contains("QMap<QString, QString> (size = 2)")); | ||
287 | QVERIFY(out.contains("[\"10\"] = \"100\"")); | 290 | QVERIFY(out.contains("[\"10\"] = \"100\"")); | ||
288 | QVERIFY(out.contains("[\"20\"] = \"200\"")); | 291 | QVERIFY(out.contains("[\"20\"] = \"200\"")); | ||
289 | gdb.execute("next"); | 292 | gdb.execute("next"); | ||
290 | out = gdb.execute("print m"); | 293 | out = gdb.execute("print m"); | ||
294 | QVERIFY(out.contains("QMap<QString, QString> (size = 3)")); | ||||
291 | QVERIFY(out.contains("[\"30\"] = \"300\"")); | 295 | QVERIFY(out.contains("[\"30\"] = \"300\"")); | ||
292 | } | 296 | } | ||
293 | 297 | | |||
294 | void QtPrintersTest::testQMapStringBool() | 298 | void QtPrintersTest::testQMapStringBool() | ||
295 | { | 299 | { | ||
296 | GdbProcess gdb(QStringLiteral("debuggee_qmapstringbool")); | 300 | GdbProcess gdb(QStringLiteral("debuggee_qmapstringbool")); | ||
297 | gdb.execute("break qmapstringbool.cpp:8"); | 301 | gdb.execute("break qmapstringbool.cpp:8"); | ||
298 | gdb.execute("run"); | 302 | gdb.execute("run"); | ||
299 | QByteArray out = gdb.execute("print m"); | 303 | QByteArray out = gdb.execute("print m"); | ||
300 | QVERIFY(out.contains("QMap<QString, bool>")); | 304 | QVERIFY(out.contains("QMap<QString, bool> (size = 2)")); | ||
301 | QVERIFY(out.contains("[\"10\"] = true")); | 305 | QVERIFY(out.contains("[\"10\"] = true")); | ||
302 | QVERIFY(out.contains("[\"20\"] = false")); | 306 | QVERIFY(out.contains("[\"20\"] = false")); | ||
303 | gdb.execute("next"); | 307 | gdb.execute("next"); | ||
304 | out = gdb.execute("print m"); | 308 | out = gdb.execute("print m"); | ||
309 | QVERIFY(out.contains("QMap<QString, bool> (size = 3)")); | ||||
305 | QVERIFY(out.contains("[\"30\"] = true")); | 310 | QVERIFY(out.contains("[\"30\"] = true")); | ||
306 | } | 311 | } | ||
307 | 312 | | |||
308 | 313 | | |||
309 | void QtPrintersTest::testQDate() | 314 | void QtPrintersTest::testQDate() | ||
310 | { | 315 | { | ||
311 | GdbProcess gdb(QStringLiteral("debuggee_qdate")); | 316 | GdbProcess gdb(QStringLiteral("debuggee_qdate")); | ||
312 | gdb.execute("break qdate.cpp:6"); | 317 | gdb.execute("break qdate.cpp:6"); | ||
Show All 30 Lines | |||||
343 | } | 348 | } | ||
344 | 349 | | |||
345 | void QtPrintersTest::testQHashInt() | 350 | void QtPrintersTest::testQHashInt() | ||
346 | { | 351 | { | ||
347 | GdbProcess gdb(QStringLiteral("debuggee_qhashint")); | 352 | GdbProcess gdb(QStringLiteral("debuggee_qhashint")); | ||
348 | gdb.execute("break qhashint.cpp:7"); | 353 | gdb.execute("break qhashint.cpp:7"); | ||
349 | gdb.execute("run"); | 354 | gdb.execute("run"); | ||
350 | QByteArray out = gdb.execute("print h"); | 355 | QByteArray out = gdb.execute("print h"); | ||
356 | QVERIFY(out.contains("QHash<int, int> (size = 2)")); | ||||
351 | QVERIFY(out.contains("[10] = 100")); | 357 | QVERIFY(out.contains("[10] = 100")); | ||
352 | QVERIFY(out.contains("[20] = 200")); | 358 | QVERIFY(out.contains("[20] = 200")); | ||
353 | gdb.execute("next"); | 359 | gdb.execute("next"); | ||
354 | out = gdb.execute("print h"); | 360 | out = gdb.execute("print h"); | ||
361 | QVERIFY(out.contains("QHash<int, int> (size = 3)")); | ||||
355 | QVERIFY(out.contains("[30] = 300")); | 362 | QVERIFY(out.contains("[30] = 300")); | ||
356 | } | 363 | } | ||
357 | 364 | | |||
358 | void QtPrintersTest::testQHashString() | 365 | void QtPrintersTest::testQHashString() | ||
359 | { | 366 | { | ||
360 | GdbProcess gdb(QStringLiteral("debuggee_qhashstring")); | 367 | GdbProcess gdb(QStringLiteral("debuggee_qhashstring")); | ||
361 | gdb.execute("break qhashstring.cpp:8"); | 368 | gdb.execute("break qhashstring.cpp:8"); | ||
362 | gdb.execute("run"); | 369 | gdb.execute("run"); | ||
363 | QByteArray out = gdb.execute("print h"); | 370 | QByteArray out = gdb.execute("print h"); | ||
371 | QVERIFY(out.contains("QHash<QString, QString> (size = 2)")); | ||||
364 | QVERIFY(out.contains("[\"10\"] = \"100\"")); | 372 | QVERIFY(out.contains("[\"10\"] = \"100\"")); | ||
365 | QVERIFY(out.contains("[\"20\"] = \"200\"")); | 373 | QVERIFY(out.contains("[\"20\"] = \"200\"")); | ||
366 | gdb.execute("next"); | 374 | gdb.execute("next"); | ||
367 | out = gdb.execute("print h"); | 375 | out = gdb.execute("print h"); | ||
376 | QVERIFY(out.contains("QHash<QString, QString> (size = 3)")); | ||||
368 | QVERIFY(out.contains("[\"30\"] = \"300\"")); | 377 | QVERIFY(out.contains("[\"30\"] = \"300\"")); | ||
369 | } | 378 | } | ||
370 | 379 | | |||
371 | void QtPrintersTest::testQSetInt() | 380 | void QtPrintersTest::testQSetInt() | ||
372 | { | 381 | { | ||
373 | GdbProcess gdb(QStringLiteral("debuggee_qsetint")); | 382 | GdbProcess gdb(QStringLiteral("debuggee_qsetint")); | ||
374 | gdb.execute("break qsetint.cpp:7"); | 383 | gdb.execute("break qsetint.cpp:7"); | ||
375 | gdb.execute("run"); | 384 | gdb.execute("run"); | ||
376 | QByteArray out = gdb.execute("print s"); | 385 | QByteArray out = gdb.execute("print s"); | ||
386 | QVERIFY(out.contains("QSet<int> (size = 2)")); | ||||
377 | QVERIFY(out.contains("] = 10")); | 387 | QVERIFY(out.contains("] = 10")); | ||
378 | QVERIFY(out.contains("] = 20")); | 388 | QVERIFY(out.contains("] = 20")); | ||
379 | gdb.execute("next"); | 389 | gdb.execute("next"); | ||
380 | out = gdb.execute("print s"); | 390 | out = gdb.execute("print s"); | ||
391 | QVERIFY(out.contains("QSet<int> (size = 3)")); | ||||
381 | QVERIFY(out.contains("] = 30")); | 392 | QVERIFY(out.contains("] = 30")); | ||
382 | } | 393 | } | ||
383 | 394 | | |||
384 | void QtPrintersTest::testQSetString() | 395 | void QtPrintersTest::testQSetString() | ||
385 | { | 396 | { | ||
386 | GdbProcess gdb(QStringLiteral("debuggee_qsetstring")); | 397 | GdbProcess gdb(QStringLiteral("debuggee_qsetstring")); | ||
387 | gdb.execute("break qsetstring.cpp:8"); | 398 | gdb.execute("break qsetstring.cpp:8"); | ||
388 | gdb.execute("run"); | 399 | gdb.execute("run"); | ||
389 | QByteArray out = gdb.execute("print s"); | 400 | QByteArray out = gdb.execute("print s"); | ||
401 | QVERIFY(out.contains("QSet<QString> (size = 2)")); | ||||
390 | QVERIFY(out.contains("] = \"10\"")); | 402 | QVERIFY(out.contains("] = \"10\"")); | ||
391 | QVERIFY(out.contains("] = \"20\"")); | 403 | QVERIFY(out.contains("] = \"20\"")); | ||
392 | gdb.execute("next"); | 404 | gdb.execute("next"); | ||
393 | out = gdb.execute("print s"); | 405 | out = gdb.execute("print s"); | ||
406 | QVERIFY(out.contains("QSet<QString> (size = 3)")); | ||||
394 | QVERIFY(out.contains("] = \"30\"")); | 407 | QVERIFY(out.contains("] = \"30\"")); | ||
395 | } | 408 | } | ||
396 | 409 | | |||
397 | void QtPrintersTest::testQChar() | 410 | void QtPrintersTest::testQChar() | ||
398 | { | 411 | { | ||
399 | GdbProcess gdb(QStringLiteral("debuggee_qchar")); | 412 | GdbProcess gdb(QStringLiteral("debuggee_qchar")); | ||
400 | gdb.execute("break qchar.cpp:5"); | 413 | gdb.execute("break qchar.cpp:5"); | ||
401 | gdb.execute("run"); | 414 | gdb.execute("run"); | ||
▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines |