OLD | NEW |
1 // Copyright (c) 2004, Google Inc. | 1 // Copyright (c) 2004, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 // _POSIX_C_SOURCE, which it needs so stdlib.h defines posix_memalign. | 42 // _POSIX_C_SOURCE, which it needs so stdlib.h defines posix_memalign. |
43 // unistd.h, on the other hand, requires _POSIX_C_SOURCE to be unset, | 43 // unistd.h, on the other hand, requires _POSIX_C_SOURCE to be unset, |
44 // at least on Mac OS X, in order to define getpagesize. The solution | 44 // at least on Mac OS X, in order to define getpagesize. The solution |
45 // is to #include unistd.h first. This is safe because unistd.h | 45 // is to #include unistd.h first. This is safe because unistd.h |
46 // doesn't sub-include stdlib.h, so we'll still get posix_memalign | 46 // doesn't sub-include stdlib.h, so we'll still get posix_memalign |
47 // when we #include stdlib.h. Blah. | 47 // when we #include stdlib.h. Blah. |
48 #ifdef HAVE_UNISTD_H | 48 #ifdef HAVE_UNISTD_H |
49 #include <unistd.h> // for getpagesize() | 49 #include <unistd.h> // for getpagesize() |
50 #endif | 50 #endif |
51 #include "tcmalloc.h" // must come early, to pick up posix_memalign | 51 #include "tcmalloc.h" // must come early, to pick up posix_memalign |
| 52 #include <assert.h> |
52 #include <stdlib.h> // defines posix_memalign | 53 #include <stdlib.h> // defines posix_memalign |
53 #include <stdio.h> // for the printf at the end | 54 #include <stdio.h> // for the printf at the end |
54 #ifdef HAVE_STDINT_H | 55 #ifdef HAVE_STDINT_H |
55 #include <stdint.h> // for uintptr_t | 56 #include <stdint.h> // for uintptr_t |
56 #endif | 57 #endif |
57 #ifdef HAVE_UNISTD_H | 58 #ifdef HAVE_UNISTD_H |
58 #include <unistd.h> // for getpagesize() | 59 #include <unistd.h> // for getpagesize() |
59 #endif | 60 #endif |
60 #ifdef HAVE_MALLOC_H | 61 // Malloc can be in several places on older versions of OS X. |
61 #include <malloc.h> | 62 #if defined(HAVE_MALLOC_H) |
| 63 #include <malloc.h> // for memalign() and valloc() |
| 64 #elif defined(HAVE_MALLOC_MALLOC_H) |
| 65 #include <malloc/malloc.h> |
| 66 #elif defined(HAVE_SYS_MALLOC_H) |
| 67 #include <sys/malloc.h> |
62 #endif | 68 #endif |
63 #include "base/basictypes.h" | 69 #include "base/basictypes.h" |
64 #include "base/logging.h" | 70 #include "base/logging.h" |
65 #include "tests/testutil.h" | 71 #include "tests/testutil.h" |
66 | 72 |
67 | 73 |
68 // Return the next interesting size/delta to check. Returns -1 if no more. | 74 // Return the next interesting size/delta to check. Returns -1 if no more. |
69 static int NextSize(int size) { | 75 static int NextSize(int size) { |
70 if (size < 100) { | 76 if (size < 100) { |
71 return size+1; | 77 return size+1; |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 int alloc_needed = ((s + pagesize - 1) / pagesize) * pagesize; | 211 int alloc_needed = ((s + pagesize - 1) / pagesize) * pagesize; |
206 Fill(p, alloc_needed, 'x'); | 212 Fill(p, alloc_needed, 'x'); |
207 CHECK(Valid(p, alloc_needed, 'x')); | 213 CHECK(Valid(p, alloc_needed, 'x')); |
208 free(p); | 214 free(p); |
209 } | 215 } |
210 } | 216 } |
211 | 217 |
212 printf("PASS\n"); | 218 printf("PASS\n"); |
213 return 0; | 219 return 0; |
214 } | 220 } |
OLD | NEW |