Author: gstein
Date: Fri Jul 15 07:05:35 2011
New Revision: 1146982
URL: http://svn.apache.org/viewvc?rev=1146982&view=rev
Log:
Continue expanding on my thoughts for the testing of the PENDING
structures in ra_serf.
* notes/ra-serf-testing.txt: more thoughts
Modified:
subversion/trunk/notes/ra-serf-testing.txt
Modified: subversion/trunk/notes/ra-serf-testing.txt
URL:
http://svn.apache.org/viewvc/subversion/trunk/notes/ra-serf-testing.txt?rev=1146982&r1=1146981&r2=1146982&view=diff
==============================================================================
--- subversion/trunk/notes/ra-serf-testing.txt (original)
+++ subversion/trunk/notes/ra-serf-testing.txt Fri Jul 15 07:05:35 2011
@@ -25,7 +25,7 @@ There are seven states to the PENDING st
2) pending->head == NULL && pending->spill == NULL
This should only happen when some data has been placed into the
- pending membuf structure, then emptied).
+ pending membuf structure, then emptied.
The parser may be paused and no content has arrived (yet), or
the parser is not in a paused state.
@@ -87,9 +87,70 @@ Note that all states are doubled, based
There are four operations that occur:
1) network content is present
+ a) If parser is paused, then append content to PENDING. All six(*)
+ PAUSED states must be considered.
+ b) If parser is NOT paused, then:
+ i) If PENDING contains data, then append content to
+ PENDING. Three of the NOT-PAUSED states must be
+ considered: (3), (4), (6)
+ ii) PENDING is empty, so inject content into the parser
+
2) network content is not present [at this time]
+ a) Exit network processing. The PENDING states are irrelevant.
+
3) network content completed
+ a) Exit network processing. The PENDING states are irrelevant.
+
4) process content from the pending structures
+ a) When parser is NOT paused, and PENDING contains data, then
+ take content from the start of PENDING and inject it into the
+ parser. Three of the NOT-PAUSED states must be considered:
+ (3), (4), (6)
+
+
+(*) we don't need to test state (5).
+
+
+
+INDIVIDUAL TESTS
+
+Normal operation will cover: 1(b)(ii), (2), and (3). Thus, we must
+arrange to test:
+
+ 1) operation 1(a) with six states
+ 2) operation 1(b)(i) with three states
+ 3) operation 4(a) with three states
+
+
+TEST 1.1
+
+A simple pause with arriving data will test this.
+
+Exits in state (3).
+
+
+TEST 1.2
+
+TEST 1.3
+
+TEST 1.4
+
+TEST 1.6
+
+TEST 1.7
+
+TEST 2.3
+
+TEST 2.4
+
+TEST 2.6
+
+TEST 3.3
+
+TEST 3.4
+
+TEST 3.6
+
These combine into the following test scenarios to exercise the two
actions against each of the ten data states.