OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2013 The Native Client Authors. All rights reserved. |
3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
5 */ | 5 */ |
6 | 6 |
7 /* | 7 /* |
8 * Simple test to verify that memcpy, memmove and memset are found and | 8 * Simple test to verify that memcpy, memmove and memset are found and |
9 * work properly. | 9 * work properly. |
10 */ | 10 */ |
(...skipping 26 matching lines...) Expand all Loading... |
37 void reset_buf(void) { | 37 void reset_buf(void) { |
38 unsigned char *bufptr = (unsigned char *) buf; | 38 unsigned char *bufptr = (unsigned char *) buf; |
39 unsigned i; | 39 unsigned i; |
40 for (i = 0; i < total_buf_len; ++i) | 40 for (i = 0; i < total_buf_len; ++i) |
41 bufptr[i] = i; | 41 bufptr[i] = i; |
42 } | 42 } |
43 | 43 |
44 void dump_buf(void) { | 44 void dump_buf(void) { |
45 unsigned char *bufptr = (unsigned char *) buf; | 45 unsigned char *bufptr = (unsigned char *) buf; |
46 for (int i = 0; i < total_buf_len; ++i) | 46 for (int i = 0; i < total_buf_len; ++i) |
47 printf("buf[%u] (%p) = %u\n", i, &bufptr[i], bufptr[0]); | 47 printf("buf[%u] (%p) = %u\n", i, (void *) &bufptr[i], bufptr[0]); |
48 } | 48 } |
49 | 49 |
50 /* | 50 /* |
51 * Each function we're testing has a "checked" version that runs it and makes | 51 * Each function we're testing has a "checked" version that runs it and makes |
52 * sure the destination pointer is returned correctly. For memcpy, additionally | 52 * sure the destination pointer is returned correctly. For memcpy, additionally |
53 * check that the source and the destination match after the call. | 53 * check that the source and the destination match after the call. |
54 */ | 54 */ |
55 void checked_memcpy(void *dst, void *src, unsigned n) { | 55 void checked_memcpy(void *dst, void *src, unsigned n) { |
56 assert((unsigned char *)dst + n < (unsigned char *)buf + total_buf_len); | 56 assert((unsigned char *)dst + n < (unsigned char *)buf + total_buf_len); |
57 void *ret = memcpy(dst, src, n); | 57 void *ret = memcpy(dst, src, n); |
(...skipping 20 matching lines...) Expand all Loading... |
78 void checked_memset(void *s, int c, unsigned n) { | 78 void checked_memset(void *s, int c, unsigned n) { |
79 void *ret = memset(s, c, n); | 79 void *ret = memset(s, c, n); |
80 if (ret != s) { | 80 if (ret != s) { |
81 printf("Wrong memset return value: %p != %p\n", ret, s); | 81 printf("Wrong memset return value: %p != %p\n", ret, s); |
82 exit(1); | 82 exit(1); |
83 } | 83 } |
84 char *s_char = (char *)s; | 84 char *s_char = (char *)s; |
85 char *dst_char = s_char; | 85 char *dst_char = s_char; |
86 for (unsigned i = 0; i < n; ++i, ++dst_char) { | 86 for (unsigned i = 0; i < n; ++i, ++dst_char) { |
87 if (*dst_char != c) { | 87 if (*dst_char != c) { |
88 printf("memset failure: index %d (%p) = %u\n", i, dst_char, *dst_char); | 88 printf("memset failure: index %d (%p) = %u\n", |
| 89 i, (void *) dst_char, *dst_char); |
89 dump_buf(); | 90 dump_buf(); |
90 exit(1); | 91 exit(1); |
91 } | 92 } |
92 } | 93 } |
93 if (*dst_char == c) { | 94 if (*dst_char == c) { |
94 printf("memset failure: wrote %d past the end of buffer\n", c); | 95 printf("memset failure: wrote %d past the end of buffer\n", c); |
95 exit(1); | 96 exit(1); |
96 } | 97 } |
97 } | 98 } |
98 | 99 |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 /* Test 204: memmove at edge */ | 273 /* Test 204: memmove at edge */ |
273 reset_buf(); | 274 reset_buf(); |
274 src = arrptr + 1; | 275 src = arrptr + 1; |
275 dst = arrptr; | 276 dst = arrptr; |
276 checked_memmove(dst, src, medium_length * 4 - 1); | 277 checked_memmove(dst, src, medium_length * 4 - 1); |
277 /* expect length-1 */ | 278 /* expect length-1 */ |
278 printf("204: %u\n", (unsigned)dst[medium_length * 4 - 2]); | 279 printf("204: %u\n", (unsigned)dst[medium_length * 4 - 2]); |
279 | 280 |
280 return 0; | 281 return 0; |
281 } | 282 } |
OLD | NEW |