project.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. ---
  2. # Notes:
  3. # Sample project C code is not presently written to produce a release artifact.
  4. # As such, release build options are disabled.
  5. # This sample, therefore, only demonstrates running a collection of unit tests.
  6. :project:
  7. :use_exceptions: TRUE
  8. :use_mocks: TRUE
  9. :use_test_preprocessor: TRUE
  10. :use_auxiliary_dependencies: TRUE
  11. :use_deep_dependencies: TRUE
  12. :build_root: _build
  13. # :release_build: TRUE
  14. :test_file_prefix: test_
  15. :which_ceedling: vendor/ceedling
  16. :ceedling_version: 0.31.1
  17. :default_tasks:
  18. - test:all
  19. #:test_build:
  20. # :use_assembly: TRUE
  21. #:release_build:
  22. # :output: MyApp.out
  23. # :use_assembly: FALSE
  24. :environment:
  25. :extension:
  26. :executable: .out
  27. :paths:
  28. :test:
  29. - +:test/**
  30. - -:test/support
  31. :source:
  32. - ../../src/**
  33. :support:
  34. - test/support
  35. :defines:
  36. # in order to add common defines:
  37. # 1) remove the trailing [] from the :common: section
  38. # 2) add entries to the :common: section (e.g. :test: has TEST defined)
  39. :common: &common_defines
  40. - _UNITY_TEST_
  41. :test:
  42. - *common_defines
  43. :test_preprocess:
  44. - *common_defines
  45. :cmock:
  46. :mock_prefix: mock_
  47. :when_no_prototypes: :warn
  48. :enforce_strict_ordering: TRUE
  49. :plugins:
  50. - :ignore
  51. - :ignore_arg
  52. - :return_thru_ptr
  53. - :callback
  54. - :array
  55. :treat_as:
  56. uint8: HEX8
  57. uint16: HEX16
  58. uint32: UINT32
  59. int8: INT8
  60. bool: UINT8
  61. # Add -gcov to the plugins list to make sure of the gcov plugin
  62. # You will need to have gcov and gcovr both installed to make it work.
  63. # For more information on these options, see docs in plugins/gcov
  64. :gcov:
  65. :html_report: TRUE
  66. :html_report_type: detailed
  67. :html_medium_threshold: 75
  68. :html_high_threshold: 90
  69. :xml_report: FALSE
  70. :tools:
  71. :test_compiler:
  72. :executable: clang
  73. :name: 'clang compiler'
  74. :arguments:
  75. - -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE #expands to -I search paths
  76. - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR #expands to -I search paths
  77. - -D$: COLLECTION_DEFINES_TEST_AND_VENDOR #expands to all -D defined symbols
  78. - -fsanitize=address
  79. - -c ${1} #source code input file (Ruby method call param list sub)
  80. - -o ${2} #object file output (Ruby method call param list sub)
  81. :test_linker:
  82. :executable: clang
  83. :name: 'clang linker'
  84. :arguments:
  85. - -fsanitize=address
  86. - ${1} #list of object files to link (Ruby method call param list sub)
  87. - -o ${2} #executable file output (Ruby method call param list sub)
  88. # LIBRARIES
  89. # These libraries are automatically injected into the build process. Those specified as
  90. # common will be used in all types of builds. Otherwise, libraries can be injected in just
  91. # tests or releases. These options are MERGED with the options in supplemental yaml files.
  92. :libraries:
  93. :placement: :end
  94. :flag: "${1}" # or "-L ${1}" for example
  95. :common: &common_libraries []
  96. :test:
  97. - *common_libraries
  98. :release:
  99. - *common_libraries
  100. :plugins:
  101. :load_paths:
  102. - vendor/ceedling/plugins
  103. :enabled:
  104. - stdout_pretty_tests_report
  105. - module_generator
  106. - raw_output_report
  107. - colour_report
  108. ...