summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-03-28 15:46:49 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-03-28 15:46:49 (GMT)
commitf53a1ef582494458301b97bf6e546be52d7ff7e8 (patch)
tree7571b5cbcbd8a8f1dd1c966c9045b6cb69f0e295 /3rdParty/CppUnit/src/include/cppunit/portability
parent638345680d72ca6acaf123f2c8c1c391f696e371 (diff)
downloadswift-f53a1ef582494458301b97bf6e546be52d7ff7e8.zip
swift-f53a1ef582494458301b97bf6e546be52d7ff7e8.tar.bz2
Moving submodule contents back.
Diffstat (limited to '3rdParty/CppUnit/src/include/cppunit/portability')
-rw-r--r--3rdParty/CppUnit/src/include/cppunit/portability/CppUnitDeque.h25
-rw-r--r--3rdParty/CppUnit/src/include/cppunit/portability/CppUnitMap.h29
-rw-r--r--3rdParty/CppUnit/src/include/cppunit/portability/CppUnitSet.h28
-rw-r--r--3rdParty/CppUnit/src/include/cppunit/portability/CppUnitVector.h25
-rw-r--r--3rdParty/CppUnit/src/include/cppunit/portability/Stream.h347
5 files changed, 454 insertions, 0 deletions
diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitDeque.h b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitDeque.h
new file mode 100644
index 0000000..bbab21f
--- /dev/null
+++ b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitDeque.h
@@ -0,0 +1,25 @@
+#ifndef CPPUNIT_PORTABILITY_CPPUNITDEQUE_H
+#define CPPUNIT_PORTABILITY_CPPUNITDEQUE_H
+
+// The technic used is similar to the wrapper of STLPort.
+
+#include <cppunit/Portability.h>
+#include <deque>
+
+
+#if CPPUNIT_STD_NEED_ALLOCATOR
+
+template<class T>
+class CppUnitDeque : public std::deque<T,CPPUNIT_STD_ALLOCATOR>
+{
+public:
+};
+
+#else // CPPUNIT_STD_NEED_ALLOCATOR
+
+#define CppUnitDeque std::deque
+
+#endif
+
+#endif // CPPUNIT_PORTABILITY_CPPUNITDEQUE_H
+
diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitMap.h b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitMap.h
new file mode 100644
index 0000000..0cdc723
--- /dev/null
+++ b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitMap.h
@@ -0,0 +1,29 @@
+#ifndef CPPUNIT_PORTABILITY_CPPUNITMAP_H
+#define CPPUNIT_PORTABILITY_CPPUNITMAP_H
+
+// The technic used is similar to the wrapper of STLPort.
+
+#include <cppunit/Portability.h>
+#include <functional>
+#include <map>
+
+
+#if CPPUNIT_STD_NEED_ALLOCATOR
+
+template<class Key, class T>
+class CppUnitMap : public std::map<Key
+ ,T
+ ,std::less<Key>
+ ,CPPUNIT_STD_ALLOCATOR>
+{
+public:
+};
+
+#else // CPPUNIT_STD_NEED_ALLOCATOR
+
+#define CppUnitMap std::map
+
+#endif
+
+#endif // CPPUNIT_PORTABILITY_CPPUNITMAP_H
+
diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitSet.h b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitSet.h
new file mode 100644
index 0000000..18b8662
--- /dev/null
+++ b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitSet.h
@@ -0,0 +1,28 @@
+#ifndef CPPUNIT_PORTABILITY_CPPUNITSET_H
+#define CPPUNIT_PORTABILITY_CPPUNITSET_H
+
+// The technic used is similar to the wrapper of STLPort.
+
+#include <cppunit/Portability.h>
+#include <functional>
+#include <set>
+
+
+#if CPPUNIT_STD_NEED_ALLOCATOR
+
+template<class T>
+class CppUnitSet : public std::set<T
+ ,std::less<T>
+ ,CPPUNIT_STD_ALLOCATOR>
+{
+public:
+};
+
+#else // CPPUNIT_STD_NEED_ALLOCATOR
+
+#define CppUnitSet std::set
+
+#endif
+
+#endif // CPPUNIT_PORTABILITY_CPPUNITSET_H
+
diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitVector.h b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitVector.h
new file mode 100644
index 0000000..6666a63
--- /dev/null
+++ b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitVector.h
@@ -0,0 +1,25 @@
+#ifndef CPPUNIT_PORTABILITY_CPPUNITVECTOR_H
+#define CPPUNIT_PORTABILITY_CPPUNITVECTOR_H
+
+// The technic used is similar to the wrapper of STLPort.
+
+#include <cppunit/Portability.h>
+#include <vector>
+
+
+#if CPPUNIT_STD_NEED_ALLOCATOR
+
+template<class T>
+class CppUnitVector : public std::vector<T,CPPUNIT_STD_ALLOCATOR>
+{
+public:
+};
+
+#else // CPPUNIT_STD_NEED_ALLOCATOR
+
+#define CppUnitVector std::vector
+
+#endif
+
+#endif // CPPUNIT_PORTABILITY_CPPUNITVECTOR_H
+
diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/Stream.h b/3rdParty/CppUnit/src/include/cppunit/portability/Stream.h
new file mode 100644
index 0000000..e9beb8c
--- /dev/null
+++ b/3rdParty/CppUnit/src/include/cppunit/portability/Stream.h
@@ -0,0 +1,347 @@
+#ifndef CPPUNIT_PORTABILITY_STREAM_H_INCLUDED
+#define CPPUNIT_PORTABILITY_STREAM_H_INCLUDED
+
+// This module define:
+// Type CppUT::Stream (either std::stream or a custom type)
+// Type CppUT::OStringStream (eitjer std::ostringstream, older alternate or a custom type)
+// Functions stdCOut() & stdCErr() which returns a reference on cout & cerr stream (or our
+// custom stream).
+
+#include <cppunit/Portability.h>
+
+
+#if defined( CPPUNIT_NO_STREAM )
+
+#include <string>
+#include <stdio.h>
+#include <string.h>
+
+CPPUNIT_NS_BEGIN
+
+class StreamBuffer
+{
+public:
+ virtual ~StreamBuffer() {}
+
+ virtual void write( const char *text, unsigned int length ) = 0;
+
+ virtual void flush() {}
+};
+
+
+class StringStreamBuffer : public StreamBuffer
+{
+public:
+ std::string str() const
+ {
+ return str_;
+ }
+
+public: // overridden from StreamBuffer
+ void write( const char *text, unsigned int length )
+ {
+ str_.append( text, length );
+ }
+
+private:
+ std::string str_;
+};
+
+
+class FileStreamBuffer : public StreamBuffer
+{
+public:
+ FileStreamBuffer( FILE *file )
+ : file_( file )
+ {
+ }
+
+ FILE *file() const
+ {
+ return file_;
+ }
+
+public: // overridden from StreamBuffer
+ void write( const char *text, unsigned int length )
+ {
+ if ( file_ )
+ fwrite( text, sizeof(char), length, file_ );
+ }
+
+ void flush()
+ {
+ if ( file_ )
+ fflush( file_ );
+ }
+
+private:
+ FILE *file_;
+};
+
+
+class OStream
+{
+public:
+ OStream()
+ : buffer_( 0 )
+ {
+ }
+
+ OStream( StreamBuffer *buffer )
+ : buffer_( buffer )
+ {
+ }
+
+ virtual ~OStream()
+ {
+ flush();
+ }
+
+ OStream &flush()
+ {
+ if ( buffer_ )
+ buffer_->flush();
+ return *this;
+ }
+
+ void setBuffer( StreamBuffer *buffer )
+ {
+ buffer_ = buffer;
+ }
+
+ OStream &write( const char *text, unsigned int length )
+ {
+ if ( buffer_ )
+ buffer_->write( text, length );
+ return *this;
+ }
+
+ OStream &write( const char *text )
+ {
+ return write( text, strlen(text) );
+ }
+
+ OStream &operator <<( bool v )
+ {
+ const char *out = v ? "true" : "false";
+ return write( out );
+ }
+
+ OStream &operator <<( short v )
+ {
+ char buffer[64];
+ sprintf( buffer, "%hd", v );
+ return write( buffer );
+ }
+
+ OStream &operator <<( unsigned short v )
+ {
+ char buffer[64];
+ sprintf( buffer, "%hu", v );
+ return write( buffer );
+ }
+
+ OStream &operator <<( int v )
+ {
+ char buffer[64];
+ sprintf( buffer, "%d", v );
+ return write( buffer );
+ }
+
+ OStream &operator <<( unsigned int v )
+ {
+ char buffer[64];
+ sprintf( buffer, "%u", v );
+ return write( buffer );
+ }
+
+ OStream &operator <<( long v )
+ {
+ char buffer[64];
+ sprintf( buffer, "%ld", v );
+ return write( buffer );
+ }
+
+ OStream &operator <<( unsigned long v )
+ {
+ char buffer[64];
+ sprintf( buffer, "%lu", v );
+ return write( buffer );
+ }
+
+ OStream &operator <<( float v )
+ {
+ char buffer[128];
+ sprintf( buffer, "%.16g", double(v) );
+ return write( buffer );
+ }
+
+ OStream &operator <<( double v )
+ {
+ char buffer[128];
+ sprintf( buffer, "%.16g", v );
+ return write( buffer );
+ }
+
+ OStream &operator <<( long double v )
+ {
+ char buffer[128];
+ sprintf( buffer, "%.16g", double(v) );
+ return write( buffer );
+ }
+
+ OStream &operator <<( const void *v )
+ {
+ char buffer[64];
+ sprintf( buffer, "%p", v );
+ return write( buffer );
+ }
+
+ OStream &operator <<( const char *v )
+ {
+ return write( v ? v : "NULL" );
+ }
+
+ OStream &operator <<( char c )
+ {
+ char buffer[16];
+ sprintf( buffer, "%c", c );
+ return write( buffer );
+ }
+
+ OStream &operator <<( const std::string &s )
+ {
+ return write( s.c_str(), s.length() );
+ }
+
+private:
+ StreamBuffer *buffer_;
+};
+
+
+class OStringStream : public OStream
+{
+public:
+ OStringStream()
+ : OStream( &buffer_ )
+ {
+ }
+
+ std::string str() const
+ {
+ return buffer_.str();
+ }
+
+private:
+ StringStreamBuffer buffer_;
+};
+
+
+class OFileStream : public OStream
+{
+public:
+ OFileStream( FILE *file )
+ : OStream( &buffer_ )
+ , buffer_( file )
+ , ownFile_( false )
+ {
+ }
+
+ OFileStream( const char *path )
+ : OStream( &buffer_ )
+ , buffer_( fopen( path, "wt" ) )
+ , ownFile_( true )
+ {
+ }
+
+ virtual ~OFileStream()
+ {
+ if ( ownFile_ && buffer_.file() )
+ fclose( buffer_.file() );
+ }
+
+private:
+ FileStreamBuffer buffer_;
+ bool ownFile_;
+};
+
+inline OStream &stdCOut()
+{
+ static OFileStream stream( stdout );
+ return stream;
+}
+
+inline OStream &stdCErr()
+{
+ static OFileStream stream( stderr );
+ return stream;
+}
+
+CPPUNIT_NS_END
+
+#elif CPPUNIT_HAVE_SSTREAM // #if defined( CPPUNIT_NO_STREAM )
+# include <sstream>
+# include <fstream>
+
+ CPPUNIT_NS_BEGIN
+ typedef std::ostringstream OStringStream; // The standard C++ way
+ typedef std::ofstream OFileStream;
+ CPPUNIT_NS_END
+
+
+#elif CPPUNIT_HAVE_CLASS_STRSTREAM
+# include <string>
+# if CPPUNIT_HAVE_STRSTREAM
+# include <strstream>
+# else // CPPUNIT_HAVE_STRSTREAM
+# include <strstream.h>
+# endif // CPPUNIT_HAVE_CLASS_STRSTREAM
+
+ CPPUNIT_NS_BEGIN
+
+ class OStringStream : public std::ostrstream
+ {
+ public:
+ std::string str()
+ {
+// (*this) << '\0';
+// std::string msg(std::ostrstream::str());
+// std::ostrstream::freeze(false);
+// return msg;
+// Alternative implementation that don't rely on freeze which is not
+// available on some platforms:
+ return std::string( std::ostrstream::str(), pcount() );
+ }
+ };
+
+ CPPUNIT_NS_END
+#else // CPPUNIT_HAVE_CLASS_STRSTREAM
+# error Cannot define CppUnit::OStringStream.
+#endif // #if defined( CPPUNIT_NO_STREAM )
+
+
+
+#if !defined( CPPUNIT_NO_STREAM )
+
+#include <iostream>
+
+ CPPUNIT_NS_BEGIN
+
+ typedef std::ostream OStream;
+
+ inline OStream &stdCOut()
+ {
+ return std::cout;
+ }
+
+ inline OStream &stdCErr()
+ {
+ return std::cerr;
+ }
+
+ CPPUNIT_NS_END
+
+#endif // #if !defined( CPPUNIT_NO_STREAM )
+
+#endif // CPPUNIT_PORTABILITY_STREAM_H_INCLUDED
+