CppUTest TestPlugin changes


I've recently made some very kewl CppUTest changes (at least, I think they are nice). CppUTest has a TestPlugin design. This means that you can write "Plugins" and add them in your main method. The Plugins is called before every setup and after ever teardown (automatically). This enables you to add general checking of things and works especially well with stubbing out some of the OS things.

Let me give some better example. For some embedded project I wrote some MutexPlugin. We stubbed out all the mutex locks and unlocks in the unit tests. Then, instead of doings mutex locks, I'd record the lock plus filename, linenumber (using macro magic and __FILE__ and __LINE__). Then I wrote the MutexPlugin which checks the the records to see if there is no inconsistency (dangling mutex, double locked mutex etc).

Then we'll install the Plugin in the main like this:

MutexPlugin mutexPlugin;
TestRegistry::getCurrentRegistry()->installPlugin(&mutexPlugin);

Now every test you ever write will automatically have mutex consistency checking and will fail automatically if there is something not consistent. Now... this is nothing new, we added this support to CppUTest already some time ago. However, now I added support for command line options to the TestPlugin. So, via command line, you can pass options to your Plugin by the -p option (CppUtest will pass all the -p options to all the installed plugins to see if they know what they mean, if none uses them then it will report an error).

So,  what you can do with this? Well, if we take our MutexPlugin as example, we can add a -pMutexVerbose option to the plugin which will output all the mutex locks and unlocks (again, plus line and file). That's a rather handy debugging and profiling option (especially combined with the -n option to run just one test). I did the same with the MemoryLeak plugin, so that you can dump all the dynamic memory allocations on your screen by just adding a command line option. (didn't check this in yet!)

The TestPlugin code is in souceforge. Some code (related to help options) is still missing, need to add that later.

Read more

Vibe Coding

Vibe Coding

สร้างผลงานในจังหวะของ AI Web Summit 2025 — Lisbon | Matt Wolfe, Replit ลองจินตนาการดูว่า… การเขียนโค้ดของคุณไม่ได้เหมือนกับพิมพ์คำสั่งในเทอร์มินัล แต่เหมือนกับ เล่นดนตรีร่วมกับวง — มีจังหวะ มีความรู้สึก และมีคู่หูที่เข้

By Chokchai
เอื้อมไปคว้าดาว

เอื้อมไปคว้าดาว

หลายคนอยากประสบความสำเร็จ องค์ประกอบที่สำคัญที่จะทำให้เราประสบความสำเร็จได้นั้น คือการที่เราสามารถสร้างผลงานที่มีคุณภาพสูงออกมาได้อย่างสม่ำเสมอ ไม่ใช่สร้างได้แค่เป็นครั้งคราวนะ ลูกฟลุ๊คแบบนั้นเพียงพอแค่สำหรับมือสมัครเล่น ถ้าจะเลี้ยงปากท้องยึดเอาเป็นอาชีพได้ เราต้องสร้างผลงานคุ

By Chokchai