4 #define BufferSize 384 // test correct page passing (>256, multiple of 128 here)
6 static char Buffer[BufferSize+3]; // +1 to move up (and down)
14 for (i=0; i < BufferSize; ++i)
15 Buffer[i+1] = (i%128);
17 Buffer[0] = 255; // to check if start position is untouched
18 Buffer[BufferSize+2] = 255; // to check if end position is untouched
21 p = memmove(Buffer+2, Buffer+1, BufferSize);
23 // check buffer consistency before target
24 ASSERT_AreEqual(255, (unsigned)Buffer[0], "%u", "Unexpected value before range!");
26 // check buffer consistency at starting point
27 ASSERT_AreEqual(0, (unsigned)Buffer[1], "%u", "Unexpected value at range start!");
29 // check buffer consistency after range
30 ASSERT_AreEqual(255, (unsigned)Buffer[BufferSize+2], "%u", "Unexpected value after range!");
32 // check buffer values
33 for (i=0; i < BufferSize; ++i)
35 ASSERT_AreEqual(i%128, (unsigned)Buffer[i+2], "%u", "Unexpected value in buffer at position %u!" COMMA i+2);
38 v = Buffer[BufferSize+1]; // rember value of first untouched end-byte
41 p = memmove(Buffer+1, Buffer+2, BufferSize);
43 // check buffer consistency before target
44 ASSERT_AreEqual(255, (unsigned)Buffer[0], "%u", "Unexpected value before range!");
46 // check buffer consistency at end point
47 ASSERT_AreEqual(v, (unsigned)Buffer[BufferSize+1], "%u", "Unexpected value at range end!");
49 // check buffer consistency after range
50 ASSERT_AreEqual(255, (unsigned)Buffer[BufferSize+2], "%u", "Unexpected value after range!");
52 // check buffer values
53 for (i=0; i < BufferSize; ++i)
55 ASSERT_AreEqual(i%128, (unsigned)Buffer[i+1], "%u", "Unexpected value in buffer at position %u!" COMMA i+1);