Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
--TEST--
2
Unit test for call graph with labeled clusters
3
--FILE--
4
<?php
5
 
6
/**
7
 * Test 17: "Call graph with labeled clusters"
8
 *
9
 * Graph definition taken from GraphViz documentation
10
 *
11
 * @category Image
12
 * @package  Image_GraphViz
13
 * @author   Philippe Jausions <jausions@php.net>
14
 */
15
require_once 'Image/GraphViz.php';
16
 
17
$graph = new Image_GraphViz(true, array('size' => 8.6, 'ratio' => 'fill'),
18
                            'G', false);
19
 
20
$graph->addCluster('cluster_error.h', 'error.h');
21
$graph->addNode('interp_err', null, 'cluster_error.h');
22
 
23
$graph->addCluster('cluster_sfio.h', 'sfio.h');
24
$graph->addNode('sfprintf', null, 'cluster_sfio.h');
25
 
26
$graph->addCluster('cluster_ciafan.c', 'ciafan.c');
27
$graph->addNode('ciafan', null, 'cluster_ciafan.c');
28
$graph->addNode('computefan', null, 'cluster_ciafan.c');
29
$graph->addNode('increment', null, 'cluster_ciafan.c');
30
 
31
$graph->addCluster('cluster_util.c', 'util.c');
32
$graph->addNode('stringdup', null, 'cluster_util.c');
33
$graph->addNode('fatal', null, 'cluster_util.c');
34
$graph->addNode('debug', null, 'cluster_util.c');
35
 
36
$graph->addCluster('cluster_query.h', 'query.h');
37
$graph->addNode('ref', null, 'cluster_query.h');
38
$graph->addNode('def', null, 'cluster_query.h');
39
 
40
$graph->addCluster('cluster_field.h', '');
41
$graph->addNode('get_sym_fields', null, 'cluster_field.h');
42
 
43
$graph->addCluster('cluster_stdio.h', 'stdio.h');
44
$graph->addNode('stdprintf', null, 'cluster_stdio.h');
45
$graph->addNode('stdsprintf', null, 'cluster_stdio.h');
46
 
47
$graph->addCluster('cluster_<libc.a>', '');
48
$graph->addNode('getopt', null, 'cluster_<libc.a>');
49
 
50
$graph->addCluster('cluster_stdlib.h', 'stdlib.h');
51
$graph->addNode('exit', null, 'cluster_stdlib.h');
52
$graph->addNode('malloc', null, 'cluster_stdlib.h');
53
$graph->addNode('free', null, 'cluster_stdlib.h');
54
$graph->addNode('realloc', null, 'cluster_stdlib.h');
55
 
56
$graph->addCluster('cluster_main.c', '');
57
$graph->addNode('main', null, 'cluster_main.c');
58
 
59
$graph->addCluster('cluster_index.h', '');
60
$graph->addNode('init_index', null, 'cluster_index.h');
61
 
62
$graph->addCluster('cluster_string.h', 'string.h');
63
$graph->addNode('strcpy', null, 'cluster_string.h');
64
$graph->addNode('strlen', null, 'cluster_string.h');
65
$graph->addNode('strcmp', null, 'cluster_string.h');
66
$graph->addNode('strcat', null, 'cluster_string.h');
67
 
68
$graph->addEdge(array('ciafan' => 'computefan'));
69
$graph->addEdge(array('fan' => 'increment'));
70
$graph->addEdge(array('computefan' => 'fan'));
71
$graph->addEdge(array('stringdup' => 'fatal'));
72
$graph->addEdge(array('main' => 'exit'));
73
$graph->addEdge(array('main' => 'interp_err'));
74
$graph->addEdge(array('main' => 'ciafan'));
75
$graph->addEdge(array('main' => 'fatal'));
76
$graph->addEdge(array('main' => 'malloc'));
77
$graph->addEdge(array('main' => 'strcpy'));
78
$graph->addEdge(array('main' => 'getopt'));
79
$graph->addEdge(array('main' => 'init_index'));
80
$graph->addEdge(array('main' => 'strlen'));
81
$graph->addEdge(array('fan' => 'fatal'));
82
$graph->addEdge(array('fan' => 'ref'));
83
$graph->addEdge(array('fan' => 'interp_err'));
84
$graph->addEdge(array('ciafan' => 'def'));
85
$graph->addEdge(array('fan' => 'free'));
86
$graph->addEdge(array('computefan' => 'stdprintf'));
87
$graph->addEdge(array('computefan' => 'get_sym_fields'));
88
$graph->addEdge(array('fan' => 'exit'));
89
$graph->addEdge(array('fan' => 'malloc'));
90
$graph->addEdge(array('increment' => 'strcmp'));
91
$graph->addEdge(array('computefan' => 'malloc'));
92
$graph->addEdge(array('fan' => 'stdsprintf'));
93
$graph->addEdge(array('fan' => 'strlen'));
94
$graph->addEdge(array('computefan' => 'strcmp'));
95
$graph->addEdge(array('computefan' => 'realloc'));
96
$graph->addEdge(array('computefan' => 'strlen'));
97
$graph->addEdge(array('debug' => 'sfprintf'));
98
$graph->addEdge(array('debug' => 'strcat'));
99
$graph->addEdge(array('stringdup' => 'malloc'));
100
$graph->addEdge(array('fatal' => 'sfprintf'));
101
$graph->addEdge(array('stringdup' => 'strcpy'));
102
$graph->addEdge(array('stringdup' => 'strlen'));
103
$graph->addEdge(array('fatal' => 'exit'));
104
 
105
echo $graph->parse();
106
 
107
?>
108
--EXPECT--
109
digraph G {
110
    size=8.6;
111
    ratio=fill;
112
    subgraph "cluster_error.h" {
113
        graph [ label="error.h" ];
114
        interp_err;
115
    }
116
    subgraph "cluster_sfio.h" {
117
        graph [ label="sfio.h" ];
118
        sfprintf;
119
    }
120
    subgraph "cluster_ciafan.c" {
121
        graph [ label="ciafan.c" ];
122
        ciafan;
123
        computefan;
124
        increment;
125
    }
126
    subgraph "cluster_util.c" {
127
        graph [ label="util.c" ];
128
        stringdup;
129
        fatal;
130
        debug;
131
    }
132
    subgraph "cluster_query.h" {
133
        graph [ label="query.h" ];
134
        ref;
135
        def;
136
    }
137
    subgraph "cluster_field.h" {
138
        get_sym_fields;
139
    }
140
    subgraph "cluster_stdio.h" {
141
        graph [ label="stdio.h" ];
142
        stdprintf;
143
        stdsprintf;
144
    }
145
    subgraph "cluster_<libc.a>" {
146
        getopt;
147
    }
148
    subgraph "cluster_stdlib.h" {
149
        graph [ label="stdlib.h" ];
150
        exit;
151
        malloc;
152
        free;
153
        realloc;
154
    }
155
    subgraph "cluster_main.c" {
156
        main;
157
    }
158
    subgraph "cluster_index.h" {
159
        init_index;
160
    }
161
    subgraph "cluster_string.h" {
162
        graph [ label="string.h" ];
163
        strcpy;
164
        strlen;
165
        strcmp;
166
        strcat;
167
    }
168
    ciafan -> computefan;
169
    ciafan -> def;
170
    fan -> increment;
171
    fan -> fatal;
172
    fan -> ref;
173
    fan -> interp_err;
174
    fan -> free;
175
    fan -> exit;
176
    fan -> malloc;
177
    fan -> stdsprintf;
178
    fan -> strlen;
179
    computefan -> fan;
180
    computefan -> stdprintf;
181
    computefan -> get_sym_fields;
182
    computefan -> malloc;
183
    computefan -> strcmp;
184
    computefan -> realloc;
185
    computefan -> strlen;
186
    stringdup -> fatal;
187
    stringdup -> malloc;
188
    stringdup -> strcpy;
189
    stringdup -> strlen;
190
    main -> exit;
191
    main -> interp_err;
192
    main -> ciafan;
193
    main -> fatal;
194
    main -> malloc;
195
    main -> strcpy;
196
    main -> getopt;
197
    main -> init_index;
198
    main -> strlen;
199
    increment -> strcmp;
200
    debug -> sfprintf;
201
    debug -> strcat;
202
    fatal -> sfprintf;
203
    fatal -> exit;
204
}