Skip to content

Commit 8d9e8d4

Browse files
committed
doc: add internal architecture section
Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
1 parent 0c7c518 commit 8d9e8d4

3 files changed

Lines changed: 107 additions & 0 deletions

File tree

doc/conf.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
"sphinx.ext.autodoc",
2222
"sphinx.ext.autosummary",
2323
"sphinx.ext.viewcode",
24+
"sphinx.ext.graphviz",
25+
"sphinx.ext.inheritance_diagram",
2426
"myst_parser",
2527
]
2628

doc/index.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
:caption: For maintainers
2525

2626
maintainers/release
27+
maintainers/architecture
2728
kirk/modules
2829

2930
For users
@@ -56,5 +57,8 @@ For maintainers
5657
:doc:`maintainers/release`
5758
How to create a kirk release
5859

60+
:doc:`maintainers/architecture`
61+
Internal kirk architecture
62+
5963
:doc:`kirk/modules`
6064
Internal kirk API

doc/maintainers/architecture.rst

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
.. SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
Internal architecture
4+
=====================
5+
6+
.. warning::
7+
8+
The internal architecture might change over time.
9+
10+
Overview
11+
--------
12+
13+
.. graphviz::
14+
15+
digraph {
16+
newrank=true;
17+
18+
subgraph cluster_0 {
19+
label = "Scheduler";
20+
labeljust = "l";
21+
22+
SuiteScheduler;
23+
TestScheduler;
24+
25+
SuiteScheduler -> TestScheduler;
26+
}
27+
28+
subgraph cluster_1 {
29+
label = "Communication";
30+
labeljust = "l";
31+
32+
ComChannel;
33+
ShellComChannel;
34+
LTXComChannel;
35+
QemuComChannel;
36+
SSHComChannel;
37+
38+
ComChannel -> ShellComChannel;
39+
ComChannel -> LTXComChannel;
40+
ComChannel -> QemuComChannel;
41+
ComChannel -> SSHComChannel;
42+
}
43+
44+
subgraph cluster_2 {
45+
label = "Framework";
46+
labeljust = "r";
47+
48+
LTPFramework;
49+
}
50+
51+
subgraph cluster_3 {
52+
label = "SUT";
53+
labeljust = "l";
54+
55+
GenericSUT;
56+
}
57+
58+
{
59+
rank=same;
60+
SuiteScheduler;
61+
LTPFramework;
62+
}
63+
64+
Session -> SuiteScheduler;
65+
TestScheduler -> GenericSUT;
66+
GenericSUT -> ComChannel;
67+
68+
Session -> LTPFramework;
69+
TestScheduler -> LTPFramework;
70+
}
71+
72+
|
73+
|
74+
75+
Plugins system
76+
--------------
77+
78+
.. inheritance-diagram::
79+
libkirk.com.ComChannel
80+
libkirk.plugin.Plugin
81+
libkirk.sut.SUT
82+
libkirk.sut_base.GenericSUT
83+
libkirk.channels.shell.ShellComChannel
84+
libkirk.channels.ltx_chan.LTXComChannel
85+
libkirk.channels.qemu.QemuComChannel
86+
libkirk.channels.ssh.SSHComChannel
87+
:include-subclasses:
88+
:parts: 1
89+
90+
|
91+
|
92+
93+
Exceptions
94+
----------
95+
96+
.. inheritance-diagram::
97+
libkirk.errors
98+
:parts: 1
99+
100+
|
101+
|

0 commit comments

Comments
 (0)