Skip to content

Restore delta builds to Ceedling 1.1.0+ #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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions