MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / readHumanReadableStream

Method readHumanReadableStream

test/coord_xml_t.cpp:458–555  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

456}
457
458void CoordXmlTest::readHumanReadableStream()
459{
460 namespace literal = XmlStreamLiteral;
461
462 QFETCH(int, num_coords);
463 MapCoordVector coords(num_coords, proto_coord);
464
465 buffer.buffer().truncate(0);
466 QBuffer header;
467 {
468 QXmlStreamWriter xml(&header);
469
470 header.open(QBuffer::ReadWrite);
471 xml.setAutoFormatting(false);
472 xml.writeStartDocument();
473 xml.writeStartElement(QString::fromLatin1("root"));
474 xml.writeCharacters(QString{}); // flush root start element
475
476 buffer.open(QBuffer::ReadWrite);
477 xml.setDevice(&buffer);
478 xml.writeStartElement(QString::fromLatin1("coords"));
479 // Using the more efficient string implementation.
480 writeHumanReadableString_implementation(coords, xml);
481 xml.writeEndElement();
482
483 xml.setDevice(nullptr);
484
485 buffer.close();
486 header.close();
487 }
488
489 header.open(QBuffer::ReadOnly);
490 buffer.open(QBuffer::ReadOnly);
491 QXmlStreamReader xml;
492 xml.addData(header.buffer());
493 xml.readNextStartElement();
494 QCOMPARE(xml.name().toString(), QString::fromLatin1("root"));
495
496 bool failed = false;
497 QBENCHMARK
498 {
499 // benchmark iteration overhead
500 coords.clear();
501 xml.addData(buffer.data());
502
503 xml.readNextStartElement();
504 if (xml.name() != QLatin1String("coords"))
505 {
506 failed = true;
507 break;
508 }
509
510 for( xml.readNext();
511 xml.tokenType() != QXmlStreamReader::EndElement;
512 xml.readNext() )
513 {
514 if (xml.error())
515 {

Callers

nothing calls this directly

Calls 12

QLatin1StringClass · 0.85
openMethod · 0.80
setDeviceMethod · 0.80
nameMethod · 0.80
toStringMethod · 0.45
clearMethod · 0.45
dataMethod · 0.45
errorMethod · 0.45
errorStringMethod · 0.45
textMethod · 0.45
lengthMethod · 0.45
atEndMethod · 0.45

Tested by

no test coverage detected