I just released Sigma-Test v1.0.0 – a pure C, no-macro test runner that’s smaller than most JSON test configs and ships with permanent, zero-config memory leak detection.
- *<60 KB* static binary (58 KB on x86-64)
- Zero dependencies, near-zero overhead
If mallocs ≠ frees, it screams *WARNING: MEMORY LEAK* in red, every single run.
- Colored output
- Pluggable hooks that don't silence the console
- No Valgrind. No ASan. No flags. No excuses.
===== Memory Allocations Report =================================
WARNING: MEMORY LEAK — 1 unfreed allocation(s)
Total mallocs: 2
Total frees: 1
=================================================================
Tired of forgetting to run leak checks? This one never forgets.
Your library has many issues. Some should be easy to fix. You missed many allocation/deallocation functions (3 from ISO C, 1 from POSIX and 4 non-standard ones).
Others will be difficult or impossible for you to address. Your use of --wrap will not work with exes that link to static libc. macOS ld does not support --wrap. You will need to use another mechanism if you want to support macOS. I assume not supporting Windows is intentional.
The other big issue is with custom memory pools. That is always a difficult problem. Valgrind and the sanitizers require user instrumentation. Your leak detection will work with memory pools that just subdivide memory allocated with malloc etc. It won't work for memory pools that work like malloc itself and use brk/sbrk/mmap.
> Let’s make C testing suck less in 2025.
Didn't Bjarne Stroustrup do that already back in 1985?
He tried ... but, no ... it still sucks. Brassy claims? Yeah, prob'ly so ... but, the claims are supported. Has issues? Sure ... but for most use cases, easy enough to work through. Covers all types of memory pools? Nope, didn't make that claim ;)
Besides, mine is intended to be a non-invasive memory counter, that's all. Want more invasive memory scoping? Write a MemCheck hook and generate all the metrics you want. Want to make sure your memory pool doesn't leak, you have to find another way. Oh well.
Thanks for checking it out, though. I've got a lot on my plate so issues with SigmaTest are expected. The core library I'm working on is putting SigmaTest through it's paces ... it's doing it's job and letting me know if I miss freeing something here or there. It's just a tool and it's helpful.
I just released Sigma-Test v1.0.0 – a pure C, no-macro test runner that’s smaller than most JSON test configs and ships with permanent, zero-config memory leak detection.
If mallocs ≠ frees, it screams *WARNING: MEMORY LEAK* in red, every single run. Tired of forgetting to run leak checks? This one never forgets. Feedback, roasts, and pull requests welcome. Let’s make C testing suck less in 2025.Rather brassy claims.
Your library has many issues. Some should be easy to fix. You missed many allocation/deallocation functions (3 from ISO C, 1 from POSIX and 4 non-standard ones).
Others will be difficult or impossible for you to address. Your use of --wrap will not work with exes that link to static libc. macOS ld does not support --wrap. You will need to use another mechanism if you want to support macOS. I assume not supporting Windows is intentional.
The other big issue is with custom memory pools. That is always a difficult problem. Valgrind and the sanitizers require user instrumentation. Your leak detection will work with memory pools that just subdivide memory allocated with malloc etc. It won't work for memory pools that work like malloc itself and use brk/sbrk/mmap.
> Let’s make C testing suck less in 2025.
Didn't Bjarne Stroustrup do that already back in 1985?
He tried ... but, no ... it still sucks. Brassy claims? Yeah, prob'ly so ... but, the claims are supported. Has issues? Sure ... but for most use cases, easy enough to work through. Covers all types of memory pools? Nope, didn't make that claim ;)
Besides, mine is intended to be a non-invasive memory counter, that's all. Want more invasive memory scoping? Write a MemCheck hook and generate all the metrics you want. Want to make sure your memory pool doesn't leak, you have to find another way. Oh well.
Thanks for checking it out, though. I've got a lot on my plate so issues with SigmaTest are expected. The core library I'm working on is putting SigmaTest through it's paces ... it's doing it's job and letting me know if I miss freeing something here or there. It's just a tool and it's helpful.