os/ossrv/stdcpp/tsrc/BC/apps/tiostreams/src/tiostreamsblocks.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description:       
sl@0
    15
*
sl@0
    16
*/
sl@0
    17
sl@0
    18
sl@0
    19
sl@0
    20
// INCLUDE FILES
sl@0
    21
#include <e32svr.h>
sl@0
    22
#include <StifParser.h>
sl@0
    23
#include <Stiftestinterface.h>
sl@0
    24
#include<iostream>
sl@0
    25
#include<fstream>
sl@0
    26
#include<string>
sl@0
    27
#include<ostream>
sl@0
    28
#include <sstream>
sl@0
    29
#include<strstream>
sl@0
    30
#include<deque>
sl@0
    31
#include<iterator>
sl@0
    32
#include<vector>
sl@0
    33
#include <ios>
sl@0
    34
#include <iostream>
sl@0
    35
#include <fstream>
sl@0
    36
#include <stl\char_traits.h>
sl@0
    37
 #include<e32std.h>
sl@0
    38
sl@0
    39
#include<exception>
sl@0
    40
sl@0
    41
#include "tiostreams.h"
sl@0
    42
using namespace std;
sl@0
    43
 #define STDCPP_OOM FALSE// TRUE for OOM testing
sl@0
    44
 
sl@0
    45
sl@0
    46
// ============================ MEMBER FUNCTIONS ===============================
sl@0
    47
sl@0
    48
// -----------------------------------------------------------------------------
sl@0
    49
// Ctiostreams::Delete
sl@0
    50
// Delete here all resources allocated and opened from test methods. 
sl@0
    51
// Called from destructor. 
sl@0
    52
// -----------------------------------------------------------------------------
sl@0
    53
//
sl@0
    54
void Ctiostreams::Delete() 
sl@0
    55
    {
sl@0
    56
sl@0
    57
    }
sl@0
    58
sl@0
    59
// -----------------------------------------------------------------------------
sl@0
    60
// Ctiostreams::RunMethodL
sl@0
    61
// Run specified method. Contains also table of test mothods and their names.
sl@0
    62
// -----------------------------------------------------------------------------
sl@0
    63
//
sl@0
    64
TInt Ctiostreams::RunMethodL( 
sl@0
    65
    CStifItemParser& aItem ) 
sl@0
    66
    {
sl@0
    67
sl@0
    68
    static TStifFunctionInfo const KFunctions[] =
sl@0
    69
        {  
sl@0
    70
        // Copy this line for every implemented function.
sl@0
    71
        // First string is the function name used in TestScripter script file.
sl@0
    72
        // Second is the actual implementation member function. 
sl@0
    73
              // Second is the actual implementation member function. 
sl@0
    74
 ENTRY( "iofstreamL", Ctiostreams::iofstreamL ),
sl@0
    75
 ENTRY( "stringbufL", Ctiostreams::stringbufL ),
sl@0
    76
 ENTRY( "stringstreamL", Ctiostreams::stringstreamL ),
sl@0
    77
 ENTRY( "streambufL", Ctiostreams:: streambufL ),
sl@0
    78
 ENTRY( "ostreamL", Ctiostreams:: ostreamL ),
sl@0
    79
 ENTRY( "istreamL", Ctiostreams:: istreamL ),
sl@0
    80
 ENTRY( "istringstreamL", Ctiostreams:: istringstreamL ),
sl@0
    81
 ENTRY( "ostringstreamL", Ctiostreams:: ostringstreamL ),
sl@0
    82
 ENTRY( "ostreamiterators", Ctiostreams::ostreamiterators ),
sl@0
    83
 ENTRY( "fstreamL", Ctiostreams::fstreamL),
sl@0
    84
 ENTRY( "istrstreamL", Ctiostreams::istrstreamL),
sl@0
    85
 ENTRY( "strstreamL", Ctiostreams::strstreamL),
sl@0
    86
 ENTRY( "ostrstreamL", Ctiostreams::ostrstreamL),
sl@0
    87
 ENTRY( "istreamiterators", Ctiostreams::istreamiterators ),
sl@0
    88
 ENTRY( "istreambufiterators", Ctiostreams::istreambufiterators ),
sl@0
    89
 ENTRY( "strstreambufL", Ctiostreams::strstreambufL ),
sl@0
    90
 ENTRY( "freezeL", Ctiostreams::freezeL ),
sl@0
    91
 ENTRY( "fposL", Ctiostreams::fposL ),
sl@0
    92
  ENTRY( "filebufL", Ctiostreams::filebufL ),
sl@0
    93
          ENTRY( "basicstring", Ctiostreams::basicstring ),
sl@0
    94
        ENTRY( "basicfilebufL", Ctiostreams::basicfilebufL ),
sl@0
    95
        ENTRY( "basicistreamL", Ctiostreams::basicistreamL ),
sl@0
    96
        ENTRY( "wfstreamL", Ctiostreams::wfstreamL ),
sl@0
    97
        ENTRY( "wifstreamL", Ctiostreams::wifstreamL ),
sl@0
    98
        ENTRY( "wistreamL", Ctiostreams::wistreamL ),
sl@0
    99
		ENTRY( "wofstreamL", Ctiostreams::wofstreamL ),
sl@0
   100
 		ENTRY( "wistringstreamL", Ctiostreams::wistringstreamL ),
sl@0
   101
 		ENTRY( "wostringstreamL", Ctiostreams::wostringstreamL ),
sl@0
   102
 		ENTRY( "wstreambufL", Ctiostreams::wstreambufL ),
sl@0
   103
 		ENTRY( "wostreamL", Ctiostreams::wostreamL ),
sl@0
   104
 		ENTRY( "wstringbufL", Ctiostreams::wstringbufL ),
sl@0
   105
      
sl@0
   106
sl@0
   107
sl@0
   108
        };
sl@0
   109
sl@0
   110
    const TInt count = sizeof( KFunctions ) / 
sl@0
   111
                        sizeof( TStifFunctionInfo );
sl@0
   112
sl@0
   113
    return RunInternalL( KFunctions, count, aItem );
sl@0
   114
sl@0
   115
    }
sl@0
   116
sl@0
   117
sl@0
   118
// -----------------------------------------------------------------------------
sl@0
   119
// Ctiostreams:: ofstream,ifstream
sl@0
   120
// Example test method function.
sl@0
   121
// (other items were commented in a header).
sl@0
   122
// -----------------------------------------------------------------------------
sl@0
   123
//
sl@0
   124
sl@0
   125
sl@0
   126
TInt Ctiostreams::iofstreamL( CStifItemParser& aItem )
sl@0
   127
    {
sl@0
   128
 
sl@0
   129
 
sl@0
   130
//__UHEAP_MARK;
sl@0
   131
int failures=0 ;
sl@0
   132
try
sl@0
   133
{
sl@0
   134
cout<<"";	
sl@0
   135
#if  STDCPP_OOM
sl@0
   136
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   137
  #endif 
sl@0
   138
    ofstream myfile;
sl@0
   139
    filebuf *fbuf;
sl@0
   140
    char * buffer;
sl@0
   141
  long size;
sl@0
   142
    //ifstream 
sl@0
   143
  myfile.open ("c:\\TestFramework\\docs\\example.txt");
sl@0
   144
  if(!myfile.is_open())
sl@0
   145
  failures++;
sl@0
   146
 
sl@0
   147
  myfile << "Writing this to a file.";
sl@0
   148
  myfile<<"\0";
sl@0
   149
   myfile.close();
sl@0
   150
  if(myfile.is_open())
sl@0
   151
  failures++;
sl@0
   152
  
sl@0
   153
  
sl@0
   154
  
sl@0
   155
  
sl@0
   156
 // string line;
sl@0
   157
   ifstream myfile1; 
sl@0
   158
 
sl@0
   159
 
sl@0
   160
 myfile1.open("c:\\TestFramework\\docs\\example.txt" );
sl@0
   161
sl@0
   162
fbuf=myfile1.rdbuf();
sl@0
   163
sl@0
   164
 
sl@0
   165
 // get file size using buffer's members
sl@0
   166
  size=fbuf->pubseekoff (0,ios::end,ios::in);
sl@0
   167
  fbuf->pubseekpos (0,ios::in);
sl@0
   168
sl@0
   169
  // allocate memory to contain file data
sl@0
   170
  buffer=new char[size];
sl@0
   171
sl@0
   172
  // get file data  
sl@0
   173
  fbuf->sgetn (buffer,size);
sl@0
   174
  
sl@0
   175
#if  STDCPP_OOM
sl@0
   176
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   177
  #endif 
sl@0
   178
  
sl@0
   179
  
sl@0
   180
  if(buffer != "Writing this to a file.");
sl@0
   181
  else
sl@0
   182
  failures++;
sl@0
   183
  
sl@0
   184
  if(size!= 23)
sl@0
   185
  failures++;
sl@0
   186
  
sl@0
   187
sl@0
   188
if(!myfile1.is_open())
sl@0
   189
failures++;
sl@0
   190
myfile1.close();
sl@0
   191
if(myfile1.is_open())
sl@0
   192
failures++;
sl@0
   193
  
sl@0
   194
   delete buffer;
sl@0
   195
ios_base::Init();  // 0 -   218 FUNCTION Init()  iostream.cpp
sl@0
   196
filebuf*  _Stl_create_filebuf(FILE* f, ios_base::openmode mode );  // 0 -   225 FUNCTION _Stl_create_filebuf() iostream.cpp
sl@0
   197
ios_base::sync_with_stdio();//0 -   445 FUNCTION ios_base::sync_with_stdio()
sl@0
   198
/* 
sl@0
   199
 if(failures)
sl@0
   200
 
sl@0
   201
  return KErrGeneral;
sl@0
   202
 return KErrNone;
sl@0
   203
sl@0
   204
*/
sl@0
   205
sl@0
   206
 
sl@0
   207
  //#if STDCPP_OOM
sl@0
   208
//failures++;
sl@0
   209
// #endif
sl@0
   210
sl@0
   211
    }
sl@0
   212
 
sl@0
   213
 catch(bad_alloc&)
sl@0
   214
   {
sl@0
   215
   	//do nothing
sl@0
   216
    }
sl@0
   217
   catch(...)
sl@0
   218
   {
sl@0
   219
   	failures++;
sl@0
   220
   	
sl@0
   221
   }
sl@0
   222
   
sl@0
   223
	if( failures == 0 )
sl@0
   224
		return KErrNone;
sl@0
   225
  else  
sl@0
   226
		return KErrGeneral;
sl@0
   227
		  
sl@0
   228
    }
sl@0
   229
sl@0
   230
 
sl@0
   231
// -----------------------------------------------------------------------------
sl@0
   232
// Ctiostreams:: stringbuf
sl@0
   233
// Example test method function.
sl@0
   234
// (other items were commented in a header).
sl@0
   235
// -----------------------------------------------------------------------------
sl@0
   236
//
sl@0
   237
 
sl@0
   238
 TInt Ctiostreams::stringbufL(CStifItemParser& aItem )
sl@0
   239
 {
sl@0
   240
 
sl@0
   241
 	int failures = 0;
sl@0
   242
 	try
sl@0
   243
 	{
sl@0
   244
 cout<<"";		
sl@0
   245
 #if  STDCPP_OOM
sl@0
   246
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   247
  #endif 	
sl@0
   248
stringbuf sb;
sl@0
   249
  string mystr;
sl@0
   250
sl@0
   251
  sb.sputn("Sample string",13);
sl@0
   252
  mystr=sb.str();
sl@0
   253
sl@0
   254
    
sl@0
   255
   
sl@0
   256
   if(sb.in_avail()!=13)
sl@0
   257
  failures++;
sl@0
   258
   
sl@0
   259
   
sl@0
   260
    char ch = sb.sgetc();
sl@0
   261
   if(ch!= 'S')
sl@0
   262
   failures++;
sl@0
   263
   
sl@0
   264
   
sl@0
   265
  
sl@0
   266
  
sl@0
   267
  
sl@0
   268
  
sl@0
   269
   if(mystr.compare("Sample string") != 0)
sl@0
   270
   failures++;
sl@0
   271
  
sl@0
   272
  #if  STDCPP_OOM
sl@0
   273
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   274
  #endif 
sl@0
   275
  /* if(failures)
sl@0
   276
    
sl@0
   277
  return KErrGeneral;
sl@0
   278
  else
sl@0
   279
  return KErrNone;
sl@0
   280
 */
sl@0
   281
 
sl@0
   282
 
sl@0
   283
   //#if STDCPP_OOM
sl@0
   284
//failures++;
sl@0
   285
// #endif
sl@0
   286
 
sl@0
   287
 }
sl@0
   288
 
sl@0
   289
 catch(bad_alloc&)
sl@0
   290
   {
sl@0
   291
   	//do nothing
sl@0
   292
    }
sl@0
   293
   catch(...)
sl@0
   294
   {
sl@0
   295
   	failures++;
sl@0
   296
   	
sl@0
   297
   }
sl@0
   298
   
sl@0
   299
	if( failures == 0 )
sl@0
   300
		return KErrNone;
sl@0
   301
  else  
sl@0
   302
		return KErrGeneral;
sl@0
   303
    }
sl@0
   304
// -----------------------------------------------------------------------------
sl@0
   305
// Ctiostreams:: stringstream
sl@0
   306
// Example test method function.
sl@0
   307
// (other items were commented in a header).
sl@0
   308
// -----------------------------------------------------------------------------
sl@0
   309
//
sl@0
   310
 
sl@0
   311
 
sl@0
   312
 TInt Ctiostreams::stringstreamL(CStifItemParser& aItem )
sl@0
   313
 {
sl@0
   314
 	
sl@0
   315
 	int val;
sl@0
   316
  string  teststr;
sl@0
   317
  int failures = 0;
sl@0
   318
  try
sl@0
   319
  {
sl@0
   320
  cout<<"";	
sl@0
   321
  #if  STDCPP_OOM
sl@0
   322
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   323
  #endif 
sl@0
   324
   stringstream ss (stringstream::in | stringstream::out);
sl@0
   325
   stringstream teststring;
sl@0
   326
   
sl@0
   327
    
sl@0
   328
   teststring<<"stringstream testcase";
sl@0
   329
   
sl@0
   330
   teststr = teststring.str();
sl@0
   331
   
sl@0
   332
   if(!teststr.compare("stringstream testcase"))
sl@0
   333
   ;
sl@0
   334
   else
sl@0
   335
   failures++;
sl@0
   336
sl@0
   337
 ss << "120 42 377 6 5 2000";
sl@0
   338
#if  STDCPP_OOM
sl@0
   339
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   340
  #endif 
sl@0
   341
 for (int n=0; n<6; n++)
sl@0
   342
  {
sl@0
   343
    ss >> val;
sl@0
   344
    
sl@0
   345
    switch(n)
sl@0
   346
    {
sl@0
   347
    	case 0://precision 
sl@0
   348
    	if(val!=120)
sl@0
   349
    	failures++;
sl@0
   350
    	break;
sl@0
   351
    	case 1:
sl@0
   352
    	if(val!=42)
sl@0
   353
    	failures++;
sl@0
   354
    	break;
sl@0
   355
    	case 2:
sl@0
   356
    	if(val!=377)
sl@0
   357
    	failures++;
sl@0
   358
    	break;
sl@0
   359
    	case 3:
sl@0
   360
    	if(val!=6)
sl@0
   361
    	failures++;
sl@0
   362
    	break;
sl@0
   363
    	
sl@0
   364
    	case 4:
sl@0
   365
    	if(val!=5)
sl@0
   366
    	failures++;
sl@0
   367
    	break;
sl@0
   368
       
sl@0
   369
    	case 5:
sl@0
   370
    	if(val!=2000)
sl@0
   371
    	failures++;
sl@0
   372
    	break;
sl@0
   373
    
sl@0
   374
    default:
sl@0
   375
    break;
sl@0
   376
    }
sl@0
   377
    
sl@0
   378
   
sl@0
   379
  }
sl@0
   380
sl@0
   381
 /* if(failures)
sl@0
   382
   return KErrGeneral;
sl@0
   383
  return KErrNone;
sl@0
   384
 */
sl@0
   385
 
sl@0
   386
 
sl@0
   387
  
sl@0
   388
  //#if STDCPP_OOM
sl@0
   389
//failures++;
sl@0
   390
// #endif
sl@0
   391
 }
sl@0
   392
sl@0
   393
catch(bad_alloc&)
sl@0
   394
   {
sl@0
   395
   	//do nothing
sl@0
   396
    }
sl@0
   397
   catch(...)
sl@0
   398
   {
sl@0
   399
   	failures++;
sl@0
   400
   	
sl@0
   401
   }
sl@0
   402
   
sl@0
   403
	if( failures == 0 )
sl@0
   404
		return KErrNone;
sl@0
   405
  else  
sl@0
   406
		return KErrGeneral;
sl@0
   407
    }
sl@0
   408
sl@0
   409
// -----------------------------------------------------------------------------
sl@0
   410
// Ctiostreams:: streambuf
sl@0
   411
// Example test method function.
sl@0
   412
// (other items were commented in a header).
sl@0
   413
// -----------------------------------------------------------------------------
sl@0
   414
//
sl@0
   415
sl@0
   416
 TInt Ctiostreams::streambufL(CStifItemParser& aItem )
sl@0
   417
 {
sl@0
   418
//    locale   loc ("en_GB.UTF-8");
sl@0
   419
sl@0
   420
 
sl@0
   421
 
sl@0
   422
 int failures = 0;
sl@0
   423
 try
sl@0
   424
 {
sl@0
   425
 	
sl@0
   426
 
sl@0
   427
 char a[4]=
sl@0
   428
 {
sl@0
   429
 	0
sl@0
   430
 };
sl@0
   431
 
sl@0
   432
 char sentence[]= "Sample sentence";
sl@0
   433
 cout<<"";
sl@0
   434
 #if  STDCPP_OOM
sl@0
   435
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   436
  #endif 
sl@0
   437
 streambuf * pbuf;
sl@0
   438
 ofstream ostr ("c:\\TestFramework\\docs\\streambuf.txt");
sl@0
   439
 
sl@0
   440
 
sl@0
   441
  
sl@0
   442
 if(!cout.rdbuf( )->getloc( ).name( ).c_str( ))    //failing
sl@0
   443
// failures++;
sl@0
   444
 ;
sl@0
   445
 char ch[14];
sl@0
   446
 //rdbuf()s
sl@0
   447
 pbuf = ostr.rdbuf();
sl@0
   448
sl@0
   449
sl@0
   450
//sputn()
sl@0
   451
sl@0
   452
sl@0
   453
sl@0
   454
sl@0
   455
 pbuf->sputn (sentence,sizeof(sentence)-1);
sl@0
   456
sl@0
   457
  
sl@0
   458
 ostr.open("c:\\TestFramework\\docs\\streambuf.txt");
sl@0
   459
  
sl@0
   460
 if(!ostr.is_open())
sl@0
   461
 failures++;
sl@0
   462
   
sl@0
   463
sl@0
   464
 long size1 = pbuf->pubseekoff(0,ios_base::end);
sl@0
   465
 if(size1!=15)
sl@0
   466
 failures++;
sl@0
   467
  
sl@0
   468
sl@0
   469
  pbuf->sputc('a');
sl@0
   470
  
sl@0
   471
sl@0
   472
 long size2 = pbuf->pubseekoff(0,ios_base::end);
sl@0
   473
 if(size2!=16)
sl@0
   474
 failures++;
sl@0
   475
  
sl@0
   476
 ifstream istr("c:\\TestFramework\\docs\\streambuf.txt");
sl@0
   477
 pbuf = istr.rdbuf();
sl@0
   478
sl@0
   479
streamsize i = istr.rdbuf()->sgetn(&a[0], 3);   
sl@0
   480
 
sl@0
   481
    // Display the size and contents of the buffer passed to sgetn.
sl@0
   482
   if(i!=3)
sl@0
   483
   failures++;
sl@0
   484
  
sl@0
   485
 
sl@0
   486
 int k = pbuf->snextc();
sl@0
   487
 
sl@0
   488
 
sl@0
   489
 //sgetc()
sl@0
   490
 while (pbuf->sgetc()!=EOF)
sl@0
   491
  {
sl@0
   492
    // static int i;
sl@0
   493
    int  i=0;
sl@0
   494
      //sbumpc()
sl@0
   495
     ch[i] = pbuf->sbumpc();
sl@0
   496
     i++;
sl@0
   497
  }
sl@0
   498
sl@0
   499
  
sl@0
   500
  if(ch[0]!='a' )
sl@0
   501
  failures++;
sl@0
   502
  
sl@0
   503
 
sl@0
   504
  
sl@0
   505
  
sl@0
   506
  
sl@0
   507
  
sl@0
   508
  istr.close();
sl@0
   509
  #if  STDCPP_OOM
sl@0
   510
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   511
  #endif 
sl@0
   512
  /*
sl@0
   513
  if(failures)
sl@0
   514
  return KErrGeneral;
sl@0
   515
  else
sl@0
   516
  return KErrNone;
sl@0
   517
   
sl@0
   518
   */
sl@0
   519
sl@0
   520
  
sl@0
   521
  //#if STDCPP_OOM
sl@0
   522
//failures++;
sl@0
   523
// #endif
sl@0
   524
 
sl@0
   525
 }
sl@0
   526
 catch(bad_alloc&)
sl@0
   527
   {
sl@0
   528
   	//do nothing
sl@0
   529
    }
sl@0
   530
   catch(...)
sl@0
   531
   {
sl@0
   532
   	failures++;
sl@0
   533
   	
sl@0
   534
   }
sl@0
   535
   
sl@0
   536
	if( failures == 0 )
sl@0
   537
		return KErrNone;
sl@0
   538
  else  
sl@0
   539
		return KErrGeneral;
sl@0
   540
    }
sl@0
   541
 
sl@0
   542
 
sl@0
   543
// -----------------------------------------------------------------------------
sl@0
   544
// Ctiostreams:: ostream
sl@0
   545
// Example test method function.
sl@0
   546
// (other items were commented in a header).
sl@0
   547
// -----------------------------------------------------------------------------
sl@0
   548
//
sl@0
   549
 
sl@0
   550
 TInt Ctiostreams::ostreamL(CStifItemParser& aItem )
sl@0
   551
 
sl@0
   552
 {
sl@0
   553
 
sl@0
   554
  
sl@0
   555
 int failures = 0;
sl@0
   556
 try
sl@0
   557
 {
sl@0
   558
 	
sl@0
   559
 
sl@0
   560
 filebuf fb;
sl@0
   561
char input[17] = "ostream testcase";
sl@0
   562
streamsize size = 5;
sl@0
   563
  fb.open ("c:\\TestFramework\\docs\\ostream.txt",ios::out);
sl@0
   564
  cout<<"";
sl@0
   565
  #if  STDCPP_OOM
sl@0
   566
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   567
  #endif 
sl@0
   568
  ostream os(&fb);
sl@0
   569
  
sl@0
   570
  os.write(input,size);
sl@0
   571
  streamoff i = os.tellp();
sl@0
   572
  if(i!= 5)
sl@0
   573
  failures++;
sl@0
   574
  
sl@0
   575
  os.put('K');
sl@0
   576
  streamoff j = os.tellp();
sl@0
   577
  if(j!=6)
sl@0
   578
  failures++;
sl@0
   579
sl@0
   580
  os.seekp(2);
sl@0
   581
    os<<"i";
sl@0
   582
  streamoff k = os.tellp();
sl@0
   583
sl@0
   584
  if(k!=3)
sl@0
   585
  failures++;
sl@0
   586
  
sl@0
   587
 os.flush();
sl@0
   588
  
sl@0
   589
   #if  STDCPP_OOM
sl@0
   590
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   591
  #endif 
sl@0
   592
  
sl@0
   593
   
sl@0
   594
  /*
sl@0
   595
  if(failures)
sl@0
   596
  return KErrGeneral;
sl@0
   597
  return KErrNone;
sl@0
   598
  */
sl@0
   599
 
sl@0
   600
  
sl@0
   601
   //#if STDCPP_OOM
sl@0
   602
//failures++;
sl@0
   603
// #endif
sl@0
   604
 }
sl@0
   605
 
sl@0
   606
 catch(bad_alloc&)
sl@0
   607
   {
sl@0
   608
   	//do nothing
sl@0
   609
    }
sl@0
   610
   catch(...)
sl@0
   611
   {
sl@0
   612
   	failures++;
sl@0
   613
   	
sl@0
   614
   }
sl@0
   615
   
sl@0
   616
	if( failures == 0 )
sl@0
   617
		return KErrNone;
sl@0
   618
  else  
sl@0
   619
		return KErrGeneral;
sl@0
   620
    }
sl@0
   621
 
sl@0
   622
// -----------------------------------------------------------------------------
sl@0
   623
// Ctiostreams:: istream
sl@0
   624
// Example test method function.
sl@0
   625
// (other items were commented in a header).
sl@0
   626
// -----------------------------------------------------------------------------
sl@0
   627
//
sl@0
   628
  TInt Ctiostreams::istreamL(CStifItemParser& aItem )
sl@0
   629
  {
sl@0
   630
 
sl@0
   631
int failures =0;
sl@0
   632
try
sl@0
   633
{
sl@0
   634
	
sl@0
   635
sl@0
   636
int length;
sl@0
   637
char * buffer;
sl@0
   638
char getl[8] ;
sl@0
   639
 filebuf fb;
sl@0
   640
 fb.open ("c:\\TestFramework\\docs\\istream.txt",ios::in);
sl@0
   641
 cout<<"";
sl@0
   642
 #if  STDCPP_OOM
sl@0
   643
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   644
  #endif 
sl@0
   645
 istream is(&fb);
sl@0
   646
 
sl@0
   647
 //needs to rewrite
sl@0
   648
sl@0
   649
sl@0
   650
  // get length of file:
sl@0
   651
  is.seekg (0, ios::end);
sl@0
   652
  length = is.tellg();
sl@0
   653
  is.seekg (0, ios::beg);
sl@0
   654
  
sl@0
   655
  
sl@0
   656
  
sl@0
   657
sl@0
   658
sl@0
   659
if(length != 7)
sl@0
   660
failures++;
sl@0
   661
sl@0
   662
 char ch = is.get();
sl@0
   663
  
sl@0
   664
   
sl@0
   665
 if(is.gcount() != 1)
sl@0
   666
 failures++;
sl@0
   667
 
sl@0
   668
  
sl@0
   669
 if( ch != 'S')
sl@0
   670
 failures++;
sl@0
   671
 
sl@0
   672
 
sl@0
   673
sl@0
   674
 
sl@0
   675
 
sl@0
   676
 
sl@0
   677
 
sl@0
   678
 char pk1 = is.peek();
sl@0
   679
 
sl@0
   680
 if(pk1!= 'h')
sl@0
   681
 failures++;
sl@0
   682
 
sl@0
   683
 
sl@0
   684
 is.unget();
sl@0
   685
 
sl@0
   686
 char pk2 = is.peek();
sl@0
   687
 if(pk2!= 'S')
sl@0
   688
 failures++;
sl@0
   689
 
sl@0
   690
 is.get();
sl@0
   691
 is.putback('K');
sl@0
   692
 
sl@0
   693
 is.getline(getl,8,'\0');
sl@0
   694
 
sl@0
   695
 if(getl == "Khaheen")
sl@0
   696
 failures++;
sl@0
   697
 
sl@0
   698
 if(is.gcount() != 7)
sl@0
   699
 failures++;
sl@0
   700
 
sl@0
   701
 
sl@0
   702
  fb.close();
sl@0
   703
  /*if(failures)
sl@0
   704
 
sl@0
   705
 
sl@0
   706
  return KErrGeneral;
sl@0
   707
  return KErrNone;
sl@0
   708
  
sl@0
   709
 */
sl@0
   710
   
sl@0
   711
   #if  STDCPP_OOM
sl@0
   712
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   713
  #endif 
sl@0
   714
   //#if STDCPP_OOM
sl@0
   715
//failures++;
sl@0
   716
// #endif
sl@0
   717
	  
sl@0
   718
  }
sl@0
   719
  
sl@0
   720
  catch(bad_alloc&)
sl@0
   721
   {
sl@0
   722
   	//do nothing
sl@0
   723
    }
sl@0
   724
   catch(...)
sl@0
   725
   {
sl@0
   726
   	failures++;
sl@0
   727
   	
sl@0
   728
   }
sl@0
   729
   
sl@0
   730
	if( failures == 0 )
sl@0
   731
		return KErrNone;
sl@0
   732
  else  
sl@0
   733
		return KErrGeneral;
sl@0
   734
    }
sl@0
   735
sl@0
   736
// -----------------------------------------------------------------------------
sl@0
   737
// Ctiostreams:: istringstream
sl@0
   738
// Example test method function.
sl@0
   739
// (other items were commented in a header).
sl@0
   740
// -----------------------------------------------------------------------------
sl@0
   741
//  
sl@0
   742
  
sl@0
   743
   TInt Ctiostreams::istringstreamL(CStifItemParser& aItem )
sl@0
   744
   {
sl@0
   745
   	int n,val;
sl@0
   746
 	int failures =0;
sl@0
   747
 	try
sl@0
   748
 	{
sl@0
   749
 	string strvalues = "125 320 512 750 333";
sl@0
   750
 	cout<<"";	
sl@0
   751
 	#if  STDCPP_OOM
sl@0
   752
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   753
  #endif 
sl@0
   754
	
sl@0
   755
  	istringstream iss (strvalues,istringstream::in);
sl@0
   756
sl@0
   757
if(iss.str()  != "125 320 512 750 333")
sl@0
   758
failures++;
sl@0
   759
sl@0
   760
#if  STDCPP_OOM
sl@0
   761
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   762
  #endif 
sl@0
   763
  for (n=0; n<5; n++)
sl@0
   764
  {
sl@0
   765
    iss >> val;
sl@0
   766
     switch(n)
sl@0
   767
    {
sl@0
   768
    	case 0:
sl@0
   769
    	if(val!=125)
sl@0
   770
    	failures++;
sl@0
   771
    	break;
sl@0
   772
    	case 1:
sl@0
   773
    	if(val!=320)
sl@0
   774
    	failures++;
sl@0
   775
    	break;
sl@0
   776
    	case 2:
sl@0
   777
    	if(val!=512)
sl@0
   778
    	failures++;
sl@0
   779
    	break;
sl@0
   780
    	case 3:
sl@0
   781
    	if(val!=750)
sl@0
   782
    	failures++;
sl@0
   783
    	break;
sl@0
   784
    	
sl@0
   785
    	case 4:
sl@0
   786
    	if(val!=333)
sl@0
   787
    	failures++;
sl@0
   788
    	break;
sl@0
   789
       
sl@0
   790
    	    
sl@0
   791
    default:
sl@0
   792
    break;
sl@0
   793
    }
sl@0
   794
    
sl@0
   795
  }
sl@0
   796
  
sl@0
   797
   
sl@0
   798
   //#if STDCPP_OOM
sl@0
   799
//failures++;
sl@0
   800
// #endif
sl@0
   801
sl@0
   802
/* if(failures)
sl@0
   803
 return KErrGeneral;
sl@0
   804
 else
sl@0
   805
 return KErrNone;*/
sl@0
   806
   }
sl@0
   807
   
sl@0
   808
   catch(bad_alloc&)
sl@0
   809
   {
sl@0
   810
   	//do nothing
sl@0
   811
    }
sl@0
   812
   catch(...)
sl@0
   813
   {
sl@0
   814
   	failures++;
sl@0
   815
   	
sl@0
   816
   }
sl@0
   817
   
sl@0
   818
	if( failures == 0 )
sl@0
   819
		return KErrNone;
sl@0
   820
  else  
sl@0
   821
		return KErrGeneral;
sl@0
   822
    }
sl@0
   823
   
sl@0
   824
   
sl@0
   825
   
sl@0
   826
   
sl@0
   827
   
sl@0
   828
   
sl@0
   829
// -----------------------------------------------------------------------------
sl@0
   830
// Ctiostreams:: ostringstream,
sl@0
   831
// Example test method function.
sl@0
   832
// (other items were commented in a header).
sl@0
   833
// -----------------------------------------------------------------------------
sl@0
   834
//
sl@0
   835
   
sl@0
   836
   TInt Ctiostreams::ostringstreamL(CStifItemParser& aItem )
sl@0
   837
   {
sl@0
   838
 	int failures =0 ;
sl@0
   839
 	try
sl@0
   840
 	{
sl@0
   841
 		
sl@0
   842
 	
sl@0
   843
 	basic_string<char> i( "test" );
sl@0
   844
 	cout<<"";
sl@0
   845
 	#if  STDCPP_OOM
sl@0
   846
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   847
  #endif 
sl@0
   848
   ostringstream ss;
sl@0
   849
   
sl@0
   850
   ss.rdbuf( )->str( i );
sl@0
   851
   if(ss.str( ).compare("test") != 0)
sl@0
   852
   failures++; 
sl@0
   853
sl@0
   854
   ss << "z";
sl@0
   855
   if(ss.str( ) .compare("zest")!=0)
sl@0
   856
   failures++;
sl@0
   857
      
sl@0
   858
   ss.rdbuf( )->str( "be" );
sl@0
   859
   if(ss.str( ).compare("be")!=0)
sl@0
   860
   failures++;
sl@0
   861
   
sl@0
   862
   #if  STDCPP_OOM
sl@0
   863
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   864
  #endif 
sl@0
   865
   /*
sl@0
   866
   if(failures)
sl@0
   867
   
sl@0
   868
	return KErrGeneral;
sl@0
   869
	else
sl@0
   870
	return KErrNone;
sl@0
   871
*/
sl@0
   872
sl@0
   873
sl@0
   874
 
sl@0
   875
   //#if STDCPP_OOM
sl@0
   876
//failures++;
sl@0
   877
// #endif
sl@0
   878
   }
sl@0
   879
   
sl@0
   880
   catch(bad_alloc&)
sl@0
   881
   {
sl@0
   882
   	//do nothing
sl@0
   883
    }
sl@0
   884
   catch(...)
sl@0
   885
   {
sl@0
   886
   	failures++;
sl@0
   887
   	
sl@0
   888
   }
sl@0
   889
   
sl@0
   890
	if( failures == 0 )
sl@0
   891
		return KErrNone;
sl@0
   892
  else  
sl@0
   893
		return KErrGeneral;
sl@0
   894
    }
sl@0
   895
   
sl@0
   896
    TInt Ctiostreams::ostreamiterators(CStifItemParser& aItem )
sl@0
   897
    {
sl@0
   898
    	
sl@0
   899
    
sl@0
   900
  //needs to rewrite
sl@0
   901
  //____________________
sl@0
   902
   
sl@0
   903
   int arr[4] = { 3,4,7,8 };
sl@0
   904
   int total=0;
sl@0
   905
   deque<int> d(arr+0, arr+4);
sl@0
   906
   //
sl@0
   907
   // stream the whole vector and a sum to cout
sl@0
   908
   //
sl@0
   909
  
sl@0
   910
   copy(d.begin(),(d.end()-1),ostream_iterator<int,char>(cout,""));
sl@0
   911
  
sl@0
   912
  
sl@0
   913
  if( *(d.end()-1) == 8)
sl@0
   914
  return KErrNone;
sl@0
   915
  return KErrGeneral;
sl@0
   916
sl@0
   917
sl@0
   918
 }
sl@0
   919
sl@0
   920
    
sl@0
   921
    
sl@0
   922
// -----------------------------------------------------------------------------
sl@0
   923
// Ctiostreams:: fstream
sl@0
   924
// Example test method function.
sl@0
   925
// (other items were commented in a header).
sl@0
   926
// -----------------------------------------------------------------------------
sl@0
   927
//
sl@0
   928
    
sl@0
   929
    
sl@0
   930
    TInt Ctiostreams::fstreamL(CStifItemParser& aItem ) 
sl@0
   931
    {
sl@0
   932
   //  __UHEAP_MARK;
sl@0
   933
int failures =0;
sl@0
   934
try
sl@0
   935
{
sl@0
   936
cout<<"";	
sl@0
   937
#if  STDCPP_OOM
sl@0
   938
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
   939
  #endif 
sl@0
   940
fstream filestr ("c:\\TestFramework\\docs\\fstream.txt", fstream::in | fstream::out);
sl@0
   941
sl@0
   942
if(!filestr.is_open())
sl@0
   943
failures++;
sl@0
   944
 
sl@0
   945
filestr.close();
sl@0
   946
if(filestr.is_open())
sl@0
   947
failures++;
sl@0
   948
  
sl@0
   949
 // __UHEAP_MARKEND;
sl@0
   950
  
sl@0
   951
  /*if(failures)
sl@0
   952
return KErrNone;
sl@0
   953
return KErrGeneral;
sl@0
   954
    */  
sl@0
   955
 #if  STDCPP_OOM
sl@0
   956
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
   957
  #endif    
sl@0
   958
   //#if STDCPP_OOM
sl@0
   959
//failures++;
sl@0
   960
// #endif
sl@0
   961
    
sl@0
   962
    }
sl@0
   963
   catch(bad_alloc&)
sl@0
   964
   {
sl@0
   965
   	//do nothing
sl@0
   966
    }
sl@0
   967
   catch(...)
sl@0
   968
   {
sl@0
   969
   	failures++;
sl@0
   970
   	
sl@0
   971
   }
sl@0
   972
   
sl@0
   973
	if( failures == 0 )
sl@0
   974
		return KErrNone;
sl@0
   975
  else  
sl@0
   976
		return KErrGeneral;
sl@0
   977
    } 
sl@0
   978
 
sl@0
   979
// -----------------------------------------------------------------------------
sl@0
   980
// Ctiostreams:: istrstream
sl@0
   981
// Example test method function.
sl@0
   982
// (other items were commented in a header).
sl@0
   983
// -----------------------------------------------------------------------------
sl@0
   984
//   
sl@0
   985
    TInt Ctiostreams::istrstreamL(CStifItemParser& aItem ) 
sl@0
   986
    {
sl@0
   987
  //  __UHEAP_MARK;	
sl@0
   988
  int failures=0;
sl@0
   989
  try
sl@0
   990
  {
sl@0
   991
  	
sl@0
   992
  
sl@0
   993
    char* p = "This is first string";
sl@0
   994
    char* q = "This is second string";
sl@0
   995
    char* r = "";
sl@0
   996
    const char* s ="const char";
sl@0
   997
    streamsize  n =10;
sl@0
   998
    cout<<"";
sl@0
   999
    #if  STDCPP_OOM
sl@0
  1000
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1001
  #endif 
sl@0
  1002
    istrstream first(p);
sl@0
  1003
    istrstream second(q);
sl@0
  1004
    istrstream third(r);
sl@0
  1005
    
sl@0
  1006
    istrstream four(s);
sl@0
  1007
    
sl@0
  1008
    istrstream  five(p,n);
sl@0
  1009
    istrstream six(s,n);
sl@0
  1010
 /*   if(first.str() == "This is first string")
sl@0
  1011
    if(second.str()!= " This is second string")
sl@0
  1012
    if(third.str() == "")
sl@0
  1013
 //   __UHEAP_MARKEND;
sl@0
  1014
    
sl@0
  1015
    return KErrNone;
sl@0
  1016
    return KErrGeneral;
sl@0
  1017
   */ 
sl@0
  1018
       first.rdbuf();
sl@0
  1019
    second.rdbuf();
sl@0
  1020
    third.rdbuf();
sl@0
  1021
    
sl@0
  1022
     if(first.str() != "This is first string")
sl@0
  1023
    if(second.str()== " This is second string")
sl@0
  1024
    if(third.str() != "")
sl@0
  1025
    failures++;
sl@0
  1026
    
sl@0
  1027
    #if  STDCPP_OOM
sl@0
  1028
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1029
  #endif 
sl@0
  1030
  //#if STDCPP_OOM
sl@0
  1031
//failures++;
sl@0
  1032
// #endif
sl@0
  1033
     
sl@0
  1034
    }
sl@0
  1035
    
sl@0
  1036
    
sl@0
  1037
    catch(bad_alloc&)
sl@0
  1038
   {
sl@0
  1039
   	//do nothing
sl@0
  1040
    }
sl@0
  1041
   catch(...)
sl@0
  1042
   {
sl@0
  1043
   	failures++;
sl@0
  1044
   	
sl@0
  1045
   }
sl@0
  1046
   
sl@0
  1047
	if( failures == 0 )
sl@0
  1048
		return KErrNone;
sl@0
  1049
  else  
sl@0
  1050
		return KErrGeneral;
sl@0
  1051
    }
sl@0
  1052
    
sl@0
  1053
TInt Ctiostreams::strstreamL(CStifItemParser& aItem ) 
sl@0
  1054
      {
sl@0
  1055
    // __UHEAP_MARK; 	
sl@0
  1056
     
sl@0
  1057
  	int failures = 0;
sl@0
  1058
  	try
sl@0
  1059
  	{
sl@0
  1060
  	cout<<"";	
sl@0
  1061
  	#if  STDCPP_OOM
sl@0
  1062
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1063
  #endif 
sl@0
  1064
  char* s;
sl@0
  1065
   int n;
sl@0
  1066
   ios_base::openmode mode;
sl@0
  1067
//  strstream ss3(s, n, mode);
sl@0
  1068
  	strstream ss1,ss2;
sl@0
  1069
  	 ss1 << "";
sl@0
  1070
  	 ss1.rdbuf();
sl@0
  1071
  	 if(ss1.rdbuf( )->pcount( ) != 0)
sl@0
  1072
  	 failures++;
sl@0
  1073
  	 
sl@0
  1074
  	 string str1= ss1.str();
sl@0
  1075
  	 if(str1.compare("")!=0)
sl@0
  1076
  	 failures++;
sl@0
  1077
  	 
sl@0
  1078
  	 ss2 << "strstream testcase";
sl@0
  1079
  	 ss2 << '\0';
sl@0
  1080
  	 if( ss2.rdbuf( )->pcount( ) != sizeof("strstream testcase\0")-1)
sl@0
  1081
  	 failures++;
sl@0
  1082
  	 
sl@0
  1083
  	 string str = ss2.str();
sl@0
  1084
  	 
sl@0
  1085
  	 if(str.compare("strstream testcase")!= 0)
sl@0
  1086
  	 failures++;
sl@0
  1087
  	 ss1.freeze();
sl@0
  1088
  	 //__UHEAP_MARKEND;
sl@0
  1089
  /*	 
sl@0
  1090
  	 if(failures)
sl@0
  1091
  	 return KErrGeneral;
sl@0
  1092
  	 else
sl@0
  1093
  	return KErrNone;
sl@0
  1094
  */
sl@0
  1095
  
sl@0
  1096
  
sl@0
  1097
  #if  STDCPP_OOM
sl@0
  1098
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1099
  #endif 
sl@0
  1100
  
sl@0
  1101
    //#if STDCPP_OOM
sl@0
  1102
//failures++;
sl@0
  1103
// #endif
sl@0
  1104
      }
sl@0
  1105
      
sl@0
  1106
      catch(bad_alloc&)
sl@0
  1107
   {
sl@0
  1108
   	//do nothing
sl@0
  1109
    }
sl@0
  1110
   catch(...)
sl@0
  1111
   {
sl@0
  1112
   	failures++;
sl@0
  1113
   	
sl@0
  1114
   }
sl@0
  1115
   
sl@0
  1116
	if( failures == 0 )
sl@0
  1117
		return KErrNone;
sl@0
  1118
  else  
sl@0
  1119
		return KErrGeneral;
sl@0
  1120
    }
sl@0
  1121
    
sl@0
  1122
    
sl@0
  1123
TInt Ctiostreams::ostrstreamL(CStifItemParser& aItem ) 
sl@0
  1124
      {
sl@0
  1125
      	
sl@0
  1126
     //__UHEAP_MARK;
sl@0
  1127
     int failures = 0;
sl@0
  1128
     try
sl@0
  1129
     {
sl@0
  1130
     cout<<"";	
sl@0
  1131
     #if  STDCPP_OOM
sl@0
  1132
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1133
  #endif 
sl@0
  1134
  	char* s;
sl@0
  1135
  	int n;
sl@0
  1136
  	ios_base::openmode mode;
sl@0
  1137
//  	ostrstream  oss3( s, n, mode);
sl@0
  1138
  	ostrstream  oss1 ,oss2;
sl@0
  1139
  	string str;
sl@0
  1140
  	 oss1 << "";
sl@0
  1141
  	 oss1.rdbuf();
sl@0
  1142
  	 if(oss1.rdbuf( )->pcount( ) != 0)
sl@0
  1143
  	 failures++;
sl@0
  1144
  	 
sl@0
  1145
  	 oss2 << "ostrstream testcase";
sl@0
  1146
  	 oss2<<'\0';
sl@0
  1147
  	 str = oss2.str();
sl@0
  1148
  	 
sl@0
  1149
  	 if(str.compare("ostrstream testcase") !=0)
sl@0
  1150
  	 failures++;
sl@0
  1151
  	 
sl@0
  1152
   oss2.freeze();
sl@0
  1153
  	 
sl@0
  1154
  	 #if  STDCPP_OOM
sl@0
  1155
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1156
  #endif 
sl@0
  1157
  	
sl@0
  1158
  	// __UHEAP_MARKEND;
sl@0
  1159
  /*	 
sl@0
  1160
  	 if(failures)
sl@0
  1161
  	 return KErrGeneral;
sl@0
  1162
  	 else
sl@0
  1163
  	return KErrNone;
sl@0
  1164
  */
sl@0
  1165
  
sl@0
  1166
    //#if STDCPP_OOM
sl@0
  1167
//failures++;
sl@0
  1168
// #endif
sl@0
  1169
      }
sl@0
  1170
      
sl@0
  1171
      catch(bad_alloc&)
sl@0
  1172
   {
sl@0
  1173
   	//do nothing
sl@0
  1174
    }
sl@0
  1175
   catch(...)
sl@0
  1176
   {
sl@0
  1177
   	failures++;
sl@0
  1178
   	
sl@0
  1179
   }
sl@0
  1180
   
sl@0
  1181
	if( failures == 0 )
sl@0
  1182
		return KErrNone;
sl@0
  1183
  else  
sl@0
  1184
		return KErrGeneral;
sl@0
  1185
    }
sl@0
  1186
   
sl@0
  1187
sl@0
  1188
sl@0
  1189
 TInt Ctiostreams::istreamiterators(CStifItemParser& aItem )
sl@0
  1190
    {
sl@0
  1191
    	
sl@0
  1192
   // __UHEAP_MARK;
sl@0
  1193
   // Typedefs for convenience.
sl@0
  1194
   int failures=0;
sl@0
  1195
   try
sl@0
  1196
   {
sl@0
  1197
   cout<<"";
sl@0
  1198
   	#if  STDCPP_OOM
sl@0
  1199
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1200
  #endif 
sl@0
  1201
   
sl@0
  1202
    typedef std::vector<int, std::allocator<int> >    Vector;
sl@0
  1203
sl@0
  1204
    typedef std::istream_iterator<Vector::value_type,char, std::char_traits<char>, ptrdiff_t>        is_iter;
sl@0
  1205
sl@0
  1206
 #if  STDCPP_OOM
sl@0
  1207
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1208
  #endif 
sl@0
  1209
    Vector v;
sl@0
  1210
//__UHEAP_MARKEND;
sl@0
  1211
 
sl@0
  1212
    //#if STDCPP_OOM
sl@0
  1213
//failures++;
sl@0
  1214
// #endif
sl@0
  1215
 
sl@0
  1216
sl@0
  1217
sl@0
  1218
 }
sl@0
  1219
sl@0
  1220
sl@0
  1221
catch(bad_alloc&)
sl@0
  1222
   {
sl@0
  1223
   	//do nothing
sl@0
  1224
    }
sl@0
  1225
   catch(...)
sl@0
  1226
   {
sl@0
  1227
   	failures++;
sl@0
  1228
   	
sl@0
  1229
   }
sl@0
  1230
   
sl@0
  1231
	if( failures == 0 )
sl@0
  1232
		return KErrNone;
sl@0
  1233
  else  
sl@0
  1234
		return KErrGeneral;
sl@0
  1235
    }
sl@0
  1236
   
sl@0
  1237
   
sl@0
  1238
 TInt Ctiostreams::istreambufiterators(CStifItemParser& aItem )
sl@0
  1239
    {
sl@0
  1240
    	
sl@0
  1241
      
sl@0
  1242
   //   __UHEAP_MARK;
sl@0
  1243
       // create a temporary filename
sl@0
  1244
       
sl@0
  1245
       int failures=0;
sl@0
  1246
       try
sl@0
  1247
       {
sl@0
  1248
       	
sl@0
  1249
       
sl@0
  1250
    const char *fname = tmpnam (0);
sl@0
  1251
sl@0
  1252
    if (!fname)
sl@0
  1253
        return 1;
sl@0
  1254
sl@0
  1255
    // open the file is_iter.out for reading and writing
sl@0
  1256
    std::ofstream out (fname, std::ios::out | std::ios::in | 
sl@0
  1257
                              std::ios::trunc);
sl@0
  1258
sl@0
  1259
    // output the example sentence into the file
sl@0
  1260
sl@0
  1261
    // seek to the beginning of the file
sl@0
  1262
    out.seekp (0);
sl@0
  1263
    cout<<"";
sl@0
  1264
#if  STDCPP_OOM
sl@0
  1265
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1266
  #endif 
sl@0
  1267
    // construct an istreambuf_iterator pointing to
sl@0
  1268
    // the ofstream object underlying streambuffer
sl@0
  1269
    std::istreambuf_iterator<char, std::char_traits<char> >iter (out.rdbuf ());
sl@0
  1270
sl@0
  1271
    // construct an end of stream iterator
sl@0
  1272
    const std::istreambuf_iterator<char,std::char_traits<char> > end;
sl@0
  1273
#if  STDCPP_OOM
sl@0
  1274
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1275
  #endif 
sl@0
  1276
    std::cout << std::endl;
sl@0
  1277
sl@0
  1278
    // output the content of the file
sl@0
  1279
    while (!iter.equal (end)) {
sl@0
  1280
sl@0
  1281
        // use both operator++ and operator*
sl@0
  1282
        std::cout << *iter++;
sl@0
  1283
    }
sl@0
  1284
sl@0
  1285
    std::cout << std::endl; 
sl@0
  1286
sl@0
  1287
    // remove temporary file
sl@0
  1288
    remove (fname);
sl@0
  1289
//__UHEAP_MARKEND;
sl@0
  1290
 
sl@0
  1291
 //#if STDCPP_OOM
sl@0
  1292
//failures++;
sl@0
  1293
// #endif
sl@0
  1294
sl@0
  1295
 }
sl@0
  1296
sl@0
  1297
catch(bad_alloc&)
sl@0
  1298
   {
sl@0
  1299
   	//do nothing
sl@0
  1300
    }
sl@0
  1301
   catch(...)
sl@0
  1302
   {
sl@0
  1303
   	failures++;
sl@0
  1304
   	
sl@0
  1305
   }
sl@0
  1306
   
sl@0
  1307
	if( failures == 0 )
sl@0
  1308
		return KErrNone;
sl@0
  1309
  else  
sl@0
  1310
		return KErrGeneral;
sl@0
  1311
    }
sl@0
  1312
    
sl@0
  1313
    
sl@0
  1314
    
sl@0
  1315
 TInt Ctiostreams::strstreambufL(CStifItemParser& aItem )
sl@0
  1316
 
sl@0
  1317
 
sl@0
  1318
 {
sl@0
  1319
// 	__UHEAP_MARK;
sl@0
  1320
 	
sl@0
  1321
 int failures =0;
sl@0
  1322
 try
sl@0
  1323
 {
sl@0
  1324
 	
sl@0
  1325
 cout<<"";
sl@0
  1326
sl@0
  1327
  	#if  STDCPP_OOM
sl@0
  1328
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1329
  #endif 
sl@0
  1330
  
sl@0
  1331
  signed char* get;
sl@0
  1332
  streamsize n=10;
sl@0
  1333
  signed char* put;
sl@0
  1334
   unsigned char* uget;
sl@0
  1335
   unsigned char* uput;
sl@0
  1336
  const char* cget;
sl@0
  1337
  const signed char* csget;
sl@0
  1338
  
sl@0
  1339
  const unsigned char* cucget;
sl@0
  1340
  
sl@0
  1341
  
sl@0
  1342
  typedef void* (*__alloc_fn)(size_t);
sl@0
  1343
  typedef void (*__free_fn)(void*);
sl@0
  1344
 
sl@0
  1345
  __alloc_fn  alloc_f;
sl@0
  1346
 
sl@0
  1347
  __free_fn free_f;
sl@0
  1348
  
sl@0
  1349
  	//overloaded
sl@0
  1350
  	strstreambuf  buf1(get, n,put);
sl@0
  1351
  	
sl@0
  1352
  	//overloaded
sl@0
  1353
  	
sl@0
  1354
  	strstreambuf buf2(uget,n,uput);
sl@0
  1355
  	
sl@0
  1356
  	  	//overloaded
sl@0
  1357
  	strstreambuf buf3(cget,n);
sl@0
  1358
  	//onverloaded
sl@0
  1359
  	strstreambuf buf4(csget,n);
sl@0
  1360
  	//overloaded
sl@0
  1361
  	strstreambuf buf5(cucget,n);
sl@0
  1362
  	
sl@0
  1363
  	
sl@0
  1364
//  	strstreambuf buf6( alloc_f, free_f);
sl@0
  1365
  	  	strstreambuf buf7(n);
sl@0
  1366
sl@0
  1367
  	strstreambuf  buf;
sl@0
  1368
  string str;
sl@0
  1369
 int i = buf.sputn("strstreambuf testcase", sizeof("strstreambuf testcase")-1);
sl@0
  1370
 
sl@0
  1371
if((buf.pcount())!= i) 
sl@0
  1372
failures++;
sl@0
  1373
 
sl@0
  1374
 buf.freeze();
sl@0
  1375
//if(buf.str() != "strstreambuf testcase")   //fails
sl@0
  1376
//failures++;
sl@0
  1377
sl@0
  1378
#if  STDCPP_OOM
sl@0
  1379
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1380
  #endif 
sl@0
  1381
sl@0
  1382
//__UHEAP_MARKEND; 
sl@0
  1383
/*if(failures)
sl@0
  1384
return KErrGeneral;
sl@0
  1385
else
sl@0
  1386
 return KErrNone;
sl@0
  1387
  */
sl@0
  1388
  
sl@0
  1389
  //#if STDCPP_OOM
sl@0
  1390
//failures++;
sl@0
  1391
// #endif
sl@0
  1392
 
sl@0
  1393
 }
sl@0
  1394
 catch(bad_alloc&)
sl@0
  1395
   {
sl@0
  1396
   	//do nothing
sl@0
  1397
    }
sl@0
  1398
   catch(...)
sl@0
  1399
   {
sl@0
  1400
   	failures++;
sl@0
  1401
   	
sl@0
  1402
   }
sl@0
  1403
   
sl@0
  1404
	if( failures == 0 )
sl@0
  1405
		return KErrNone;
sl@0
  1406
  else  
sl@0
  1407
		return KErrGeneral;
sl@0
  1408
    }
sl@0
  1409
    
sl@0
  1410
    
sl@0
  1411
    
sl@0
  1412
sl@0
  1413
 TInt Ctiostreams::freezeL(CStifItemParser& aItem )
sl@0
  1414
 {
sl@0
  1415
 
sl@0
  1416
 int failures=0;
sl@0
  1417
 try
sl@0
  1418
 {
sl@0
  1419
 	
sl@0
  1420
  strstream  x;
sl@0
  1421
int failures =0;
sl@0
  1422
    x << "test1";
sl@0
  1423
   
sl@0
  1424
if(!x.good())
sl@0
  1425
failures++;    
sl@0
  1426
cout<<"";
sl@0
  1427
 
sl@0
  1428
  #if  STDCPP_OOM
sl@0
  1429
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1430
  #endif  
sl@0
  1431
   
sl@0
  1432
  x.rdbuf()->freeze();
sl@0
  1433
 #if  STDCPP_OOM
sl@0
  1434
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1435
  #endif 
sl@0
  1436
if(!x.good())
sl@0
  1437
failures++;
sl@0
  1438
sl@0
  1439
    // Stream is bad now, wrote on frozen stream
sl@0
  1440
    x << "test1.5";
sl@0
  1441
    
sl@0
  1442
//  report(x);
sl@0
  1443
if(!x.good())
sl@0
  1444
failures++;
sl@0
  1445
    // Unfreeze stream, but it is still bad
sl@0
  1446
    x.rdbuf()->freeze(false);
sl@0
  1447
 if(!x.good())
sl@0
  1448
failures++;
sl@0
  1449
sl@0
  1450
    // Clear stream
sl@0
  1451
    x.clear();
sl@0
  1452
 
sl@0
  1453
if(!x.good())
sl@0
  1454
failures++;
sl@0
  1455
sl@0
  1456
sl@0
  1457
    x << "test3";
sl@0
  1458
sl@0
  1459
sl@0
  1460
sl@0
  1461
sl@0
  1462
    // Clean up.  Failure to unfreeze stream will cause a
sl@0
  1463
    // memory leak.
sl@0
  1464
    x.rdbuf()->freeze(false);
sl@0
  1465
    /*
sl@0
  1466
if(failures)
sl@0
  1467
return KErrGeneral;
sl@0
  1468
else
sl@0
  1469
return KErrNone;
sl@0
  1470
sl@0
  1471
*/
sl@0
  1472
sl@0
  1473
 //#if STDCPP_OOM
sl@0
  1474
//failures++;
sl@0
  1475
// #endif
sl@0
  1476
  }
sl@0
  1477
  
sl@0
  1478
  
sl@0
  1479
  
sl@0
  1480
  catch(bad_alloc&)
sl@0
  1481
   {
sl@0
  1482
   	//do nothing
sl@0
  1483
    }
sl@0
  1484
   catch(...)
sl@0
  1485
   {
sl@0
  1486
   	failures++;
sl@0
  1487
   	
sl@0
  1488
   }
sl@0
  1489
   
sl@0
  1490
	if( failures == 0 )
sl@0
  1491
		return KErrNone;
sl@0
  1492
  else  
sl@0
  1493
		return KErrGeneral;
sl@0
  1494
    }
sl@0
  1495
 
sl@0
  1496
sl@0
  1497
 TInt Ctiostreams::fposL(CStifItemParser& aItem )
sl@0
  1498
 {
sl@0
  1499
 int failures=0;
sl@0
  1500
 try
sl@0
  1501
 {
sl@0
  1502
 	
sl@0
  1503
 
sl@0
  1504
 streamoff s;
sl@0
  1505
   ifstream file( "c:\\TestFramework\\docs\\fpos_state.txt" );
sl@0
  1506
  cout<<"";
sl@0
  1507
    #if  STDCPP_OOM
sl@0
  1508
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1509
  #endif
sl@0
  1510
   fpos<mbstate_t> f = file.tellg( );
sl@0
  1511
   char ch;
sl@0
  1512
   while ( !file.eof( ) )
sl@0
  1513
      file.get( ch );
sl@0
  1514
  
sl@0
  1515
  f.state();
sl@0
  1516
    cout<<"";
sl@0
  1517
    #if  STDCPP_OOM
sl@0
  1518
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1519
  #endif
sl@0
  1520
   //s = f;
sl@0
  1521
  // if(f.state( ))
sl@0
  1522
  // failures++;
sl@0
  1523
  // f.state( 9 );
sl@0
  1524
 //  if( f.state( ))
sl@0
  1525
 //  failures++;
sl@0
  1526
   /*if(failures)
sl@0
  1527
   return KErrGeneral;
sl@0
  1528
   return KErrNone;*/
sl@0
  1529
   
sl@0
  1530
   //#if STDCPP_OOM
sl@0
  1531
//failures++;
sl@0
  1532
// #endif
sl@0
  1533
 }
sl@0
  1534
sl@0
  1535
 catch(bad_alloc&)
sl@0
  1536
   {
sl@0
  1537
   	//do nothing
sl@0
  1538
    }
sl@0
  1539
   catch(...)
sl@0
  1540
   {
sl@0
  1541
   	failures++;
sl@0
  1542
   	
sl@0
  1543
   }
sl@0
  1544
   
sl@0
  1545
	if( failures == 0 )
sl@0
  1546
		return KErrNone;
sl@0
  1547
  else  
sl@0
  1548
		return KErrGeneral;
sl@0
  1549
    }
sl@0
  1550
 
sl@0
  1551
 
sl@0
  1552
 
sl@0
  1553
 
sl@0
  1554
// -----------------------------------------------------------------------------
sl@0
  1555
// Cstdcpp_filebuf::filebufL
sl@0
  1556
// Example test method function.
sl@0
  1557
// (other items were commented in a header).
sl@0
  1558
// -----------------------------------------------------------------------------
sl@0
  1559
//
sl@0
  1560
TInt Ctiostreams::filebufL( CStifItemParser& aItem )
sl@0
  1561
    {
sl@0
  1562
   int failures=0;
sl@0
  1563
try
sl@0
  1564
{
sl@0
  1565
	
sl@0
  1566
sl@0
  1567
sl@0
  1568
    ifstream is;
sl@0
  1569
    cout<<"";
sl@0
  1570
    #if  STDCPP_OOM
sl@0
  1571
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1572
  #endif 
sl@0
  1573
  filebuf * fb;
sl@0
  1574
sl@0
  1575
  fb = is.rdbuf();
sl@0
  1576
  fb->open ("c:\\TestFramework\\docs\\filebuf.txt",ios::in);
sl@0
  1577
sl@0
  1578
   if(!fb->is_open())
sl@0
  1579
   failures++;
sl@0
  1580
   
sl@0
  1581
sl@0
  1582
  fb->close();
sl@0
  1583
if(fb->is_open())
sl@0
  1584
failures++;
sl@0
  1585
sl@0
  1586
sl@0
  1587
#if  STDCPP_OOM
sl@0
  1588
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1589
  #endif 
sl@0
  1590
/*
sl@0
  1591
if(failures)
sl@0
  1592
return KErrGeneral;
sl@0
  1593
return KErrNone;
sl@0
  1594
 */
sl@0
  1595
 
sl@0
  1596
  //#if STDCPP_OOM
sl@0
  1597
//failures++;
sl@0
  1598
// #endif
sl@0
  1599
 
sl@0
  1600
    }
sl@0
  1601
    
sl@0
  1602
    catch(bad_alloc&)
sl@0
  1603
   {
sl@0
  1604
   	//do nothing
sl@0
  1605
    }
sl@0
  1606
   catch(...)
sl@0
  1607
   {
sl@0
  1608
   	failures++;
sl@0
  1609
   	
sl@0
  1610
   }
sl@0
  1611
   
sl@0
  1612
	if( failures == 0 )
sl@0
  1613
		return KErrNone;
sl@0
  1614
  else  
sl@0
  1615
		return KErrGeneral;
sl@0
  1616
    }
sl@0
  1617
 
sl@0
  1618
 
sl@0
  1619
    
sl@0
  1620
TInt Ctiostreams::basicstring( CStifItemParser& aItem )
sl@0
  1621
    {
sl@0
  1622
				int failures =0;
sl@0
  1623
				
sl@0
  1624
				try
sl@0
  1625
				{
sl@0
  1626
					
sl@0
  1627
				
sl@0
  1628
			    const char *cstr1a = "Hello Out There.";
sl@0
  1629
			    cout<<"";
sl@0
  1630
			    #if  STDCPP_OOM
sl@0
  1631
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1632
  #endif 
sl@0
  1633
			   basic_string<char> str1a(cstr1a ,5);
sl@0
  1634
	 
sl@0
  1635
			   if(str1a.compare("Hello")!=0)
sl@0
  1636
			   failures++;
sl@0
  1637
			    
sl@0
  1638
			    str1a.append("Out There");
sl@0
  1639
			    if(!str1a.compare("Hello Out There"))
sl@0
  1640
			    failures++;
sl@0
  1641
			    
sl@0
  1642
			    
sl@0
  1643
			   string  str2a ( "How Do You Do?" );
sl@0
  1644
			   basic_string <char> str2b ( str2a , 7 , 7 );
sl@0
  1645
			   
sl@0
  1646
			    if(str2b.compare("You Do?")!=0)
sl@0
  1647
			   failures++;
sl@0
  1648
			   
sl@0
  1649
			    
sl@0
  1650
			 
sl@0
  1651
			   basic_string <char> str3a ( 5, '9' );
sl@0
  1652
			   if(str3a.compare("99999")!=0)
sl@0
  1653
			   failures++;
sl@0
  1654
			   
sl@0
  1655
sl@0
  1656
			   
sl@0
  1657
			   basic_string <char> str4a;
sl@0
  1658
			   string str4b;
sl@0
  1659
			   basic_string <char> str4c ( str4b.get_allocator( ) );
sl@0
  1660
			   if (!str4c.empty ())
sl@0
  1661
			   failures++;
sl@0
  1662
			      
sl@0
  1663
sl@0
  1664
			  
sl@0
  1665
			   string str5a ( "Hello World");
sl@0
  1666
			    basic_string <char>::iterator strp_Iter, str1_Iter, str2_Iter;
sl@0
  1667
			   
sl@0
  1668
			   
sl@0
  1669
			   
sl@0
  1670
			   strp_Iter = str5a.begin();
sl@0
  1671
			   if(*strp_Iter != 'H' )
sl@0
  1672
				failures++;
sl@0
  1673
			   
sl@0
  1674
			   
sl@0
  1675
			   
sl@0
  1676
			   
sl@0
  1677
			   basic_string <char>::reference refStr2 = str5a.at ( 3 );
sl@0
  1678
			   
sl@0
  1679
			   if(refStr2 != 'l')
sl@0
  1680
			   failures++;
sl@0
  1681
			   
sl@0
  1682
			   
sl@0
  1683
			   if(str5a.size()!=11)
sl@0
  1684
			   failures++;
sl@0
  1685
			   if(str5a.length()!=11)
sl@0
  1686
			   failures++;
sl@0
  1687
			   if(str5a.capacity()!=11)
sl@0
  1688
			   failures++;
sl@0
  1689
			   
sl@0
  1690
sl@0
  1691
sl@0
  1692
		#if  STDCPP_OOM
sl@0
  1693
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1694
  #endif 	   
sl@0
  1695
			  /*  if(failures)
sl@0
  1696
			    return  KErrGeneral;
sl@0
  1697
			    return KErrNone;
sl@0
  1698
			    */
sl@0
  1699
sl@0
  1700
    }
sl@0
  1701
sl@0
  1702
  catch(bad_alloc&)
sl@0
  1703
   {
sl@0
  1704
   	//do nothing
sl@0
  1705
    }
sl@0
  1706
   catch(...)
sl@0
  1707
   {
sl@0
  1708
   	failures++;
sl@0
  1709
   	
sl@0
  1710
   }
sl@0
  1711
   
sl@0
  1712
	if( failures == 0 )
sl@0
  1713
		return KErrNone;
sl@0
  1714
  else  
sl@0
  1715
		return KErrGeneral;
sl@0
  1716
    }
sl@0
  1717
sl@0
  1718
// -----------------------------------------------------------------------------
sl@0
  1719
// Ctwiostreams::basic_filebuf
sl@0
  1720
// Example test method function.
sl@0
  1721
// 
sl@0
  1722
// -----------------------------------------------------------------------------
sl@0
  1723
// 
sl@0
  1724
 
sl@0
  1725
 TInt Ctiostreams::basicfilebufL( CStifItemParser& aItem )
sl@0
  1726
 {
sl@0
  1727
 	
sl@0
  1728
	 int failures=0;
sl@0
  1729
	 try
sl@0
  1730
	 {
sl@0
  1731
	 	
sl@0
  1732
	 
sl@0
  1733
   	 char* wszHello = "Hello World";
sl@0
  1734
   	 char wBuffer[128];
sl@0
  1735
   	  cout<<"";
sl@0
  1736
		    #if  STDCPP_OOM
sl@0
  1737
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1738
  #endif 
sl@0
  1739
		
sl@0
  1740
     basic_filebuf<char> wOutFile;
sl@0
  1741
	 
sl@0
  1742
		
sl@0
  1743
    // Open a file, wcHello.txt, then write to it, then dump the
sl@0
  1744
    // file's contents in hex
sl@0
  1745
    wOutFile.open("c:\\TestFramework\\docs\\basicfilebuf.txt",ios_base::out | ios_base::trunc | ios_base::binary);
sl@0
  1746
    if(!wOutFile.is_open())
sl@0
  1747
    failures++;
sl@0
  1748
    
sl@0
  1749
    wOutFile.sputn(wszHello, 11);
sl@0
  1750
    wOutFile.close();
sl@0
  1751
 	if(wOutFile.is_open())
sl@0
  1752
 	failures++;
sl@0
  1753
 #if  STDCPP_OOM
sl@0
  1754
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1755
  #endif 
sl@0
  1756
 /*	if(failures)
sl@0
  1757
	return KErrGeneral;
sl@0
  1758
 	else
sl@0
  1759
 	return KErrNone;
sl@0
  1760
 
sl@0
  1761
 */
sl@0
  1762
  
sl@0
  1763
 
sl@0
  1764
 
sl@0
  1765
 
sl@0
  1766
 }
sl@0
  1767
 
sl@0
  1768
  catch(bad_alloc&)
sl@0
  1769
   {
sl@0
  1770
   	//do nothing
sl@0
  1771
    }
sl@0
  1772
   catch(...)
sl@0
  1773
   {
sl@0
  1774
   	failures++;
sl@0
  1775
   	
sl@0
  1776
   }
sl@0
  1777
   
sl@0
  1778
	if( failures == 0 )
sl@0
  1779
		return KErrNone;
sl@0
  1780
  else  
sl@0
  1781
		return KErrGeneral;
sl@0
  1782
    }
sl@0
  1783
 
sl@0
  1784
// -----------------------------------------------------------------------------
sl@0
  1785
// Ctwiostreams::basic_istream
sl@0
  1786
// Example test method function.
sl@0
  1787
// 
sl@0
  1788
// -----------------------------------------------------------------------------
sl@0
  1789
//
sl@0
  1790
 
sl@0
  1791
 TInt Ctiostreams::basicistreamL( CStifItemParser& aItem )
sl@0
  1792
 {
sl@0
  1793
 
sl@0
  1794
 
sl@0
  1795
 		int failures = 0;
sl@0
  1796
 		try
sl@0
  1797
 		{
sl@0
  1798
 		 cout<<"";
sl@0
  1799
 				    #if  STDCPP_OOM
sl@0
  1800
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1801
  #endif 
sl@0
  1802
			
sl@0
  1803
 		
sl@0
  1804
     typedef std::basic_istream<char, std::char_traits<char> >         Input;
sl@0
  1805
    typedef std::basic_ofstream<Input::char_type, Input::traits_type> Output;
sl@0
  1806
	 
sl@0
  1807
		
sl@0
  1808
    Input::char_type s [200];
sl@0
  1809
 
sl@0
  1810
    Output out ("c:\\TestFramework\\docs\\basicistream.txt", std::ios::in | std::ios::out | std::ios::trunc);
sl@0
  1811
sl@0
  1812
     Input in (out.rdbuf ());
sl@0
  1813
sl@0
  1814
    float f = 3.14159;
sl@0
  1815
    int   i = 3;
sl@0
  1816
sl@0
  1817
    // output to the file
sl@0
  1818
    out << "He lifted his head and pondered.\n"
sl@0
  1819
        << f << std::endl << i << std::endl;
sl@0
  1820
  
sl@0
  1821
    // seek to the beginning of the file
sl@0
  1822
    in.seekg (0);
sl@0
  1823
  
sl@0
  1824
  if(!out.is_open())
sl@0
  1825
  failures++;
sl@0
  1826
  
sl@0
  1827
  out.close();
sl@0
  1828
  
sl@0
  1829
  if(out.is_open())
sl@0
  1830
  failures++;
sl@0
  1831
  #if  STDCPP_OOM
sl@0
  1832
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1833
  #endif 
sl@0
  1834
  /*if(failures)
sl@0
  1835
   return KErrGeneral;
sl@0
  1836
  else
sl@0
  1837
  return KErrNone;
sl@0
  1838
 
sl@0
  1839
  */
sl@0
  1840
 
sl@0
  1841
 	
sl@0
  1842
 }
sl@0
  1843
 
sl@0
  1844
  catch(bad_alloc&)
sl@0
  1845
   {
sl@0
  1846
   	//do nothing
sl@0
  1847
    }
sl@0
  1848
   catch(...)
sl@0
  1849
   {
sl@0
  1850
   	failures++;
sl@0
  1851
   	
sl@0
  1852
   }
sl@0
  1853
   
sl@0
  1854
	if( failures == 0 )
sl@0
  1855
		return KErrNone;
sl@0
  1856
  else  
sl@0
  1857
		return KErrGeneral;
sl@0
  1858
    }
sl@0
  1859
// -----------------------------------------------------------------------------
sl@0
  1860
// Ctwiostreams::wfstream
sl@0
  1861
// Example test method function.
sl@0
  1862
// 
sl@0
  1863
// -----------------------------------------------------------------------------
sl@0
  1864
//
sl@0
  1865
 TInt Ctiostreams::wfstreamL( CStifItemParser& aItem )
sl@0
  1866
 
sl@0
  1867
 {
sl@0
  1868
 	
sl@0
  1869
 int failures=0;
sl@0
  1870
 
sl@0
  1871
 try
sl@0
  1872
 {
sl@0
  1873
 	 cout<<"";
sl@0
  1874
 		    #if  STDCPP_OOM
sl@0
  1875
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1876
  #endif 
sl@0
  1877
		
sl@0
  1878
 wfstream file;
sl@0
  1879
 	  
sl@0
  1880
		
sl@0
  1881
 file.open("c:\\TestFramework\\docs\\wfstream.txt");
sl@0
  1882
 file.rdbuf();
sl@0
  1883
 if(!file.is_open())
sl@0
  1884
 failures++;
sl@0
  1885
 
sl@0
  1886
 file.close();
sl@0
  1887
 
sl@0
  1888
 if(file.is_open())
sl@0
  1889
 failures++;
sl@0
  1890
 #if  STDCPP_OOM
sl@0
  1891
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1892
  #endif 
sl@0
  1893
/* if(failures)
sl@0
  1894
 return KErrGeneral;
sl@0
  1895
 return KErrNone;
sl@0
  1896
 
sl@0
  1897
 */
sl@0
  1898
 
sl@0
  1899
 }
sl@0
  1900
 
sl@0
  1901
  catch(bad_alloc&)
sl@0
  1902
   {
sl@0
  1903
   	//do nothing
sl@0
  1904
    }
sl@0
  1905
   catch(...)
sl@0
  1906
   {
sl@0
  1907
   	failures++;
sl@0
  1908
   	
sl@0
  1909
   }
sl@0
  1910
   
sl@0
  1911
	if( failures == 0 )
sl@0
  1912
		return KErrNone;
sl@0
  1913
  else  
sl@0
  1914
		return KErrGeneral;
sl@0
  1915
    }
sl@0
  1916
 
sl@0
  1917
 
sl@0
  1918
// -----------------------------------------------------------------------------
sl@0
  1919
// Ctwiostreams::wifstream
sl@0
  1920
// Example test method function.
sl@0
  1921
// 
sl@0
  1922
// -----------------------------------------------------------------------------
sl@0
  1923
//
sl@0
  1924
 TInt Ctiostreams::wifstreamL( CStifItemParser& aItem )
sl@0
  1925
 
sl@0
  1926
 {
sl@0
  1927
 int failures =0;
sl@0
  1928
 
sl@0
  1929
 try
sl@0
  1930
 {
sl@0
  1931
 	 cout<<"";
sl@0
  1932
 		    #if  STDCPP_OOM
sl@0
  1933
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  1934
  #endif 
sl@0
  1935
		
sl@0
  1936
 wifstream file;
sl@0
  1937
 		    
sl@0
  1938
		
sl@0
  1939
 file.open("c:\\TestFramework\\docs\\wifstream.txt");
sl@0
  1940
 
sl@0
  1941
 
sl@0
  1942
 file.rdbuf();
sl@0
  1943
 if(!file.is_open())
sl@0
  1944
 failures++;
sl@0
  1945
 
sl@0
  1946
 file.close();
sl@0
  1947
 
sl@0
  1948
 if(file.is_open())
sl@0
  1949
 failures++;
sl@0
  1950
 #if  STDCPP_OOM
sl@0
  1951
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  1952
  #endif 
sl@0
  1953
/* if(failures)
sl@0
  1954
 return KErrGeneral;
sl@0
  1955
 return KErrNone;
sl@0
  1956
 
sl@0
  1957
 */
sl@0
  1958
 	
sl@0
  1959
 }
sl@0
  1960
  catch(bad_alloc&)
sl@0
  1961
   {
sl@0
  1962
   	//do nothing
sl@0
  1963
    }
sl@0
  1964
   catch(...)
sl@0
  1965
   {
sl@0
  1966
   	failures++;
sl@0
  1967
   	
sl@0
  1968
   }
sl@0
  1969
   
sl@0
  1970
	if( failures == 0 )
sl@0
  1971
		return KErrNone;
sl@0
  1972
  else  
sl@0
  1973
		return KErrGeneral;
sl@0
  1974
    }
sl@0
  1975
 
sl@0
  1976
 
sl@0
  1977
// -----------------------------------------------------------------------------
sl@0
  1978
// Ctwiostreams::wfilebuf,wistream
sl@0
  1979
// Example test method function.
sl@0
  1980
// 
sl@0
  1981
// -----------------------------------------------------------------------------
sl@0
  1982
//
sl@0
  1983
 TInt Ctiostreams::wistreamL( CStifItemParser& aItem )
sl@0
  1984
 
sl@0
  1985
 {
sl@0
  1986
 	int failures=0;
sl@0
  1987
 	try
sl@0
  1988
 	{
sl@0
  1989
 		
sl@0
  1990
 	
sl@0
  1991
 int length;
sl@0
  1992
wchar_t * buffer;
sl@0
  1993
wchar_t getl[16] ;
sl@0
  1994
 
sl@0
  1995
 wfilebuf fb;
sl@0
  1996
  fb.open ("c:\\TestFramework\\docs\\wistream.txt",ios::in);
sl@0
  1997
   cout<<"";
sl@0
  1998
   #if  STDCPP_OOM
sl@0
  1999
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  2000
  #endif 
sl@0
  2001
  wistream is(&fb);
sl@0
  2002
  
sl@0
  2003
  if(!fb.is_open())
sl@0
  2004
  failures++;
sl@0
  2005
  
sl@0
  2006
  //if( char(is.get())!= 'S')
sl@0
  2007
 // failures++;
sl@0
  2008
  
sl@0
  2009
//if(sizeof(fb)!=140)  
sl@0
  2010
//failures++;
sl@0
  2011
sl@0
  2012
sl@0
  2013
sl@0
  2014
sl@0
  2015
  // get length of file:
sl@0
  2016
  is.seekg (0, ios::end);
sl@0
  2017
  length = is.tellg();
sl@0
  2018
  is.seekg (0, ios::beg);
sl@0
  2019
  
sl@0
  2020
  
sl@0
  2021
  
sl@0
  2022
sl@0
  2023
sl@0
  2024
if(length != 15)
sl@0
  2025
failures++;
sl@0
  2026
sl@0
  2027
 wchar_t ch = is.get();
sl@0
  2028
  
sl@0
  2029
   
sl@0
  2030
 if(is.gcount() != 1)
sl@0
  2031
 failures++;
sl@0
  2032
 
sl@0
  2033
  
sl@0
  2034
 if( ch != L'S')
sl@0
  2035
 failures++;
sl@0
  2036
 
sl@0
  2037
 
sl@0
  2038
sl@0
  2039
 
sl@0
  2040
 
sl@0
  2041
 
sl@0
  2042
 
sl@0
  2043
 wchar_t pk1 = is.peek();
sl@0
  2044
 
sl@0
  2045
 if(pk1!= 'a')
sl@0
  2046
 failures++;
sl@0
  2047
 
sl@0
  2048
 
sl@0
  2049
 is.unget();
sl@0
  2050
 
sl@0
  2051
 wchar_t pk2 = is.peek();
sl@0
  2052
 if(pk2!= 'S')
sl@0
  2053
 failures++;
sl@0
  2054
 
sl@0
  2055
 is.get();
sl@0
  2056
 is.putback('K');
sl@0
  2057
 
sl@0
  2058
 is.getline(getl,16,'\0');
sl@0
  2059
 
sl@0
  2060
 if(getl == L"Kample sentence")
sl@0
  2061
 failures++;
sl@0
  2062
 
sl@0
  2063
sl@0
  2064
sl@0
  2065
fb.close();
sl@0
  2066
sl@0
  2067
if(fb.is_open())
sl@0
  2068
failures++;
sl@0
  2069
 #if  STDCPP_OOM
sl@0
  2070
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  2071
  #endif 
sl@0
  2072
/*
sl@0
  2073
 if(failures)
sl@0
  2074
 
sl@0
  2075
 return sizeof(fb);
sl@0
  2076
 return KErrNone;
sl@0
  2077
  
sl@0
  2078
 */
sl@0
  2079
 
sl@0
  2080
 
sl@0
  2081
 
sl@0
  2082
 
sl@0
  2083
 }
sl@0
  2084
 
sl@0
  2085
 catch(bad_alloc&)
sl@0
  2086
   {
sl@0
  2087
   	//do nothing
sl@0
  2088
    }
sl@0
  2089
   catch(...)
sl@0
  2090
   {
sl@0
  2091
   	failures++;
sl@0
  2092
   	
sl@0
  2093
   }
sl@0
  2094
   
sl@0
  2095
	if( failures == 0 )
sl@0
  2096
		return KErrNone;
sl@0
  2097
  else  
sl@0
  2098
		return KErrGeneral;
sl@0
  2099
    } 
sl@0
  2100
 
sl@0
  2101
// -----------------------------------------------------------------------------
sl@0
  2102
// Ctwiostreams::wofstream
sl@0
  2103
// Example test method function.
sl@0
  2104
// 
sl@0
  2105
// -----------------------------------------------------------------------------
sl@0
  2106
//
sl@0
  2107
 
sl@0
  2108
  TInt Ctiostreams::wofstreamL( CStifItemParser& aItem )
sl@0
  2109
  {
sl@0
  2110
  	
sl@0
  2111
  	int failures=0;
sl@0
  2112
  	try
sl@0
  2113
  	{
sl@0
  2114
  	 cout<<"";	
sl@0
  2115
  	 #if  STDCPP_OOM
sl@0
  2116
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  2117
  #endif 
sl@0
  2118
  	
sl@0
  2119
  	wofstream outfile;
sl@0
  2120
  	
sl@0
  2121
  	outfile.open("c:\\TestFramework\\docs\\wostream.txt");
sl@0
  2122
  	outfile.write(L"This is an ostreamfile",22);
sl@0
  2123
  	
sl@0
  2124
  	outfile.rdbuf();
sl@0
  2125
  	if(!outfile.is_open())
sl@0
  2126
  	failures++;
sl@0
  2127
  	
sl@0
  2128
  	outfile.close();
sl@0
  2129
  	
sl@0
  2130
  	
sl@0
  2131
  	if(outfile.is_open())
sl@0
  2132
  	failures++;
sl@0
  2133
   #if  STDCPP_OOM
sl@0
  2134
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  2135
  #endif 
sl@0
  2136
 /* 	if(failures)
sl@0
  2137
  	return KErrGeneral;
sl@0
  2138
  	else
sl@0
  2139
  	return KErrNone;
sl@0
  2140
  
sl@0
  2141
  */
sl@0
  2142
  
sl@0
  2143
  
sl@0
  2144
  }
sl@0
  2145
  
sl@0
  2146
  catch(bad_alloc&)
sl@0
  2147
   {
sl@0
  2148
   	//do nothing
sl@0
  2149
    }
sl@0
  2150
   catch(...)
sl@0
  2151
   {
sl@0
  2152
   	failures++;
sl@0
  2153
   	
sl@0
  2154
   }
sl@0
  2155
   
sl@0
  2156
	if( failures == 0 )
sl@0
  2157
		return KErrNone;
sl@0
  2158
  else  
sl@0
  2159
		return KErrGeneral;
sl@0
  2160
    } 
sl@0
  2161
  
sl@0
  2162
// -----------------------------------------------------------------------------
sl@0
  2163
// Ctwiostreams::wistringstream
sl@0
  2164
// Example test method function.
sl@0
  2165
// 
sl@0
  2166
// -----------------------------------------------------------------------------
sl@0
  2167
//
sl@0
  2168
   TInt Ctiostreams::wistringstreamL( CStifItemParser& aItem )
sl@0
  2169
   {
sl@0
  2170
   int failures=0;
sl@0
  2171
   try
sl@0
  2172
   {
sl@0
  2173
   	
sl@0
  2174
   
sl@0
  2175
   	int output[5];
sl@0
  2176
   int n,val;
sl@0
  2177
   wstring strvalues ;
sl@0
  2178
   
sl@0
  2179
   strvalues = L"1 2 3 4 5";
sl@0
  2180
    cout<<"";
sl@0
  2181
    #if  STDCPP_OOM
sl@0
  2182
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  2183
  #endif 
sl@0
  2184
   wistringstream iss(strvalues,wistringstream::in);
sl@0
  2185
   #if  STDCPP_OOM
sl@0
  2186
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  2187
  #endif 
sl@0
  2188
   
sl@0
  2189
   for(n=0;n<5;n++)
sl@0
  2190
   {
sl@0
  2191
   	
sl@0
  2192
   static int j;
sl@0
  2193
   
sl@0
  2194
   iss>>val;
sl@0
  2195
   
sl@0
  2196
   output[j]=val;
sl@0
  2197
   
sl@0
  2198
   j++;
sl@0
  2199
   
sl@0
  2200
   
sl@0
  2201
   }
sl@0
  2202
   
sl@0
  2203
      if(iss.str()!=L"1 2 3 4 5")
sl@0
  2204
      failures++;
sl@0
  2205
/*
sl@0
  2206
   if(output[0]== 1)
sl@0
  2207
   if(output[1]== 2)
sl@0
  2208
   if(output[2]== 3)
sl@0
  2209
   if(output[3]== 4 )
sl@0
  2210
   if(output[4]== 5)
sl@0
  2211
   
sl@0
  2212
   return KErrNone;
sl@0
  2213
   else 
sl@0
  2214
   return  KErrGeneral;
sl@0
  2215
   */
sl@0
  2216
   
sl@0
  2217
    if(output[0]!= 1)
sl@0
  2218
    failures++;
sl@0
  2219
   if(output[1]!= 2)
sl@0
  2220
   failures++;
sl@0
  2221
   if(output[2]!= 3)
sl@0
  2222
   failures++;
sl@0
  2223
   if(output[3]!= 4 )
sl@0
  2224
   failures++;
sl@0
  2225
   if(output[4]!= 5)
sl@0
  2226
   failures++;
sl@0
  2227
   }
sl@0
  2228
  
sl@0
  2229
   catch(bad_alloc&)
sl@0
  2230
   {
sl@0
  2231
   	//do nothing
sl@0
  2232
    }
sl@0
  2233
   catch(...)
sl@0
  2234
   {
sl@0
  2235
   	failures++;
sl@0
  2236
   	
sl@0
  2237
   }
sl@0
  2238
   
sl@0
  2239
	if( failures == 0 )
sl@0
  2240
		return KErrNone;
sl@0
  2241
  else  
sl@0
  2242
		return KErrGeneral;
sl@0
  2243
    } 
sl@0
  2244
// -----------------------------------------------------------------------------
sl@0
  2245
// Ctwiostreams::wostringstream,wstring
sl@0
  2246
// Example test method function.
sl@0
  2247
// 
sl@0
  2248
// -----------------------------------------------------------------------------
sl@0
  2249
//
sl@0
  2250
  TInt Ctiostreams::wostringstreamL( CStifItemParser& aItem )
sl@0
  2251
  {
sl@0
  2252
  	int failures=0;
sl@0
  2253
  	try
sl@0
  2254
  	{ cout<<"";
sl@0
  2255
   #if  STDCPP_OOM
sl@0
  2256
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  2257
  #endif 		
sl@0
  2258
  	
sl@0
  2259
  
sl@0
  2260
wostringstream oss;
sl@0
  2261
wstring mystr;
sl@0
  2262
sl@0
  2263
oss << L"wostringstream testcase";
sl@0
  2264
oss.rdbuf();
sl@0
  2265
mystr=oss.str();
sl@0
  2266
 #if  STDCPP_OOM
sl@0
  2267
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  2268
  #endif 
sl@0
  2269
/*if(mystr.compare(L"wostringstream testcase")==0)
sl@0
  2270
return KErrNone;
sl@0
  2271
return KErrGeneral;
sl@0
  2272
*/
sl@0
  2273
if(mystr.compare(L"wostringstream testcase")!=0)
sl@0
  2274
failures++;
sl@0
  2275
sl@0
  2276
  }
sl@0
  2277
  
sl@0
  2278
  
sl@0
  2279
   catch(bad_alloc&)
sl@0
  2280
   {
sl@0
  2281
   	//do nothing
sl@0
  2282
    }
sl@0
  2283
   catch(...)
sl@0
  2284
   {
sl@0
  2285
   	failures++;
sl@0
  2286
   	
sl@0
  2287
   }
sl@0
  2288
   
sl@0
  2289
	if( failures == 0 )
sl@0
  2290
		return KErrNone;
sl@0
  2291
  else  
sl@0
  2292
		return KErrGeneral;
sl@0
  2293
    } 
sl@0
  2294
// -----------------------------------------------------------------------------
sl@0
  2295
// Ctwiostreams::wstreambuf,wofstreams
sl@0
  2296
// Example test method function.
sl@0
  2297
// 
sl@0
  2298
// -----------------------------------------------------------------------------
sl@0
  2299
//
sl@0
  2300
   
sl@0
  2301
  TInt Ctiostreams::wstreambufL( CStifItemParser& aItem )
sl@0
  2302
  {
sl@0
  2303
sl@0
  2304
sl@0
  2305
//locale   loc ("en_GB.UTF-8");
sl@0
  2306
sl@0
  2307
 
sl@0
  2308
 
sl@0
  2309
 int failures = 0;
sl@0
  2310
 try
sl@0
  2311
 {
sl@0
  2312
 	
sl@0
  2313
 
sl@0
  2314
 wchar_t a[4]=
sl@0
  2315
 {
sl@0
  2316
 	0
sl@0
  2317
 };
sl@0
  2318
 
sl@0
  2319
 wchar_t sentence[]= L"Sample sentence"; cout<<"";
sl@0
  2320
  #if  STDCPP_OOM
sl@0
  2321
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  2322
  #endif 
sl@0
  2323
 wstreambuf * pbuf;
sl@0
  2324
 wofstream ostr ("c:\\TestFramework\\docs\\wstreambuf.txt");
sl@0
  2325
 
sl@0
  2326
 
sl@0
  2327
  
sl@0
  2328
// if(cout.rdbuf( )->getloc( ).name( ).c_str( ) != "C") //failing
sl@0
  2329
 //failures++;
sl@0
  2330
 
sl@0
  2331
 wchar_t ch[28];
sl@0
  2332
 //rdbuf()s
sl@0
  2333
 pbuf = ostr.rdbuf();
sl@0
  2334
sl@0
  2335
sl@0
  2336
//sputn()
sl@0
  2337
sl@0
  2338
sl@0
  2339
sl@0
  2340
sl@0
  2341
 pbuf->sputn (sentence,sizeof(sentence)-1);
sl@0
  2342
sl@0
  2343
  
sl@0
  2344
 ostr.open("c:\\TestFramework\\docs\\wstreambuf.txt");
sl@0
  2345
  
sl@0
  2346
 if(!ostr.is_open())
sl@0
  2347
 failures++;
sl@0
  2348
   
sl@0
  2349
sl@0
  2350
 long size1 = pbuf->pubseekoff(0,ios_base::end);
sl@0
  2351
 if(size1!=31)
sl@0
  2352
 failures++;
sl@0
  2353
  
sl@0
  2354
sl@0
  2355
  pbuf->sputc('a');
sl@0
  2356
  
sl@0
  2357
sl@0
  2358
 long size2 = pbuf->pubseekoff(0,ios_base::end);
sl@0
  2359
 if(size2!=32)
sl@0
  2360
 failures++;
sl@0
  2361
  
sl@0
  2362
 wifstream istr("c:\\TestFramework\\docs\\wstreambuf.txt");
sl@0
  2363
 pbuf = istr.rdbuf();
sl@0
  2364
sl@0
  2365
streamsize i = istr.rdbuf()->sgetn(&a[0], 3);   
sl@0
  2366
    //a[i] = istr.widen('\0');
sl@0
  2367
sl@0
  2368
    // Display the size and contents of the buffer passed to sgetn.
sl@0
  2369
   if(i!=3)
sl@0
  2370
   failures++;
sl@0
  2371
  
sl@0
  2372
 
sl@0
  2373
 int k = pbuf->snextc();
sl@0
  2374
 
sl@0
  2375
 
sl@0
  2376
 //sgetc()
sl@0
  2377
 while (pbuf->sgetc()!=EOF)
sl@0
  2378
  {
sl@0
  2379
     static int i;
sl@0
  2380
      //sbumpc()
sl@0
  2381
     ch[i] = pbuf->sbumpc();
sl@0
  2382
     i++;
sl@0
  2383
  }
sl@0
  2384
sl@0
  2385
  
sl@0
  2386
  if(ch[0]!='l' )
sl@0
  2387
  failures++;
sl@0
  2388
  
sl@0
  2389
 
sl@0
  2390
  
sl@0
  2391
  
sl@0
  2392
  
sl@0
  2393
  
sl@0
  2394
  istr.close();
sl@0
  2395
  ostr.close();
sl@0
  2396
   #if  STDCPP_OOM
sl@0
  2397
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  2398
  #endif 
sl@0
  2399
 /* if(failures)
sl@0
  2400
  return KErrGeneral;
sl@0
  2401
  else
sl@0
  2402
  return KErrNone;
sl@0
  2403
   */
sl@0
  2404
 
sl@0
  2405
sl@0
  2406
sl@0
  2407
  }
sl@0
  2408
  
sl@0
  2409
   catch(bad_alloc&)
sl@0
  2410
   {
sl@0
  2411
   	//do nothing
sl@0
  2412
    }
sl@0
  2413
   catch(...)
sl@0
  2414
   {
sl@0
  2415
   	failures++;
sl@0
  2416
   	
sl@0
  2417
   }
sl@0
  2418
   
sl@0
  2419
	if( failures == 0 )
sl@0
  2420
		return KErrNone;
sl@0
  2421
  else  
sl@0
  2422
		return KErrGeneral;
sl@0
  2423
    } 
sl@0
  2424
sl@0
  2425
// -----------------------------------------------------------------------------
sl@0
  2426
// Ctwiostreams::wostream
sl@0
  2427
// Example test method function.
sl@0
  2428
// 
sl@0
  2429
// -----------------------------------------------------------------------------
sl@0
  2430
//
sl@0
  2431
sl@0
  2432
 TInt Ctiostreams::wostreamL( CStifItemParser& aItem )  
sl@0
  2433
 {
sl@0
  2434
 	
sl@0
  2435
sl@0
  2436
 
sl@0
  2437
 int failures = 0;
sl@0
  2438
 try
sl@0
  2439
 {
sl@0
  2440
 	
sl@0
  2441
sl@0
  2442
 wfilebuf fb;
sl@0
  2443
wchar_t input[18] = L"wostream testcase";
sl@0
  2444
streamsize size = 5;
sl@0
  2445
  fb.open ("c:\\TestFramework\\docs\\wostream.txt",ios::out); cout<<"";
sl@0
  2446
   #if  STDCPP_OOM
sl@0
  2447
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  2448
  #endif 
sl@0
  2449
  wostream os(&fb);
sl@0
  2450
  
sl@0
  2451
  os.write(input,size);
sl@0
  2452
  streamoff i = os.tellp();
sl@0
  2453
  if(i!= 5)
sl@0
  2454
  failures++;
sl@0
  2455
  
sl@0
  2456
  os.put('K');
sl@0
  2457
  streamoff j = os.tellp();
sl@0
  2458
  if(j!=6)
sl@0
  2459
  failures++;
sl@0
  2460
sl@0
  2461
  os.seekp(2);
sl@0
  2462
    os<<"i";
sl@0
  2463
  streamoff k = os.tellp();
sl@0
  2464
sl@0
  2465
  if(k!=3)
sl@0
  2466
  failures++;
sl@0
  2467
  
sl@0
  2468
  os.flush();
sl@0
  2469
  
sl@0
  2470
 #if  STDCPP_OOM
sl@0
  2471
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  2472
  #endif 
sl@0
  2473
  
sl@0
  2474
 
sl@0
  2475
  /*
sl@0
  2476
if(failures)
sl@0
  2477
return KErrGeneral;
sl@0
  2478
return KErrNone;
sl@0
  2479
*/
sl@0
  2480
 
sl@0
  2481
  
sl@0
  2482
 }
sl@0
  2483
 
sl@0
  2484
  catch(bad_alloc&)
sl@0
  2485
   {
sl@0
  2486
   	//do nothing
sl@0
  2487
    }
sl@0
  2488
   catch(...)
sl@0
  2489
   {
sl@0
  2490
   	failures++;
sl@0
  2491
   	
sl@0
  2492
   }
sl@0
  2493
   
sl@0
  2494
	if( failures == 0 )
sl@0
  2495
		return KErrNone;
sl@0
  2496
  else  
sl@0
  2497
		return KErrGeneral;
sl@0
  2498
    } 
sl@0
  2499
sl@0
  2500
// -----------------------------------------------------------------------------
sl@0
  2501
// Ctwiostreams::wstringbuf
sl@0
  2502
// Example test method function.
sl@0
  2503
// 
sl@0
  2504
// -----------------------------------------------------------------------------
sl@0
  2505
// 
sl@0
  2506
 
sl@0
  2507
  TInt Ctiostreams::wstringbufL( CStifItemParser& aItem )  
sl@0
  2508
  {
sl@0
  2509
  int failures=0;
sl@0
  2510
  try
sl@0
  2511
  {
sl@0
  2512
   cout<<"";	
sl@0
  2513
 #if  STDCPP_OOM
sl@0
  2514
User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
sl@0
  2515
  #endif  
sl@0
  2516
wstringbuf sb;
sl@0
  2517
wstring mystr;
sl@0
  2518
sl@0
  2519
  
sl@0
  2520
sb.sputn (L"Sample string",13);
sl@0
  2521
mystr=sb.str();
sl@0
  2522
sl@0
  2523
/*if(mystr.compare(L"Sample string") == 0)
sl@0
  2524
return KErrNone;
sl@0
  2525
else
sl@0
  2526
return KErrGeneral;
sl@0
  2527
  */
sl@0
  2528
  #if  STDCPP_OOM
sl@0
  2529
User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
sl@0
  2530
  #endif 
sl@0
  2531
  if(mystr.compare(L"Sample string") != 0)
sl@0
  2532
  failures++;
sl@0
  2533
  
sl@0
  2534
  }
sl@0
  2535
  
sl@0
  2536
   catch(bad_alloc&)
sl@0
  2537
   {
sl@0
  2538
   	//do nothing
sl@0
  2539
    }
sl@0
  2540
   catch(...)
sl@0
  2541
   {
sl@0
  2542
   	failures++;
sl@0
  2543
   	
sl@0
  2544
   }
sl@0
  2545
   
sl@0
  2546
	if( failures == 0 )
sl@0
  2547
		return KErrNone;
sl@0
  2548
  else  
sl@0
  2549
		return KErrGeneral;
sl@0
  2550
    } 
sl@0
  2551
  
sl@0
  2552
//  End of File
sl@0
  2553
sl@0
  2554
//  End of File
sl@0
  2555
    
sl@0
  2556
    
sl@0
  2557
 
sl@0
  2558
//  End of File