kerneltest/e32test/buffer/t_lex.cpp
changeset 271 dc268b18d709
parent 0 a41df078684a
--- a/kerneltest/e32test/buffer/t_lex.cpp	Mon Sep 13 15:16:07 2010 +0100
+++ b/kerneltest/e32test/buffer/t_lex.cpp	Wed Sep 22 10:53:45 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1994-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of the License "Eclipse Public License v1.0"
@@ -24,7 +24,7 @@
 // - Test assignment operator of TLex, by initializing with TLex reference, string, 
 // TBuf reference and check it is as expected.
 // - Check that Eos, Inc, Mark, Get, Peek, UnGet, SkipSpace, SkipSpaceAndMark, 
-// SkipCharacters, TokenLength, MarkedToken methods are as expected.
+// SkipAndMark, SkipCharacters, TokenLength, MarkedToken methods are as expected.
 // - Initialize Lex string, assign different values, Parse to extract signed, 
 // unsigned integer of different lengths, using specified radix and verify 
 // that the return value is KErrNone when a valid string is parsed, KErrGeneral 
@@ -184,6 +184,7 @@
 	c.Mark(mark);
 	c.Mark();
 	c.Inc();
+	c.Inc(2);
 	c.Get();
 	(S)c.Peek();
 	c.UnGet();
@@ -192,6 +193,7 @@
 	c.SkipSpace();
 	c.SkipSpaceAndMark(mark);
 	c.SkipSpaceAndMark();
+	c.SkipAndMark(2,mark);
 	c.SkipCharacters();
 	c.TokenLength(mark);
 	c.TokenLength();
@@ -220,6 +222,7 @@
 	c.Val(TU);
 	TReal32 TR32=1.0F;
 	c.Val(TR32);
+	c.Val(TR32,'.');
 	TReal64 TR64=1.0;
 	c.Val(TR64);
 	TUint8 TU8='a';
@@ -388,6 +391,17 @@
 	test((S)c.Peek()==String[1]);
 	c.Inc();
 	test((S)c.Peek()==String[2]);
+	
+	test.Next(_L("Inc(aNumber)"));    // Inc(aNumber) increments iNext
+	_LL(&String[0], (TText8*)"mno");
+	TLexType c1(&String[0]);
+	c1.__DbgTest(&dump1);
+
+	TestDes(dump1.iNext, dump1.iEnd, &String[0]);
+	c1.Inc(1);
+	test((S)c1.Peek()==String[1]);
+	c1.Inc(1);
+	test((S)c1.Peek()==String[2]);
 
 	test.Next(_L("Mark()"));		//	Mark() sets iMark=iNext
 	_LL(&String[0], (TText8*)"pqr");
@@ -462,6 +476,17 @@
 	_LL(&String[0], (TText8*)"aaa");
 	TestDes(dump1.iNext, dump1.iEnd, &String[0]);
 	TestDes(mDump.iPtr, dump1.iEnd, &String[0]);
+	
+	test.Next(_L("SkipAndMark(4, aMark)"));  // Skips number of characters
+	_LL(&String[0], (TText8*)"abcdaaa");
+	TLexType j2(&String[0]);
+	TLexMarkType jmt;
+	j2.SkipAndMark(4, jmt);
+	j2.__DbgTest(&dump1);
+	jmt.__DbgTest(&mDump);
+	_LL(&String[0], (TText8*)"aaa");
+	TestDes(dump1.iNext, dump1.iEnd, &String[0]);
+	TestDes(mDump.iPtr, dump1.iEnd, &String[0]);
 
 	test.Next(_L("SkipCharacters()"));	// Skips non whitespace characters
 	_LL(&String[0], (TText8*)"abc   ");
@@ -714,20 +739,67 @@
 
 	////////////////////					
 	// Test Val(TReal32)
+	// 32-bit floating point number.
 	/////////////////////
-//	test.Next(_L("Val(TReal32)"));
-//	TReal32 TR32;
-//	test((ret=Lex.Val(TR32))==KErrNotSupported);
-
-
+	test.Next(_L("Val(TReal32)"));
+	TReal32 TR32 = 0;
+	
+	_LL(&String[0], (TText8*)"92.2337203685477");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR32))==KErrNone);
+				
+	_LL(&String[0], (TText8*)"92.2337203685477");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR32,'.'))==KErrNone);
+			
+	_LL(&String[0], (TText8*)"0.2337285477");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR32,'.'))==KErrNone);
+		
+	_LL(&String[0], (TText8*)"23");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR32,'.'))==KErrNone);
+		
+	_LL(&String[0], (TText8*)"0");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR32,'.'))==KErrNone);
+		
+	_LL(&String[0], (TText8*)"-324.27890");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR32,'.'))==KErrNone);
+	
 	////////////////////
-	// Test Val(TReal64)
+	// Test Val(TReal)
+	// 64-bit floating point number. Identical to TReal64.
 	///////////////////
-//	test.Next(_L("Val(TReal64)"));
-//	TReal64 TR64;
-//	test((ret=Lex.Val(TR64))==KErrNotSupported);
+	test.Next(_L("Val(TReal)"));
+	TReal TR64 = 0;
 
-
+	_LL(&String[0], (TText8*)"92.2337203685477");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR64))==KErrNone);
+		            
+	_LL(&String[0], (TText8*)"92.2337203685477");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR64,'.'))==KErrNone);
+		       
+	_LL(&String[0], (TText8*)"0.2337285477");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR64,'.'))==KErrNone);
+		    
+	_LL(&String[0], (TText8*)"23");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR64,'.'))==KErrNone);
+		    
+	_LL(&String[0], (TText8*)"0");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR64,'.'))==KErrNone);
+		    
+	_LL(&String[0], (TText8*)"-324.27890");
+	Lex=&String[0];
+	test((ret=Lex.Val(TR64,'.'))==KErrNone);
+	
+	
 	///////////////////////////
 	// Test Val(TUint8, TRadix)
 	///////////////////////////