You Can't Unit Test C, Right?
Testing is a wonderful thing. Code with good tests is so much easier to work with and change due to the comfort the tests provide that you haven’t broken anything you didn’t expect to break.
C can be a tricky language to work in. It compiles to static code. It’s incredibly low-level compared to many of the languages people use these days. It also comes with a delightfully bewildering and wide array of ways to very effectively shoot yourself in the foot. On top of that the POSIX API implementations C code often relies on don’t lend themselves to easy testing, especially of unhappy paths. Which means that while we should absolutely be testing our C code it should be really hard to unit test, right?
Join me for a quick overview of the ways in which C can be unit tested, including ways to push around the POSIX APIs, and how you too can increase your C code’s level of comfort.
Benno is this guy who works for Yubico and has Opinions™.