]> gcc.gnu.org Git - gcc.git/commitdiff
what-big.cc: New.
authorBenjamin Kosnik <bkoz@redhat.com>
Fri, 1 Jun 2007 17:03:22 +0000 (17:03 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 1 Jun 2007 17:03:22 +0000 (17:03 +0000)
2007-06-01  Benjamin Kosnik  <bkoz@redhat.com>

* testsuite/19_diagnostics/logic_error/what-big.cc: New.
* testsuite/19_diagnostics/logic_error/what-3.cc: Same.
* testsuite/19_diagnostics/runtime_error/what-big.cc: Same.
* testsuite/19_diagnostics/runtime_error/what-3.cc: Same.

* testsuite/18_support/14493.cc: Break into...
* testsuite/18_support/exception/what.cc: ...this.
* testsuite/18_support/bad_cast/what.cc: ...this.
* testsuite/18_support/bad_alloc/what.cc: ...this.
* testsuite/18_support/bad_typeid/what.cc: ...this.
* testsuite/18_support/bad_exception/what.cc: ...this.

* testsuite/19_diagnostics/bad_exception/23591_thread-1.c: Move...
* testsuite/18_support/bad_exception/23591_thread-1.c: ...here.

* testsuite/18_support/14026.cc: Move...
* testsuite/18_support/uncaught_exception/14026.cc: ...here.

From-SVN: r125267

13 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/18_support/14026.cc [deleted file]
libstdc++-v3/testsuite/18_support/bad_alloc/what.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/bad_cast/what.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/bad_exception/23591_thread-1.c [moved from libstdc++-v3/testsuite/19_diagnostics/bad_exception/23591_thread-1.c with 100% similarity]
libstdc++-v3/testsuite/18_support/bad_exception/what.cc [moved from libstdc++-v3/testsuite/18_support/14493.cc with 81% similarity]
libstdc++-v3/testsuite/18_support/bad_typeid/what.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/exception/what.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc [new file with mode: 0644]
libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/19_diagnostics/logic_error/what-big.cc [new file with mode: 0644]
libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc
libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc [new file with mode: 0644]

index 463cbf6304cf9daf6f1164f5349bd88ff6aaad87..6507c5f63aafd4bcf76f3e70947580ecc5549b75 100644 (file)
@@ -1,3 +1,23 @@
+2007-06-01  Benjamin Kosnik  <bkoz@redhat.com>
+       
+       * testsuite/19_diagnostics/logic_error/what-big.cc: New.
+       * testsuite/19_diagnostics/logic_error/what-3.cc: Same.
+       * testsuite/19_diagnostics/runtime_error/what-big.cc: Same.
+       * testsuite/19_diagnostics/runtime_error/what-3.cc: Same.
+
+       * testsuite/18_support/14493.cc: Break into...
+       * testsuite/18_support/exception/what.cc: ...this.
+       * testsuite/18_support/bad_cast/what.cc: ...this.
+       * testsuite/18_support/bad_alloc/what.cc: ...this.
+       * testsuite/18_support/bad_typeid/what.cc: ...this.
+       * testsuite/18_support/bad_exception/what.cc: ...this.
+
+       * testsuite/19_diagnostics/bad_exception/23591_thread-1.c: Move...
+       * testsuite/18_support/bad_exception/23591_thread-1.c: ...here.
+
+       * testsuite/18_support/14026.cc: Move...
+       * testsuite/18_support/uncaught_exception/14026.cc: ...here.
+
 2007-06-01  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/ext/throw_allocator.h (__throw_allocator::allocate):
diff --git a/libstdc++-v3/testsuite/18_support/14026.cc b/libstdc++-v3/testsuite/18_support/14026.cc
deleted file mode 100644 (file)
index 103ac64..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// PR 14026
-// 18.6.4 uncaught_exception
-
-#include <cstdlib>
-#include <exception>
-#include <testsuite_hooks.h>
-
-static void
-no_uncaught ()
-{
-  if (std::uncaught_exception ())
-    abort ();
-}
-
-int
-main ()
-{
-  try
-    {
-      throw 1;
-    }
-  catch (...)
-    {
-      try
-        {
-          throw;
-        }
-      catch (...)
-        {
-          no_uncaught ();
-        }
-    }
-  no_uncaught ();
-}
diff --git a/libstdc++-v3/testsuite/18_support/bad_alloc/what.cc b/libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
new file mode 100644 (file)
index 0000000..3beb3bd
--- /dev/null
@@ -0,0 +1,41 @@
+// 2007-01-30  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+#include <typeinfo>
+#include <exception>
+#include <cstring>
+#include <testsuite_hooks.h>
+
+// libstdc++/14493
+void test01() 
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  bad_alloc ba;
+  VERIFY( !strcmp(ba.what(), "std::bad_alloc") );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/18_support/bad_cast/what.cc b/libstdc++-v3/testsuite/18_support/bad_cast/what.cc
new file mode 100644 (file)
index 0000000..e22495f
--- /dev/null
@@ -0,0 +1,41 @@
+// 2007-01-30  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+#include <typeinfo>
+#include <exception>
+#include <cstring>
+#include <testsuite_hooks.h>
+
+// libstdc++/14493
+void test01() 
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  bad_cast bc;
+  VERIFY( !strcmp(bc.what(), "std::bad_cast") );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
similarity index 81%
rename from libstdc++-v3/testsuite/18_support/14493.cc
rename to libstdc++-v3/testsuite/18_support/bad_exception/what.cc
index 188bad7d4975540ceea9d0376abe316b71fbd2f8..a18bafe7787ba62a8dd671e5749bc685e747ca61 100644 (file)
@@ -30,18 +30,6 @@ void test01()
   bool test __attribute__((unused)) = true;
   using namespace std;
 
-  bad_alloc ba;
-  VERIFY( !strcmp(ba.what(), "std::bad_alloc") );
-
-  bad_cast bc;
-  VERIFY( !strcmp(bc.what(), "std::bad_cast") );
-
-  bad_typeid bt;
-  VERIFY( !strcmp(bt.what(), "std::bad_typeid") );
-
-  exception e;
-  VERIFY( !strcmp(e.what(), "std::exception") );
-
   bad_exception be;
   VERIFY( !strcmp(be.what(), "std::bad_exception") );
 }
diff --git a/libstdc++-v3/testsuite/18_support/bad_typeid/what.cc b/libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
new file mode 100644 (file)
index 0000000..4e8d9a8
--- /dev/null
@@ -0,0 +1,41 @@
+// 2007-01-30  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+#include <typeinfo>
+#include <exception>
+#include <cstring>
+#include <testsuite_hooks.h>
+
+// libstdc++/14493
+void test01() 
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  bad_typeid bt;
+  VERIFY( !strcmp(bt.what(), "std::bad_typeid") );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/18_support/exception/what.cc b/libstdc++-v3/testsuite/18_support/exception/what.cc
new file mode 100644 (file)
index 0000000..d328bb7
--- /dev/null
@@ -0,0 +1,41 @@
+// 2007-01-30  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+#include <typeinfo>
+#include <exception>
+#include <cstring>
+#include <testsuite_hooks.h>
+
+// libstdc++/14493
+void test01() 
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  exception e;
+  VERIFY( !strcmp(e.what(), "std::exception") );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc b/libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc
new file mode 100644 (file)
index 0000000..d694890
--- /dev/null
@@ -0,0 +1,54 @@
+// Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// PR 14026
+// 18.6.4 uncaught_exception
+
+#include <cstdlib>
+#include <exception>
+#include <testsuite_hooks.h>
+
+static void
+no_uncaught ()
+{
+  if (std::uncaught_exception())
+    abort();
+}
+
+int
+main()
+{
+  try
+    {
+      throw 1;
+    }
+  catch (...)
+    {
+      try
+        {
+          throw;
+        }
+      catch (...)
+        {
+          no_uncaught ();
+        }
+    }
+  no_uncaught();
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc b/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc
new file mode 100644 (file)
index 0000000..4dbad0d
--- /dev/null
@@ -0,0 +1,69 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2007
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <string>
+#include <stdexcept>
+#include <cstring>
+#include <testsuite_hooks.h>
+
+// test copy ctors, assignment operators, and persistence of member string data
+// libstdc++/1972
+// via Greg Bumgardner <bumgard@roguewave.com>
+void allocate_on_stack(void) 
+{
+  const size_t num = 512;
+  __extension__ char array[num];
+  for (size_t i = 0; i < num; i++) 
+    array[i]=0;
+}
+
+void test04()
+{
+  bool test __attribute__((unused)) = true;
+  const std::string s("CA ISO emergency once again:immediate power down");
+  const char* strlit1 = "wish I lived in Palo Alto";
+  const char* strlit2 = "...or Santa Barbara";
+  std::logic_error obj1(s);
+  
+  // block 01
+  {
+    const std::string s2(strlit1);
+    std::logic_error obj2(s2);
+    obj1 = obj2;
+  }
+  allocate_on_stack();
+  VERIFY( std::strcmp(strlit1, obj1.what()) == 0 ); 
+
+  // block 02
+  {
+    const std::string s3(strlit2);
+    std::logic_error obj3 = std::logic_error(s3);
+    obj1 = obj3;
+  }
+  allocate_on_stack();     
+  VERIFY( std::strcmp(strlit2, obj1.what()) == 0 ); 
+}
+
+int main(void)
+{
+  test04();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-big.cc b/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-big.cc
new file mode 100644 (file)
index 0000000..681e2a3
--- /dev/null
@@ -0,0 +1,41 @@
+// 2007-05-29 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+#include <string>
+#include <stdexcept>
+#include <testsuite_hooks.h>
+
+// Can construct and return 10k character error string.
+void test01()
+{
+  typedef std::logic_error test_type;
+
+  bool test __attribute__((unused)) = true;
+  const std::string xxx(10000, 'x');
+  test_type t(xxx);
+  VERIFY( std::strcmp(t.what(), xxx.c_str()) == 0 );
+}
+
+int main(void)
+{
+  test01();
+  return 0;
+}
index 04b85c0c5fe9db00f5601bbfe357af5a2036105e..63cb48163228c10c4618aa3f1ceba39fb22d56f2 100644 (file)
@@ -26,7 +26,7 @@
 #include <cstring>
 #include <testsuite_hooks.h>
 
-// test copy ctors and assignment operators
+// test copy ctors, assignment operators, and persistence of member string data
 // libstdc++/1972
 // via Greg Bumgardner <bumgard@roguewave.com>
 void allocate_on_stack(void) 
@@ -36,6 +36,7 @@ void allocate_on_stack(void)
   for (size_t i = 0; i < num; i++) 
     array[i]=0;
 }
+
 void test04()
 {
   bool test __attribute__((unused)) = true;
diff --git a/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc
new file mode 100644 (file)
index 0000000..c0ce964
--- /dev/null
@@ -0,0 +1,41 @@
+// 2007-05-29 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+#include <string>
+#include <stdexcept>
+#include <testsuite_hooks.h>
+
+// Can construct and return 10k character error string.
+void test01()
+{
+  typedef std::runtime_error test_type;
+
+  bool test __attribute__((unused)) = true;
+  const std::string xxx(10000, 'x');
+  test_type t(xxx);
+  VERIFY( std::strcmp(t.what(), xxx.c_str()) == 0 );
+}
+
+int main(void)
+{
+  test01();
+  return 0;
+}
This page took 0.08698 seconds and 5 git commands to generate.