You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2007/11/03 22:34:39 UTC
svn commit: r591695 - in
/activemq/activemq-cpp/decaf/trunk/src/test/decaf/io:
DataOutputStreamTest.cpp DataOutputStreamTest.h
Author: tabish
Date: Sat Nov 3 14:34:38 2007
New Revision: 591695
URL: http://svn.apache.org/viewvc?rev=591695&view=rev
Log:
http://issues.apache.org/activemq/browse/AMQCPP-103
http://issues.apache.org/activemq/browse/AMQCPP-136
Modified:
activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.cpp
activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.h
Modified: activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.cpp?rev=591695&r1=591694&r2=591695&view=diff
==============================================================================
--- activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.cpp (original)
+++ activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.cpp Sat Nov 3 14:34:38 2007
@@ -23,6 +23,233 @@
using namespace decaf::io;
using namespace decaf::util;
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testFlush() {
+
+ try {
+ os->writeInt(9087589);
+ os->flush();
+ openDataInputStream();
+ int c = is->readInt();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Failed to flush correctly", 9087589 == c);
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during flush test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testSize() {
+
+ try {
+ os->write( (unsigned char*)&testData[0], 0, 150 );
+ os->close();
+ openDataInputStream();
+ unsigned char rbuf[150];
+ is->read( rbuf, 0, 150 );
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect size returned", 150 == os->size());
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during write test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWrite1() {
+
+ try {
+ os->write( (unsigned char*)&testData[0], 0, 150 );
+ os->close();
+ openDataInputStream();
+ unsigned char* rbuf = new unsigned char[150];
+ is->read(rbuf, 0, 150);
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect bytes written",
+ string( (const char*)rbuf, 150 ) == testData.substr( 0, 150 ) );
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during write test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWrite2() {
+
+ try {
+ os->write( 't' );
+ os->close();
+ openDataInputStream();
+ char c = is->readChar();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect int written", 't' == c);
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during write test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteBoolean() {
+
+ try {
+ os->writeBoolean(true);
+ os->close();
+ openDataInputStream();
+ bool c = is->readBoolean();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect boolean written", c );
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeBoolean test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteByte() {
+ try {
+ os->writeByte( (unsigned char) 127 );
+ os->close();
+ openDataInputStream();
+ unsigned char c = is->readByte();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect unsigned char written", c == (unsigned char) 127);
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeByte test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteBytes() {
+
+ try {
+ os->writeBytes( testData );
+ os->close();
+ openDataInputStream();
+ std::vector<unsigned char> result( testData.size() );
+ is->read( result );
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect bytes written",
+ string( (const char*)&result[0], result.size() ) == testData );
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeBytes test : " + e.getMessage());
+ }
+
+ // regression test for HARMONY-1101
+ DataOutputStream tester(NULL);
+ tester.writeBytes("");
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteChar() {
+ try {
+ os->writeChar('T');
+ os->close();
+ openDataInputStream();
+ char c = is->readChar();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect char written", 'T' == c );
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeChar test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteChars() {
+
+ try {
+ os->writeChars( testData );
+ os->close();
+ openDataInputStream();
+ std::vector<unsigned char> result( testData.size() );
+ is->read( result );
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect bytes written",
+ string( (const char*)&result[0], result.size() ) == testData );
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeChars test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteDouble() {
+ try {
+ os->writeDouble(908755555456.98);
+ os->close();
+ openDataInputStream();
+ double c = is->readDouble();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect double written", 908755555456.98 == c);
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeDouble test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteFloat() {
+ try {
+ os->writeFloat(9087.456f);
+ os->close();
+ openDataInputStream();
+ float c = is->readFloat();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect float written", c == 9087.456f);
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeFloattest : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteInt() {
+ try {
+ os->writeInt(9087589);
+ os->close();
+ openDataInputStream();
+ int c = is->readInt();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect int written", 9087589 == c);
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeInt test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteLong() {
+ try {
+ os->writeLong(908755555456LL);
+ os->close();
+ openDataInputStream();
+ long long c = is->readLong();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect long written", 908755555456LL == c);
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeLong test" + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteShort() {
+ try {
+ os->writeShort((short) 9087);
+ os->close();
+ openDataInputStream();
+ short c = is->readShort();
+ is->close();
+ CPPUNIT_ASSERT_MESSAGE("Incorrect short written", 9087 == c);
+ } catch( IOException &e ) {
+ CPPUNIT_FAIL("Exception during writeShort test : " + e.getMessage());
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void DataOutputStreamTest::testWriteUTF() {
+ string testString = "test string one";
+ os->writeUTF( testString );
+ os->close();
+ openDataInputStream();
+ CPPUNIT_ASSERT_MESSAGE("Failed to write string in UTF format",
+ is->available() == testString.length() + 2 );
+ CPPUNIT_ASSERT_MESSAGE("Incorrect string returned",
+ is->readUTF() == testString );
+}
+
+////////////////////////////////////////////////////////////////////////////////
void DataOutputStreamTest::test(){
unsigned char byteVal = (unsigned char)'T';
Modified: activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.h?rev=591695&r1=591694&r2=591695&view=diff
==============================================================================
--- activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.h (original)
+++ activemq/activemq-cpp/decaf/trunk/src/test/decaf/io/DataOutputStreamTest.h Sat Nov 3 14:34:38 2007
@@ -23,7 +23,9 @@
#include <decaf/util/Endian.h>
#include <decaf/io/DataOutputStream.h>
+#include <decaf/io/DataInputStream.h>
#include <decaf/io/ByteArrayOutputStream.h>
+#include <decaf/io/ByteArrayInputStream.h>
namespace decaf{
namespace io{
@@ -32,15 +34,73 @@
CPPUNIT_TEST_SUITE( DataOutputStreamTest );
CPPUNIT_TEST( test );
+ CPPUNIT_TEST( testFlush );
+ CPPUNIT_TEST( testSize );
+ CPPUNIT_TEST( testWrite1 );
+ CPPUNIT_TEST( testWrite2 );
+ CPPUNIT_TEST( testWriteBoolean );
+ CPPUNIT_TEST( testWriteByte );
+ CPPUNIT_TEST( testWriteBytes );
+ CPPUNIT_TEST( testWriteChar );
+ CPPUNIT_TEST( testWriteChars );
+ CPPUNIT_TEST( testWriteDouble );
+ CPPUNIT_TEST( testWriteFloat );
+ CPPUNIT_TEST( testWriteInt );
+ CPPUNIT_TEST( testWriteLong );
+ CPPUNIT_TEST( testWriteShort );
+ CPPUNIT_TEST( testWriteUTF );
CPPUNIT_TEST_SUITE_END();
+ ByteArrayOutputStream* baos;
+ ByteArrayInputStream* bais;
+
+ DataOutputStream* os;
+ DataInputStream* is;
+
+ std::string testData;
+
public:
virtual ~DataOutputStreamTest(){}
- virtual void setUp(){}
- virtual void tearDown(){}
+ virtual void setUp(){
+ testData = "Test_All_Tests\nTest_decaf_io_BufferedInputStream\nTest_BufferedOutputStream\nTest_decaf_io_ByteArrayInputStream\nTest_decaf_io_ByteArrayOutputStream\nTest_decaf_io_DataInputStream\nTest_decaf_io_File\nTest_decaf_io_FileDescriptor\nTest_decaf_io_FileInputStream\nTest_decaf_io_FileNotFoundException\nTest_decaf_io_FileOutputStream\nTest_decaf_io_FilterInputStream\nTest_decaf_io_FilterOutputStream\nTest_decaf_io_InputStream\nTest_decaf_io_IOException\nTest_decaf_io_OutputStream\nTest_decaf_io_PrintStream\nTest_decaf_io_RandomAccessFile\nTest_decaf_io_SyncFailedException\nTest_decaf_lang_AbstractMethodError\nTest_decaf_lang_ArithmeticException\nTest_decaf_lang_ArrayIndexOutOfBoundsException\nTest_decaf_lang_ArrayStoreException\nTest_decaf_lang_Boolean\nTest_decaf_lang_Byte\nTest_decaf_lang_Character\nTest_decaf_lang_Class\nTest_decaf_lang_ClassCastException\nTest_decaf_lang_ClassCircularityError\nTest_decaf_lang_ClassFormatError\nTest_decaf_lang_ClassLoad
er\nTest_decaf_lang_ClassNotFoundException\nTest_decaf_lang_CloneNotSupportedException\nTest_decaf_lang_Double\nTest_decaf_lang_Error\nTest_decaf_lang_Exception\nTest_decaf_lang_ExceptionInInitializerError\nTest_decaf_lang_Float\nTest_decaf_lang_IllegalAccessError\nTest_decaf_lang_IllegalAccessException\nTest_decaf_lang_IllegalArgumentException\nTest_decaf_lang_IllegalMonitorStateException\nTest_decaf_lang_IllegalThreadStateException\nTest_decaf_lang_IncompatibleClassChangeError\nTest_decaf_lang_IndexOutOfBoundsException\nTest_decaf_lang_InstantiationError\nTest_decaf_lang_InstantiationException\nTest_decaf_lang_Integer\nTest_decaf_lang_InternalError\nTest_decaf_lang_InterruptedException\nTest_decaf_lang_LinkageError\nTest_decaf_lang_Long\nTest_decaf_lang_Math\nTest_decaf_lang_NegativeArraySizeException\nTest_decaf_lang_NoClassDefFoundError\nTest_decaf_lang_NoSuchFieldError\nTest_decaf_lang_NoSuchMethodError\nTest_decaf_lang_NullPointerException\nTest_decaf_lang_Number\nTest
_decaf_lang_NumberFormatException\nTest_decaf_lang_Object\nTest_decaf_lang_OutOfMemoryError\nTest_decaf_lang_RuntimeException\nTest_decaf_lang_SecurityManager\nTest_decaf_lang_Short\nTest_decaf_lang_StackOverflowError\nTest_decaf_lang_String\nTest_decaf_lang_StringBuffer\nTest_decaf_lang_StringIndexOutOfBoundsException\nTest_decaf_lang_System\nTest_decaf_lang_Thread\nTest_decaf_lang_ThreadDeath\nTest_decaf_lang_ThreadGroup\nTest_decaf_lang_Throwable\nTest_decaf_lang_UnknownError\nTest_decaf_lang_UnsatisfiedLinkError\nTest_decaf_lang_VerifyError\nTest_decaf_lang_VirtualMachineError\nTest_decaf_lang_vm_Image\nTest_decaf_lang_vm_MemorySegment\nTest_decaf_lang_vm_ROMStoreException\nTest_decaf_lang_vm_VM\nTest_decaf_lang_Void\nTest_decaf_net_BindException\nTest_decaf_net_ConnectException\nTest_decaf_net_DatagramPacket\nTest_decaf_net_DatagramSocket\nTest_decaf_net_DatagramSocketImpl\nTest_decaf_net_InetAddress\nTest_decaf_net_NoRouteToHostException\nTest_decaf_net_PlainDatagramSo
cketImpl\nTest_decaf_net_PlainSocketImpl\nTest_decaf_net_Socket\nTest_decaf_net_SocketException\nTest_decaf_net_SocketImpl\nTest_decaf_net_SocketInputStream\nTest_decaf_net_SocketOutputStream\nTest_decaf_net_UnknownHostException\nTest_decaf_util_ArrayEnumerator\nTest_decaf_util_Date\nTest_decaf_util_EventObject\nTest_decaf_util_HashEnumerator\nTest_decaf_util_Hashtable\nTest_decaf_util_Properties\nTest_decaf_util_ResourceBundle\nTest_decaf_util_tm\nTest_decaf_util_Vector\n";
+ baos = new ByteArrayOutputStream();
+ os = new DataOutputStream( baos );
+ is = NULL;
+ bais = NULL;
+ }
+ virtual void tearDown(){
+ try {
+ delete os;
+ delete baos;
+ delete is;
+ delete bais;
+ } catch(...) {}
+ }
void test();
+ void testFlush();
+ void testSize();
+ void testWrite1();
+ void testWrite2();
+ void testWriteBoolean();
+ void testWriteByte();
+ void testWriteBytes();
+ void testWriteChar();
+ void testWriteChars();
+ void testWriteDouble();
+ void testWriteFloat();
+ void testWriteInt();
+ void testWriteLong();
+ void testWriteShort();
+ void testWriteUTF();
+
+ private:
+
+ void openDataInputStream() {
+ bais = new ByteArrayInputStream( baos->toByteArray(), baos->size() );
+ is = new DataInputStream( bais );
+ }
};