stdcpp/tsrc/Stdcpp_test/stlport/auto/stlport_sstream/src/sstream1.cpp
changeset 31 ce057bb09d0b
child 34 5fae379060a7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stdcpp/tsrc/Stdcpp_test/stlport/auto/stlport_sstream/src/sstream1.cpp	Fri Jun 04 16:20:51 2010 +0100
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+// STLport regression testsuite component.
+// To compile as a separate example, please #define MAIN.
+
+#include <sstream>
+#include <cassert>
+
+#ifdef MAIN 
+#define sstream1_test main
+#endif
+
+int sstream1_test(int, char**)
+{
+    int failures=0;
+    std::istringstream iss;
+	int x[9];
+	std::fill_n(x, 9, 999);
+	iss.str(std::string("0-0+0 010-010+010 0x1-0x1+0x1"));
+	iss >> std::hex;
+	iss >> x[0] >> x[1] >> x[2] >> x[3] >> x[4] >> x[5] >> x[6] >> x[7] >> x[8];
+
+ #ifdef __SYMBIAN32__
+   {
+     if(x[0] != 0x0)
+      failures++;
+	 if(x[1] != -0x0)
+	   failures++;
+	if(x[2] != +0x0)
+	   failures++;
+	if(x[3] != 0x010)
+	  failures++;
+	if(x[4] != -0x010)
+	 failures++;
+	if(x[5] != +0x010)
+	   failures++;
+	if(x[6]!= 0x1)
+	   failures++;
+	if(x[7]!= -0x1)
+	   failures++;
+	if(x[8]!= +0x1)
+	   failures++;
+   }
+ #else
+   {
+ 	assert(x[0] == 0x0);
+	assert(x[1] == -0x0);
+	assert(x[2] == +0x0);
+	assert(x[3] == 0x010);
+	assert(x[4] == -0x010);
+	assert(x[5] == +0x010);
+	assert(x[6] == 0x1);
+	assert(x[7] == -0x1);
+	assert(x[8] == +0x1);
+  }
+
+#endif      	
+	iss.clear();
+	iss.str(std::string("0-0+0 010-010+010 0x1-0x1+0x1"));
+	iss.unsetf(std::ios_base::dec | std::ios_base::hex);
+	std::fill_n(x, 9, 999);
+	iss >> x[0] >> x[1] >> x[2] >> x[3] >> x[4] >> x[5] >> x[6] >> x[7] >> x[8];
+
+#ifdef __SYMBIAN32__
+ {
+    if(x[0] != 0)
+      failures++;
+	 if(x[1]!= -0)
+	   failures++;
+	if(x[2] != +0)
+	   failures++;
+	if(x[3] != 010)
+	  failures++;
+	if(x[4] != -010)
+	 failures++;
+	if(x[5] != +010)
+	   failures++;
+	if(x[6] !=0x1)
+	   failures++;
+	if(x[7] != -0x1)
+	   failures++;
+	if(x[8] != +0x1)
+	   failures++;
+ 
+ }
+#else
+{
+	assert(x[0] == 0);
+	assert(x[1] == -0);
+	assert(x[2] == +0);
+	assert(x[3] == 010);
+	assert(x[4] == -010);
+	assert(x[5] == +010);
+	assert(x[6] == 0x1);
+	assert(x[7] == -0x1);
+	assert(x[8] == +0x1);
+}
+
+#endif
+if(failures)
+ return 1;
+else 
+ return 0; 
+}