Title: Safe Memory Access

Description:

This test verifies that the safe memory access (_mem_safe) functions as
intended.

---------------------------------------------------------------------------

Building and Running Project:

This project outputs to the console.  It can be built and executed
on QEMU as follows:

    make run

---------------------------------------------------------------------------

Troubleshooting:

Problems caused by out-dated project information can be addressed by
issuing one of the following commands then rebuilding the project:

    make clean          # discard results of previous builds
                        # but keep existing configuration info
or
    make pristine       # discard results of previous builds
                        # and restore pre-defined configuration info

---------------------------------------------------------------------------

Sample Output:

testing SUCCESS of READ on RO memory with width 1.......PASS
testing SUCCESS of READ on RO memory with width 2.......PASS
testing SUCCESS of READ on RO memory with width 4.......PASS
testing FAILURE of WRITE on RO memory with width 1.......PASS
testing FAILURE of WRITE on RO memory with width 2.......PASS
testing FAILURE of WRITE on RO memory with width 4.......PASS
testing SUCCESS of READ on RW memory with width 1.......PASS
testing SUCCESS of READ on RW memory with width 2.......PASS
testing SUCCESS of READ on RW memory with width 4.......PASS
testing SUCCESS of WRITE on RW memory with width 1.......PASS
testing SUCCESS of WRITE on RW memory with width 2.......PASS
testing SUCCESS of WRITE on RW memory with width 4.......PASS
testing FAILURE of INVALID ACCESS on RW memory with width 4.......PASS
testing FAILURE of READ on RO memory with width 0.......PASS
testing SUCCESS of READ on RO memory with width 1.......PASS
testing SUCCESS of READ on RO memory with width 2.......PASS
testing FAILURE of READ on RO memory with width 3.......PASS
testing SUCCESS of READ on RO memory with width 4.......PASS
testing FAILURE of READ on RO memory with width 5.......PASS
testing FAILURE of READ on RO memory with width 8.......PASS
testing SUCCESS of READ on RO memory with width 1.......PASS
testing SUCCESS of READ on RO memory with width 1.......PASS
testing SUCCESS of READ on RW memory with width 1.......PASS
testing SUCCESS of READ on RW memory with width 1.......PASS
testing FAILURE of WRITE on RO memory with width 1.......PASS
testing FAILURE of WRITE on RO memory with width 1.......PASS
testing SUCCESS of WRITE on RW memory with width 1.......PASS
testing SUCCESS of WRITE on RW memory with width 1.......PASS
testing FAILURE of READ on out-of-image memory with width 1.......PASS
testing FAILURE of READ on out-of-image memory with width 1.......PASS
testing SUCCESS of adding extra RO region.......PASS
testing SUCCESS of adding extra RW region.......PASS
testing FAILURE of adding extra region that won't fit.......PASS
testing SUCCESS of READ on out-of-image memory with width 1.......PASS
testing SUCCESS of READ on out-of-image memory with width 1.......PASS
testing SUCCESS of READ on out-of-image memory with width 1.......PASS
testing SUCCESS of READ on out-of-image memory with width 1.......PASS
testing FAILURE of WRITE on out-of-image memory with width 1.......PASS
testing FAILURE of WRITE on out-of-image memory with width 1.......PASS
testing SUCCESS of WRITE on out-of-image memory with width 1.......PASS
testing SUCCESS of WRITE on out-of-image memory with width 1.......PASS
testing FAILURE of READ on out-of-image memory with width 1.......PASS
testing FAILURE of READ on out-of-image memory with width 1.......PASS
testing FAILURE of READ on out-of-image memory with width 1.......PASS
testing FAILURE of READ on out-of-image memory with width 1.......PASS
testing FAILURE of WRITE on RO memory with width 1.......PASS
testing SUCCESS of _mem_probe() reading RO values.......PASS
testing SUCCESS of _mem_probe() reading RW values.......PASS
testing SUCCESS of _mem_probe() writing values.......PASS
testing SUCCESS of _mem_safe_read(size: 16, width: 0).......PASS
testing SUCCESS of _mem_safe_read(size: 16, width: 4).......PASS
testing SUCCESS of _mem_safe_read(size: 14, width: 2).......PASS
testing SUCCESS of _mem_safe_read(size: 15, width: 1).......PASS
testing FAILURE of _mem_safe_read() with bad params.......PASS (-22)
testing SUCCESS of _mem_safe_write(size: 16, width: 0).......PASS
testing SUCCESS of _mem_safe_write(size: 16, width: 4).......PASS
testing SUCCESS of _mem_safe_write(size: 14, width: 2).......PASS
testing SUCCESS of _mem_safe_write(size: 15, width: 1).......PASS
testing FAILURE of _mem_safe_write() with bad params.......PASS (-22)
===================================================================
PASS - main.
===================================================================
PROJECT EXECUTION SUCCESSFUL
