Notes:
| Test | Goal | Steps | Notes | ||
| # | Client | Operation | |||
| 1 | Check Compilation | 1 | Compile DSM server | Must compile | |
| 2 | Compile dsm_test client | Edit my #include etc. if necessary | |||
| 2 | Check data transfer | 1 | Start DSM server | Must start | |
| 2 | a | Start | Must start and connect | ||
| 3 | a | m abcd 4 | |||
| 4 | a | w abcd | |||
| 5 | a | t abcd 2 5 | |||
| 6 | a | n abcd | |||
| 7 | b | Start | |||
| 8 | b | m abcd 4 | |||
| 9 | b | r abcd | |||
| 10 | b | e abcd | x x 5 x | ||
| 3 | Check basic locking | 1 | Start DSM server | ||
| 2 | a | Start | |||
| 3 | a | m 1234 4 | |||
| 4 | b | Start | |||
| 5 | b | m 1234 4 | |||
| 6 | a | w 1234 | |||
| 7 | b | r 1234 | b should hang | ||
| 8 | a | n 1234 | b should proceed | ||
| 9 | a | r 1234 | a proceeds | ||
| 10 | a | n 1234 | |||
| 11 | a | w 1234 | a should hang | ||
| 12 | b | n 1234 | a should proceed | ||
| 13 | b | w 1234 | b should hang | ||
| 14 | a | n 1234 | b should proceed | ||
| 4 | Check queuing | 1 | Start server | ||
| 2 | a | Start | |||
| 3 | b | Start | |||
| 4 | c | Start | |||
| 5 | a | m 1234 4 | |||
| 6 | b | m 1234 4 | |||
| 7 | c | m 1234 4 | |||
| 8 | a | w 1234 | |||
| 9 | b | r 1234 | hang | ||
| 10 | c | r 1234 | hang | ||
| 11 | a | n 1234 | b, c both proceed | ||
| 12 | c | n 1234 | |||
| 13 | a | w 1234 | hang | ||
| 14 | c | r 1234 | hang (a is in queue) | ||
| 15 | b | n 1234 | a proceed | ||
| 16 | a | n 1234 | c proceed | ||
| 5 | check keys | 1 | start server | ||
| 2 | a | start | |||
| 3 | a | m 1234 4 | |||
| 4 | a | m abcd 4 | |||
| 5 | b | start | |||
| 6 | b | m 1234 4 | |||
| 7 | b | m abcd 4 | |||
| 8 | a | w abcd | |||
| 9 | a | t abcd 2 1 | |||
| 10 | a | n abcd | |||
| 11 | a | w 1234 | |||
| 12 | a | t 1234 1 5 | |||
| 13 | a | n 1234 | |||
| 14 | b | r abcd | |||
| 15 | b | e abcd | x x 1 x | ||
| 16 | b | r 1234 | |||
| 17 | b | e 1234 | x 5 x x | ||