Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-105384

Make a generator for the Node base class

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • P2: Important
    • None
    • None
    • Build tools: qdoc
    • None
    • Da Vinci 60, DaVinci 62, DaVinci 63, DaVinci 64, DaVinci 65, DaVinci 66, DaVinci 67, DaVinci 68, DaVinci 69

    Description

      QDoc uses an internal inheritance based family of classes, with base class Node, as its internal representation for most elements that will be represented in the output documentation of a QDoc execution.

       

      This representation is used during almost all of the phases of a QDoc execution and is completely entrenched with many of the other systems that QDoc uses, such as the QDocDatabase or ClangCodeParser.

       

      Due to the ubiquity and importance of this internal representation it is considered impossible to directly move away from it without risking many breakages or a possibly unmanageable amount of work.

       

      Instead, it is expected to be simpler to slowly modify the systems that make use of Nodes to be extracted to use a different model with the temporary introduction of some glue code that projects the Node model to the new model..

      Due to their complex memory model, the quite heavy public and non-public interface and the amount of coupled data they contain, Nodes are not currently tested.

       

      While testing Nodes may be generally too complex at the current moment, we expect that new systems that are introduced should be tested while they are built, so as to simplify moving forward with the codebase.

       

      While we expect to design system with models that keep testing in mind so that they can be tested as a unit, we need at least a test for the temporary glue code that they might require to interface with nodes.

       

      QDoc currently tries to abide to a neutered property-testing based approach to testing, as for the initial testing infrastructure that was introduced in QTBUG-100381.

      To help with that, it uses Catch2 as a testing framework, for its decent support of data generation.

       

      Catch2 uses the concept of "Data Generators" to support data-driven tests, of which QDoc makes an extensive use.

      To support further work on the QDoc codebase, a Data Generator for Node and, later, its subclasses, that is able to at least partially represent valid states for the model, should be produced.

      It is expected that a complete representation of the valid states of the Node model might be unfeasible.

      Some simplification to the data stored into Nodes can be considered to be performed as part of this task to simplify its execution.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              diseraluca Luca Di Sera
              diseraluca Luca Di Sera
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes