+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.
// { 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
#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;
{
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');
/*
{
test = false;
VERIFY( test );
- unlink(name);
- exit(-1);
}
unlink(name);
+
+ return test;
}
int
main()
{
- test_04();
- return 0;
+ return !test_04();
}
-
-
// { 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
#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;
{
filebuf fbin;
fbin.open(name, ios_base::in);
- s1.wait ();
+ s1.wait();
fbin.close();
- s2.signal ();
+ s2.signal();
exit(0);
}
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();
}
// { 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
#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;
fb.open(name, ios_base::out);
fb.sputc('S');
fb.pubsync();
- s1.signal ();
- s2.wait ();
+ s1.signal();
+ s2.wait();
fb.close();
exit(0);
}
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();
}
// 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
#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;
filebuf fbin;
fbin.open(name, ios_base::in);
}
- s1.signal ();
+ s1.signal();
exit(0);
}
VERIFY( ret != NULL );
VERIFY( fb.is_open() );
- s1.wait ();
+ s1.wait();
try
{
catch (std::exception&)
{
}
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}
// 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>
#include <sys/stat.h>
// libstdc++/26777
-void test01()
+bool test01()
{
using namespace std;
using namespace __gnu_test;
fbin.close();
VERIFY( oss.str() == "Whatever" );
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}
#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
// libstdc++/10097
// filebuf::underflow drops characters.
-void test16()
+bool test16()
{
using namespace std;
using namespace __gnu_test;
UnderBuf fb;
fb.open(name, ios_base::in);
-
+
fb.sgetc();
streamsize n = fb.pub_showmanyc();
fb.close();
s1.signal();
s2.wait();
+
+ return test;
}
int main()
{
- test16();
- return 0;
+ return !test16();
}
// 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
#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;
{
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!
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();
}
// 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>
// 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;
if (child == 0)
{
FILE* file = fopen(name, "r+");
- VERIFY (file != NULL);
+ VERIFY( file != NULL );
fputs("Whatever\n", file);
fflush(file);
s1.signal();
VERIFY( c5 == c4 );
s2.signal();
s1.wait();
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}
// 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
#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;
unlink(name);
mkfifo(name, S_IRWXU);
semaphore s1;
-
+
int child = fork();
VERIFY( child != -1 );
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();
}
// 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>
// 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;
VERIFY( c5 != WEOF );
VERIFY( c5 == c4 );
s2.signal();
- s1.wait();
+ s1.wait();
+
+ return test;
}
int main()
{
- test01();
- return 0;
+ return !test01();
}