Skip to content

Latest commit

 

History

History
294 lines (235 loc) · 8.5 KB

hierarchies.rst

File metadata and controls

294 lines (235 loc) · 8.5 KB

Testing Hierarchies Module

testing.hierarchies

Contents

Representing Hierarchies

digraph G {

rankdir="LR"; ranksep=0.88; edge [dir=none];

subgraph cluster_exhale {

style=filled; color="#a2ddf9"; label="Exhale Type"; fontsize=22; node [style=filled, shape=rectangle, fontname="Courier"]; e_fake_root_1 [style=none, shape=none, label=""]; exhale_root [label="exhale.graph.ExhaleRoot"]; e_fake_root_2 [style=none, shape=none, label=""];

}

subgraph cluster_testing {

style=filled; color="#f7f389"; label="Testing Types"; fontsize=22; node [ style=filled, shape=rectangle, fontname="Courier", width=2, fixedsize=true ];

fake_root_1 [style=none, shape=none, label=""]; hierarchy_root [label="hierarchies.root"]; fake_root_2 [style=none, shape=none, label=""]; file_hierarchy [label="file_hierarchy"]; fake_hierarchy [style=none, shape=none, label=""]; class_hierarchy [label="class_hierarchy"];

hierarchy_root:e -> file_hierarchy:w; hierarchy_root -> fake_hierarchy [style=none, color=none]; hierarchy_root:e -> class_hierarchy:w;

{rank=same; fake_root_1; hierarchy_root; fake_root_2} {rank=same; class_hierarchy; fake_hierarchy; file_hierarchy}

}

exhale_root -> hierarchy_root [style=dashed, label="represents"];

}

During normal execution, exhale.graph.ExhaleRoot essentially represents index.xml coming from Doxygen. The index.xml enumerates far more than what the testing.hierarchies.root class represents, the primary goal for the class and file hierarchies is to validate generated (from Exhale) and expected (from the test) output with respect to

Name Scope Resolutions (testing.hierarchies.class_hierarchy)

Particularly, parent-child relationships constructed in exhale.graph.ExhaleRoot. See hierarchies_class_hierarchies.

Parsed Directory Structure (testing.hierarchies.file_hierarchy)

Directory and file structure, and which file defines which documented construct. See hierarchies_file_hierarchies.

When creating a hierarchy to test, the author creates a json-like dictionary encoding the expected relationships. Generally, every helper class maps to a nested dictionary value, with some exceptions:

digraph G {

rankdir="LR"; ranksep=0.88; edge [dir=none];

subgraph cluster_exhale {

style=filled; color="#a2ddf9"; label="Exhale Type"; fontsize=22; node [style=filled, shape=rectangle, fontname="Courier"]; subgraph cluster_hacksize { label=" ";// soooo hacky... fontsize=18;

fake_node_1 [style=none, shape=none, label=""]; fake_node_2 [style=none, shape=none, label=""]; fake_node_3 [style=none, shape=none, label=""]; fake_node_4 [style=none, shape=none, label=""]; exhale_node [label="exhale.graph.ExhaleNode"]; fake_node_5 [style=none, shape=none, label=""]; fake_node_6 [style=none, shape=none, label=""]; fake_node_7 [style=none, shape=none, label=""]; fake_node_8 [style=none, shape=none, label=""]; fake_node_9 [style=none, shape=none, label=""]; }

}

subgraph cluster_testing {

style=filled; color="#f7f389"; label="Testing Types"; fontsize=22; node [ style=filled, shape=rectangle, fontname="Courier", width=2, fixedsize=true ];

hierarchy_node [label="hierarchies.node"];

subgraph cluster_keys {

style=filled; color=cadetblue; label="Key Type"; fontsize=18;

clike; define; directory; enum; file; function; namespace; typedef; union; variable;

}

subgraph cluster_values {

style=filled; color=mediumaquamarine; label="Value Type"; fontsize=18;

v_clike [label="dict"]; v_define [label="????"]; v_directory [label="dict"]; v_enum [label="????"]; v_file [label="dict"]; v_function [label="parameters"]; v_namespace [label="dict"]; v_typedef [label="????"]; v_union [label="dict"]; v_variable [label="????"];

}

hierarchy_node -> clike:w; hierarchy_node -> define:w; hierarchy_node -> directory:w; hierarchy_node -> enum:w; hierarchy_node -> file:w; hierarchy_node -> function:w; hierarchy_node -> namespace:w; hierarchy_node -> typedef:w; hierarchy_node -> union:w; hierarchy_node -> variable:w;

clike -> v_clike [dir=forward]; define -> v_define [dir=forward]; directory -> v_directory [dir=forward]; enum -> v_enum [dir=forward]; file -> v_file [dir=forward]; function -> v_function [dir=forward]; namespace -> v_namespace [dir=forward]; typedef -> v_typedef [dir=forward]; union -> v_union [dir=forward]; variable -> v_variable [dir=forward];

}

exhale_node -> hierarchy_node [dir=none]; fake_node_1 -> clike [style=none, color=none];

}

???? values indicate items not currently implemented or used in the testing framework.

testing.hierarchies.root

Class Hierarchies

testing.hierarchies.class_hierarchy

testing.hierarchies.compare_class_hierarchy

File Hierarchies

testing.hierarchies.file_hierarchy

testing.hierarchies.compare_file_hierarchy

Utility Classes

testing.hierarchies.node

Classes and Structs

testing.hierarchies.clike

Directories

testing.hierarchies.directory

Enums

testing.hierarchies.enum

Files

testing.hierarchies.file

Functions

testing.hierarchies.function

testing.hierarchies.parameters

Namespaces

testing.hierarchies.namespace

Unions

testing.hierarchies.union