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)
15 for (i=0; i < BufferSize; ++i)
16 Buffer[i+1] = (i%128);
18 Buffer[0] = 255; // to check if start position is untouched
19 Buffer[BufferSize+2] = 255; // to check if end position is untouched
22 p = memmove(Buffer+2, Buffer+1, BufferSize);
24 // check buffer consistency before target
25 ASSERT_AreEqual(255, (unsigned)Buffer[0], "%u", "Unexpected value before range!");
27 // check buffer consistency at starting point
28 ASSERT_AreEqual(0, (unsigned)Buffer[1], "%u", "Unexpected value at range start!");
30 // check buffer consistency after range
31 ASSERT_AreEqual(255, (unsigned)Buffer[BufferSize+2], "%u", "Unexpected value after range!");
33 // check buffer values
34 for (i=0; i < BufferSize; ++i)
36 ASSERT_AreEqual(i%128, (unsigned)Buffer[i+2], "%u", "Unexpected value in buffer at position %u!" COMMA i+2);
39 v = Buffer[BufferSize+1]; // rember value of first untouched end-byte
42 p = memmove(Buffer+1, Buffer+2, BufferSize);
44 // check buffer consistency before target
45 ASSERT_AreEqual(255, (unsigned)Buffer[0], "%u", "Unexpected value before range!");
47 // check buffer consistency at end point
48 ASSERT_AreEqual(v, (unsigned)Buffer[BufferSize+1], "%u", "Unexpected value at range end!");
50 // check buffer consistency after range
51 ASSERT_AreEqual(255, (unsigned)Buffer[BufferSize+2], "%u", "Unexpected value after range!");
53 // check buffer values
54 for (i=0; i < BufferSize; ++i)
56 ASSERT_AreEqual(i%128, (unsigned)Buffer[i+1], "%u", "Unexpected value in buffer at position %u!" COMMA i+1);