Skip to content

Drive rdbg tests in a more portable way

Tests using rdbg simulate user input by piping echo output to rdbg, eg. in test/dijkstra-ring/Makefile:

rdbg_test: ring.ml
	echo "\nnr\nsd\nq\n" | rdbg  -o ring.rif -l 10000 -sut "$(sasa) -vl 1 ring.dot -dd" 

But this is not portable as we are using escaped characters:

It is not possible to use echo portably across all POSIX systems unless both -n (as the first argument) and escape sequences are omitted.

In fact, in my own machine the command above causes rdbg to interpret "\nnr\nsd\nq\n" as a single user input, yielding the error

invalid key (\nnr\nsd\nq\n), try again

Posix suggests using printf instead:

New applications are encouraged to use printf instead of echo.