You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 3.9KB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. Introduction
  2. ============
  3. OpenViBE SDK is a core software platform for the design, test and use of
  4. Brain-Computer Interfaces. It aims to have a certifiable kernel to be used in
  5. medical devices.
  6. Repository organisation
  7. =======================
  8. The project repository is composed of several software modules.
  9. The repository basically looks like this :
  10. ```
  11. + <openvibe> (API / specifications)
  12. + <kernel> (kernel implementation)
  13. + <toolkit> (development help components)
  14. + <applications> (OpenViBE user applications)
  15. + <plugins> (OpenViBE plugin collections)
  16. + <samples>
  17. + <acquisition>
  18. + ...
  19. + <modules> (abstraction and portability components)
  20. + <ebml>
  21. + <socket>
  22. + ...
  23. +-- cmake-modules (cmake FindXXX and helpers)
  24. + <data>
  25. + <openvibe> (configuration data)
  26. + <resources> (test resources)
  27. + <scripts>
  28. + <unit-test> (code-level unit tests)
  29. + <unit-toolkit> (internal unit testing framework)
  30. + <validation-test> (integration/validation tests)
  31. + <python-toolkit>
  32. ```
  33. Each software module is organized as a UNIX-like tree (empty folders not
  34. included):
  35. ```
  36. + <bin> (any pre-compiled binaries)
  37. + <include> (target folder for API headers)
  38. + <lib> (any pre-compiled libraries)
  39. + <share> (shared file folder for all data)
  40. + <src> (source code of the module)
  41. + <doc> (documentation files for the module)
  42. + <test> (unit test source code for the module)
  43. ```
  44. Copying
  45. =======
  46. Please refer to the COPYING.md file to get details regarding the OpenViBE license.
  47. Install
  48. =======
  49. Please refer to the INSTALL.md file for instructions on how to build the
  50. platform.
  51. Naming rules
  52. ============
  53. WARNING: These are the initial naming rules of the project. For an
  54. updated version, pleaser refer to OpenViBE Coding Rules.
  55. #### CMake
  56. - Openvibe-related variable: OV_MY_VARIABLE
  57. - Test-related variable: OVT_MY_VARIABLE
  58. #### Tools
  59. - CMake project and target name: openvibe-test-*mytool* (e.g. *openvibe-test-accuracy*)
  60. - File name: ovt + OpenViBE naming rules
  61. - Main namespace: OpenViBE::Test
  62. - Macro naming: OVT_MYMACRO
  63. #### Unit Tests
  64. - OpenViBE tested modules: module (e.g. *openvibe-kernel*)
  65. - Unit test directory name: module (e.g. *openvibe-kernel*)
  66. - CMake target name: module-test (e.g. *openvibe-kernel-test*)
  67. - Test file name: uo/ur + test identifier + Test (e.g. *uoKernelContextTest.cpp*)
  68. - u = unit
  69. - o = open (used for public test transferred from open-source OpenViBE)
  70. - r = restricted (used for test implemented within OpenViBE SDK project)
  71. - Test name: identical to file name
  72. #### Validation Tests
  73. - OpenViBE tested module: module (e.g. *openvibe-plugins-classification*)
  74. - Validation test directory: module (e.g. *openvibe-plugins-classification*)
  75. - CMake target name: module-test (e.g *openvibe-plugins-classification-test*)
  76. - Test name: vo/vr + module identifier + test identifier + Test (e.g. *voClassificationLDATest*)
  77. - v = validation
  78. - o/r: see Unit Tests
  79. #### Headers
  80. Use AGPL-3 header for public tests and confidential header for private tests.
  81. Contribution
  82. ============
  83. ### Adding Unit Test
  84. #### Add Tests to Existing Driver
  85. To add tests to a module that is already tested, just add the test file and modify the test driver CMakeLists.txt accordingly.
  86. #### Creating a Test Driver
  87. If you wish to test a new module, you will have to create a new test driver in unit-test/.
  88. Create a new directory with some tests and a CMakeLists.txt (just look at other tests to get insights on tests structure).
  89. Add driver directory to directory to be processed in root directory CMakeLists.txt.
  90. ### Updating CTest Validation Test
  91. #### Enhance Existing Test
  92. Just add data in the test directory and modify test CMakeLists.txt accordingly.
  93. #### Add New Test
  94. There should be no reason to add ctest validation tests. New validation tests use Robot Framework.
  95. @FIXME CERT Rename repository ?
  96. Check "Adding Robot Framework Test" section in certivibe-test repository for more details.