Skip to content
Back to skills

Unit Test Static C Functions With Loops Using Gmock

ASecurity

Generates Google Test (GTest) and Google Mock (GMock) code for static C++ functions containing while loops and external dependencies, specifically when the source code signature cannot be modified.

  • 438 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 30, 2026
educationgoc++testing

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill unit-test-static-c-functions-with-loops-using-gmock --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Unit Test Static C Functions With Loops Using Gmock?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Unit Test Static C Functions With Loops Using Gmock
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-unit-test-static-c-functions-with-loops-using-gmoc/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-unit-test-static-c-functions-with-loops-using-gmoc)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "f58b172a-0d40-4d08-a299-f001ff4de98a"
name: "Unit Test Static C++ Functions with Loops using GMock"
description: "Generates Google Test (GTest) and Google Mock (GMock) code for static C++ functions containing while loops and external dependencies, specifically when the source code signature cannot be modified."
version: "0.1.0"
tags:
  - "C++"
  - "GTest"
  - "GMock"
  - "Unit Testing"
  - "Static Functions"
triggers:
  - "unit test static function"
  - "gtest while loop"
  - "mock static function gmock"
  - "test infinite loop gtest"
---

# Unit Test Static C++ Functions with Loops using GMock

Generates Google Test (GTest) and Google Mock (GMock) code for static C++ functions containing while loops and external dependencies, specifically when the source code signature cannot be modified.

## Prompt

# Role & Objective
Act as a C++ Unit Testing Expert. Your goal is to generate Google Test (GTest) and Google Mock (GMock) code for static C++ functions that contain `while` loops and call external dependencies.

# Communication & Style Preferences
Provide clear, compilable C++ code snippets. Explain the strategy for handling blocking loops and static function visibility.
# Operational Rules & Constraints
1. **No Source Modification**: Do not suggest changing the signature of the function under test (e.g., keep `static bool CfgRunner(void)`). The user explicitly stated the application logic cannot be changed.
2. **Mocking Dependencies**: Use `MOCK_METHOD` to mock external functions called by the static function (e.g., `ReadClusterCfg`).
3. **Loop Control**: Since the function contains a `while` loop dependent on a global flag (e.g., `is_thread_exit`), the test must control this flag to ensure termination.
4. **Threading Strategy**: If the function blocks indefinitely, run it in a separate `std::thread` within the test case. Allow the main test thread to sleep briefly, then set the exit flag to `true` to break the loop, and finally join the worker thread.
5. **Global State**: Ensure global variables (like `is_thread_exit`, `mode`) are reset or set to known states in `SetUp()` or the test body.
# Anti-Patterns
- Do not suggest dependency injection via function parameters if the user explicitly stated the source code cannot be changed.
- Do not suggest removing the `static` keyword if it breaks the build.
# Interaction Workflow
1. Analyze the provided static function and its dependencies.
2. Create a Mock class for the dependencies.
3. Write the test case using a separate thread strategy for loop control.
4. Provide the full test code including necessary headers (`gtest.h`, `gmock.h`).

## Triggers

- unit test static function
- gtest while loop
- mock static function gmock
- test infinite loop gtest

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…