File:  [parser3project] / parser3 / tests / 160.html
Revision 1.5: download - view: text, annotated - select for diffs - revision graph
Sat Jul 3 07:48:30 2010 UTC (15 years, 11 months ago) by misha
Branches: MAIN
CVS tags: release_3_5_1, release_3_5_0, release_3_4_6, release_3_4_5, release_3_4_4, release_3_4_3, release_3_4_2, release_3_4_1, HEAD
- prepare tests to trim trailing methods' EOLs

@main[]
$sDir[outputs/160]
$iStep(1)
$iSleepTime(3)
$iCacheTime(2)

<table border="1" cellpadding="3">
<tr>
<th>Info</th>
<th>File: 1</th>
<th>File: 2</th>
<th>File: 3</th>
<th>File: 4</th>
</tr>

# row 1
<tr valign="top">
<td>Exec body on 1st step, then just get cached result</td>
<td>
	^do[1](3){One}
</td>
<td>
	^do[2](3){Two}
</td>
<td>
	^do[3](3){Three}
</td>
<td><br /></td>
</tr>


#row 2
<tr valign="top">
<td>Value in cache not expired yet.</td>
<td><br /></td>
<td><br /></td>
<td>
^do[3](3){
	^method[]
}{
	$exception.handled(1)
	^cache(2)
	Error while executing body
}
</td>
</tr>

# wait till cache expire
<tr valign="top">
<td>Wait for 3 secs. Cache expired for sure.</td>
<td colspan="3">
^sleep($iSleepTime)
^^sleep($iSleepTime)
</td>
<td><br /></td>
</tr>


# row 3
<tr valign="top">
<td>
1. Body code has an exception but force get cached result<br />
2. Execute body and set ^^cache(0) for prevent cacheing<br />
3. Body code has an exception, execute catch section and set ^^cache(0)
</td>
<td>
^do[1](3){
	^method[]
}{
	^cache(1)
	$exception.handled[cache]
	force get cached resuls
}
</td>

<td>
^do[2](3){
	Two
	^cache(0)
}
</td>

<td>
^do[3](3){
	^method[]
}{
	$exception.handled(1)
	^cache(0)
	Catch section results
}
</td>

<td>
^do[4](3){
	^method[]
}
</td>


</tr>
</table>

@do[sFile;iSteps;jBody;jExceptionHandler][i;n;bProcessBody;bProcessErrorHandler;iTime;sBody;bError]
^for[i](1;$iSteps){
	$iTime[]
	$bProcessBody(0)
	$bProcessErrorHandler(0)
	
	$nTry(0)
	$nCatch(0)
	^try{
		$sBody[^cache[$sDir/$sFile]($iCacheTime){
			^nTry.inc(1)
			$jBody ($i)
			$bProcessBody(1)
			$iTime(^cache[])
		}{$bProcessErrorHandler(1)^nCatch.inc(1)$jExceptionHandler}]
		
		^if($bProcessBody){
			Executed body, ^^cache[] value ^if(def $iTime){defined}{undefined},
		}{
			^if($bProcessErrorHandler){
				Processing catch section, 
			}{
				Get cached result,
			}
		}
	}{
		$bError(1)
		$exception.handled(1)
	}
	
	^if($bError){
		Error. Body executed $nTry times, catch executed $nCatch times.
	}{
		result: '$sBody'
	}
}[<br />]
^iStep.inc(1)

E-mail: