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

Method readHumanReadableStringRef

test/coord_xml_t.cpp:571–748  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

569}
570
571void CoordXmlTest::readHumanReadableStringRef()
572{
573 namespace literal = XmlStreamLiteral;
574
575 QFETCH(int, num_coords);
576 MapCoordVector coords(num_coords, proto_coord);
577
578 buffer.buffer().truncate(0);
579 QBuffer header;
580 {
581 QXmlStreamWriter xml(&header);
582
583 header.open(QBuffer::ReadWrite);
584 xml.setAutoFormatting(false);
585 xml.writeStartDocument();
586 xml.writeStartElement(QString::fromLatin1("root"));
587 xml.writeCharacters(QString{}); // flush root start element
588
589 buffer.open(QBuffer::ReadWrite);
590 xml.setDevice(&buffer);
591 xml.writeStartElement(QString::fromLatin1("coords"));
592 // Using the more efficient string implementation.
593 writeHumanReadableString_implementation(coords, xml);
594 xml.writeEndElement();
595
596 xml.setDevice(nullptr);
597
598 buffer.close();
599 header.close();
600 }
601
602 header.open(QBuffer::ReadOnly);
603 buffer.open(QBuffer::ReadOnly);
604 QXmlStreamReader xml;
605 xml.addData(header.buffer());
606 xml.readNextStartElement();
607 QCOMPARE(xml.name().toString(), QString::fromLatin1("root"));
608
609 bool failed = false;
610 QBENCHMARK
611 {
612 // benchmark iteration overhead
613 coords.clear();
614 xml.addData(buffer.data());
615
616 xml.readNextStartElement();
617 if (xml.name() != QLatin1String("coords"))
618 {
619 failed = true;
620 break;
621 }
622
623 for( xml.readNext();
624 xml.tokenType() != QXmlStreamReader::EndElement;
625 xml.readNext() )
626 {
627 if (xml.error())
628 {

Callers

nothing calls this directly

Calls 13

QLatin1StringClass · 0.85
openMethod · 0.80
setDeviceMethod · 0.80
nameMethod · 0.80
setFlagsMethod · 0.80
backMethod · 0.80
toStringMethod · 0.45
clearMethod · 0.45
dataMethod · 0.45
errorMethod · 0.45
errorStringMethod · 0.45
textMethod · 0.45

Tested by

no test coverage detected