test_id,message_type,field_name,field_type,field_size_bytes,required,position,validation_rule,test_value,expected_result,actual_result,passed,error_code,description 1,HANDSHAKE,version,uint16,2,true,0,"range(1,65535)",1,valid,,true,,"Protocol version field" 2,HANDSHAKE,version,uint16,2,true,0,"range(1,65535)",0,invalid,,true,ERR_VERSION,"Zero version invalid" 3,HANDSHAKE,version,uint16,2,true,0,"range(1,65535)",65535,valid,,true,,"Max version value" 4,HANDSHAKE,client_id,uuid,16,true,2,"uuid_format","550e8400-e29b-41d4-a716-446655440000",valid,,true,,"Valid UUID" 5,HANDSHAKE,client_id,uuid,16,true,2,"uuid_format","invalid-uuid",invalid,,true,ERR_UUID,"Invalid UUID format" 6,HANDSHAKE,timestamp,uint64,8,true,18,"epoch_ms",1699900800000,valid,,true,,"Valid timestamp" 7,HANDSHAKE,timestamp,uint64,8,true,18,"epoch_ms",0,invalid,,true,ERR_TIMESTAMP,"Zero timestamp invalid" 8,HANDSHAKE,flags,uint32,4,false,26,"bitmask(0xFF)",0x01,valid,,true,,"Valid flags" 9,HANDSHAKE,flags,uint32,4,false,26,"bitmask(0xFF)",0x100,invalid,,true,ERR_FLAGS,"Invalid flag bit" 10,HANDSHAKE,checksum,uint32,4,true,30,"crc32",0xABCD1234,valid,,true,,"Valid checksum" 11,AUTH_REQUEST,username_len,uint16,2,true,0,"range(1,64)",10,valid,,true,,"Username length" 12,AUTH_REQUEST,username_len,uint16,2,true,0,"range(1,64)",0,invalid,,true,ERR_LENGTH,"Zero length invalid" 13,AUTH_REQUEST,username_len,uint16,2,true,0,"range(1,64)",65,invalid,,true,ERR_LENGTH,"Exceeds max length" 14,AUTH_REQUEST,username,string,variable,true,2,"printable_ascii","testuser",valid,,true,,"Valid username" 15,AUTH_REQUEST,username,string,variable,true,2,"printable_ascii","user@domain.com",valid,,true,,"Email format username" 16,AUTH_REQUEST,username,string,variable,true,2,"printable_ascii","user\x00name",invalid,,true,ERR_NULL,"Null byte in username" 17,AUTH_REQUEST,password_len,uint16,2,true,variable,"range(1,128)",20,valid,,true,,"Password length" 18,AUTH_REQUEST,password_hash,bytes,32,true,variable,"sha256","a1b2c3...(64 hex chars)",valid,,true,,"Valid password hash" 19,AUTH_REQUEST,nonce,bytes,16,true,variable,"random","random_16_bytes",valid,,true,,"Authentication nonce" 20,AUTH_RESPONSE,status,uint8,1,true,0,"enum(0,1,2,3)",0,valid,,true,,"Success status" 21,AUTH_RESPONSE,status,uint8,1,true,0,"enum(0,1,2,3)",1,valid,,true,,"Failure status" 22,AUTH_RESPONSE,status,uint8,1,true,0,"enum(0,1,2,3)",5,invalid,,true,ERR_ENUM,"Unknown status" 23,AUTH_RESPONSE,session_token,bytes,32,true,1,"random","session_token_32_bytes",valid,,true,,"Session token" 24,AUTH_RESPONSE,expiry,uint64,8,true,33,"epoch_ms_future",1699987200000,valid,,true,,"Token expiry time" 25,AUTH_RESPONSE,user_id,uint64,8,true,41,"non_zero",12345,valid,,true,,"User identifier" 26,MESSAGE,msg_type,uint8,1,true,0,"enum(1-20)",1,valid,,true,,"Text message type" 27,MESSAGE,msg_type,uint8,1,true,0,"enum(1-20)",0,invalid,,true,ERR_TYPE,"Invalid message type" 28,MESSAGE,msg_type,uint8,1,true,0,"enum(1-20)",21,invalid,,true,ERR_TYPE,"Unknown message type" 29,MESSAGE,msg_id,uint64,8,true,1,"unique",1000001,valid,,true,,"Unique message ID" 30,MESSAGE,sender_id,uint64,8,true,9,"valid_user",12345,valid,,true,,"Valid sender ID" 31,MESSAGE,recipient_type,uint8,1,true,17,"enum(0,1,2)",0,valid,,true,,"User recipient" 32,MESSAGE,recipient_type,uint8,1,true,17,"enum(0,1,2)",1,valid,,true,,"Room recipient" 33,MESSAGE,recipient_type,uint8,1,true,17,"enum(0,1,2)",2,valid,,true,,"Broadcast recipient" 34,MESSAGE,recipient_id,uint64,8,true,18,"context_valid",54321,valid,,true,,"Valid recipient ID" 35,MESSAGE,timestamp,uint64,8,true,26,"epoch_ms",1699900800000,valid,,true,,"Message timestamp" 36,MESSAGE,content_len,uint32,4,true,34,"range(1,65535)",256,valid,,true,,"Content length" 37,MESSAGE,content_len,uint32,4,true,34,"range(1,65535)",0,invalid,,true,ERR_LENGTH,"Zero content length" 38,MESSAGE,content,bytes,variable,true,38,"utf8_valid","Hello, World!",valid,,true,,"UTF-8 content" 39,MESSAGE,content,bytes,variable,true,38,"utf8_valid","\xFF\xFE invalid",invalid,,true,ERR_UTF8,"Invalid UTF-8" 40,MESSAGE,flags,uint16,2,false,variable,"bitmask(0xFFFF)",0x0001,valid,,true,,"Encrypted flag" 41,MESSAGE,flags,uint16,2,false,variable,"bitmask(0xFFFF)",0x0002,valid,,true,,"Compressed flag" 42,MESSAGE,flags,uint16,2,false,variable,"bitmask(0xFFFF)",0x0004,valid,,true,,"Priority flag" 43,MESSAGE,checksum,uint32,4,true,variable,"crc32",0xDEADBEEF,valid,,true,,"Message checksum" 44,JOIN_ROOM,room_name_len,uint8,1,true,0,"range(1,64)",12,valid,,true,,"Room name length" 45,JOIN_ROOM,room_name,string,variable,true,1,"alphanumeric_dash","general-chat",valid,,true,,"Valid room name" 46,JOIN_ROOM,room_name,string,variable,true,1,"alphanumeric_dash","room with space",invalid,,true,ERR_FORMAT,"Spaces not allowed" 47,JOIN_ROOM,password_len,uint8,1,false,variable,"range(0,64)",0,valid,,true,,"No password" 48,JOIN_ROOM,password_len,uint8,1,false,variable,"range(0,64)",16,valid,,true,,"With password" 49,JOIN_ROOM,password,bytes,variable,false,variable,"optional","room_password",valid,,true,,"Room password" 50,LEAVE_ROOM,room_id,uint64,8,true,0,"valid_room",10001,valid,,true,,"Valid room ID" 51,CREATE_ROOM,room_name_len,uint8,1,true,0,"range(1,64)",15,valid,,true,,"Room name length" 52,CREATE_ROOM,room_name,string,variable,true,1,"alphanumeric_dash","my-new-room",valid,,true,,"Valid room name" 53,CREATE_ROOM,max_users,uint16,2,false,variable,"range(2,10000)",100,valid,,true,,"Max users limit" 54,CREATE_ROOM,max_users,uint16,2,false,variable,"range(2,10000)",1,invalid,,true,ERR_RANGE,"Below minimum" 55,CREATE_ROOM,is_private,uint8,1,false,variable,"bool(0,1)",1,valid,,true,,"Private room flag" 56,CREATE_ROOM,password_len,uint8,1,false,variable,"range(0,64)",16,valid,,true,,"Password length" 57,CREATE_ROOM,password,bytes,variable,false,variable,"optional","secure_password",valid,,true,,"Room password" 58,ROOM_LIST,filter_type,uint8,1,false,0,"enum(0,1,2)",0,valid,,true,,"All rooms filter" 59,ROOM_LIST,filter_type,uint8,1,false,0,"enum(0,1,2)",1,valid,,true,,"Public only filter" 60,ROOM_LIST,filter_type,uint8,1,false,0,"enum(0,1,2)",2,valid,,true,,"Joined only filter" 61,ROOM_INFO,room_id,uint64,8,true,0,"valid_room",10001,valid,,true,,"Room ID" 62,ROOM_INFO,room_name_len,uint8,1,true,8,"range(1,64)",12,valid,,true,,"Room name length" 63,ROOM_INFO,room_name,string,variable,true,9,"alphanumeric_dash","general",valid,,true,,"Room name" 64,ROOM_INFO,user_count,uint32,4,true,variable,"non_negative",50,valid,,true,,"User count" 65,ROOM_INFO,max_users,uint16,2,true,variable,"positive",1000,valid,,true,,"Max users" 66,ROOM_INFO,created_at,uint64,8,true,variable,"epoch_ms",1699814400000,valid,,true,,"Creation timestamp" 67,USER_LIST,room_id,uint64,8,false,0,"valid_room",10001,valid,,true,,"Room ID for filter" 68,USER_LIST,count,uint32,4,true,variable,"non_negative",25,valid,,true,,"User count" 69,USER_INFO,user_id,uint64,8,true,0,"valid_user",12345,valid,,true,,"User ID" 70,USER_INFO,username_len,uint8,1,true,8,"range(1,64)",10,valid,,true,,"Username length" 71,USER_INFO,username,string,variable,true,9,"printable_ascii","johndoe",valid,,true,,"Username" 72,USER_INFO,status,uint8,1,true,variable,"enum(0,1,2,3)",1,valid,,true,,"Online status" 73,USER_INFO,last_seen,uint64,8,true,variable,"epoch_ms",1699900800000,valid,,true,,"Last seen time" 74,PRESENCE,user_id,uint64,8,true,0,"valid_user",12345,valid,,true,,"User ID" 75,PRESENCE,status,uint8,1,true,8,"enum(0,1,2,3)",0,valid,,true,,"Offline status" 76,PRESENCE,status,uint8,1,true,8,"enum(0,1,2,3)",1,valid,,true,,"Online status" 77,PRESENCE,status,uint8,1,true,8,"enum(0,1,2,3)",2,valid,,true,,"Away status" 78,PRESENCE,status,uint8,1,true,8,"enum(0,1,2,3)",3,valid,,true,,"Busy status" 79,PRESENCE,status,uint8,1,true,8,"enum(0,1,2,3)",4,invalid,,true,ERR_ENUM,"Invalid status" 80,PRESENCE,custom_status_len,uint8,1,false,9,"range(0,128)",20,valid,,true,,"Custom status length" 81,PRESENCE,custom_status,string,variable,false,10,"utf8_valid","In a meeting",valid,,true,,"Custom status text" 82,TYPING,room_id,uint64,8,true,0,"valid_room",10001,valid,,true,,"Room ID" 83,TYPING,user_id,uint64,8,true,8,"valid_user",12345,valid,,true,,"User ID" 84,TYPING,is_typing,uint8,1,true,16,"bool(0,1)",1,valid,,true,,"Typing indicator" 85,TYPING,is_typing,uint8,1,true,16,"bool(0,1)",0,valid,,true,,"Stopped typing" 86,PING,sequence,uint32,4,true,0,"any",12345,valid,,true,,"Ping sequence" 87,PING,timestamp,uint64,8,true,4,"epoch_ms",1699900800000,valid,,true,,"Ping timestamp" 88,PONG,sequence,uint32,4,true,0,"match_ping",12345,valid,,true,,"Pong sequence" 89,PONG,timestamp,uint64,8,true,4,"epoch_ms",1699900800000,valid,,true,,"Original timestamp" 90,PONG,server_time,uint64,8,true,12,"epoch_ms",1699900800100,valid,,true,,"Server timestamp" 91,ERROR,error_code,uint16,2,true,0,"defined_error",1001,valid,,true,,"Known error code" 92,ERROR,error_code,uint16,2,true,0,"defined_error",9999,valid,,true,,"Unknown error code" 93,ERROR,message_len,uint16,2,true,2,"range(0,256)",50,valid,,true,,"Error message length" 94,ERROR,message,string,variable,false,4,"utf8_valid","Connection refused",valid,,true,,"Error message" 95,ERROR,original_msg_id,uint64,8,false,variable,"optional",1000001,valid,,true,,"Original message ref" 96,HEADER,magic,uint32,4,true,0,"equals(0x43484154)",0x43484154,valid,,true,,"Magic number CHAT" 97,HEADER,magic,uint32,4,true,0,"equals(0x43484154)",0x00000000,invalid,,true,ERR_MAGIC,"Invalid magic" 98,HEADER,version,uint8,1,true,4,"range(1,255)",1,valid,,true,,"Protocol version" 99,HEADER,msg_type,uint8,1,true,5,"enum(1-20)",5,valid,,true,,"Message type" 100,HEADER,payload_len,uint32,4,true,6,"range(0,65535)",1024,valid,,true,,"Payload length"