Skip to content

Using Ceedling 1.0.1, when running multiple tests the mocks are always regenerated #1143

@ajpenner

Description

@ajpenner

We have a project with the following configuration:

:project:
  :use_exceptions: FALSE
  :use_test_preprocessor: :mocks
  :use_deep_dependencies: FALSE
  :build_root: ceedlingBuild/Release/win32
  :test_file_prefix: Test

:plugins:
  :enabled:
    - report_tests_pretty_stdout
    - module_generator
    - report_tests_teamcity_stdout
    - gcov

:cmock:
  :mock_prefix: Mock_
  :when_no_prototypes: :warn
  :enforce_strict_ordering: TRUE
  :callback_include_count: TRUE
  :plugins:
    - :ignore
    - :callback
    - :return_thru_ptr
    - :ignore_arg
    - :expect_any_args
  :treat_as:
    uint8:    HEX8
    uint16:   HEX16
    uint32:   UINT32
    int8:     INT8
    bool:     UINT8
  :c_calling_conventions:
    - __stdcall

# Update the path so gcovr works
:environment:
  - :path:
      - C:/venv/Scripts
      - "#{ENV['PATH']}"

:extension:
  :executable: .out

:gcov:
  :utilities:
    - gcovr
  :gcovr:
    :keep: TRUE
    :exclude:
      - "ceedlingBuild/.*"
      - ".*Mock_.*"
      - ".*ctests/.*"
  :reports:
    - HtmlDetailed
    - Text

:flags:
  :test:
    :compile:
      :*:
        - -std=c11
        - -Wall
        - -Wextra
        - -Werror
        - -Wno-address-of-packed-member
        - -fcommon
        - -Wno-array-parameter

:libraries:
  :test:
    - -lm
  :system:
    - -lm
  :flag: "${1}"

:defines:
  :common: &common_defines
    - DEBUG
    - TEST
    - UNIT_TEST
  :test:
    - *common_defines
    - UNITY_SUPPORT_64
    - UNITY_INCLUDE_DOUBLE
  :test_preprocess:
    - *common_defines

:paths:
  :test:
    - +:../ctests/*
    - -:ceedlingBuild/**
  :include:
    - ../*
    - ../../../common/*
    - ../../testing/unit_support/**
  :source:
    - ../*
    - -:ceedlingBuild/**
    - ../../../common/*

Which is regenerating the mocks every single run. We confirm this by looking at the timestamp of the mock files, but the hash for each file remains identical between builds.

I have tried with and without the build_root exclusion in the source paths only to see the same behaviour. It is not clear to me what I have misconfigured to cause the rebuilds each time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions