Preskočiť na hlavný obsah

Artefakt CMock

Prenosná distribúcia zdrojových kódov CMock (ThrowTheSwitch/CMock), generátora mockov a stubov pre C, ktorý funguje spolu s frameworkom na unit testy Unity. Tento repozitár využíva Embedbits Platform Artifact Handler na vyhľadanie, stiahnutie, overenie a konfiguráciu CMock v následných embedded projektoch.

CMock má dve časti, obe sú súčasťou tohto balíka:

  • generátor v Ruby (lib/cmock.rb), ktorý parsuje C hlavičky a pri builde generuje súbory Mock<name>.c/.h — vyžaduje artefakt Ruby,
  • malý C runtime (src/cmock.c) kompilovaný do testovacej binárky — vyžaduje hlavičky artefaktu Unity.

Tento repozitár je rozdelený do troch vetiev/referencií podľa úlohy — vetva main (master), ktorú práve čítate, obsahuje iba túto dokumentáciu; skripty handlera sú vo vetve Core a verzované balíky so zdrojovými kódmi sa publikujú ako GitHub Releases ukotvené vo vetve Bin.


Obsah repozitára​

main / master
└── README.md ← This document — no other content

Core
├── ArtifactConfig.cmake ← Artifact metadata (name, version constraints, asset naming)
└── CMakeCMockDefaults.cmake ← CMock integration logic (mock generation, runtime library)

Bin (anchor branch — no tracked binary files)
└── (empty commits only; each release tag points here)

Úloha v platforme​

GitHub (ThrowTheSwitch) GitHub (Embedbits)
────────────────────────────────────── ──────────────────────────────────────────
ThrowTheSwitch/CMock Artifact-cmock
tag "v2.6.0" (source) ──► main / master → README only (this document)
Core → ArtifactConfig.cmake, CMakeCMockDefaults.cmake
Bin → Anchor branch (empty commits)
Releases → cmock-<version>.zip + .hash
tagged Bin/<version>

CMock_Importer.sh naklonuje upstream repozitár pri každej značke vydania (vX.Y.Z), overí checkoutnutú značku, odstráni metadáta .git, pridá textový súbor VERSION a zazipuje strom so zdrojovými kódmi. CMock je nezávislý od platformy (Ruby + zdrojáky v C), takže vydania nemajú príponu platformy — sú označené jednoducho Bin/<version> (predpona v sa vynecháva).

Git submoduly vendor/unity a vendor/c_exception z upstreamu nie sú zahrnuté — slúžia iba na vlastné testy CMock. Unity je pripnutý nezávisle prostredníctvom artefaktu Unity.


Štruktúra vetiev​

Vetva / referenciaObsah
main / masterIba toto README — žiadny funkčný obsah
CoreSkripty handlera CMake na použitie artefaktu
BinIba kotviaca vetva — nie sú v nej commitnuté žiadne binárky
Značka vydania Bin/<version>GitHub Release so zdrojovým balíkom .zip a jeho súborom s kontrolným súčtom .hash

Poznámka: Na Git hostingu bez Releases API (Azure DevOps) ten istý importér commitne .zip + .hash priamo do vetvy Bin a tento commit označí značkou Bin/<version>. Handler CMake transparentne spracuje obe formy.


Stiahnutie vydania​

# Core handler scripts
git clone --branch Core --single-branch --depth=1 <repository_url> cmock-core

# Source package + checksum for one specific version (GitHub Release asset)
gh release download Bin/2.6.0 --repo Embedbits/Artifact-cmock --pattern "cmock-2.6.0.*"

Štruktúra balíka​

cmock-<version>.zip
└── cmock/
├── VERSION ← plain-text version, e.g. "2.6.0"
├── lib/ ← Ruby generator (cmock.rb + plugins)
├── config/ ← default generator configuration
├── src/ ← cmock.c, cmock.h, cmock_internals.h
├── vendor/unity/ ← empty (submodule not fetched — use the Unity artifact)
└── ... ← upstream docs, examples, tests

Príklad generovania mockov pomocou artefaktu Ruby:

ruby cmock/lib/cmock.rb -o<config.yml> path/to/header.h

Verzovanie​

Verzie artefaktu zodpovedajú priamo oficiálnym značkám vydaní CMock bez predpony v:

2.5.3, 2.6.0, 2.7.0, ...

Licencia​

CMock sa distribuuje pod licenciou MIT. Podrobnosti nájdete na: https://github.com/ThrowTheSwitch/CMock/blob/master/LICENSE.txt


Autori​

Príspevky sú vítané! Otvorte prosím pull request.