summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-19 23:56:12 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-19 23:56:12 +0000
commitdfd22e84ef60ecc34cd504f9b975320282ead1e3 (patch)
tree9f50082ad9eef099320e0353073f66c05b6a7c02 /libstdc++-v3
parent3e6933a8abd39affc8c7ea9030052d76ff51e294 (diff)
downloadgcc-dfd22e84ef60ecc34cd504f9b975320282ead1e3.tar.gz
2006-05-19 Paolo Carlini <pcarlini@suse.de>
* testsuite/27_io/objects/wchar_t/9661-1.cc: Avoid leaking the semaphores if a VERIFY fails. * testsuite/27_io/objects/wchar_t/7.cc: Likewise. * testsuite/27_io/objects/char/9661-1.cc: Likewise. * testsuite/27_io/objects/char/7.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/char/26777.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/4879.cc: Likewise. * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113916 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog14
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc28
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc22
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc20
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc17
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc10
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc13
-rw-r--r--libstdc++-v3/testsuite/27_io/objects/char/7.cc19
-rw-r--r--libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc12
-rw-r--r--libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc17
-rw-r--r--libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc12
11 files changed, 121 insertions, 63 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index eeea743d59e..dc26e705130 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,17 @@
+2006-05-19 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/27_io/objects/wchar_t/9661-1.cc: Avoid leaking the
+ semaphores if a VERIFY fails.
+ * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
+ * testsuite/27_io/objects/char/9661-1.cc: Likewise.
+ * testsuite/27_io/objects/char/7.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/seekoff/char/26777.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/close/char/4879.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
+
2006-05-17 Paolo Carlini <pcarlini@suse.de>
* include/tr1/hashtable (hashtable<>::m_find): Remove; update callers.
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc
index cfbfc44adce..e976c370f8d 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc
@@ -1,7 +1,8 @@
// { dg-require-fork "" }
// { dg-require-mkfifo "" }
-// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+// 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
@@ -33,11 +34,15 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
+
+// No asserts, avoid leaking the semaphores if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
// libstdc++/2913, libstdc++/4879
// John Fardo <jfardo@laurelnetworks.com>, Brad Garcia <garsh@attbi.com>
-void
+bool
test_04()
{
using namespace __gnu_test;
@@ -60,20 +65,20 @@ test_04()
{
std::cerr << "failed to fork" << std::endl;
unlink(name);
- exit(-1);
+ return false;
}
else if (fval == 0)
{
std::ifstream ifs(name);
- s1.wait ();
+ s1.wait();
ifs.close();
- s2.signal ();
+ s2.signal();
exit(0);
}
std::ofstream ofs(name);
- s1.signal ();
- s2.wait ();
+ s1.signal();
+ s2.wait();
ofs.put('t');
/*
@@ -89,18 +94,15 @@ test_04()
{
test = false;
VERIFY( test );
- unlink(name);
- exit(-1);
}
unlink(name);
+
+ return test;
}
int
main()
{
- test_04();
- return 0;
+ return !test_04();
}
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc
index 21d7ae66aac..1b9c3ff90ec 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc
@@ -1,7 +1,8 @@
// { dg-require-fork "" }
// { dg-require-mkfifo "" }
-// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+// 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
@@ -32,10 +33,14 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
+
+// No asserts, avoid leaking the semaphores if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
// libstdc++/9964
-void test_07()
+bool test_07()
{
using namespace std;
using namespace __gnu_test;
@@ -56,9 +61,9 @@ void test_07()
{
filebuf fbin;
fbin.open(name, ios_base::in);
- s1.wait ();
+ s1.wait();
fbin.close();
- s2.signal ();
+ s2.signal();
exit(0);
}
@@ -66,18 +71,19 @@ void test_07()
filebuf* ret = fb.open(name, ios_base::in | ios_base::out);
VERIFY( ret != NULL );
VERIFY( fb.is_open() );
- s1.signal ();
- s2.wait ();
+ s1.signal();
+ s2.wait();
fb.sputc('a');
ret = fb.close();
VERIFY( ret != NULL );
VERIFY( !fb.is_open() );
+
+ return test;
}
int
main()
{
- test_07();
- return 0;
+ return !test_07();
}
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc
index 53998859a8c..f1649580fec 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc
@@ -2,7 +2,7 @@
// { dg-require-fork "" }
// { dg-require-mkfifo "" }
-// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005, 2006 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
@@ -28,10 +28,13 @@
#include <sys/types.h>
#include <sys/stat.h>
+// No asserts, avoid leaking the semaphores if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
// libstdc++/13171
-void test01()
+bool test01()
{
bool test __attribute__((unused)) = true;
using namespace std;
@@ -52,8 +55,8 @@ void test01()
fb.open(name, ios_base::out);
fb.sputc('S');
fb.pubsync();
- s1.signal ();
- s2.wait ();
+ s1.signal();
+ s2.wait();
fb.close();
exit(0);
}
@@ -61,17 +64,18 @@ void test01()
filebuf fb;
fb.pubimbue(loc_fr);
fb.open(name, ios_base::in);
- s1.wait ();
+ s1.wait();
VERIFY( fb.is_open() );
fb.pubimbue(loc_en);
filebuf::int_type c = fb.sgetc();
fb.close();
VERIFY( c == 'S' );
- s2.signal ();
+ s2.signal();
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc
index 586cdfe5d1f..14cfde77fbd 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc
@@ -4,7 +4,7 @@
// 2004-04-16 Petur Runolfsson <peturr02@ru.is>
-// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005, 2006 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
@@ -29,10 +29,14 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
+
+// No asserts, avoid leaking the semaphore if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
// libstdc++/14975
-void test01()
+bool test01()
{
using namespace std;
using namespace __gnu_test;
@@ -57,7 +61,7 @@ void test01()
filebuf fbin;
fbin.open(name, ios_base::in);
}
- s1.signal ();
+ s1.signal();
exit(0);
}
@@ -67,7 +71,7 @@ void test01()
VERIFY( ret != NULL );
VERIFY( fb.is_open() );
- s1.wait ();
+ s1.wait();
try
{
@@ -80,10 +84,11 @@ void test01()
catch (std::exception&)
{
}
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc
index 7312ce2639f..9cc973315a5 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc
@@ -21,6 +21,9 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// No asserts, avoid leaking the semaphores if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
#include <fstream>
#include <sstream>
@@ -31,7 +34,7 @@
#include <sys/stat.h>
// libstdc++/26777
-void test01()
+bool test01()
{
using namespace std;
using namespace __gnu_test;
@@ -77,10 +80,11 @@ void test01()
fbin.close();
VERIFY( oss.str() == "Whatever" );
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
index 345a6642556..ffc36a3fc07 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
@@ -30,6 +30,10 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
+
+// No asserts, avoid leaking the semaphores if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
class UnderBuf : public std::filebuf
@@ -46,7 +50,7 @@ public:
// libstdc++/10097
// filebuf::underflow drops characters.
-void test16()
+bool test16()
{
using namespace std;
using namespace __gnu_test;
@@ -84,7 +88,7 @@ void test16()
UnderBuf fb;
fb.open(name, ios_base::in);
-
+
fb.sgetc();
streamsize n = fb.pub_showmanyc();
@@ -101,10 +105,11 @@ void test16()
fb.close();
s1.signal();
s2.wait();
+
+ return test;
}
int main()
{
- test16();
- return 0;
+ return !test16();
}
diff --git a/libstdc++-v3/testsuite/27_io/objects/char/7.cc b/libstdc++-v3/testsuite/27_io/objects/char/7.cc
index 646ac666401..a90fa03a5b5 100644
--- a/libstdc++-v3/testsuite/27_io/objects/char/7.cc
+++ b/libstdc++-v3/testsuite/27_io/objects/char/7.cc
@@ -3,7 +3,7 @@
// 2003-04-26 Petur Runolfsson <peturr02@ru.is>
-// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005, 2006 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
@@ -30,10 +30,14 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
+
+// No asserts, avoid leaking the semaphore if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
// Check that cout.flush() is called when last ios_base::Init is destroyed.
-void test07()
+bool test07()
{
using namespace std;
using namespace __gnu_test;
@@ -54,8 +58,8 @@ void test07()
{
filebuf fbout;
fbout.open(name, ios_base::in|ios_base::out);
- s1.wait ();
- VERIFY ( fbout.is_open() );
+ VERIFY( fbout.is_open() );
+ s1.wait();
cout.rdbuf(&fbout);
fbout.sputc('a');
// NB: fbout is *not* destroyed here!
@@ -64,17 +68,18 @@ void test07()
filebuf fbin;
fbin.open(name, ios_base::in);
- s1.signal ();
+ s1.signal();
filebuf::int_type c = fbin.sbumpc();
VERIFY( c != filebuf::traits_type::eof() );
VERIFY( c == filebuf::traits_type::to_int_type('a') );
fbin.close();
+
+ return test;
}
int
main()
{
- test07();
- return 0;
+ return !test07();
}
diff --git a/libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc b/libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
index 6497f62a03a..47232826503 100644
--- a/libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
+++ b/libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
@@ -21,6 +21,9 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// No asserts, avoid leaking the semaphores if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
#include <cstdio>
#include <iostream>
@@ -33,7 +36,7 @@
// Check that cin.rdbuf()->sputbackc() puts characters back to stdin.
// If cin.rdbuf() is a filebuf, this succeeds when stdin is a regular
// file, but fails otherwise, hence the named fifo.
-void test01()
+bool test01()
{
using namespace std;
using namespace __gnu_test;
@@ -54,7 +57,7 @@ void test01()
if (child == 0)
{
FILE* file = fopen(name, "r+");
- VERIFY (file != NULL);
+ VERIFY( file != NULL );
fputs("Whatever\n", file);
fflush(file);
s1.signal();
@@ -85,10 +88,11 @@ void test01()
VERIFY( c5 == c4 );
s2.signal();
s1.wait();
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}
diff --git a/libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc b/libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc
index f1078cb7fa7..1e962d7eda4 100644
--- a/libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc
+++ b/libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc
@@ -3,7 +3,7 @@
// 2003-05-01 Petur Runolfsson <peturr02@ru.is>
-// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005, 2006 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
@@ -30,10 +30,14 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
+
+// No asserts, avoid leaking the semaphore if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
// Check that wcout.flush() is called when last ios_base::Init is destroyed.
-void test07()
+bool test07()
{
using namespace std;
using namespace __gnu_test;
@@ -46,7 +50,7 @@ void test07()
unlink(name);
mkfifo(name, S_IRWXU);
semaphore s1;
-
+
int child = fork();
VERIFY( child != -1 );
@@ -63,17 +67,18 @@ void test07()
wfilebuf fbin;
fbin.open(name, ios_base::in);
- s1.signal ();
+ s1.signal();
wfilebuf::int_type c = fbin.sbumpc();
VERIFY( c != wfilebuf::traits_type::eof() );
VERIFY( c == wfilebuf::traits_type::to_int_type(L'a') );
fbin.close();
+
+ return test;
}
int
main()
{
- test07();
- return 0;
+ return !test07();
}
diff --git a/libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc b/libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
index 5b3c231e2e5..beee4046a21 100644
--- a/libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
+++ b/libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
@@ -21,6 +21,9 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// No asserts, avoid leaking the semaphores if a VERIFY fails.
+#undef _GLIBCXX_ASSERT
+
#include <testsuite_hooks.h>
#include <cstdio>
#include <iostream>
@@ -33,7 +36,7 @@
// Check that wcin.rdbuf()->sputbackc() puts characters back to stdin.
// If wcin.rdbuf() is a filebuf, this succeeds when stdin is a regular
// file, but fails otherwise, hence the named fifo.
-void test01()
+bool test01()
{
using namespace std;
using namespace __gnu_test;
@@ -83,11 +86,12 @@ void test01()
VERIFY( c5 != WEOF );
VERIFY( c5 == c4 );
s2.signal();
- s1.wait();
+ s1.wait();
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}