Project

General

Profile

strongSwan Developer Documentation » History » Version 42

Tobias Brunner, 07.07.2014 17:17
TESTS_STRONGSWAN_CONF added

1 25 Martin Willi
h1. strongSwan Developer Documentation
2 25 Martin Willi
3 41 Tobias Brunner
h2. Contributions
4 41 Tobias Brunner
5 41 Tobias Brunner
Before starting development, please read our [[Contributions|contribution requirements]].
6 41 Tobias Brunner
7 25 Martin Willi
h2. Getting the Source Code
8 27 Tobias Brunner
9 25 Martin Willi
The easiest way to get the source code is checking it out from our "Git":http://git-scm.com/ repository:
10 32 Martin Willi
<pre>
11 1 Martin Willi
git clone git://git.strongswan.org/strongswan.git
12 41 Tobias Brunner
</pre>The repository is also mirrored to "GitHub":https://github.com/strongswan/strongswan.
13 1 Martin Willi
14 35 Tobias Brunner
h2. Browsing the Source Code
15 35 Tobias Brunner
16 35 Tobias Brunner
The Git repository can be browsed online using either "Gitweb":http://git.strongswan.org/?p=strongswan.git or the integrated "repository browser":http://wiki.strongswan.org/projects/strongswan/repository (slower).
17 35 Tobias Brunner
18 1 Martin Willi
h2. Source Code Documentation
19 1 Martin Willi
20 40 Tobias Brunner
The newer parts of strongSwan use extractable inline documentation extensively. This documentation is extracted with [[doxygen]] for the latest release
21 25 Martin Willi
and uploaded to "strongswan.org/apidoc":http://www.strongswan.org/apidoc.
22 31 Martin Willi
23 1 Martin Willi
h2. Code style
24 1 Martin Willi
25 41 Tobias Brunner
For our code we heavily use an [[ObjectOrientedC|object oriented programming style]] for C. Also have a look to our basic [[ProgrammingStyle|programming style]] guidelines.
26 1 Martin Willi
27 41 Tobias Brunner
h2. Quality Assurance
28 1 Martin Willi
29 41 Tobias Brunner
h3. Unit Tests
30 1 Martin Willi
31 41 Tobias Brunner
Our libraries are tested with an increasing number of unit tests. To run them use @make check@.
32 1 Martin Willi
33 41 Tobias Brunner
The following environment variables change the behavior of the test runner:
34 41 Tobias Brunner
35 41 Tobias Brunner
|TESTS_REDUCED_KEYLENGTHS|If this is set test cases that generate keys will do so only for reduced key lengths to avoid blocking on hosts with low entropy.|
36 42 Tobias Brunner
|TESTS_STRONGSWAN_CONF|Path to a custom strongswan.conf file used for the tests. Since version:5.2.0.|
37 41 Tobias Brunner
|TESTS_SUITES|A comma-separated list of test suites to run (all suites are run if this is not specified).|
38 41 Tobias Brunner
|TESTS_VERBOSITY|The log level used when running the tests (-1 to 4, see [[LoggerConfiguration]]), defaults to -1.|
39 41 Tobias Brunner
|LEAK_DETECTIVE_DISABLE|If our custom memory allocator is enabled with _--enable-leak-detective_ it can be disabled temporarily by setting this variable in order to speed up running the tests.|
40 41 Tobias Brunner
41 41 Tobias Brunner
Coverage reports can be generated with @make coverage@ (requires [[Autoconf|configuring]] with _--enable-coverage_, which is not recommended for production builds as it disables all optimizations).
42 41 Tobias Brunner
43 41 Tobias Brunner
The unit tests also run automatically on "Travis CI":https://travis-ci.org/strongswan/strongswan: !https://travis-ci.org/strongswan/strongswan.svg?branch=master!:https://travis-ci.org/strongswan/strongswan
44 41 Tobias Brunner
45 41 Tobias Brunner
h3. Testing Environment
46 41 Tobias Brunner
47 39 Tobias Brunner
Our [[TestingEnvironment|integration and regression testing environment]] helps us ensure the quality of future releases.
48 41 Tobias Brunner
49 41 Tobias Brunner
The "results for the latest release":http://strongswan.org/testresults.html are published online.
50 39 Tobias Brunner
51 36 Martin Willi
h2. Components
52 1 Martin Willi
53 38 Tobias Brunner
The _src_ directory in the strongSwan distribution contains a set of components:
54 26 Martin Willi
55 38 Tobias Brunner
|[[charon]]|The IKE keying daemon.|
56 33 Andreas Steffen
|[[libstrongswan]]|The strongSwan library with basic functions used by the daemons and utilities |
57 33 Andreas Steffen
|[[libcharon]]|Contains most of the code and the plugins of the charon daemon |
58 26 Martin Willi
|[[libhydra]]|Contains daemon-specific code and plugins used by both the charon und pluto daemons |
59 33 Andreas Steffen
|[[DynamicUmlMeshModeler|dumm]]|An new and experimental UML testing framework in development.|
60 28 Martin Willi
|[[IpsecCommand|ipsec]]|The ipsec command line tool wrapping commands and other tools.|
61 1 Martin Willi
|[[libfast]]|A lightweight framework to build native web applications using ClearSilver and FastCGI.|
62 1 Martin Willi
|[[Manager|manager]]|A graphical management application for charon based on libfast.|
63 26 Martin Willi
|[[OpenAc|openac]]|Utility to build attribute certificates on the command line.|
64 1 Martin Willi
|[[IpsecPKI|pki]]|Public Key Infrastructure utility.|
65 1 Martin Willi
|[[ScepClient|scepclient]]|Utility to enroll certificates using the SCEP protocol.|
66 38 Tobias Brunner
|[[IpsecStarter|starter]]|Reads _ipsec.conf_ and controls the keying daemon.|
67 1 Martin Willi
|[[IpsecStroke|stroke]]|Command line utility to control charon via the stroke protocol.|
68 38 Tobias Brunner
69 38 Tobias Brunner
h2. Removed since [[5.0.0]]
70 38 Tobias Brunner
71 38 Tobias Brunner
|[[pluto]]|The old IKEv1 keying daemon.|
72 38 Tobias Brunner
|libfreeswan|The deprecated library used by pluto.|
73 26 Martin Willi
|[[IpsecWhack|whack]]|Command line utility to control pluto via the whack protocol.|