UINT32_Tが
UINT32_Tが戻り値のマイクロセコンドのタイマがオーバーフローするときにバグが発生。最大値4,294,967,295なので、バグを再現するのに毎回4294秒かかる。何とかならんだろうか。
再現試験の工夫
32ビット符号なしの1μsカウンタは2^32μs、約4294.967296秒(約71分35秒)で一周します。毎回その時間を待つ代わりに、時刻取得をテスト用の関数へ分離し、最大値の直前から値を返して折返しをまたがせると短時間で再現できます。経過時間を符号なし差分で扱う場合も、一周を超える間隔や比較の前提を別途確認します。