Currently working on a compiler verification test harness. No link to share yet. gcc uses Dejagnu which I /could/ use, but is overwrought. (tcl ugh) Llvm's is bolted right in to the project. Turns out creating a simple, portable and concurrent one in Go is a weekend project.

Follow

The plan is to embed instructions on what the test expects in code comment files. A 5-ish line config file defines what comments are, and how to parse compiler output.

Now it's a cross-language test harness.

I chose Go because its apis force explicit error handling which helps ensure integrity of results and because I want to run all tests concurrently at the speed of my 16-core build server on every OS without messing around with portable build scripts or writing portable thread code.

"Why does concurrency matter in this case, Mike?" I am following this effort up by writing a fuzzer that generates a test count that will make me want to not have 15 idle cores. Also I am running each test with compiler argument set permutations. The need for compute scales quickly.

Sign in to participate in the conversation
Gamedev Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!