<td>The latest branch and version on which the test is known to pass</td>
</tr>
<tr>
<tdwidth="100">Broken version</td>
<td>The latest branch and version on which the test is known to fail. n/a when older than passed version.</td>
</tr>
<tr>
<tdwidth="100">ID</td>
<td>A unqiue ID to refer to a test. The unique numbers are maintained in this file. Note that the same test can be run on different hardware/interface. Each combination yields a unique id. </td>
</tr>
<tr>
<tdwidth="100">Test case</td>
<td>An atomic entity that describes the operations needed to test a feature or only a part of it. The test case should:
<ul>
<li>be uniquely identifiable</li>
<li>define the complete prerequisites of the test (eg: the target, the interface, the initial state of the system)</li>
<li>define the input to be applied to the system in order to execute the test</li>
<li>define the expected output</li>
<li>contain the output resulted by running the test case</li>
<li>contain the result of the test (pass/fail)</li>
</ul>
</td>
</tr>
<tr>
<tdwidth="100">Test suite</td>
<td>A (completable) collection of test cases</td>
</tr>
<tr>
<tdwidth="100">Testing</td>
<td>Testing refers to running the test suite for a specific revision of the software,
for one or many targets, using one or many JTAG interfaces. Testing should be be stored
along with all the other records for that specific revision. For releases, the results
Transfer rate: 179 bytes/sec, 404 bytes/write.<br>
(gdb) monitor arm7_9 force_hw_bkpts enable<br>
force hardware breakpoints enabled<br>
(gdb) break main<br>
Breakpoint 1 at 0x100134: file src/main.c, line 69.<br>
(gdb) continue<br>
Continuing.<br>
<br>
Breakpoint 1, main () at src/main.c:69<br>
69 DWORD a = 1;<br>
(gdb) step
</code>
</td>
<td>The breakpoint should be reached, typical output:<br>
<code>
target state: halted<br>
target halted in ARM state due to single step, current mode: Supervisor<br>
cpsr: 0x60000013 pc: 0x0010013c<br>
70 DWORD b = 2;<br>
</code>
</td>
<td>PASS/FAIL</td>
</tr>
</table>
<H2>RAM access</H2>
Note: these tests are not designed to test/debug the target, but to test functionalities!
<tableborder=1>
<tr>
<td>ID</td>
<td>Target</td>
<td>Interface</td>
<td>Description</td>
<td>Initial state</td>
<td>Input</td>
<td>Expected output</td>
<td>Pass/Fail</td>
</tr>
<tr>
<td><aname="RAM001"/>RAM001</td>
<td>Fill in!</td>
<td>Fill in!</td>
<td>32 bit Write/read RAM</td>
<td>Reset init is working</td>
<td>On the telnet interface<br>
<code> > mww ram_address 0xdeadbeef 16<br>
> mdw ram_address 32
</code>
</td>
<td>The commands should execute without error. A clear failure is a memory access exception. The result of running the commands should be a list of 16 locations 32bit long containing 0xdeadbeef.<br>
<td>The commands should execute without error. A clear failure is a memory access exception. The result of running the commands should be a list of 16 locations 16bit long containing 0xbeef.<br>
<td>The commands should execute without error. A clear failure is a memory access exception. The result of running the commands should be a list of 16 locations 8bit long containing 0xab.<br>
<code>
> mwh 0x0 0x0 16<br>
> mwb ram_address 0xab 16<br>
> mdb ram_address 32<br>
0x00000000: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br>
>
</code>
</td>
<td>PASS/FAIL</td>
</tr>
</table>
<H2>Flash access</H2>
<tableborder=1>
<tr>
<td>ID</td>
<td>Target</td>
<td>Interface</td>
<td>Description</td>
<td>Initial state</td>
<td>Input</td>
<td>Expected output</td>
<td>Pass/Fail</td>
</tr>
<tr>
<td><aname="FLA001"/>FLA001</td>
<td>Fill in!</td>
<td>Fill in!</td>
<td>Flash probe</td>
<td>Reset init is working</td>
<td>On the telnet interface:<br>
<code> > flash probe 0</code>
</td>
<td>The command should execute without error. The output should state the name of the flash and the starting address. An example of output:<br>
<code>flash 'ecosflash' found at 0x01000000</code>
</td>
<td>PASS/FAIL</td>
</tr>
<tr>
<td><aname="FLA002"/>FLA002</td>
<td>Fill in!</td>
<td>Fill in!</td>
<td>flash fillw</td>
<td>Reset init is working, flash is probed</td>
<td>On the telnet interface<br>
<code> > flash fillw 0x1000000 0xdeadbeef 16
</code>
</td>
<td>The commands should execute without error. The output looks like:<br>
<code>
wrote 64 bytes to 0x01000000 in 11.610000s (0.091516 kb/s)