COMMENTS:

Testing Theory

These series of tests are designed to exercise all necessary functionality to have type compliance to the Atlas protocol.

In Level 1 compliance no rules are applied to Type's other than the normal standard programming definitions (for example the C definitions of types).

When creating a object it will also be necessary to destroy the objects after the test cases are complete.

All codec output shall be recorded and passed on with the test results.

Memory usage, Thread and Handle counts shall to be recorded for each test case as well as the beginning and end count for this test suite.

Benchmarks are to be recorded in milliseconds and divided by the (need benchmark program so benchmark is not dependent on hardware) Atlas benchmark program score.

All tests will need to be performed on all combinations of compression, encryption and codec type (binary, XML, string) that the library supports.

Test Case Numbering

Test case will use the following numbering scheme (fields are not fixed width) ATLASLIB:TYPE:L1:xxx:xxx:xx.xx ^ ^ ^ ^ ^ ^ | | | | | Test Case Number (e.g. 1, 2, 3.1) | | | | Test Case Type (e.g. Benchmark) | | | Test Plan Section (e.g. General, String, Uri_list) | | Test Plan Level (Acceptance Level of Test Plan) | Test Plan Section (e.g. Type, Action) Test Suite (Tests are for what worldforge Product)

Prerequisites

Library is capable of accepting codec input from file

Library is capable of recording codec output to file

Library has conversion capability to accept/ouput XML

Entity class tree

ROOT_TYPE

Benchmarks: 1. Memory Used (for standard root of Definition) 2. Transmit Entire Root 1,000,000 (Speed) 3. Receive Entire Root 1,000,000 (Speed) Invalids: 1. Receive Invalid Root Object 2. Transmit Invalid Root Object 3. Create Invalid Root Object 4. Delete Invalid Root Object 5. Create Null Root 6. Induce memory corruption of object. Stress: 1. Create and Delete 5 definitions of Root 1,000,000 (watch for memory leaks and threads/handles) 2. Encode and Decode 5 definitions of Root 1,000,000

STRING

Functions: (Create object, Transmit object to File, Receive object from File) 1. abcdefghijklmnopqrstvwxyz1234567890ABCDEFJHIJKLMNOPQRSTUVWXYZ 2. "" 3. ass>string> 4. String with 0x00 in middle of it 5. testing " test" 123. 6. testing 'test'123. 7. String with >32k data 8. Delete String Object's Benchmarks: 1. Encode and Decode String Object "the quick brown fox jumped over the lazy dog THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG ,. 1234567890 Compression: the the the the the the the the the the the the the the the the the aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 1,000,000 Invalids: (Create object [should fail], Recieve object from File [should error and request re-try]) 1. (ToDo: theoretically no invalids? need more info on UTF-8) Stress: 1. Create and Delete 5 definitions of String 1,000,000 (watch for memory leaks and threads/handles) 2. Encode and Decode 5 definitions of Root * 1,000,000

INTEGER

Functions: (Create object, Transmit object to File, Receive object from File) 1. 0 2. 1 3. -1 4. 2147483648 5. -2147483647 6. (Random Positive) 7. (Random Negative) 8. Delete Integer Objects Benchmarks: 1. Encode and Decode Integer Object "2001001001" x 1,000,000 Invalids: (Create object [should fail], Recieve object from File [should error and request re-try]) 1. -0 2. 2147483649 3. -2147483648 4. 1.0 5. abc123 Stress: 1. Create and Delete 5 definitions of Integer 1,000,000 (watch for memory leaks and threads/handles) 2. Encode and Decode 5 definitions of Root * 1,000,000

FLOAT

Functions: (Create object, Transmit object to File, Receive object from File) 1. 0.0 2. 0000000000000000.0 3. 1.0 4. 1234567890.1234567890 5. 1.0e10 6. 1.0E20 7. 1.1234567890e123 8. Delete Float Objects Benchmarks: 1. Encode and Decode Integer Object "23423.345576567567567" x * 1,000,000 Invalids: (Create object [should fail], Recieve object from File [should error and request re-try]) 1. 0 2. -0.0 3. 1 4. 1.2efg3455456456 5. 1.2Edfgds234234 6. asdlasdfhk 7. 3456234534525 8. 1111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000

.1111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000 Stress: 1. Create and Delete 5 definitions of Float 1,000,000 2. Encode and Decode 5 definitions of Float 1,000,000

URI

Functions: (Create object, Transmit object to File, Receive object from File) 1. "" 2. "file:" 3. "http://www.worldforge.org/website/protocols/TestSuite/TypeLevel1" 4. "atlas://acorn.worldforge.org" Benchmarks: 1. Encode and Decode Uri Object "http://2001001001" x 1,000,000 Invailds: (Create object [should fail], Recieve object from File [should error and request re-try]) ToDo: find url to URI definition Stress: 1. Create and Delete 5 definitions of Float 1,000,000 2. Encode and Decode 5 definitions of Float * 1,000,000 OBJECT

Functions: (Create object, Transmit object to File, Receive object from File) Benchmarks: Stress:

STRING_LIST

Functions: (Create object, Transmit object to File, Receive object from File) 1. Create list with 10 strings 2. Create list with 100 strings 3. Create list with 1000 strings Benchmarks: Stress:

INTERGER_LIST

Functions: (Create object, Transmit object to File, Receive object from File) 1. Create list with 10 integers 2. Create list with 100 integers, 3. Create list with 1000 integers Benchmarks: Stress:

FLOAT_LIST

Functions: (Create object, Transmit object to File, Receive object from File) 1. Create list with 10 floats 2. Create list with 100 floats 3. Create list with 1000 floats Benchmarks: Stress:

URI_LIST

Functions: (Create object, Transmit object to File, Receive object from File) 1. Create list with 10 URI's 2. Create list with 100 URI's 3. Create list with 1000 URI's Benchmarks: Stress:

OBJECT_LIST

Functions: (Create object, Transmit object to File, Receive object from File) 1. Create list with 10 objects 2. Create list with 100 objects 3. Create list with 1000 objects Benchmarks: Stress:

Definitions:

Root Definiton

root_type

string: "This is a string "hello world" that every - one uses for testing"
string: "This is a sub-string"
string: "This is a sub-sub-string" string: "This is a sub-sub-sub-string" string: "This is a sub-sub-sub-sub-string"

string: "This is a sub-sub-sub-sub-sub-string"

uri: "atlas://acorn.worldforge.org/1"

uri_list: "http://www.kde.org", "http://www.worldforge.org/website/protocols/", "ftp://ftp.cdrom.com"

float: 156456.34634561

int: 1641

object: ToDo

uri: "atlas://acorn.worldforge.org/2"

float_list: 0.0, 1.0, 2123443.4563546, 232345.34563456

string: "This is a string : with the parent of URI"

uri: "atlas://acorn.worldforge.org/testing/testing/3"

float: 233333333.1233333334354562

int: 24562

object: ToDo

float: "323.125563

string: "abcdefghijklmnop 1234567890 parent = Float"

uri: "atlas://acorn.worldforge.org/this/test/is/ok/and/is/URI/number/4"

float: 44645.45676554

int: 3643

object: ToDo

int_list: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0

int: 4564

string: "This is a string belongs to Int which stands for integer. "hello world again""

uri: "atlas://acorn.worldforge.org/testing/testing/5"

float: 5.5

object_list: ,

int: 55

object: ToDo

object: ToDo

string: "the quick brown fox jumped over the lazy object"

uri: "file://testing.html#6"

float: 6.6666666666666666

int: 6

string_list: "this", "is", "a", "test", "1", "2", "3", ""

object: ToDo