Testing and evaluation fault tolerant protocols by deterministic fault injection