6.0.0-git
2018-12-17
Last Modified 2013-11-11 by Jan Schneider

SyncML Conformance Test Suite

http://sourceforge.net/projects/oma-scts/

Test Results for SyncML V1.1 Server Tests

Test Results Description
0101 passed To check if the Test Object implements 'Server Layer Authentication'. SCTS sends SyncHdr with wrong credentials.
0201 passed To check if the Test Object implements 'Server Layer Authentication'. SCTS sends SyncHdr with no credentials.
0202 passed To check if the Test Object accepts the credentials sent and proceeds with the Sync Session.
0203 passed To check if the Test Object responds with Results for a Get on device information.
0204 passed To check if the Test Object responds with Alerts for all the databases alerted by SCTS.
0205 passed To check if the Test Object sends valid Sync Tags.
0204 passed To check if the Test Object responds with Alerts for multiple databases alerted by SCTS.
0301 passed To check if the Test Object's and SCTS' Sync Anchors match by sending/receiving Alerts for normal two way sync.
0302 passed To check if the Test Object handles Adds correctly.
0401 passed To check if the Test Object sends valid Adds.
0402 passed To check if the Test Object handles a Replace on a data item added by SCTS.
0403 passed To check if the Test Object sends a valid Replace on a data item added by SCTS.
0404 passed To check if the Test Object handles a Delete on a data item added by SCTS.
0405 passed To check if the Test Object sends a valid Delete on a data item added by SCTS.
0501 passed To check if the Test Object handles a Replace on a data item added by it.
0502 passed To check if the Test Object sends a valid Replace on a data item added by it.
0503 passed To check if the Test Object handles a Delete on a data item added by it.
0504 passed To check if the Test Object sends a valid Delete on a data item added by it.
0505 passed To check if the Test Object handles a Replace on a non-existant data item as an Add.
0601 passed To check if the databases are in Sync by forcing a slow sync (SCTS does not send any modifications). Note: You have to start this test with an empty databse.
0701 passed To check if the Test Object responds with an appropriate status code for a Delete with a nonexistent target/source.
0801 passed To check if the Test Object handles sync without seperate intialization. Note: In this test the suite doesn't send Map commands to the server. Thus horde keeps the session open. Before proceeding to the next test you have to clean the session data (like /var/lib/php(5)) so horde requests a new authorisation for test 0901. Othewise test following tests will fail.
0901 passed To check if the Test Object can handle an Add with multiple items.
0902 passed To check if the Test Object can handle a Replace with multiple items.
0903 passed To check if the Test Object can handle a Delete with multiple items.
0904 passed To check if the Test Object responds with individual 'Status' for each item in a Replace (One item is non-existant).
0905 passed To check if the Test Object responds with individual 'Status' for each item in a Delete (One item is non-existant).
1001 passed To check if the Test Object can handle multiple messages.
1101 passed To check if the Test Object determines from the DevInfo whether or not NumberOfChanges is supported, and if it sends proper NumberOfChanges information to SCTS.
1201 passed To check if the Test Object determines from the DevInfo whether or not NumberOfChanges is supported, and if it sends proper NumberOfChanges information to SCTS.
1301 passed To check if the Test Object determines from the DevInfo whether or not Large Objects are supported, and if it properly declares the MaxObjSize and can properly receive Large Objects.
1401 passed To check if the Test Object determines from the DevInfo whether or not Large Objects are supported.
1501 passed To check if the Test Object determines from the DevInfo whether or not Large Objects are supported, and if it properly declares the MaxObjSize and can properly send Large Objects.
1601 passed To check if the Test Object correctly handles Large Objects with incorrect size.
1602 passed To check if the Test Object correctly handles large objects that are not completely sent.
1701 passed To check if the Test Object did not commit the Large Object with incorrect size and the incomplete Large Object sent in the last session.

Test Results for SyncML V1.2 Server Tests

SyncML V1.2 is still a draft. The tests seem to be quite preliminary and buggy. (as of July 2006)

Test Results Description
0101 passed To check if the Test Object implements 'Server Layer Authentication'. SCTS sends SyncHdr with wrong credentials.
0201 passed To check if the Test Object implements 'Server Layer Authentication'. SCTS sends SyncHdr with no credentials.
0202 passed To check if the Test Object accepts the credentials sent and proceeds with the Sync Session.
0203 passed To check if the Test Object responds with Results for a Get on device information.
0204 passed To check if the Test Object responds with Alerts for all the databases alerted by SCTS.
0205 passed To check if the Test Object sends valid Sync Tags.
0204 passed To check if the Test Object responds with Alerts for multiple databases alerted by SCTS.
0301 passed To check if the Test Object's and SCTS' Sync Anchors match by sending/receiving Alerts for normal two way sync.
0302 crash To check if the Test Object handles Adds correctly.
0401 passed To check if the Test Object sends valid Adds.
0402 crash To check if the Test Object handles a Replace on a data item added by SCTS.
0403 crash To check if the Test Object sends a valid Replace on a data item added by SCTS.
0404 crash To check if the Test Object handles a Delete on a data item added by SCTS.
0405 crash To check if the Test Object sends a valid Delete on a data item added by SCTS.
0501 crash To check if the Test Object handles a Replace on a data item added by it.
0502 loop To check if the Test Object sends a valid Replace on a data item added by it.
0503 crash To check if the Test Object handles a Delete on a data item added by it.
0504 crash To check if the Test Object sends a valid Delete on a data item added by it.
0505 crash To check if the Test Object handles a Replace on a non-existant data item as an Add.
0601 crash To check if the databases are in Sync by forcing a slow sync (SCTS does not send any modifications).
0701 crash To check if the Test Object responds with an appropriate status code for a Delete with a nonexistent target/source.
0801 passed To check if the Test Object handles sync without seperate intialization.
0901 crash To check if the Test Object can handle an Add with multiple items.
0902 crash To check if the Test Object can handle a Replace with multiple items.
0903 crash To check if the Test Object can handle a Delete with multiple items.
0904 To check if the Test Object responds with individual 'Status' for each item in a Replace (One item is non-existant).
0905 To check if the Test Object responds with individual 'Status' for each item in a Delete (One item is non-existant).
1001 To check if the Test Object can handle multiple messages.
1101 To check if the Test Object determines from the DevInfo whether or not NumberOfChanges is supported, and if it sends proper NumberOfChanges information to SCTS.
1201 passed To check if the Test Object determines from the DevInfo whether or not NumberOfChanges is supported, and if it sends proper NumberOfChanges information to SCTS.
1301 To check if the Test Object determines from the DevInfo whether or not Large Objects are supported, and if it properly declares the MaxObjSize and can properly receive Large Objects.
1401 To check if the Test Object determines from the DevInfo whether or not Large Objects are supported.
1501 To check if the Test Object determines from the DevInfo whether or not Large Objects are supported, and if it properly declares the MaxObjSize and can properly send Large Objects.
1601 To check if the Test Object correctly handles Large Objects with incorrect size.
1602 To check if the Test Object correctly handles large objects that are not completely sent.
1701 To check if the Test Object did not commit the Large Object with incorrect size and the incomplete Large Object sent in the last session.
1801 To check if the the Server responds correctly when both the client and the server edit the same data item. Server attempts to perform a Replace on client updated item.
1802 To check if the the Server responds correctly when the client receives invalid data.
1901 To check if the Test can correctly respond to a suspend request.
1902 To check if the Test can correctly respond to a resume of a suspend sync request.
2001 To check if the Test can correctly respond to a one-way Sync request.
2002 To check if the Test can correctly respond to a refresh Sync request.
2101 To check the Test Object reply when an Add command for a new item is performed to a folder that doesn't exist on the other side.
2102 To check the Test Object reply when a Delete command is performed to a folder which still has items stored in it.
2103 To check the Test Object reply when Delete command is performed to a folder that doesn't exist.
2104 To check the Test Object reply when Move command is performed to move an existing item into a folder that doesn't exist.
2201 To test whether the server can return correct status code when field level changes cannot be processed for that object and thus requesting for the full object to be resent
2301 To check the Test Object ability to handle filtering with "VCHAR = %x20-7E ;Visible latin characters within UTF-8 or SPACE character" filter grammar type.
2302 To check the Test Object ability to handle filtering with "string-value = 1*VCHAR ;Case sensitive string value" filter grammar type.
2303 To check the Test Object ability to handle filtering with "log-equalitycomp = "EQ;" ;Equal To (case sensitive)" filter grammar type.
2304 To check the Test Object ability to handle filtering with "log-equalitycomp = "iEQ;" ;Equal To (case insensitive)" filter grammar type.
2305 To check the Test Object ability to handle filtering with "log-equalitycomp = "NE;" ;Not Equal To (case sensitive)" filter grammar type.
2306 To check the Test Object ability to handle filtering with "log-equalitycomp = "iNE;" ;Not Equal To (case insensitive)" filter grammar type.
2307 To check the Test Object ability to handle filtering with "log-equalitycomp = "GT;" ;Greater Than (case sensitive)" filter grammar type.
2308 To check the Test Object ability to handle filtering with "log-equalitycomp = "iGT;" ;Greater Than (case insensitive)" filter grammar type.
2309 To check the Test Object ability to handle filtering with "log-equalitycomp = "GE;" ;Greater Than Or Equal To (case sensitive)" filter grammar type.
2310 To check the Test Object ability to handle filtering with "log-equalitycomp = "iGE;" ;Greater Than Or Equal To (case insensitive)" filter grammar type.
2311 To check the Test Object ability to handle filtering with "log-equalitycomp = "LT;" ;Less Than (case sensitive)" filter grammar type.
2312 To check the Test Object ability to handle filtering with "log-equalitycomp = "iLT;" ;Less Than (case insensitive)" filter grammar type.
2313 To check the Test Object ability to handle filtering with "log-equalitycomp = "LE;" ;Less Than Or Equal To (case sensitive)" filter grammar type.
2314 To check the Test Object ability to handle filtering with "log-equalitycomp = "iLE;" ;Less Than Or Equal To (case insensitive)" filter grammar type.
2315 To check the Test Object ability to handle filtering with "log-equalitycomp = "CON; ;Contains the value (case sensitive)" filter grammar type.
2316 To check the Test Object ability to handle filtering with "log-equalitycomp = "iCON; ;Contains the value (case insensitive)" filter grammar type.
2317 To check the Test Object ability to handle filtering with "log-equalitycomp = "NCON; ;Does Not Contain the value (case sensitive)" filter grammar type.
2319 To check the Test Object ability to handle filtering with "log-sep = "OR;";Logical OR" filter grammar type.
2320 To check the Test Object ability to handle filtering with "log-sep = "AND;";Logical AND " filter grammar type.
2321 To check the Test Object ability to handle filtering with "luid-expression = "LUID;" log-equalitycomp string-value" filter grammar type.
2322 To check the Test Object ability to handle filtering with "ct-no-value = "NULL;"; No property value for the item" filter grammar type.
2323 To check the Test Object ability to handle filtering with "ct-filter-keyword = string-value; Valid content-type specific filter keywords" filter grammar type.
2324 To check the Test Object ability to handle filtering with "ct-filter-value = string-value ; Valid content-type specific property value" filter grammar type.

Notes

  • crash means the test suite crashed, not the Horde server
  • loop means the test suite infinitely sends identical messages.

After an incomplete test you may have to manually remove the session data from your php session directory. Otherwise a session may get reused in the next test: this results in a failed test as the server does not request authorization again.