strongSwan Developer Documentation » History » Version 41
Tobias Brunner, 21.03.2014 17:33
Notes about unit tests 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 | 41 | Tobias Brunner | |TESTS_SUITES|A comma-separated list of test suites to run (all suites are run if this is not specified).| |
37 | 41 | Tobias Brunner | |TESTS_VERBOSITY|The log level used when running the tests (-1 to 4, see [[LoggerConfiguration]]), defaults to -1.| |
38 | 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.| |
39 | 41 | Tobias Brunner | |
40 | 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). |
41 | 41 | Tobias Brunner | |
42 | 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 |
43 | 41 | Tobias Brunner | |
44 | 41 | Tobias Brunner | h3. Testing Environment |
45 | 41 | Tobias Brunner | |
46 | 39 | Tobias Brunner | Our [[TestingEnvironment|integration and regression testing environment]] helps us ensure the quality of future releases. |
47 | 41 | Tobias Brunner | |
48 | 41 | Tobias Brunner | The "results for the latest release":http://strongswan.org/testresults.html are published online. |
49 | 39 | Tobias Brunner | |
50 | 36 | Martin Willi | h2. Components |
51 | 1 | Martin Willi | |
52 | 38 | Tobias Brunner | The _src_ directory in the strongSwan distribution contains a set of components: |
53 | 26 | Martin Willi | |
54 | 38 | Tobias Brunner | |[[charon]]|The IKE keying daemon.| |
55 | 33 | Andreas Steffen | |[[libstrongswan]]|The strongSwan library with basic functions used by the daemons and utilities | |
56 | 33 | Andreas Steffen | |[[libcharon]]|Contains most of the code and the plugins of the charon daemon | |
57 | 26 | Martin Willi | |[[libhydra]]|Contains daemon-specific code and plugins used by both the charon und pluto daemons | |
58 | 33 | Andreas Steffen | |[[DynamicUmlMeshModeler|dumm]]|An new and experimental UML testing framework in development.| |
59 | 28 | Martin Willi | |[[IpsecCommand|ipsec]]|The ipsec command line tool wrapping commands and other tools.| |
60 | 1 | Martin Willi | |[[libfast]]|A lightweight framework to build native web applications using ClearSilver and FastCGI.| |
61 | 1 | Martin Willi | |[[Manager|manager]]|A graphical management application for charon based on libfast.| |
62 | 26 | Martin Willi | |[[OpenAc|openac]]|Utility to build attribute certificates on the command line.| |
63 | 1 | Martin Willi | |[[IpsecPKI|pki]]|Public Key Infrastructure utility.| |
64 | 1 | Martin Willi | |[[ScepClient|scepclient]]|Utility to enroll certificates using the SCEP protocol.| |
65 | 38 | Tobias Brunner | |[[IpsecStarter|starter]]|Reads _ipsec.conf_ and controls the keying daemon.| |
66 | 1 | Martin Willi | |[[IpsecStroke|stroke]]|Command line utility to control charon via the stroke protocol.| |
67 | 38 | Tobias Brunner | |
68 | 38 | Tobias Brunner | h2. Removed since [[5.0.0]] |
69 | 38 | Tobias Brunner | |
70 | 38 | Tobias Brunner | |[[pluto]]|The old IKEv1 keying daemon.| |
71 | 38 | Tobias Brunner | |libfreeswan|The deprecated library used by pluto.| |
72 | 26 | Martin Willi | |[[IpsecWhack|whack]]|Command line utility to control pluto via the whack protocol.| |