From: <ul...@us...> - 2013-06-03 20:33:26
|
Revision: 102 http://sourceforge.net/p/adc/code/102 Author: ullner Date: 2013-06-03 20:33:22 +0000 (Mon, 03 Jun 2013) Log Message: ----------- Changed size in file list schema to an unsigned long to manage files larger than 2 GiB. Modified Paths: -------------- trunk/ADC-PRD.txt trunk/ADC-Test.txt trunk/ADC-Testcases.xml trunk/ADC.txt Modified: trunk/ADC-PRD.txt =================================================================== --- trunk/ADC-PRD.txt 2013-03-26 22:15:37 UTC (rev 101) +++ trunk/ADC-PRD.txt 2013-06-03 20:33:22 UTC (rev 102) @@ -9,7 +9,7 @@ == Version history The latest draft of the next version of this document as well as intermediate and older versions can be downloaded from -$URL: https://adc.svn.sourceforge.net/svnroot/adc/trunk//ADC-PRD.txt $. +$URL: https://adc.svn.sourceforge.net/svnroot/adc/trunk/ADC-PRD.txt $. This version corresponds to $Revision: 98 $. === Version 1.0.0, UNRELEASED Modified: trunk/ADC-Test.txt =================================================================== --- trunk/ADC-Test.txt 2013-03-26 22:15:37 UTC (rev 101) +++ trunk/ADC-Test.txt 2013-06-03 20:33:22 UTC (rev 102) @@ -274,30 +274,91 @@ === MSG ==== A basic MSG with no named parameters +Purpose: Validate that the server forwards the message unmodified + +Expected: The other client receives the message unmodified and display it appropriately + +Steps: +[options="autowidth, header"] +|===== +|Step item |Info |Comment +|1 |Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|2 |Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|3 |Client A sends "MSG example" | +|===== Result: |===== | |===== ==== A basic MSG with ME field +Purpose: Validate that the server forwards the message unmodified + +Expected: The other client receives the message unmodified and display it appropriately + +Steps: +[options="autowidth, header"] +|===== +|Step item |Info |Comment +|1 |Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|2 |Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|3 |Client A sends "MSG example ME1" | +|===== Result: |===== | |===== ==== A basic MSG with PM field +Purpose: Validate that the server forwards the message unmodified + +Expected: The other client receives the message unmodified and display it appropriately + +Steps: +[options="autowidth, header"] +|===== +|Step item |Info |Comment +|1 |Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|2 |Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|3 |Client A sends "MSG example PMAAAA" (Client A's SID) | +|===== Result: |===== | |===== ==== A basic MSG with ME and PM fields +Purpose: Validate that the server forwards the message unmodified + +Expected: The other client receives the message unmodified and display it appropriately + +Steps: +[options="autowidth, header"] +|===== +|Step item |Info |Comment +|1 |Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|2 |Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|3 |Client A sends "MSG example ME1 PMAAAA" (Client A's SID) | +|4 |Client A sends "MSG example PMAAAA ME1" (Client A's SID) | +|===== Result: |===== | |===== ==== Negative out-of-bounds value in ME field +Purpose: Validate that the server does not forward the message + +Expected: The other client does not receive the message + +Steps: +[options="autowidth, header"] +|===== +|Step item |Info |Comment +|1 |Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|2 |Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized | +|3 |Client A sends "MSG example ME-1" | +|===== Result: |===== | @@ -1099,3 +1160,25 @@ | |===== +=== General + +==== Server forwards unknown fields +Purpose: Validate if the server forwards unknown fields to other clients + +Expected: Server forwards the unknown field + +Result: +|===== +| +|===== + +==== Server forwards unknown commands +Purpose: Validate that the server forwards the unknwon command + +Expected: The server forwards the unknown command + +Result: +|===== +| +|===== + Modified: trunk/ADC-Testcases.xml =================================================================== --- trunk/ADC-Testcases.xml 2013-03-26 22:15:37 UTC (rev 101) +++ trunk/ADC-Testcases.xml 2013-06-03 20:33:22 UTC (rev 102) @@ -1 +1 @@ -<?xml version="1.0" encoding="utf-8"?><adctestcases><tc Name="Too short random data" Expected="Client sends a STA indicating that the GPA is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives random data in the GPA that is too short (less than 24 bytes)" Command="GPA"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client B sends "INF BBBB ..."" /><step Info="The server sends "GPA A" (1 byte)" /></tc><tc Name="Invalid characters in random data" Expected="Client sends a STA indicating that the GPA is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives random data in the GPA that contain invalid characters (1 for instance)" Command="GPA"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client B sends "INF BBBB ..."" /><step Info="The server sends "GPA AAAAAAAAAAAAAAAAAAAAAAA1" (24 bytes)" /></tc><tc Name="Valid random data" Expected="" PostCondition="" PreCondition="" Purpose="" Command="GPA" /><tc Name="Empty GPA" Expected="" PostCondition="" PreCondition="" Purpose="" Command="GPA" /><tc Name="ID and PD fields present and matching" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="ID and PD fields present and mismatching" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Only ID field present" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Only PD field present" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Neither ID or PD fields present" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in PD field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in NI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in DE field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid IP in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid IP in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Wrong IP in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Wrong IP in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="DNS in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="DNS in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Zero address in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Zero address in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Correct address in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Correct address in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Too long FOURCC in SU field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Too short FOURCC in SU field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid FOURCC in SU field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid formatting of SU field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Empty INF" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Underflow fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Negative out-of-range value for fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="0 value for fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Overflow fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW " Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Positive out-of-range value for fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="A basic MSG with no named parameters" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="A basic MSG with ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="A basic MSG with PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="A basic MSG with ME and PM fields" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Negative out-of-bounds value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Underflow value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="0 Value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Empty ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Overflow value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Postive out-of-bounds value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Invalid characters in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Empty PM" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Too short SID value in PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Too long SID value in PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Invalid characters SID value in PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Non-existing SID value in PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="MSG in PROTOCOL state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="MSG in IDENTIFY state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="MSG in VERIFY state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="MSG in NORMAL state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Invalid response based on the GPA" Expected="Server sends a STA indicating that the PAS is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives a response that does not match the request." Command="PAS"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client B sends "INF BBBB ..."" /><step Info="The server sends "GPA AAAAAAAAAAAAAAAAAAAAAAAA" (24 bytes)" /><step Info="The client sends "PAS BBBBBBBBBBBBBBBBBBBBBBBB"" /></tc><tc Name="Invalid characters in response" Expected="Server sends a STA indicating that the PAS is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives a response that contain invalid characters (1 for instance)" Command="PAS"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client B sends "INF BBBB ..."" /><step Info="The server sends "GPA AAAAAAAAAAAAAAAAAAAAAAAA" (24 bytes)" /><step Info="The client sends "PAS BBBBBBBBBBBBBBBBBBBBBBB1" (last byte is invalid)" /></tc><tc Name="Valid response" Expected="" PostCondition="" PreCondition="" Purpose="" Command="PAS" /><tc Name="Empty PAS" Expected="" PostCondition="" PreCondition="" Purpose="" Command="PAS" /><tc Name="Too short SID" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Too long SID" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Invalid characters in SID" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="No client with the specified SID" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Too short ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Too long ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Invalid characters in ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="No client with the specified SID in the ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Negative out-of-bounds value in TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Underflow TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Overflow TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="-1 (forever) in TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="120 second value in TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Invalid characters in TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Empty TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name=""example" in MS field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Empty MS field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Negative out-of-bounds value in DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Underflow DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Overflow DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="0 as value in DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="1 as value in DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Invalid characters in DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Empty DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Empty RD field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="QUI in PROTOCOL state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="QUI in IDENTIFY state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="QUI in VERIFY state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="QUI in NORMAL state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Underflow fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Negative out-of-range value for fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="0 value for fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Overflow fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Positive out-of-range value for TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Invalid characters in fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Combination of LE and EQ fields with conflicting values" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Combination of GE and EQ fields with conflicting values" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Combination of LE, GE and EQ fields with conflicting values" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Valid AN field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Valid NO field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Only NO field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Combination of AN and NO fields with conflicting values" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Invalid characters in field EX" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty AN" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty NO" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty EX" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty LE" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty GE" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty EQ" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty TO" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Too short SID from hub" Expected="Client sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives an SID that is too short (less than 4 characters)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBB"" /></tc><tc Name="Too long SID from hub" Expected="Client sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives an SID that is too long (longer than 4 characters)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBBB"" /></tc><tc Name="Invalid characters in SID from hub" Expected="Client sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives an SID that contain invalid characters (1 for instance)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBB1"" /></tc><tc Name="Too short SID from client in INF" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that is too short (less than 4 characters)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client sends "INF BBB ..."" /></tc><tc Name="Too long SID from client in INF" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that is too long (longer than 4 characters)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client sends "INF BBBBB ..."" /></tc><tc Name="Invalid characters in SID from client" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that contain invalid characters (1 for instance)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client sends "INF BBB1 ..."" /></tc><tc Name="Non-assigned SID from client" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that it didn't assign a client." Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client sends "INF CCCC ..."" /></tc><tc Name="Assigned SID from another client" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that was already assigned to another a client." Command="SID"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID CCCC"" /><step Info="Client B sends "INF BBBB ..."" /></tc><tc Name="Valid SID assignment" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SID" /><tc Name="Valid SID use" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SID" /><tc Name="No SID from server" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SID" /><tc Name="Invalid BASE version from server" Expected="Client sends a STA indicating lack of support for BASE and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives BAS2 instead of BASE." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ..."" /><step Info="The server responds with "SUP ADBAS2 ..."" /></tc><tc Name="Invalid BASE version from client" Expected="Server sends a STA indicating lack of support for BASE and disconnects" PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives BAS2 instead of BASE" Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBAS2 ..."" /></tc><tc Name="Lack of overlapping hash support from server" Expected="Client sends a STA indicating no overlapping hash support and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it does not receive overlapping hashes." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE"" /></tc><tc Name="Lack of overlapping hash support from client" Expected="Server sends a STA indicating no overlapping hash support and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it does not receive overlapping hashes." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE"" /></tc><tc Name="Remove BASE support in NORMAL from server" Expected="Client sends a STA indicating lack of support for BASE and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when the BASE support is removed during NORMAL state." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="The server sends "SUP RMBASE"" /></tc><tc Name="Remove BASE support in NORMAL from client" Expected="Server sends a STA indicating lack of support for BASE and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when the BASE support is removed during NORMAL state." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="The client sends "SUP RMBASE"" /></tc><tc Name="Remove hash support in NORMAL from server" Expected="Client sends a STA indicating lack of support for TIGR and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when the hash support is removed during NORMAL state." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="The server sends "SUP RMTIGR"" /></tc><tc Name="Remove hash support in NORMAL from client" Expected="Server sends a STA indicating lack of support for TIGR and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when the hash support is removed during NORMAL state." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="The client sends "SUP RMTIGR"" /></tc><tc Name="No SUP content from client" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SUP" /><tc Name="No SUP content from server" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SUP" /><tc Name="Valid SUP sequence from server" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SUP" /><tc Name="Valid SUP sequence from client" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SUP" /></adctestcases> \ No newline at end of file +<?xml version="1.0" encoding="utf-8"?><adctestcases><tc Name="Too short random data" Expected="Client sends a STA indicating that the GPA is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives random data in the GPA that is too short (less than 24 bytes)" Command="GPA"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client B sends "INF BBBB ..."" /><step Info="The server sends "GPA A" (1 byte)" /></tc><tc Name="Invalid characters in random data" Expected="Client sends a STA indicating that the GPA is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives random data in the GPA that contain invalid characters (1 for instance)" Command="GPA"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client B sends "INF BBBB ..."" /><step Info="The server sends "GPA AAAAAAAAAAAAAAAAAAAAAAA1" (24 bytes)" /></tc><tc Name="Valid random data" Expected="" PostCondition="" PreCondition="" Purpose="" Command="GPA" /><tc Name="Empty GPA" Expected="" PostCondition="" PreCondition="" Purpose="" Command="GPA" /><tc Name="ID and PD fields present and matching" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="ID and PD fields present and mismatching" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Only ID field present" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Only PD field present" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Neither ID or PD fields present" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in PD field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in NI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in DE field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid IP in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid IP in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Wrong IP in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Wrong IP in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="DNS in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="DNS in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Zero address in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Zero address in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Correct address in I4 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Correct address in I6 field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Too long FOURCC in SU field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Too short FOURCC in SU field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid FOURCC in SU field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid formatting of SU field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Empty INF" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Underflow fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Negative out-of-range value for fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="0 value for fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Overflow fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW " Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Positive out-of-range value for fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="Invalid characters in fields SS, SF, US, DS, SL, AS, AM, HN, HR, HO, CT, AW" Expected="" PostCondition="" PreCondition="" Purpose="" Command="INF" /><tc Name="A basic MSG with no named parameters" Expected="The other client receives the message unmodified and display it appropriately" PostCondition="" PreCondition="" Purpose="Validate that the server forwards the message unmodified" Command="MSG"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Client A sends "MSG example"" /></tc><tc Name="A basic MSG with ME field" Expected="The other client receives the message unmodified and display it appropriately" PostCondition="" PreCondition="" Purpose="Validate that the server forwards the message unmodified" Command="MSG"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Client A sends "MSG example ME1"" /></tc><tc Name="A basic MSG with PM field" Expected="The other client receives the message unmodified and display it appropriately" PostCondition="" PreCondition="" Purpose="Validate that the server forwards the message unmodified" Command="MSG"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Client A sends "MSG example PMAAAA" (Client A's SID)" /></tc><tc Name="A basic MSG with ME and PM fields" Expected="The other client receives the message unmodified and display it appropriately" PostCondition="" PreCondition="" Purpose="Validate that the server forwards the message unmodified" Command="MSG"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Client A sends "MSG example ME1 PMAAAA" (Client A's SID)" /><step Info="Client A sends "MSG example PMAAAA ME1" (Client A's SID)" /></tc><tc Name="Negative out-of-bounds value in ME field" Expected="The other client does not receive the message" PostCondition="" PreCondition="" Purpose="Validate that the server does not forward the message" Command="MSG"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR". Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Client A sends "MSG example ME-1"" /></tc><tc Name="Underflow value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="0 Value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Empty ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Overflow value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Postive out-of-bounds value in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Invalid characters in ME field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Empty PM" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Too short SID value in PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Too long SID value in PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Invalid characters SID value in PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Non-existing SID value in PM field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="MSG in PROTOCOL state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="MSG in IDENTIFY state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="MSG in VERIFY state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="MSG in NORMAL state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="MSG" /><tc Name="Invalid response based on the GPA" Expected="Server sends a STA indicating that the PAS is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives a response that does not match the request." Command="PAS"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client B sends "INF BBBB ..."" /><step Info="The server sends "GPA AAAAAAAAAAAAAAAAAAAAAAAA" (24 bytes)" /><step Info="The client sends "PAS BBBBBBBBBBBBBBBBBBBBBBBB"" /></tc><tc Name="Invalid characters in response" Expected="Server sends a STA indicating that the PAS is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives a response that contain invalid characters (1 for instance)" Command="PAS"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client B sends "INF BBBB ..."" /><step Info="The server sends "GPA AAAAAAAAAAAAAAAAAAAAAAAA" (24 bytes)" /><step Info="The client sends "PAS BBBBBBBBBBBBBBBBBBBBBBB1" (last byte is invalid)" /></tc><tc Name="Valid response" Expected="" PostCondition="" PreCondition="" Purpose="" Command="PAS" /><tc Name="Empty PAS" Expected="" PostCondition="" PreCondition="" Purpose="" Command="PAS" /><tc Name="Too short SID" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Too long SID" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Invalid characters in SID" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="No client with the specified SID" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Too short ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Too long ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Invalid characters in ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="No client with the specified SID in the ID field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Negative out-of-bounds value in TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Underflow TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Overflow TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="-1 (forever) in TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="120 second value in TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Invalid characters in TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Empty TL field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name=""example" in MS field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Empty MS field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Negative out-of-bounds value in DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Underflow DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Overflow DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="0 as value in DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="1 as value in DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Invalid characters in DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Empty DI field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Empty RD field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="QUI in PROTOCOL state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="QUI in IDENTIFY state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="QUI in VERIFY state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="QUI in NORMAL state" Expected="" PostCondition="" PreCondition="" Purpose="" Command="QUI" /><tc Name="Underflow fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Negative out-of-range value for fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="0 value for fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Overflow fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Positive out-of-range value for TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Invalid characters in fields LE, GE, EQ, TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Combination of LE and EQ fields with conflicting values" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Combination of GE and EQ fields with conflicting values" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Combination of LE, GE and EQ fields with conflicting values" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Valid AN field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Valid NO field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Only NO field" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Combination of AN and NO fields with conflicting values" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Invalid characters in field EX" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty AN" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty NO" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty EX" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty LE" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty GE" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty EQ" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty TO" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Empty TY" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SCH" /><tc Name="Too short SID from hub" Expected="Client sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives an SID that is too short (less than 4 characters)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBB"" /></tc><tc Name="Too long SID from hub" Expected="Client sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives an SID that is too long (longer than 4 characters)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBBB"" /></tc><tc Name="Invalid characters in SID from hub" Expected="Client sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives an SID that contain invalid characters (1 for instance)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBB1"" /></tc><tc Name="Too short SID from client in INF" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that is too short (less than 4 characters)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client sends "INF BBB ..."" /></tc><tc Name="Too long SID from client in INF" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that is too long (longer than 4 characters)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client sends "INF BBBBB ..."" /></tc><tc Name="Invalid characters in SID from client" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that contain invalid characters (1 for instance)" Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client sends "INF BBB1 ..."" /></tc><tc Name="Non-assigned SID from client" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that it didn't assign a client." Command="SID"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="The client sends "INF CCCC ..."" /></tc><tc Name="Assigned SID from another client" Expected="Server sends a STA indicating that the SID is invalid and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives an SID that was already assigned to another a client." Command="SID"><step Info="Connect with a client A to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID BBBB"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="Connect with a client B to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server sends "SID CCCC"" /><step Info="Client B sends "INF BBBB ..."" /></tc><tc Name="Valid SID assignment" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SID" /><tc Name="Valid SID use" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SID" /><tc Name="No SID from server" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SID" /><tc Name="Invalid BASE version from server" Expected="Client sends a STA indicating lack of support for BASE and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it receives BAS2 instead of BASE." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ..."" /><step Info="The server responds with "SUP ADBAS2 ..."" /></tc><tc Name="Invalid BASE version from client" Expected="Server sends a STA indicating lack of support for BASE and disconnects" PostCondition="" PreCondition="" Purpose="Validate what a server does when it receives BAS2 instead of BASE" Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBAS2 ..."" /></tc><tc Name="Lack of overlapping hash support from server" Expected="Client sends a STA indicating no overlapping hash support and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when it does not receive overlapping hashes." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE"" /></tc><tc Name="Lack of overlapping hash support from client" Expected="Server sends a STA indicating no overlapping hash support and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when it does not receive overlapping hashes." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE"" /></tc><tc Name="Remove BASE support in NORMAL from server" Expected="Client sends a STA indicating lack of support for BASE and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when the BASE support is removed during NORMAL state." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="The server sends "SUP RMBASE"" /></tc><tc Name="Remove BASE support in NORMAL from client" Expected="Server sends a STA indicating lack of support for BASE and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when the BASE support is removed during NORMAL state." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="The client sends "SUP RMBASE"" /></tc><tc Name="Remove hash support in NORMAL from server" Expected="Client sends a STA indicating lack of support for TIGR and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a client does when the hash support is removed during NORMAL state." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="The server sends "SUP RMTIGR"" /></tc><tc Name="Remove hash support in NORMAL from client" Expected="Server sends a STA indicating lack of support for TIGR and disconnects." PostCondition="" PreCondition="" Purpose="Validate what a server does when the hash support is removed during NORMAL state." Command="SUP"><step Info="Connect with a client to the server. Client initiates the connection by sending a "SUP ADBASE ADTIGR"" /><step Info="The server responds with "SUP ADBASE ADTIGR"" /><step Info="Continue with normal communication until NORMAL is reached and stabalized" /><step Info="The client sends "SUP RMTIGR"" /></tc><tc Name="No SUP content from client" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SUP" /><tc Name="No SUP content from server" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SUP" /><tc Name="Valid SUP sequence from server" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SUP" /><tc Name="Valid SUP sequence from client" Expected="" PostCondition="" PreCondition="" Purpose="" Command="SUP" /><tc Name="Server forwards unknown fields" Expected="Server forwards the unknown field" PostCondition="" PreCondition="" Purpose="Validate if the server forwards unknown fields to other clients" Command="General" /><tc Name="Server forwards unknown commands" Expected="The server forwards the unknown command" PostCondition="" PreCondition="" Purpose="Validate that the server forwards the unknwon command" Command="General" /></adctestcases> \ No newline at end of file Modified: trunk/ADC.txt =================================================================== --- trunk/ADC.txt 2013-03-26 22:15:37 UTC (rev 101) +++ trunk/ADC.txt 2013-06-03 20:33:22 UTC (rev 102) @@ -29,6 +29,7 @@ * Added examples for each command. * Features are now described in its own section. * Specified token use from server party in client-client connections. +* Changed size in file list schema to an unsigned long to manage files larger than 2 GiB. === Version 1.0.2, 2013-01-31 Fredrik Ullner <ul...@gm...> @@ -239,7 +240,7 @@ <xs:attribute name="Generator" type="xs:string"></xs:attribute> <xs:attribute name="Incomplete" type="zeroOne" default="0"></xs:attribute> <xs:attribute name="Name" type="xs:string"></xs:attribute> - <xs:attribute name="Size" type="xs:int"></xs:attribute> + <xs:attribute name="Size" type="xs:unsignedLong"></xs:attribute> <xs:attribute name="Version" type="xs:int"></xs:attribute> <xs:element name="FileListing"> @@ -570,7 +571,7 @@ |DS |integer |Maximum download speed, bytes/second |SL |integer |Maximum simultaneous upload connections (slots) |AS |integer |Automatic slot allocator speed limit, bytes/sec. The client keeps opening slots as long as its total upload speed doesn't exceed this value. -|AM |integer |Minimum simultaneous upload connectins in automatic slot manager mode +|AM |integer |Minimum simultaneous upload connections in automatic slot manager mode |EM |string |E-mail address |NI |string |Nickname (or hub name). The hub must ensure that this is unique in the hub up to case-sensitivity. Valid are all characters in the Unicode character set with code point above 32, although hubs may limit this further as they like with an appropriate error message. |DE |string |Description. Valid are all characters in the Unicode character set with code point equal to or greater than 32. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |