int main(int argc, char * argv[]) { PIN_Init(argc, argv); // Test alignment of "small chunks" for (int i = 0; i < 10; i++) { for (size_t align = 1; align <= 8192; align <<= 1) { if (!TestAlign(align, 4)) return 1; } } // Test alignment of "big chunks" that are larger than 1 page but smaller than 2 pages for (int i = 0; i < 10; i++) { for (size_t align = 1; align <= 8192; align <<= 1) { if (!TestAlign(align, 1700)) return 1; } } // Test alignment of "big chunks" larger than one page in size and alignment larger than one page for (int i = 0; i < 10; i++) { for (size_t align = 1024; align < 16*1024; align <<= 1) { if (!TestAlign(align, (i+1)*100000)) return 1; } } // Free the memory allocated by posix_memalign(). for (POINTER_CONTAINER::iterator it = Pointers.begin(); it != Pointers.end(); ++it) free(*it); // Error testing std::cerr << "Error testing: expect an error message here." << std::endl; TestAlign( 555, 4096 ); // Never returns PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { PIN_Init(argc, argv); // Test alignment of "small chunks" for (int i = 0; i < 10; i++) { for (size_t align = 1; align <= 8192; align <<= 1) { if (!TestAlign(align, 4)) return 1; } } // Test alignment of "big chunks" that are larger than 1 page but smaller than 2 pages for (int i = 0; i < 10; i++) { for (size_t align = 1; align <= 8192; align <<= 1) { if (!TestAlign(align, 1700)) return 1; } } // Pointers.clear(); // Test alignment of "big chunks" larger than one page in size and alignment larger than one page for (int i = 0; i < 10; i++) { for (size_t align = 1024; align < 16*1024; align <<= 1) { if (!TestAlign(align, (i+1)*100000)) return 1; } } for (POINTER_CONTAINER::iterator it = Pointers.begin(); it != Pointers.end(); ++it) free(*it); // Test realloc to larger and smaller sizes void * ptr = malloc(20); if (ptr == NULL) { std::cerr << "Malloc failed\n"; exit(-1); } std::cerr << "Malloc : " << hex << ptr << dec << std::endl; void * tmp = realloc(ptr, 21000); if (tmp == NULL) { std::cerr << "Realloc to larger size failed\n"; exit(-1); } ptr = tmp; std::cerr << "Realloc to larger size : " << hex << ptr << dec << std::endl; tmp = realloc(ptr, 500); if (tmp == NULL) { std::cerr << "Realloc to smaller size failed\n"; exit(-1); } ptr = tmp; std::cerr << "Realloc to smaller size : " << hex << ptr << dec << std::endl; free(ptr); // Never returns PIN_StartProgram(); return 0; }