w32-test.exe can be used to:
allocate memory at any valid address, of any valid size, protection flags and allocation type. set registers to any values. store any values at any location in memory load binary (shellcode) files at any location in memory. Fake a ret-into-libc or overwritten return address. Trigger a debugger break before returning, for easy debugging of code. Handle exceptions caused by the code and output information about the exception to stderr. All this allows you to test a multitude of different types of shellcodes and ret-into-libc code.
See also: w64-test