Move test into test/std subdirectory.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@224658 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test bad_alloc
|
||||
|
||||
#include <new>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_base_of<std::exception, std::bad_alloc>::value),
|
||||
"std::is_base_of<std::exception, std::bad_alloc>::value");
|
||||
static_assert(std::is_polymorphic<std::bad_alloc>::value,
|
||||
"std::is_polymorphic<std::bad_alloc>::value");
|
||||
std::bad_alloc b;
|
||||
std::bad_alloc b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
}
|
@@ -0,0 +1,29 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test bad_array_length
|
||||
|
||||
#include <new>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
#if __LIBCPP_STD_VER > 11
|
||||
static_assert((std::is_base_of<std::bad_alloc, std::bad_array_length>::value),
|
||||
"std::is_base_of<std::bad_alloc, std::bad_array_length>::value");
|
||||
static_assert(std::is_polymorphic<std::bad_array_length>::value,
|
||||
"std::is_polymorphic<std::bad_array_length>::value");
|
||||
std::bad_array_length b;
|
||||
std::bad_array_length b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
#endif
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test bad_array_new_length
|
||||
|
||||
#include <new>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_base_of<std::bad_alloc, std::bad_array_new_length>::value),
|
||||
"std::is_base_of<std::bad_alloc, std::bad_array_new_length>::value");
|
||||
static_assert(std::is_polymorphic<std::bad_array_new_length>::value,
|
||||
"std::is_polymorphic<std::bad_array_new_length>::value");
|
||||
std::bad_array_new_length b;
|
||||
std::bad_array_new_length b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test new_handler
|
||||
|
||||
#include <new>
|
||||
|
||||
void f() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::new_handler p = f;
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test get_new_handler
|
||||
|
||||
#include <new>
|
||||
#include <cassert>
|
||||
|
||||
void f1() {}
|
||||
void f2() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
assert(std::get_new_handler() == 0);
|
||||
std::set_new_handler(f1);
|
||||
assert(std::get_new_handler() == f1);
|
||||
std::set_new_handler(f2);
|
||||
assert(std::get_new_handler() == f2);
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test set_new_handler
|
||||
|
||||
#include <new>
|
||||
#include <cassert>
|
||||
|
||||
void f1() {}
|
||||
void f2() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
assert(std::set_new_handler(f1) == 0);
|
||||
assert(std::set_new_handler(f2) == f1);
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new[]
|
||||
// NOTE: asan and msan will not call the new handler.
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_handler_called = 0;
|
||||
|
||||
void new_handler()
|
||||
{
|
||||
++new_handler_called;
|
||||
std::set_new_handler(0);
|
||||
}
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_new_handler(new_handler);
|
||||
try
|
||||
{
|
||||
void*volatile vp = operator new[] (std::numeric_limits<std::size_t>::max());
|
||||
assert(false);
|
||||
}
|
||||
catch (std::bad_alloc&)
|
||||
{
|
||||
assert(new_handler_called == 1);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
A* ap = new A[3];
|
||||
assert(ap);
|
||||
assert(A_constructed == 3);
|
||||
delete [] ap;
|
||||
assert(A_constructed == 0);
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new [] (nothrow)
|
||||
// NOTE: asan and msan will not call the new handler.
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_handler_called = 0;
|
||||
|
||||
void new_handler()
|
||||
{
|
||||
++new_handler_called;
|
||||
std::set_new_handler(0);
|
||||
}
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_new_handler(new_handler);
|
||||
try
|
||||
{
|
||||
void*volatile vp = operator new [] (std::numeric_limits<std::size_t>::max(), std::nothrow);
|
||||
assert(new_handler_called == 1);
|
||||
assert(vp == 0);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
A* ap = new(std::nothrow) A[3];
|
||||
assert(ap);
|
||||
assert(A_constructed == 3);
|
||||
delete [] ap;
|
||||
assert(A_constructed == 0);
|
||||
}
|
@@ -0,0 +1,51 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new [] nothrow by replacing only operator new
|
||||
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_called = 0;
|
||||
|
||||
void* operator new(std::size_t s) throw(std::bad_alloc)
|
||||
{
|
||||
++new_called;
|
||||
return std::malloc(s);
|
||||
}
|
||||
|
||||
void operator delete(void* p) throw()
|
||||
{
|
||||
--new_called;
|
||||
std::free(p);
|
||||
}
|
||||
|
||||
volatile int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A* ap = new (std::nothrow) A[3];
|
||||
assert(ap);
|
||||
assert(A_constructed == 3);
|
||||
assert(new_called);
|
||||
delete [] ap;
|
||||
assert(A_constructed == 0);
|
||||
assert(!new_called);
|
||||
}
|
@@ -0,0 +1,51 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new[] replacement by replacing only operator new
|
||||
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
volatile int new_called = 0;
|
||||
|
||||
void* operator new(std::size_t s) throw(std::bad_alloc)
|
||||
{
|
||||
++new_called;
|
||||
return std::malloc(s);
|
||||
}
|
||||
|
||||
void operator delete(void* p) throw()
|
||||
{
|
||||
--new_called;
|
||||
std::free(p);
|
||||
}
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A* ap = new A[3];
|
||||
assert(ap);
|
||||
assert(A_constructed == 3);
|
||||
assert(new_called == 1);
|
||||
delete [] ap;
|
||||
assert(A_constructed == 0);
|
||||
assert(new_called == 0);
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test placement new
|
||||
|
||||
#include <new>
|
||||
#include <cassert>
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
char buf[sizeof(A)];
|
||||
|
||||
A* ap = new(buf) A;
|
||||
assert((char*)ap == buf);
|
||||
assert(A_constructed == 1);
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test placement new array
|
||||
|
||||
#include <new>
|
||||
#include <cassert>
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
char buf[3*sizeof(A)];
|
||||
|
||||
A* ap = new(buf) A[3];
|
||||
assert((char*)ap == buf);
|
||||
assert(A_constructed == 3);
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new
|
||||
|
||||
// asan and msan will not call the new handler.
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_handler_called = 0;
|
||||
|
||||
void new_handler()
|
||||
{
|
||||
++new_handler_called;
|
||||
std::set_new_handler(0);
|
||||
}
|
||||
|
||||
bool A_constructed = false;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {A_constructed = true;}
|
||||
~A() {A_constructed = false;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_new_handler(new_handler);
|
||||
try
|
||||
{
|
||||
void* vp = operator new (std::numeric_limits<std::size_t>::max());
|
||||
assert(false);
|
||||
}
|
||||
catch (std::bad_alloc&)
|
||||
{
|
||||
assert(new_handler_called == 1);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
A* ap = new A;
|
||||
assert(ap);
|
||||
assert(A_constructed);
|
||||
delete ap;
|
||||
assert(!A_constructed);
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new (nothrow)
|
||||
|
||||
// asan and msan will not call the new handler.
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_handler_called = 0;
|
||||
|
||||
void new_handler()
|
||||
{
|
||||
++new_handler_called;
|
||||
std::set_new_handler(0);
|
||||
}
|
||||
|
||||
bool A_constructed = false;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {A_constructed = true;}
|
||||
~A() {A_constructed = false;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_new_handler(new_handler);
|
||||
try
|
||||
{
|
||||
void* vp = operator new (std::numeric_limits<std::size_t>::max(), std::nothrow);
|
||||
assert(new_handler_called == 1);
|
||||
assert(vp == 0);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
A* ap = new(std::nothrow) A;
|
||||
assert(ap);
|
||||
assert(A_constructed);
|
||||
delete ap;
|
||||
assert(!A_constructed);
|
||||
}
|
@@ -0,0 +1,51 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new nothrow by replacing only operator new
|
||||
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_called = 0;
|
||||
|
||||
void* operator new(std::size_t s) throw(std::bad_alloc)
|
||||
{
|
||||
++new_called;
|
||||
return std::malloc(s);
|
||||
}
|
||||
|
||||
void operator delete(void* p) throw()
|
||||
{
|
||||
--new_called;
|
||||
std::free(p);
|
||||
}
|
||||
|
||||
bool A_constructed = false;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {A_constructed = true;}
|
||||
~A() {A_constructed = false;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A* ap = new (std::nothrow) A;
|
||||
assert(ap);
|
||||
assert(A_constructed);
|
||||
assert(new_called);
|
||||
delete ap;
|
||||
assert(!A_constructed);
|
||||
assert(!new_called);
|
||||
}
|
@@ -0,0 +1,51 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new replacement
|
||||
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_called = 0;
|
||||
|
||||
void* operator new(std::size_t s) throw(std::bad_alloc)
|
||||
{
|
||||
++new_called;
|
||||
return std::malloc(s);
|
||||
}
|
||||
|
||||
void operator delete(void* p) throw()
|
||||
{
|
||||
--new_called;
|
||||
std::free(p);
|
||||
}
|
||||
|
||||
bool A_constructed = false;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {A_constructed = true;}
|
||||
~A() {A_constructed = false;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A* ap = new A;
|
||||
assert(ap);
|
||||
assert(A_constructed);
|
||||
assert(new_called);
|
||||
delete ap;
|
||||
assert(!A_constructed);
|
||||
assert(!new_called);
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
20
test/std/language.support/support.dynamic/version.pass.cpp
Normal file
20
test/std/language.support/support.dynamic/version.pass.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <new>
|
||||
|
||||
#include <new>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user