This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[v3] testsuite preparation for 19_diagnostics



... just the cleanups and prep work in the system_error patch. This seems non-controversial.


tested x86/linux

-benjamin
 2007-05-11  Benjamin Kosnik  <bkoz@redhat.com>

       * include/std/stdexcept: Tweak spacing.

        * testsuite/19_diagnostics/stdexceptions.cc: Break into...
        * testsuite/19_diagnostics/bad_exception: ...this. Populate.
        * testsuite/19_diagnostics/logic_error: ... this.
        * testsuite/19_diagnostics/logic_error/what-1.cc: ...this.
        * testsuite/19_diagnostics/logic_error/what-2.cc: ...this.
        * testsuite/19_diagnostics/runtime_error: ...this.
        * testsuite/19_diagnostics/runtime_error/what-1.cc: ...this.
        * testsuite/19_diagnostics/runtime_error/what-2.cc: ...this.
        * testsuite/19_diagnostics/runtime_error/what-3.cc: ...this.
        * testsuite/19_diagnostics/23591_thread-1.c: Move...
        * testsuite/19_diagnostics/bad_exception/23591_thread-1.c: ...here.


Index: include/std/stdexcept
===================================================================
--- include/std/stdexcept	(revision 124618)
+++ include/std/stdexcept	(working copy)
@@ -1,6 +1,6 @@
 // Standard exception classes  -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005, 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
@@ -57,7 +57,7 @@
   public:
     /** Takes a character string describing the error.  */
     explicit 
-    logic_error(const string&  __arg);
+    logic_error(const string& __arg);
 
     virtual 
     ~logic_error() throw();
@@ -73,14 +73,14 @@
   class domain_error : public logic_error 
   {
   public:
-    explicit domain_error(const string&  __arg);
+    explicit domain_error(const string& __arg);
   };
 
   /** Thrown to report invalid arguments to functions.  */
   class invalid_argument : public logic_error 
   {
   public:
-    explicit invalid_argument(const string&  __arg);
+    explicit invalid_argument(const string& __arg);
   };
 
   /** Thrown when an object is constructed that would exceed its maximum
@@ -88,7 +88,7 @@
   class length_error : public logic_error 
   {
   public:
-    explicit length_error(const string&  __arg);
+    explicit length_error(const string& __arg);
   };
 
   /** This represents an argument whose value is not within the expected
@@ -96,7 +96,7 @@
   class out_of_range : public logic_error 
   {
   public:
-    explicit out_of_range(const string&  __arg);
+    explicit out_of_range(const string& __arg);
   };
 
   /** Runtime errors represent problems outside the scope of a program;
@@ -111,7 +111,7 @@
   public:
     /** Takes a character string describing the error.  */
     explicit 
-    runtime_error(const string&  __arg);
+    runtime_error(const string& __arg);
 
     virtual 
     ~runtime_error() throw();
@@ -126,21 +126,21 @@
   class range_error : public runtime_error 
   {
   public:
-    explicit range_error(const string&  __arg);
+    explicit range_error(const string& __arg);
   };
 
   /** Thrown to indicate arithmetic overflow.  */
   class overflow_error : public runtime_error 
   {
   public:
-    explicit overflow_error(const string&  __arg);
+    explicit overflow_error(const string& __arg);
   };
 
   /** Thrown to indicate arithmetic underflow.  */
   class underflow_error : public runtime_error 
   {
   public:
-    explicit underflow_error(const string&  __arg);
+    explicit underflow_error(const string& __arg);
   };
 
 _GLIBCXX_END_NAMESPACE
Index: testsuite/19_diagnostics/stdexceptions.cc
===================================================================
--- testsuite/19_diagnostics/stdexceptions.cc	(revision 124618)
+++ testsuite/19_diagnostics/stdexceptions.cc	(working copy)
@@ -1,116 +0,0 @@
-// 2001-02-26 Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 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.
-
-// 19.1 Exception classes
-
-#include <string>
-#include <cstring>
-#include <stdexcept>
-#include <testsuite_hooks.h>
-
-// libstdc++/1972
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  std::string s("lack of sunlight, no water error");
-
-  // 1
-  std::logic_error obj = std::logic_error(s);
-
-  // 2
-  // std::logic_error obj((std::string)strlit);
-
-  VERIFY( std::strcmp(obj.what(), s.data()) == 0 );
-}
-
-void test02()
-{
-  bool test __attribute__((unused)) = true;
-  std::string s("lack of sunlight error");
-  std::domain_error x(s);
-  
-  VERIFY( std::strcmp(x.what(), s.data()) == 0 );
-}
-
-// libstdc++/2089
-class fuzzy_logic : public std::logic_error
-{
-public:
-  fuzzy_logic() : std::logic_error("whoa") { }
-};
-
-void test03()
-{
-  bool test __attribute__((unused)) = true;
-  try
-    { throw fuzzy_logic(); }
-  catch(const fuzzy_logic& obj)
-    { VERIFY( std::strcmp("whoa", obj.what()) == 0 ); }
-  catch(...)
-    { VERIFY( false ); }
-}
-
-// test copy ctors and assignment operators
-// 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::runtime_error obj1(s);
-  
-  // block 01
-  {
-    const std::string s2(strlit1);
-    std::runtime_error obj2(s2);
-    obj1 = obj2;
-  }
-  allocate_on_stack();
-  VERIFY( std::strcmp(strlit1, obj1.what()) == 0 ); 
-
-  // block 02
-  {
-    const std::string s3(strlit2);
-    std::runtime_error obj3 = std::runtime_error(s3);
-    obj1 = obj3;
-  }
-  allocate_on_stack();     
-  VERIFY( std::strcmp(strlit2, obj1.what()) == 0 ); 
-}
-
-int main(void)
-{
-  test01();
-  test02();
-  test03();
-  test04();
-
-  return 0;
-}
Index: testsuite/19_diagnostics/logic_error/what-1.cc
===================================================================
--- testsuite/19_diagnostics/logic_error/what-1.cc	(revision 0)
+++ testsuite/19_diagnostics/logic_error/what-1.cc	(revision 0)
@@ -0,0 +1,57 @@
+// 2001-02-26 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 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.
+
+// 19.1 Exception classes
+
+#include <string>
+#include <stdexcept>
+#include <testsuite_hooks.h>
+
+// libstdc++/1972
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  std::string s("lack of sunlight, no water error");
+
+  // 1
+  std::logic_error obj1 = std::logic_error(s);
+
+  // 2
+  std::logic_error obj2(s);
+
+  VERIFY( std::strcmp(obj1.what(), s.data()) == 0 );
+  VERIFY( std::strcmp(obj2.what(), s.data()) == 0 );
+}
+
+void test02()
+{
+  bool test __attribute__((unused)) = true;
+  std::string s("lack of sunlight error");
+  std::domain_error x(s);
+  
+  VERIFY( std::strcmp(x.what(), s.data()) == 0 );
+}
+
+int main(void)
+{
+  test01();
+  test02();
+  return 0;
+}
Index: testsuite/19_diagnostics/logic_error/what-2.cc
===================================================================
--- testsuite/19_diagnostics/logic_error/what-2.cc	(revision 0)
+++ testsuite/19_diagnostics/logic_error/what-2.cc	(revision 0)
@@ -0,0 +1,49 @@
+// 2001-02-26 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 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.
+
+// 19.1 Exception classes
+
+#include <string>
+#include <stdexcept>
+#include <testsuite_hooks.h>
+
+// libstdc++/2089
+class fuzzy_logic : public std::logic_error
+{
+public:
+  fuzzy_logic() : std::logic_error("whoa") { }
+};
+
+void test03()
+{
+  bool test __attribute__((unused)) = true;
+  try
+    { throw fuzzy_logic(); }
+  catch(const fuzzy_logic& obj)
+    { VERIFY( std::strcmp("whoa", obj.what()) == 0 ); }
+  catch(...)
+    { VERIFY( false ); }
+}
+
+int main(void)
+{
+  test03();
+  return 0;
+}
Index: testsuite/19_diagnostics/23591_thread-1.c
===================================================================
--- testsuite/19_diagnostics/23591_thread-1.c	(revision 124618)
+++ testsuite/19_diagnostics/23591_thread-1.c	(working copy)
@@ -1,63 +0,0 @@
-// { dg-require-sharedlib "" }
-// { dg-options "-g -O2 -pthread -ldl -x c" { target *-*-linux* } }
-
-// Copyright (C) 2005 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 <pthread.h>
-#include <dlfcn.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-// NB: This must be compiled and linked as a "C" executable.
-static void* run(void* arg)
-{
-  typedef void (*function_type) (void);
-  void* lib;
-  void (*cb)();
-
-  lib = dlopen("./testsuite_shared.so", RTLD_NOW);
-  if (lib == NULL)
-    {
-      printf("dlopen failed: %s\n", strerror(errno));
-      return NULL;
-    }
-  cb = (function_type) dlsym(lib, "try_throw_exception");
-  if (cb == NULL)
-    {
-      printf("dlsym failed: %s\n", strerror(errno));
-      return NULL;
-    }
-  cb();
-  dlclose(lib);
-  return NULL;
-}
-
-// libstdc++/23591
-int main(void)
-{
-  pthread_t pt;
-
-  if (pthread_create(&pt, NULL, &run, NULL) != 0)
-    return 1;
-  if (pthread_join(pt, NULL) != 0)
-    return 1;
-
-  return 0;
-}
Index: testsuite/19_diagnostics/runtime_error/what-1.cc
===================================================================
--- testsuite/19_diagnostics/runtime_error/what-1.cc	(revision 0)
+++ testsuite/19_diagnostics/runtime_error/what-1.cc	(revision 0)
@@ -0,0 +1,57 @@
+// 2001-02-26 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 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.
+
+// 19.1 Exception classes
+
+#include <string>
+#include <stdexcept>
+#include <testsuite_hooks.h>
+
+// libstdc++/1972
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  std::string s("lack of sunlight, no water error");
+
+  // 1
+  std::runtime_error obj1 = std::runtime_error(s);
+
+  // 2
+  std::runtime_error obj2(s);
+
+  VERIFY( std::strcmp(obj1.what(), s.data()) == 0 );
+  VERIFY( std::strcmp(obj2.what(), s.data()) == 0 );
+}
+
+void test02()
+{
+  bool test __attribute__((unused)) = true;
+  std::string s("lack of sunlight error");
+  std::range_error x(s);
+  
+  VERIFY( std::strcmp(x.what(), s.data()) == 0 );
+}
+
+int main(void)
+{
+  test01();
+  test02();
+  return 0;
+}
Index: testsuite/19_diagnostics/runtime_error/what-2.cc
===================================================================
--- testsuite/19_diagnostics/runtime_error/what-2.cc	(revision 0)
+++ testsuite/19_diagnostics/runtime_error/what-2.cc	(revision 0)
@@ -0,0 +1,49 @@
+// 2001-02-26 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 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.
+
+// 19.1 Exception classes
+
+#include <string>
+#include <stdexcept>
+#include <testsuite_hooks.h>
+
+// libstdc++/2089
+class fuzzy_logic : public std::runtime_error
+{
+public:
+  fuzzy_logic() : std::runtime_error("whoa") { }
+};
+
+void test03()
+{
+  bool test __attribute__((unused)) = true;
+  try
+    { throw fuzzy_logic(); }
+  catch(const fuzzy_logic& obj)
+    { VERIFY( std::strcmp("whoa", obj.what()) == 0 ); }
+  catch(...)
+    { VERIFY( false ); }
+}
+
+int main(void)
+{
+  test03();
+  return 0;
+}
Index: testsuite/19_diagnostics/runtime_error/what-3.cc
===================================================================
--- testsuite/19_diagnostics/runtime_error/what-3.cc	(revision 0)
+++ testsuite/19_diagnostics/runtime_error/what-3.cc	(working copy)
@@ -24,48 +24,6 @@
 #include <stdexcept>
 #include <testsuite_hooks.h>
 
-// libstdc++/1972
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  std::string s("lack of sunlight, no water error");
-
-  // 1
-  std::logic_error obj = std::logic_error(s);
-
-  // 2
-  // std::logic_error obj((std::string)strlit);
-
-  VERIFY( std::strcmp(obj.what(), s.data()) == 0 );
-}
-
-void test02()
-{
-  bool test __attribute__((unused)) = true;
-  std::string s("lack of sunlight error");
-  std::domain_error x(s);
-  
-  VERIFY( std::strcmp(x.what(), s.data()) == 0 );
-}
-
-// libstdc++/2089
-class fuzzy_logic : public std::logic_error
-{
-public:
-  fuzzy_logic() : std::logic_error("whoa") { }
-};
-
-void test03()
-{
-  bool test __attribute__((unused)) = true;
-  try
-    { throw fuzzy_logic(); }
-  catch(const fuzzy_logic& obj)
-    { VERIFY( std::strcmp("whoa", obj.what()) == 0 ); }
-  catch(...)
-    { VERIFY( false ); }
-}
-
 // test copy ctors and assignment operators
 // libstdc++/1972
 // via Greg Bumgardner <bumgard@roguewave.com>
@@ -105,10 +63,6 @@
 
 int main(void)
 {
-  test01();
-  test02();
-  test03();
   test04();
-
   return 0;
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]