Skip to content

Commit

Permalink
Add part of our new "standard" documentation for status! woo!
Browse files Browse the repository at this point in the history
  • Loading branch information
mvandervoord committed Nov 23, 2023
1 parent c2e3c74 commit 95d29ee
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 3 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ useful and usable mock interfaces for unit testing. Give it a try!
If you don't care to manage unit testing builds yourself, consider checking out Ceedling,
a test-centered build manager for unit testing C code.

- [Known Issues](docs/CMockKnownIssues.md)
- [Change Log](docs/CMockChangeLog.md)

Getting Started
================

Expand Down
166 changes: 166 additions & 0 deletions docs/CMockChangeLog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
# CMock - Change Log

## A Note

This document captures significant features and fixes to the CMock project core source files
and scripts. More detail can be found in the history on Github.

This project is now tracking changes in more detail. Previous releases get less detailed as
we move back in histroy.

Prior to 2012, the project was hosted on SourceForge.net
Prior to 2008, the project was an internal project and not released to the public.

## Log

### CMock 2.6.0 ()

New Features:

- Reintroduced option to run CMock without setjmp (slightly limited)
- Significant speed improvements to parsing

Significant Bugfixes:

- Make return-thru-pointer calls const
- Fix handling of static inlines
- Fix some situations where parenthetical statements were misinterpreted as functions
- Fix error in skeleton creation
- Improvements towards making generated code fully C-compliant and warning free

Other:

- Improve error message wording where possible
- Improve documentation
- Updated to Ruby 3.0 - 3.3
- Reintroduce matrix testing across multiple Ruby versions

### CMock 2.5.3 (January 2021)

New Features:

- Support mocks in sub-folders
- Improved handling of static and inline functions
- Stateless Ignore plugin added

Significant Bugfixes:

- Allow setting values to empty at command prompt
- Improvements towards making generated code fully C-compliant and warning free

Other:

- Really basic mocking of cpp files (like C files with extern C)

### CMock 2.5.2 (May 2020)

Significant Bugfixes:

- Fix whitespace errors
- Fix Stop Ignore

### CMock 2.5.1 (April 2020)

New Features:

- Add StopIgnore function to Ignore Plugin
- Add ability to generate skeleton from a header.
- Inline functions now have option to remove and mock (with Ceedling's help)

Significant Bugfixes:

- Convert internal handling of bools to chars from ints for memory savings
- Convert CMOCK_MEM_INDEX_TYPE default type to size_t
- Switch to old-school comments for supporting old C compilers
- Significant improvements to handling array length expressions
- Significant improvements to our "C parser"
- Added brace-pair counting to improve parsing
- Fixed error when `:unity_helper_path` is relative

Other:

- Improve documentation
- Optimize speed for pass case, particularly in `_verify()` functions
- Increased depth of unit and system tests

### CMock 2.5.0 (October 2019)

New Features:

- New memory bounds checking.
- New memory alignment algorithm.
- Add `ExpectAnyArgs` plugin
- Divided `CVallback` from `Stub` functionality so we can do both.
- Improved wording of failure messages.
- Added `:treat_as_array` configuration option

Significant Bugfixes:

- Fixed bug where `CMock_Guts_MemBytesUsed()` didn't always return `0` before usage
- Fixed bug which sometimes got `CMOCK_MEM_ALIGN` wrong
- Fixed bug where `ExpectAnyArgs` was generated for functions without args.
- Better handling of function pointers

Other:

- `void*` now tested as bytewise array comparison.
- Documentation fixes, particularly to examples.
- Added `resetTest` to documentation
- New handling of messaging to greatly reduce memory footprint

### CMock 2.4.6 (November 2017)

Significant Bugfixes:

- Fixed critical bug when running dynamic memory.

### CMock 2.4.5 (September 2017)

New Features:

- Simple threading of mocks introduced.

Significant Bugfixes:

- Improvements to handling pointer const arguments.
- Treat `char*` separately from an array of bytes.
- Fixed handling of string arguments.
- Preserve `const` in all arguments.
- Fixed race condition when `require`ing plugins

Other:

- Expand docs on `strict_mock_calling`

### CMock 2.4.4 (April 2017)

New Features:

- Add `INCLUDE_PATH` option for specifying source

Significant Bugfixes:

- Parsing improvements related to braces, brackets, and parenthesis
- `ReturnThruPtr` checks destination not null before copying data.
- Stub overrides Ignore
- Improvements to guessing memory alignment based on datatypes

Other:

- Reorganize testing into subdirectory to not clutter for new users
- Docs switching to markdown from pdf

### CMock 2.4.3 (October 2016)

New Features:

- Support multiple helper header files.
- Add ability to use `weak` symbols if compiler supports it
- Add mock suffix option in addition to mock prefix.

Significant Bugfixes:

- Improved UNICODE support



13 changes: 13 additions & 0 deletions docs/CMockKnownIssues.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# CMock - Known Issues

## A Note

This project will do its best to keep track of significant bugs that might effect your usage of this
project and its supporting scripts. A more detailed and up-to-date list for cutting edge CMock can
be found on our Github repository.

## Issues

- Able to parse most C header files without preprocessor needs, but when handling headers with significant preprocessor usage (#ifdefs, etc), it can get confused
- Multi-dimensional arrays currently simplified to single dimensional arrays of the full size
- Incomplete support for VarArgs
8 changes: 5 additions & 3 deletions docs/CMock_Summary.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
CMock: A Summary
================

*[ThrowTheSwitch.org](http://throwtheswitch.org)*
*[ThrowTheSwitch.org](http://throwtheswitch.org)*

*This documentation is released under a Creative Commons 3.0 Attribution Share-Alike License*

- [Known Issues](docs/CMockKnownIssues.md)
- [Change Log](docs/CMockChangeLog.md)

What Exactly Are We Talking About Here?
---------------------------------------
Expand Down Expand Up @@ -61,7 +63,7 @@ call DoesSomething enough, or too much, or with the wrong arguments,
or in the wrong order.

CMock is based on Unity, which it uses for all internal testing.
It uses Ruby to do all the main work (versions 2.0.0 and above).
It uses Ruby to do all the main work (versions 3.0.0 and above).


Installing
Expand All @@ -77,7 +79,7 @@ have it. You can prove it by typing the following:
If it replied in a way that implies ignorance, then you're going to
need to install it. You can go to [ruby-lang](https://ruby-lang.org)
to get the latest version. You're also going to need to do that if it
replied with a version that is older than 2.0.0. Go ahead. We'll wait.
replied with a version that is older than 3.0.0. Go ahead. We'll wait.

Once you have Ruby, you have three options:

Expand Down

0 comments on commit 95d29ee

Please sign in to comment.