@no_asan('asan also changes malloc, and that ends up linking in new twice')
def test_dlmalloc_partial(self):
    src = (open(path_from_root('tests', 'new.cpp')).read().replace('{{{ NEW }}}', 'new int').replace('{{{ DELETE }}}', 'delete') + '\n#include <new>\n\nvoid *\noperator new(size_t size) throw(std::bad_alloc)\n{\nprintf("new %d!\\n", size);\nreturn malloc(size);\n}\n')
    self.do_run(src, 'new 4!\n*1,0*')
@no_asan('asan also changes malloc, and that ends up linking in new twice')
def test_dlmalloc_partial(self):
    src = (open(path_from_root('tests', 'new.cpp')).read().replace('{{{ NEW }}}', 'new int').replace('{{{ DELETE }}}', 'delete') + '\n#include <new>\n\nvoid *\noperator new(size_t size) throw(std::bad_alloc)\n{\nprintf("new %d!\\n", size);\nreturn malloc(size);\n}\n')
    self.do_run(src, 'new 4!\n*1,0*')