Thomas Papendieck
2 years ago
commit
35c7f4ef24
3 changed files with 134 additions and 0 deletions
-
31README.md
-
2create_folders.sh
-
101project.yml
@ -0,0 +1,31 @@ |
|||||
|
# Testen in der Programmiersprache C |
||||
|
|
||||
|
## Voraussetzungen |
||||
|
|
||||
|
### Benötigte Software |
||||
|
#### auf ihrem privaten Rechner |
||||
|
- Installieren Sie das Build-Tool `ceedling` (http://www.throwtheswitch.org/ceedling) |
||||
|
- installieren Sie Ruby (https://www.ruby-lang.org/en/downloads/) |
||||
|
|
||||
|
#### privat oder Labor |
||||
|
clonen sie folgende Projekte von Github in einem Ordner parallel zu Ihren C-Projekten. |
||||
|
> Zielstruktur: |
||||
|
> |
||||
|
> */Projekte |
||||
|
> +- CMock |
||||
|
> +- Unity |
||||
|
> +- Projekt1 |
||||
|
> +- Projekt2 |
||||
|
> ... |
||||
|
|
||||
|
- *Unity* (Testing-Framework) https://github.com/ThrowTheSwitch/Unity |
||||
|
- *CMock* https://github.com/ThrowTheSwitch/CMock |
||||
|
|
||||
|
- im Verzeichnis CMock dieses Kommando ausführen: |
||||
|
`bundle install` |
||||
|
|
||||
|
### Übungsprojekt |
||||
|
|
||||
|
- dieses Projekt in ein Verzeichnis parallel zu *Unity* und *CMock* clonen |
||||
|
- in einer *git-bash* diesem Verzeichnis dieses Kommando ausführen: |
||||
|
`sh create_folders.sh` |
@ -0,0 +1,2 @@ |
|||||
|
mkdir -p src/main/c |
||||
|
mkdir -p src/test/c/support |
@ -0,0 +1,101 @@ |
|||||
|
--- |
||||
|
|
||||
|
# Notes: |
||||
|
# Sample project C code is not presently written to produce a release artifact. |
||||
|
# As such, release build options are disabled. |
||||
|
# This sample, therefore, only demonstrates running a collection of unit tests. |
||||
|
|
||||
|
:project: |
||||
|
:use_exceptions: FALSE |
||||
|
:use_test_preprocessor: TRUE |
||||
|
:use_auxiliary_dependencies: TRUE |
||||
|
:build_root: build |
||||
|
# :release_build: TRUE |
||||
|
:test_file_prefix: test_ |
||||
|
:which_ceedling: gem |
||||
|
:ceedling_version: 0.31.1 |
||||
|
:default_tasks: |
||||
|
- test:all |
||||
|
|
||||
|
#:test_build: |
||||
|
# :use_assembly: TRUE |
||||
|
|
||||
|
#:release_build: |
||||
|
# :output: MyApp.out |
||||
|
# :use_assembly: FALSE |
||||
|
|
||||
|
:environment: |
||||
|
|
||||
|
:extension: |
||||
|
:executable: .out |
||||
|
|
||||
|
:paths: |
||||
|
:test: |
||||
|
- +:src/test/c/** |
||||
|
- -:src/test/c/support |
||||
|
:source: |
||||
|
- src/main/c/** |
||||
|
:support: |
||||
|
- src/test/c/support |
||||
|
:libraries: [/usr/include/] |
||||
|
|
||||
|
:defines: |
||||
|
# in order to add common defines: |
||||
|
# 1) remove the trailing [] from the :common: section |
||||
|
# 2) add entries to the :common: section (e.g. :test: has TEST defined) |
||||
|
:common: &common_defines [] |
||||
|
:test: |
||||
|
- *common_defines |
||||
|
- TEST |
||||
|
:test_preprocess: |
||||
|
- *common_defines |
||||
|
- TEST |
||||
|
|
||||
|
:cmock: |
||||
|
:mock_prefix: mock_ |
||||
|
:when_no_prototypes: :warn |
||||
|
:enforce_strict_ordering: TRUE |
||||
|
:plugins: |
||||
|
- :ignore |
||||
|
- :callback |
||||
|
:treat_as: |
||||
|
uint8: HEX8 |
||||
|
uint16: HEX16 |
||||
|
uint32: UINT32 |
||||
|
int8: INT8 |
||||
|
bool: UINT8 |
||||
|
|
||||
|
# Add -gcov to the plugins list to make sure of the gcov plugin |
||||
|
# You will need to have gcov and gcovr both installed to make it work. |
||||
|
# For more information on these options, see docs in plugins/gcov |
||||
|
:gcov: |
||||
|
:reports: |
||||
|
- HtmlDetailed |
||||
|
:gcovr: |
||||
|
:html_medium_threshold: 75 |
||||
|
:html_high_threshold: 90 |
||||
|
|
||||
|
#:tools: |
||||
|
# Ceedling defaults to using gcc for compiling, linking, etc. |
||||
|
# As [:tools] is blank, gcc will be used (so long as it's in your system path) |
||||
|
# See documentation to configure a given toolchain for use |
||||
|
|
||||
|
# LIBRARIES |
||||
|
# These libraries are automatically injected into the build process. Those specified as |
||||
|
# common will be used in all types of builds. Otherwise, libraries can be injected in just |
||||
|
# tests or releases. These options are MERGED with the options in supplemental yaml files. |
||||
|
:libraries: |
||||
|
:placement: :end |
||||
|
:flag: "-l${1}" |
||||
|
:path_flag: "-L ${1}" |
||||
|
:system: [] # for example, you might list 'm' to grab the math library |
||||
|
:test: [] |
||||
|
:release: [] |
||||
|
|
||||
|
:plugins: |
||||
|
:load_paths: |
||||
|
- "#{Ceedling.load_path}" |
||||
|
:enabled: |
||||
|
- stdout_pretty_tests_report |
||||
|
- module_generator |
||||
|
... |
Write
Preview
Loading…
Cancel
Save
Reference in new issue