1. A method for testing a processor using random code generation, the method, comprising: defining an initial state of the processor, the initial state comprising data locations in the processor, wherein defining the initial state comprises, for each data location: creating an uncommitted value, setting an initial state pointer to the uncommitted value, and setting a current state pointer to the uncommitted value; generating a random instruction for each data location; executing the random instructions, the executed random instructions comprising a random program, wherein executing the random instructions produces current values for the data locations, and wherein the current values can be one of committed, uncommitted, and deferred; determining a length of the random program; if the random program length equals a desired length, executing a commit V (value) routine; and if the random program length is less than the desired length, repeating the generating, executing, and determining steps.