stdcpp/tsrc/BC/apps/tiostreams/src/tiostreamsblocks.cpp
changeset 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stdcpp/tsrc/BC/apps/tiostreams/src/tiostreamsblocks.cpp	Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,2558 @@
+/*
+* 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:       
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include<iostream>
+#include<fstream>
+#include<string>
+#include<ostream>
+#include <sstream>
+#include<strstream>
+#include<deque>
+#include<iterator>
+#include<vector>
+#include <ios>
+#include <iostream>
+#include <fstream>
+#include <stl\char_traits.h>
+ #include<e32std.h>
+
+#include<exception>
+
+#include "tiostreams.h"
+using namespace std;
+ #define STDCPP_OOM FALSE// TRUE for OOM testing
+ 
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ctiostreams::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Ctiostreams::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// Ctiostreams::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Ctiostreams::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+              // Second is the actual implementation member function. 
+ ENTRY( "iofstreamL", Ctiostreams::iofstreamL ),
+ ENTRY( "stringbufL", Ctiostreams::stringbufL ),
+ ENTRY( "stringstreamL", Ctiostreams::stringstreamL ),
+ ENTRY( "streambufL", Ctiostreams:: streambufL ),
+ ENTRY( "ostreamL", Ctiostreams:: ostreamL ),
+ ENTRY( "istreamL", Ctiostreams:: istreamL ),
+ ENTRY( "istringstreamL", Ctiostreams:: istringstreamL ),
+ ENTRY( "ostringstreamL", Ctiostreams:: ostringstreamL ),
+ ENTRY( "ostreamiterators", Ctiostreams::ostreamiterators ),
+ ENTRY( "fstreamL", Ctiostreams::fstreamL),
+ ENTRY( "istrstreamL", Ctiostreams::istrstreamL),
+ ENTRY( "strstreamL", Ctiostreams::strstreamL),
+ ENTRY( "ostrstreamL", Ctiostreams::ostrstreamL),
+ ENTRY( "istreamiterators", Ctiostreams::istreamiterators ),
+ ENTRY( "istreambufiterators", Ctiostreams::istreambufiterators ),
+ ENTRY( "strstreambufL", Ctiostreams::strstreambufL ),
+ ENTRY( "freezeL", Ctiostreams::freezeL ),
+ ENTRY( "fposL", Ctiostreams::fposL ),
+  ENTRY( "filebufL", Ctiostreams::filebufL ),
+          ENTRY( "basicstring", Ctiostreams::basicstring ),
+        ENTRY( "basicfilebufL", Ctiostreams::basicfilebufL ),
+        ENTRY( "basicistreamL", Ctiostreams::basicistreamL ),
+        ENTRY( "wfstreamL", Ctiostreams::wfstreamL ),
+        ENTRY( "wifstreamL", Ctiostreams::wifstreamL ),
+        ENTRY( "wistreamL", Ctiostreams::wistreamL ),
+		ENTRY( "wofstreamL", Ctiostreams::wofstreamL ),
+ 		ENTRY( "wistringstreamL", Ctiostreams::wistringstreamL ),
+ 		ENTRY( "wostringstreamL", Ctiostreams::wostringstreamL ),
+ 		ENTRY( "wstreambufL", Ctiostreams::wstreambufL ),
+ 		ENTRY( "wostreamL", Ctiostreams::wostreamL ),
+ 		ENTRY( "wstringbufL", Ctiostreams::wstringbufL ),
+      
+
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// Ctiostreams:: ofstream,ifstream
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+
+TInt Ctiostreams::iofstreamL( CStifItemParser& aItem )
+    {
+ 
+ 
+//__UHEAP_MARK;
+int failures=0 ;
+try
+{
+cout<<"";	
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+    ofstream myfile;
+    filebuf *fbuf;
+    char * buffer;
+  long size;
+    //ifstream 
+  myfile.open ("c:\\TestFramework\\docs\\example.txt");
+  if(!myfile.is_open())
+  failures++;
+ 
+  myfile << "Writing this to a file.";
+  myfile<<"\0";
+   myfile.close();
+  if(myfile.is_open())
+  failures++;
+  
+  
+  
+  
+ // string line;
+   ifstream myfile1; 
+ 
+ 
+ myfile1.open("c:\\TestFramework\\docs\\example.txt" );
+
+fbuf=myfile1.rdbuf();
+
+ 
+ // get file size using buffer's members
+  size=fbuf->pubseekoff (0,ios::end,ios::in);
+  fbuf->pubseekpos (0,ios::in);
+
+  // allocate memory to contain file data
+  buffer=new char[size];
+
+  // get file data  
+  fbuf->sgetn (buffer,size);
+  
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  
+  
+  if(buffer != "Writing this to a file.");
+  else
+  failures++;
+  
+  if(size!= 23)
+  failures++;
+  
+
+if(!myfile1.is_open())
+failures++;
+myfile1.close();
+if(myfile1.is_open())
+failures++;
+  
+   delete buffer;
+ios_base::Init();  // 0 -   218 FUNCTION Init()  iostream.cpp
+filebuf*  _Stl_create_filebuf(FILE* f, ios_base::openmode mode );  // 0 -   225 FUNCTION _Stl_create_filebuf() iostream.cpp
+ios_base::sync_with_stdio();//0 -   445 FUNCTION ios_base::sync_with_stdio()
+/* 
+ if(failures)
+ 
+  return KErrGeneral;
+ return KErrNone;
+
+*/
+
+ 
+  //#if STDCPP_OOM
+//failures++;
+// #endif
+
+    }
+ 
+ catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+		  
+    }
+
+ 
+// -----------------------------------------------------------------------------
+// Ctiostreams:: stringbuf
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+ 
+ TInt Ctiostreams::stringbufL(CStifItemParser& aItem )
+ {
+ 
+ 	int failures = 0;
+ 	try
+ 	{
+ cout<<"";		
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 	
+stringbuf sb;
+  string mystr;
+
+  sb.sputn("Sample string",13);
+  mystr=sb.str();
+
+    
+   
+   if(sb.in_avail()!=13)
+  failures++;
+   
+   
+    char ch = sb.sgetc();
+   if(ch!= 'S')
+   failures++;
+   
+   
+  
+  
+  
+  
+   if(mystr.compare("Sample string") != 0)
+   failures++;
+  
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  /* if(failures)
+    
+  return KErrGeneral;
+  else
+  return KErrNone;
+ */
+ 
+ 
+   //#if STDCPP_OOM
+//failures++;
+// #endif
+ 
+ }
+ 
+ catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+// -----------------------------------------------------------------------------
+// Ctiostreams:: stringstream
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+ 
+ 
+ TInt Ctiostreams::stringstreamL(CStifItemParser& aItem )
+ {
+ 	
+ 	int val;
+  string  teststr;
+  int failures = 0;
+  try
+  {
+  cout<<"";	
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+   stringstream ss (stringstream::in | stringstream::out);
+   stringstream teststring;
+   
+    
+   teststring<<"stringstream testcase";
+   
+   teststr = teststring.str();
+   
+   if(!teststr.compare("stringstream testcase"))
+   ;
+   else
+   failures++;
+
+ ss << "120 42 377 6 5 2000";
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+ for (int n=0; n<6; n++)
+  {
+    ss >> val;
+    
+    switch(n)
+    {
+    	case 0://precision 
+    	if(val!=120)
+    	failures++;
+    	break;
+    	case 1:
+    	if(val!=42)
+    	failures++;
+    	break;
+    	case 2:
+    	if(val!=377)
+    	failures++;
+    	break;
+    	case 3:
+    	if(val!=6)
+    	failures++;
+    	break;
+    	
+    	case 4:
+    	if(val!=5)
+    	failures++;
+    	break;
+       
+    	case 5:
+    	if(val!=2000)
+    	failures++;
+    	break;
+    
+    default:
+    break;
+    }
+    
+   
+  }
+
+ /* if(failures)
+   return KErrGeneral;
+  return KErrNone;
+ */
+ 
+ 
+  
+  //#if STDCPP_OOM
+//failures++;
+// #endif
+ }
+
+catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+
+// -----------------------------------------------------------------------------
+// Ctiostreams:: streambuf
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+ TInt Ctiostreams::streambufL(CStifItemParser& aItem )
+ {
+//    locale   loc ("en_GB.UTF-8");
+
+ 
+ 
+ int failures = 0;
+ try
+ {
+ 	
+ 
+ char a[4]=
+ {
+ 	0
+ };
+ 
+ char sentence[]= "Sample sentence";
+ cout<<"";
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+ streambuf * pbuf;
+ ofstream ostr ("c:\\TestFramework\\docs\\streambuf.txt");
+ 
+ 
+  
+ if(!cout.rdbuf( )->getloc( ).name( ).c_str( ))    //failing
+// failures++;
+ ;
+ char ch[14];
+ //rdbuf()s
+ pbuf = ostr.rdbuf();
+
+
+//sputn()
+
+
+
+
+ pbuf->sputn (sentence,sizeof(sentence)-1);
+
+  
+ ostr.open("c:\\TestFramework\\docs\\streambuf.txt");
+  
+ if(!ostr.is_open())
+ failures++;
+   
+
+ long size1 = pbuf->pubseekoff(0,ios_base::end);
+ if(size1!=15)
+ failures++;
+  
+
+  pbuf->sputc('a');
+  
+
+ long size2 = pbuf->pubseekoff(0,ios_base::end);
+ if(size2!=16)
+ failures++;
+  
+ ifstream istr("c:\\TestFramework\\docs\\streambuf.txt");
+ pbuf = istr.rdbuf();
+
+streamsize i = istr.rdbuf()->sgetn(&a[0], 3);   
+ 
+    // Display the size and contents of the buffer passed to sgetn.
+   if(i!=3)
+   failures++;
+  
+ 
+ int k = pbuf->snextc();
+ 
+ 
+ //sgetc()
+ while (pbuf->sgetc()!=EOF)
+  {
+    // static int i;
+    int  i=0;
+      //sbumpc()
+     ch[i] = pbuf->sbumpc();
+     i++;
+  }
+
+  
+  if(ch[0]!='a' )
+  failures++;
+  
+ 
+  
+  
+  
+  
+  istr.close();
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  /*
+  if(failures)
+  return KErrGeneral;
+  else
+  return KErrNone;
+   
+   */
+
+  
+  //#if STDCPP_OOM
+//failures++;
+// #endif
+ 
+ }
+ catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+ 
+ 
+// -----------------------------------------------------------------------------
+// Ctiostreams:: ostream
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+ 
+ TInt Ctiostreams::ostreamL(CStifItemParser& aItem )
+ 
+ {
+ 
+  
+ int failures = 0;
+ try
+ {
+ 	
+ 
+ filebuf fb;
+char input[17] = "ostream testcase";
+streamsize size = 5;
+  fb.open ("c:\\TestFramework\\docs\\ostream.txt",ios::out);
+  cout<<"";
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+  ostream os(&fb);
+  
+  os.write(input,size);
+  streamoff i = os.tellp();
+  if(i!= 5)
+  failures++;
+  
+  os.put('K');
+  streamoff j = os.tellp();
+  if(j!=6)
+  failures++;
+
+  os.seekp(2);
+    os<<"i";
+  streamoff k = os.tellp();
+
+  if(k!=3)
+  failures++;
+  
+ os.flush();
+  
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  
+   
+  /*
+  if(failures)
+  return KErrGeneral;
+  return KErrNone;
+  */
+ 
+  
+   //#if STDCPP_OOM
+//failures++;
+// #endif
+ }
+ 
+ catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+ 
+// -----------------------------------------------------------------------------
+// Ctiostreams:: istream
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+  TInt Ctiostreams::istreamL(CStifItemParser& aItem )
+  {
+ 
+int failures =0;
+try
+{
+	
+
+int length;
+char * buffer;
+char getl[8] ;
+ filebuf fb;
+ fb.open ("c:\\TestFramework\\docs\\istream.txt",ios::in);
+ cout<<"";
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+ istream is(&fb);
+ 
+ //needs to rewrite
+
+
+  // get length of file:
+  is.seekg (0, ios::end);
+  length = is.tellg();
+  is.seekg (0, ios::beg);
+  
+  
+  
+
+
+if(length != 7)
+failures++;
+
+ char ch = is.get();
+  
+   
+ if(is.gcount() != 1)
+ failures++;
+ 
+  
+ if( ch != 'S')
+ failures++;
+ 
+ 
+
+ 
+ 
+ 
+ 
+ char pk1 = is.peek();
+ 
+ if(pk1!= 'h')
+ failures++;
+ 
+ 
+ is.unget();
+ 
+ char pk2 = is.peek();
+ if(pk2!= 'S')
+ failures++;
+ 
+ is.get();
+ is.putback('K');
+ 
+ is.getline(getl,8,'\0');
+ 
+ if(getl == "Khaheen")
+ failures++;
+ 
+ if(is.gcount() != 7)
+ failures++;
+ 
+ 
+  fb.close();
+  /*if(failures)
+ 
+ 
+  return KErrGeneral;
+  return KErrNone;
+  
+ */
+   
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+   //#if STDCPP_OOM
+//failures++;
+// #endif
+	  
+  }
+  
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+
+// -----------------------------------------------------------------------------
+// Ctiostreams:: istringstream
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//  
+  
+   TInt Ctiostreams::istringstreamL(CStifItemParser& aItem )
+   {
+   	int n,val;
+ 	int failures =0;
+ 	try
+ 	{
+ 	string strvalues = "125 320 512 750 333";
+ 	cout<<"";	
+ 	#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+	
+  	istringstream iss (strvalues,istringstream::in);
+
+if(iss.str()  != "125 320 512 750 333")
+failures++;
+
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  for (n=0; n<5; n++)
+  {
+    iss >> val;
+     switch(n)
+    {
+    	case 0:
+    	if(val!=125)
+    	failures++;
+    	break;
+    	case 1:
+    	if(val!=320)
+    	failures++;
+    	break;
+    	case 2:
+    	if(val!=512)
+    	failures++;
+    	break;
+    	case 3:
+    	if(val!=750)
+    	failures++;
+    	break;
+    	
+    	case 4:
+    	if(val!=333)
+    	failures++;
+    	break;
+       
+    	    
+    default:
+    break;
+    }
+    
+  }
+  
+   
+   //#if STDCPP_OOM
+//failures++;
+// #endif
+
+/* if(failures)
+ return KErrGeneral;
+ else
+ return KErrNone;*/
+   }
+   
+   catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+   
+   
+   
+   
+   
+   
+// -----------------------------------------------------------------------------
+// Ctiostreams:: ostringstream,
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+   
+   TInt Ctiostreams::ostringstreamL(CStifItemParser& aItem )
+   {
+ 	int failures =0 ;
+ 	try
+ 	{
+ 		
+ 	
+ 	basic_string<char> i( "test" );
+ 	cout<<"";
+ 	#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+   ostringstream ss;
+   
+   ss.rdbuf( )->str( i );
+   if(ss.str( ).compare("test") != 0)
+   failures++; 
+
+   ss << "z";
+   if(ss.str( ) .compare("zest")!=0)
+   failures++;
+      
+   ss.rdbuf( )->str( "be" );
+   if(ss.str( ).compare("be")!=0)
+   failures++;
+   
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+   /*
+   if(failures)
+   
+	return KErrGeneral;
+	else
+	return KErrNone;
+*/
+
+
+ 
+   //#if STDCPP_OOM
+//failures++;
+// #endif
+   }
+   
+   catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+   
+    TInt Ctiostreams::ostreamiterators(CStifItemParser& aItem )
+    {
+    	
+    
+  //needs to rewrite
+  //____________________
+   
+   int arr[4] = { 3,4,7,8 };
+   int total=0;
+   deque<int> d(arr+0, arr+4);
+   //
+   // stream the whole vector and a sum to cout
+   //
+  
+   copy(d.begin(),(d.end()-1),ostream_iterator<int,char>(cout,""));
+  
+  
+  if( *(d.end()-1) == 8)
+  return KErrNone;
+  return KErrGeneral;
+
+
+ }
+
+    
+    
+// -----------------------------------------------------------------------------
+// Ctiostreams:: fstream
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+    
+    
+    TInt Ctiostreams::fstreamL(CStifItemParser& aItem ) 
+    {
+   //  __UHEAP_MARK;
+int failures =0;
+try
+{
+cout<<"";	
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+fstream filestr ("c:\\TestFramework\\docs\\fstream.txt", fstream::in | fstream::out);
+
+if(!filestr.is_open())
+failures++;
+ 
+filestr.close();
+if(filestr.is_open())
+failures++;
+  
+ // __UHEAP_MARKEND;
+  
+  /*if(failures)
+return KErrNone;
+return KErrGeneral;
+    */  
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif    
+   //#if STDCPP_OOM
+//failures++;
+// #endif
+    
+    }
+   catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    } 
+ 
+// -----------------------------------------------------------------------------
+// Ctiostreams:: istrstream
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   
+    TInt Ctiostreams::istrstreamL(CStifItemParser& aItem ) 
+    {
+  //  __UHEAP_MARK;	
+  int failures=0;
+  try
+  {
+  	
+  
+    char* p = "This is first string";
+    char* q = "This is second string";
+    char* r = "";
+    const char* s ="const char";
+    streamsize  n =10;
+    cout<<"";
+    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+    istrstream first(p);
+    istrstream second(q);
+    istrstream third(r);
+    
+    istrstream four(s);
+    
+    istrstream  five(p,n);
+    istrstream six(s,n);
+ /*   if(first.str() == "This is first string")
+    if(second.str()!= " This is second string")
+    if(third.str() == "")
+ //   __UHEAP_MARKEND;
+    
+    return KErrNone;
+    return KErrGeneral;
+   */ 
+       first.rdbuf();
+    second.rdbuf();
+    third.rdbuf();
+    
+     if(first.str() != "This is first string")
+    if(second.str()== " This is second string")
+    if(third.str() != "")
+    failures++;
+    
+    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  //#if STDCPP_OOM
+//failures++;
+// #endif
+     
+    }
+    
+    
+    catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+    
+TInt Ctiostreams::strstreamL(CStifItemParser& aItem ) 
+      {
+    // __UHEAP_MARK; 	
+     
+  	int failures = 0;
+  	try
+  	{
+  	cout<<"";	
+  	#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+  char* s;
+   int n;
+   ios_base::openmode mode;
+//  strstream ss3(s, n, mode);
+  	strstream ss1,ss2;
+  	 ss1 << "";
+  	 ss1.rdbuf();
+  	 if(ss1.rdbuf( )->pcount( ) != 0)
+  	 failures++;
+  	 
+  	 string str1= ss1.str();
+  	 if(str1.compare("")!=0)
+  	 failures++;
+  	 
+  	 ss2 << "strstream testcase";
+  	 ss2 << '\0';
+  	 if( ss2.rdbuf( )->pcount( ) != sizeof("strstream testcase\0")-1)
+  	 failures++;
+  	 
+  	 string str = ss2.str();
+  	 
+  	 if(str.compare("strstream testcase")!= 0)
+  	 failures++;
+  	 ss1.freeze();
+  	 //__UHEAP_MARKEND;
+  /*	 
+  	 if(failures)
+  	 return KErrGeneral;
+  	 else
+  	return KErrNone;
+  */
+  
+  
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  
+    //#if STDCPP_OOM
+//failures++;
+// #endif
+      }
+      
+      catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+    
+    
+TInt Ctiostreams::ostrstreamL(CStifItemParser& aItem ) 
+      {
+      	
+     //__UHEAP_MARK;
+     int failures = 0;
+     try
+     {
+     cout<<"";	
+     #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+  	char* s;
+  	int n;
+  	ios_base::openmode mode;
+//  	ostrstream  oss3( s, n, mode);
+  	ostrstream  oss1 ,oss2;
+  	string str;
+  	 oss1 << "";
+  	 oss1.rdbuf();
+  	 if(oss1.rdbuf( )->pcount( ) != 0)
+  	 failures++;
+  	 
+  	 oss2 << "ostrstream testcase";
+  	 oss2<<'\0';
+  	 str = oss2.str();
+  	 
+  	 if(str.compare("ostrstream testcase") !=0)
+  	 failures++;
+  	 
+   oss2.freeze();
+  	 
+  	 #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  	
+  	// __UHEAP_MARKEND;
+  /*	 
+  	 if(failures)
+  	 return KErrGeneral;
+  	 else
+  	return KErrNone;
+  */
+  
+    //#if STDCPP_OOM
+//failures++;
+// #endif
+      }
+      
+      catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+   
+
+
+ TInt Ctiostreams::istreamiterators(CStifItemParser& aItem )
+    {
+    	
+   // __UHEAP_MARK;
+   // Typedefs for convenience.
+   int failures=0;
+   try
+   {
+   cout<<"";
+   	#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+   
+    typedef std::vector<int, std::allocator<int> >    Vector;
+
+    typedef std::istream_iterator<Vector::value_type,char, std::char_traits<char>, ptrdiff_t>        is_iter;
+
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+    Vector v;
+//__UHEAP_MARKEND;
+ 
+    //#if STDCPP_OOM
+//failures++;
+// #endif
+ 
+
+
+ }
+
+
+catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+   
+   
+ TInt Ctiostreams::istreambufiterators(CStifItemParser& aItem )
+    {
+    	
+      
+   //   __UHEAP_MARK;
+       // create a temporary filename
+       
+       int failures=0;
+       try
+       {
+       	
+       
+    const char *fname = tmpnam (0);
+
+    if (!fname)
+        return 1;
+
+    // open the file is_iter.out for reading and writing
+    std::ofstream out (fname, std::ios::out | std::ios::in | 
+                              std::ios::trunc);
+
+    // output the example sentence into the file
+
+    // seek to the beginning of the file
+    out.seekp (0);
+    cout<<"";
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+    // construct an istreambuf_iterator pointing to
+    // the ofstream object underlying streambuffer
+    std::istreambuf_iterator<char, std::char_traits<char> >iter (out.rdbuf ());
+
+    // construct an end of stream iterator
+    const std::istreambuf_iterator<char,std::char_traits<char> > end;
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+    std::cout << std::endl;
+
+    // output the content of the file
+    while (!iter.equal (end)) {
+
+        // use both operator++ and operator*
+        std::cout << *iter++;
+    }
+
+    std::cout << std::endl; 
+
+    // remove temporary file
+    remove (fname);
+//__UHEAP_MARKEND;
+ 
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+
+ }
+
+catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+    
+    
+    
+ TInt Ctiostreams::strstreambufL(CStifItemParser& aItem )
+ 
+ 
+ {
+// 	__UHEAP_MARK;
+ 	
+ int failures =0;
+ try
+ {
+ 	
+ cout<<"";
+
+  	#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+  
+  signed char* get;
+  streamsize n=10;
+  signed char* put;
+   unsigned char* uget;
+   unsigned char* uput;
+  const char* cget;
+  const signed char* csget;
+  
+  const unsigned char* cucget;
+  
+  
+  typedef void* (*__alloc_fn)(size_t);
+  typedef void (*__free_fn)(void*);
+ 
+  __alloc_fn  alloc_f;
+ 
+  __free_fn free_f;
+  
+  	//overloaded
+  	strstreambuf  buf1(get, n,put);
+  	
+  	//overloaded
+  	
+  	strstreambuf buf2(uget,n,uput);
+  	
+  	  	//overloaded
+  	strstreambuf buf3(cget,n);
+  	//onverloaded
+  	strstreambuf buf4(csget,n);
+  	//overloaded
+  	strstreambuf buf5(cucget,n);
+  	
+  	
+//  	strstreambuf buf6( alloc_f, free_f);
+  	  	strstreambuf buf7(n);
+
+  	strstreambuf  buf;
+  string str;
+ int i = buf.sputn("strstreambuf testcase", sizeof("strstreambuf testcase")-1);
+ 
+if((buf.pcount())!= i) 
+failures++;
+ 
+ buf.freeze();
+//if(buf.str() != "strstreambuf testcase")   //fails
+//failures++;
+
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+
+//__UHEAP_MARKEND; 
+/*if(failures)
+return KErrGeneral;
+else
+ return KErrNone;
+  */
+  
+  //#if STDCPP_OOM
+//failures++;
+// #endif
+ 
+ }
+ catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+    
+    
+    
+
+ TInt Ctiostreams::freezeL(CStifItemParser& aItem )
+ {
+ 
+ int failures=0;
+ try
+ {
+ 	
+  strstream  x;
+int failures =0;
+    x << "test1";
+   
+if(!x.good())
+failures++;    
+cout<<"";
+ 
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif  
+   
+  x.rdbuf()->freeze();
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+if(!x.good())
+failures++;
+
+    // Stream is bad now, wrote on frozen stream
+    x << "test1.5";
+    
+//  report(x);
+if(!x.good())
+failures++;
+    // Unfreeze stream, but it is still bad
+    x.rdbuf()->freeze(false);
+ if(!x.good())
+failures++;
+
+    // Clear stream
+    x.clear();
+ 
+if(!x.good())
+failures++;
+
+
+    x << "test3";
+
+
+
+
+    // Clean up.  Failure to unfreeze stream will cause a
+    // memory leak.
+    x.rdbuf()->freeze(false);
+    /*
+if(failures)
+return KErrGeneral;
+else
+return KErrNone;
+
+*/
+
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+  }
+  
+  
+  
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+ 
+
+ TInt Ctiostreams::fposL(CStifItemParser& aItem )
+ {
+ int failures=0;
+ try
+ {
+ 	
+ 
+ streamoff s;
+   ifstream file( "c:\\TestFramework\\docs\\fpos_state.txt" );
+  cout<<"";
+    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif
+   fpos<mbstate_t> f = file.tellg( );
+   char ch;
+   while ( !file.eof( ) )
+      file.get( ch );
+  
+  f.state();
+    cout<<"";
+    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif
+   //s = f;
+  // if(f.state( ))
+  // failures++;
+  // f.state( 9 );
+ //  if( f.state( ))
+ //  failures++;
+   /*if(failures)
+   return KErrGeneral;
+   return KErrNone;*/
+   
+   //#if STDCPP_OOM
+//failures++;
+// #endif
+ }
+
+ catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+ 
+ 
+ 
+ 
+// -----------------------------------------------------------------------------
+// Cstdcpp_filebuf::filebufL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctiostreams::filebufL( CStifItemParser& aItem )
+    {
+   int failures=0;
+try
+{
+	
+
+
+    ifstream is;
+    cout<<"";
+    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+  filebuf * fb;
+
+  fb = is.rdbuf();
+  fb->open ("c:\\TestFramework\\docs\\filebuf.txt",ios::in);
+
+   if(!fb->is_open())
+   failures++;
+   
+
+  fb->close();
+if(fb->is_open())
+failures++;
+
+
+#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+/*
+if(failures)
+return KErrGeneral;
+return KErrNone;
+ */
+ 
+  //#if STDCPP_OOM
+//failures++;
+// #endif
+ 
+    }
+    
+    catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+ 
+ 
+    
+TInt Ctiostreams::basicstring( CStifItemParser& aItem )
+    {
+				int failures =0;
+				
+				try
+				{
+					
+				
+			    const char *cstr1a = "Hello Out There.";
+			    cout<<"";
+			    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+			   basic_string<char> str1a(cstr1a ,5);
+	 
+			   if(str1a.compare("Hello")!=0)
+			   failures++;
+			    
+			    str1a.append("Out There");
+			    if(!str1a.compare("Hello Out There"))
+			    failures++;
+			    
+			    
+			   string  str2a ( "How Do You Do?" );
+			   basic_string <char> str2b ( str2a , 7 , 7 );
+			   
+			    if(str2b.compare("You Do?")!=0)
+			   failures++;
+			   
+			    
+			 
+			   basic_string <char> str3a ( 5, '9' );
+			   if(str3a.compare("99999")!=0)
+			   failures++;
+			   
+
+			   
+			   basic_string <char> str4a;
+			   string str4b;
+			   basic_string <char> str4c ( str4b.get_allocator( ) );
+			   if (!str4c.empty ())
+			   failures++;
+			      
+
+			  
+			   string str5a ( "Hello World");
+			    basic_string <char>::iterator strp_Iter, str1_Iter, str2_Iter;
+			   
+			   
+			   
+			   strp_Iter = str5a.begin();
+			   if(*strp_Iter != 'H' )
+				failures++;
+			   
+			   
+			   
+			   
+			   basic_string <char>::reference refStr2 = str5a.at ( 3 );
+			   
+			   if(refStr2 != 'l')
+			   failures++;
+			   
+			   
+			   if(str5a.size()!=11)
+			   failures++;
+			   if(str5a.length()!=11)
+			   failures++;
+			   if(str5a.capacity()!=11)
+			   failures++;
+			   
+
+
+		#if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 	   
+			  /*  if(failures)
+			    return  KErrGeneral;
+			    return KErrNone;
+			    */
+
+    }
+
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+
+// -----------------------------------------------------------------------------
+// Ctwiostreams::basic_filebuf
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+// 
+ 
+ TInt Ctiostreams::basicfilebufL( CStifItemParser& aItem )
+ {
+ 	
+	 int failures=0;
+	 try
+	 {
+	 	
+	 
+   	 char* wszHello = "Hello World";
+   	 char wBuffer[128];
+   	  cout<<"";
+		    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+		
+     basic_filebuf<char> wOutFile;
+	 
+		
+    // Open a file, wcHello.txt, then write to it, then dump the
+    // file's contents in hex
+    wOutFile.open("c:\\TestFramework\\docs\\basicfilebuf.txt",ios_base::out | ios_base::trunc | ios_base::binary);
+    if(!wOutFile.is_open())
+    failures++;
+    
+    wOutFile.sputn(wszHello, 11);
+    wOutFile.close();
+ 	if(wOutFile.is_open())
+ 	failures++;
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+ /*	if(failures)
+	return KErrGeneral;
+ 	else
+ 	return KErrNone;
+ 
+ */
+  
+ 
+ 
+ 
+ }
+ 
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+ 
+// -----------------------------------------------------------------------------
+// Ctwiostreams::basic_istream
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+ 
+ TInt Ctiostreams::basicistreamL( CStifItemParser& aItem )
+ {
+ 
+ 
+ 		int failures = 0;
+ 		try
+ 		{
+ 		 cout<<"";
+ 				    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+			
+ 		
+     typedef std::basic_istream<char, std::char_traits<char> >         Input;
+    typedef std::basic_ofstream<Input::char_type, Input::traits_type> Output;
+	 
+		
+    Input::char_type s [200];
+ 
+    Output out ("c:\\TestFramework\\docs\\basicistream.txt", std::ios::in | std::ios::out | std::ios::trunc);
+
+     Input in (out.rdbuf ());
+
+    float f = 3.14159;
+    int   i = 3;
+
+    // output to the file
+    out << "He lifted his head and pondered.\n"
+        << f << std::endl << i << std::endl;
+  
+    // seek to the beginning of the file
+    in.seekg (0);
+  
+  if(!out.is_open())
+  failures++;
+  
+  out.close();
+  
+  if(out.is_open())
+  failures++;
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  /*if(failures)
+   return KErrGeneral;
+  else
+  return KErrNone;
+ 
+  */
+ 
+ 	
+ }
+ 
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wfstream
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+ TInt Ctiostreams::wfstreamL( CStifItemParser& aItem )
+ 
+ {
+ 	
+ int failures=0;
+ 
+ try
+ {
+ 	 cout<<"";
+ 		    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+		
+ wfstream file;
+ 	  
+		
+ file.open("c:\\TestFramework\\docs\\wfstream.txt");
+ file.rdbuf();
+ if(!file.is_open())
+ failures++;
+ 
+ file.close();
+ 
+ if(file.is_open())
+ failures++;
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+/* if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ 
+ */
+ 
+ }
+ 
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+ 
+ 
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wifstream
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+ TInt Ctiostreams::wifstreamL( CStifItemParser& aItem )
+ 
+ {
+ int failures =0;
+ 
+ try
+ {
+ 	 cout<<"";
+ 		    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+		
+ wifstream file;
+ 		    
+		
+ file.open("c:\\TestFramework\\docs\\wifstream.txt");
+ 
+ 
+ file.rdbuf();
+ if(!file.is_open())
+ failures++;
+ 
+ file.close();
+ 
+ if(file.is_open())
+ failures++;
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+/* if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ 
+ */
+ 	
+ }
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    }
+ 
+ 
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wfilebuf,wistream
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+ TInt Ctiostreams::wistreamL( CStifItemParser& aItem )
+ 
+ {
+ 	int failures=0;
+ 	try
+ 	{
+ 		
+ 	
+ int length;
+wchar_t * buffer;
+wchar_t getl[16] ;
+ 
+ wfilebuf fb;
+  fb.open ("c:\\TestFramework\\docs\\wistream.txt",ios::in);
+   cout<<"";
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+  wistream is(&fb);
+  
+  if(!fb.is_open())
+  failures++;
+  
+  //if( char(is.get())!= 'S')
+ // failures++;
+  
+//if(sizeof(fb)!=140)  
+//failures++;
+
+
+
+
+  // get length of file:
+  is.seekg (0, ios::end);
+  length = is.tellg();
+  is.seekg (0, ios::beg);
+  
+  
+  
+
+
+if(length != 15)
+failures++;
+
+ wchar_t ch = is.get();
+  
+   
+ if(is.gcount() != 1)
+ failures++;
+ 
+  
+ if( ch != L'S')
+ failures++;
+ 
+ 
+
+ 
+ 
+ 
+ 
+ wchar_t pk1 = is.peek();
+ 
+ if(pk1!= 'a')
+ failures++;
+ 
+ 
+ is.unget();
+ 
+ wchar_t pk2 = is.peek();
+ if(pk2!= 'S')
+ failures++;
+ 
+ is.get();
+ is.putback('K');
+ 
+ is.getline(getl,16,'\0');
+ 
+ if(getl == L"Kample sentence")
+ failures++;
+ 
+
+
+fb.close();
+
+if(fb.is_open())
+failures++;
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+/*
+ if(failures)
+ 
+ return sizeof(fb);
+ return KErrNone;
+  
+ */
+ 
+ 
+ 
+ 
+ }
+ 
+ catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    } 
+ 
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wofstream
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+ 
+  TInt Ctiostreams::wofstreamL( CStifItemParser& aItem )
+  {
+  	
+  	int failures=0;
+  	try
+  	{
+  	 cout<<"";	
+  	 #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+  	
+  	wofstream outfile;
+  	
+  	outfile.open("c:\\TestFramework\\docs\\wostream.txt");
+  	outfile.write(L"This is an ostreamfile",22);
+  	
+  	outfile.rdbuf();
+  	if(!outfile.is_open())
+  	failures++;
+  	
+  	outfile.close();
+  	
+  	
+  	if(outfile.is_open())
+  	failures++;
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+ /* 	if(failures)
+  	return KErrGeneral;
+  	else
+  	return KErrNone;
+  
+  */
+  
+  
+  }
+  
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    } 
+  
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wistringstream
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+   TInt Ctiostreams::wistringstreamL( CStifItemParser& aItem )
+   {
+   int failures=0;
+   try
+   {
+   	
+   
+   	int output[5];
+   int n,val;
+   wstring strvalues ;
+   
+   strvalues = L"1 2 3 4 5";
+    cout<<"";
+    #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+   wistringstream iss(strvalues,wistringstream::in);
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+   
+   for(n=0;n<5;n++)
+   {
+   	
+   static int j;
+   
+   iss>>val;
+   
+   output[j]=val;
+   
+   j++;
+   
+   
+   }
+   
+      if(iss.str()!=L"1 2 3 4 5")
+      failures++;
+/*
+   if(output[0]== 1)
+   if(output[1]== 2)
+   if(output[2]== 3)
+   if(output[3]== 4 )
+   if(output[4]== 5)
+   
+   return KErrNone;
+   else 
+   return  KErrGeneral;
+   */
+   
+    if(output[0]!= 1)
+    failures++;
+   if(output[1]!= 2)
+   failures++;
+   if(output[2]!= 3)
+   failures++;
+   if(output[3]!= 4 )
+   failures++;
+   if(output[4]!= 5)
+   failures++;
+   }
+  
+   catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    } 
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wostringstream,wstring
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+  TInt Ctiostreams::wostringstreamL( CStifItemParser& aItem )
+  {
+  	int failures=0;
+  	try
+  	{ cout<<"";
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 		
+  	
+  
+wostringstream oss;
+wstring mystr;
+
+oss << L"wostringstream testcase";
+oss.rdbuf();
+mystr=oss.str();
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+/*if(mystr.compare(L"wostringstream testcase")==0)
+return KErrNone;
+return KErrGeneral;
+*/
+if(mystr.compare(L"wostringstream testcase")!=0)
+failures++;
+
+  }
+  
+  
+   catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    } 
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wstreambuf,wofstreams
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+   
+  TInt Ctiostreams::wstreambufL( CStifItemParser& aItem )
+  {
+
+
+//locale   loc ("en_GB.UTF-8");
+
+ 
+ 
+ int failures = 0;
+ try
+ {
+ 	
+ 
+ wchar_t a[4]=
+ {
+ 	0
+ };
+ 
+ wchar_t sentence[]= L"Sample sentence"; cout<<"";
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+ wstreambuf * pbuf;
+ wofstream ostr ("c:\\TestFramework\\docs\\wstreambuf.txt");
+ 
+ 
+  
+// if(cout.rdbuf( )->getloc( ).name( ).c_str( ) != "C") //failing
+ //failures++;
+ 
+ wchar_t ch[28];
+ //rdbuf()s
+ pbuf = ostr.rdbuf();
+
+
+//sputn()
+
+
+
+
+ pbuf->sputn (sentence,sizeof(sentence)-1);
+
+  
+ ostr.open("c:\\TestFramework\\docs\\wstreambuf.txt");
+  
+ if(!ostr.is_open())
+ failures++;
+   
+
+ long size1 = pbuf->pubseekoff(0,ios_base::end);
+ if(size1!=31)
+ failures++;
+  
+
+  pbuf->sputc('a');
+  
+
+ long size2 = pbuf->pubseekoff(0,ios_base::end);
+ if(size2!=32)
+ failures++;
+  
+ wifstream istr("c:\\TestFramework\\docs\\wstreambuf.txt");
+ pbuf = istr.rdbuf();
+
+streamsize i = istr.rdbuf()->sgetn(&a[0], 3);   
+    //a[i] = istr.widen('\0');
+
+    // Display the size and contents of the buffer passed to sgetn.
+   if(i!=3)
+   failures++;
+  
+ 
+ int k = pbuf->snextc();
+ 
+ 
+ //sgetc()
+ while (pbuf->sgetc()!=EOF)
+  {
+     static int i;
+      //sbumpc()
+     ch[i] = pbuf->sbumpc();
+     i++;
+  }
+
+  
+  if(ch[0]!='l' )
+  failures++;
+  
+ 
+  
+  
+  
+  
+  istr.close();
+  ostr.close();
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+ /* if(failures)
+  return KErrGeneral;
+  else
+  return KErrNone;
+   */
+ 
+
+
+  }
+  
+   catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    } 
+
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wostream
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+//
+
+ TInt Ctiostreams::wostreamL( CStifItemParser& aItem )  
+ {
+ 	
+
+ 
+ int failures = 0;
+ try
+ {
+ 	
+
+ wfilebuf fb;
+wchar_t input[18] = L"wostream testcase";
+streamsize size = 5;
+  fb.open ("c:\\TestFramework\\docs\\wostream.txt",ios::out); cout<<"";
+   #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif 
+  wostream os(&fb);
+  
+  os.write(input,size);
+  streamoff i = os.tellp();
+  if(i!= 5)
+  failures++;
+  
+  os.put('K');
+  streamoff j = os.tellp();
+  if(j!=6)
+  failures++;
+
+  os.seekp(2);
+    os<<"i";
+  streamoff k = os.tellp();
+
+  if(k!=3)
+  failures++;
+  
+  os.flush();
+  
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  
+ 
+  /*
+if(failures)
+return KErrGeneral;
+return KErrNone;
+*/
+ 
+  
+ }
+ 
+  catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    } 
+
+// -----------------------------------------------------------------------------
+// Ctwiostreams::wstringbuf
+// Example test method function.
+// 
+// -----------------------------------------------------------------------------
+// 
+ 
+  TInt Ctiostreams::wstringbufL( CStifItemParser& aItem )  
+  {
+  int failures=0;
+  try
+  {
+   cout<<"";	
+ #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+  #endif  
+wstringbuf sb;
+wstring mystr;
+
+  
+sb.sputn (L"Sample string",13);
+mystr=sb.str();
+
+/*if(mystr.compare(L"Sample string") == 0)
+return KErrNone;
+else
+return KErrGeneral;
+  */
+  #if  STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+  #endif 
+  if(mystr.compare(L"Sample string") != 0)
+  failures++;
+  
+  }
+  
+   catch(bad_alloc&)
+   {
+   	//do nothing
+    }
+   catch(...)
+   {
+   	failures++;
+   	
+   }
+   
+	if( failures == 0 )
+		return KErrNone;
+  else  
+		return KErrGeneral;
+    } 
+  
+//  End of File
+
+//  End of File
+    
+    
+ 
+//  End of File