Competing with myself in mining doesn't make any sense.
You aren't "competing with yourself." Difficulty is programed to adjust periodically to a target of 6 blocks per hour. Mining slower to only get 6 blocks per hour will prevent a difficulty change, but won't change how often you get a block vs mining faster once difficulty is done adjusting. If you want difficulty to stay low, you could CPU mine (although not with cgminer). If you need more than 6 blocks per hour, maybe modifying the code for your testchain would make more sense. If you want to use less power, then it probably makes sense to "detune" your video card. In that case, I would recommend starting with the tuning suggestions in the readme and trying to use logic to get the results you want (IE, underclock the video card).
Well, underclocking the video card is a quite involved process, especially on a laptop. It seems like the AMD drivers keep the set of clock settings per power state of the OS. So when underclocked while plugged in the machine upclocks when unplugged and put on the battery power. And vice versa: when underclocked on the battery it upclocks when plugged in.
The goal is to be able to mine at least one blockchain without triggering the increase of the difficulty and without raising the temperatures of the CPU & GPU to trigger the internal fan of the laptop.
With the fan working I could mine at least three competing branches of the blockchain without raising the difficulty; all on the low-end laptop. This is really helpful for the reorganization testing, but not really required for the usual tests.
I absolutely want to mine against the official binaries without changing anything or even a recompilation. This is an explicit goal of the test process: to successfully interface with the official Satoshi clients.
Mining on the CPU even with a single core always results in the fans spinning and produces blocks at the annoyingly slow rate that would needlessly prolong the test runs.
Yes, I fully understand that cgminer is 99.99% designed for the production mining and not for the development mining. I have to rethink how to cover the remaining 0.01% use case: R&D on the testnet.
I'll maybe need to think about a creative use of cgminer API to slow it down or maybe come up with a simple slow-it-down mining proxy server.