|
|
|
struct ws_frame_test tests[] = {
|
|
|
|
{
|
|
|
|
.frame={0X81,0X88,0X2F,0X2A,0X17,0X41,0X79,0X6D,0X41,0X3B,0X4B,0X6D,0X7B,0X71},
|
|
|
|
.expectedDecodeBuf={0X54,0X65,0X73,0X74,0X69,0X74},
|
|
|
|
.frame_len=14,
|
|
|
|
.raw_payload_len=6,
|
|
|
|
.expected_errno=0,
|
|
|
|
.descr="Short valid text frame",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X81,0XFE,0X00,0XD4,0X66,0X27,0XE5,0X24,0X34,0X49,0XAF,0X4C,0X04,0X70,0XB0,0X5D,0X2F,0X60,0XB7,0X52,0X3C,0X7F,0XA8,0X43,0X3F,0X15,0XDC,0X51,0X02,0X60,0XA3,0X54,0X04,0X4E,0XA7,0X50,0X02,0X70,0XAB,0X4B,0X2F,0X60,0XD4,0X52,0X05,0X4A,0XB0,0X43,0X02,0X60,0XB3,0X10,0X02,0X64,0XA7,0X4C,0X04,0X4A,0XB4,0X43,0X3C,0X7F,0XBF,0X48,0X04,0X4E,0XA7,0X4A,0X04,0X15,0XB3,0X5E,0X2F,0X60,0XAF,0X48,0X03,0X70,0XDC,0X51,0X3C,0X64,0XA7,0X14,0X07,0X60,0XB0,0X43,0X2B,0X73,0XAC,0X16,0X2F,0X60,0XAF,0X11,0X02,0X60,0XB0,0X43,0X04,0X60,0XB3,0X51,0X2F,0X60,0XBF,0X54,0X3C,0X70,0X9D,0X4F,0X2A,0X4E,0XA7,0X63,0X05,0X4A,0XA3,0X50,0X3C,0X73,0XAC,0X43,0X3C,0X60,0XDC,0X48,0X05,0X5E,0XA7,0X4E,0X04,0X15,0XD0,0X14,0X3F,0X70,0X89,0X51,0X2F,0X60,0XD4,0X15,0X3F,0X15,0X82,0X43,0X04,0X70,0XDC,0X5D,0X3C,0X74,0XA7,0X14,0X3C,0X7F,0X8D,0X14,0X2F,0X60,0XA3,0X51,0X3C,0X64,0XA7,0X48,0X02,0X4A,0XB3,0X51,0X2F,0X60,0X81,0X52,0X3C,0X7F,0XA8,0X43,0X3F,0X4A,0XB3,0X11,0X04,0X15,0XD0,0X4F,0X2F,0X6F,0XB7,0X4B,0X3C,0X74,0XA4,0X5C,0X2B,0X4D,0XBC,0X43,0X3F,0X49,0X89,0X14,0X3C,0X74,0XA7,0X57,0X3C,0X70,0XD1,0X43,0X3C,0X4A,0X89,0X48,0X04,0X60,0XB4,0X51},
|
|
|
|
.expectedDecodeBuf={0X46,0X72,0X61,0X6D,0X65,0X32,0X20,0X64,0X6F,0X65,0X73,0X20,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X20,0X6D,0X75,0X63,0X68,0X20,0X6D,0X6F,0X72,0X65,0X20,0X74,0X65,0X78,0X74,0X20,0X61,0X6E,0X64,0X20,0X65,0X76,0X65,0X6E,0X20,0X67,0X6F,0X65,0X73,0X20,0X62,0X65,0X79,0X6F,0X6E,0X64,0X20,0X74,0X68,0X65,0X20,0X31,0X32,0X36,0X20,0X62,0X79,0X74,0X65,0X20,0X6C,0X65,0X6E,0X20,0X66,0X69,0X65,0X6C,0X64,0X2E,0X20,0X46,0X72,0X61,0X6D,0X65,0X32,0X20,0X64,0X6F,0X65,0X73,0X20,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X20,0X6D,0X75,0X63,0X68,0X20,0X6D,0X6F,0X72,0X65,0X20,0X74,0X65,0X78,0X74,0X20,0X61,0X6E,0X64,0X20,0X65,0X76,0X65,0X6E,0X20,0X67,0X6F,0X65,0X73,0X20,0X62,0X65,0X79,0X6F,0X6E,0X64,0X20,0X74,0X68,0X65,0X20,0X31,0X32,0X36,0X20,0X62,0X79,0X74,0X65,0X20,0X6C,0X65,0X6E,0X20,0X66,0X69,0X65,0X6C,0X64,0X2E},
|
|
|
|
.frame_len=220,
|
|
|
|
.raw_payload_len=159,
|
|
|
|
.expected_errno=0,
|
|
|
|
.descr="Mid-long valid text frame",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X82,0X86,0XDD,0X9B,0XD8,0X56,0X89,0XFE,0XAB,0X22,0XB4,0XEF},
|
|
|
|
.expectedDecodeBuf={0X54,0X65,0X73,0X74,0X69,0X74},
|
|
|
|
.frame_len=12,
|
|
|
|
.raw_payload_len=6,
|
|
|
|
.expected_errno=0,
|
|
|
|
.descr="Short valid binary frame",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X82,0XFE,0X00,0X9F,0XB5,0X6E,0X7F,0X4C,0XF3,0X1C,0X1E,0X21,0XD0,0X5C,0X5F,0X28,0XDA,0X0B,0X0C,0X6C,0XD6,0X01,0X11,0X38,0XD4,0X07,0X11,0X6C,0XD8,0X1B,0X1C,0X24,0X95,0X03,0X10,0X3E,0XD0,0X4E,0X0B,0X29,0XCD,0X1A,0X5F,0X2D,0XDB,0X0A,0X5F,0X29,0XC3,0X0B,0X11,0X6C,0XD2,0X01,0X1A,0X3F,0X95,0X0C,0X1A,0X35,0XDA,0X00,0X1B,0X6C,0XC1,0X06,0X1A,0X6C,0X84,0X5C,0X49,0X6C,0XD7,0X17,0X0B,0X29,0X95,0X02,0X1A,0X22,0X95,0X08,0X16,0X29,0XD9,0X0A,0X51,0X6C,0XF3,0X1C,0X1E,0X21,0XD0,0X5C,0X5F,0X28,0XDA,0X0B,0X0C,0X6C,0XD6,0X01,0X11,0X38,0XD4,0X07,0X11,0X6C,0XD8,0X1B,0X1C,0X24,0X95,0X03,0X10,0X3E,0XD0,0X4E,0X0B,0X29,0XCD,0X1A,0X5F,0X2D,0XDB,0X0A,0X5F,0X29,0XC3,0X0B,0X11,0X6C,0XD2,0X01,0X1A,0X3F,0X95,0X0C,0X1A,0X35,0XDA,0X00,0X1B,0X6C,0XC1,0X06,0X1A,0X6C,0X84,0X5C,0X49,0X6C,0XD7,0X17,0X0B,0X29,0X95,0X02,0X1A,0X22,0X95,0X08,0X16,0X29,0XD9,0X0A,0X51},
|
|
|
|
.expectedDecodeBuf={0X46,0X72,0X61,0X6D,0X65,0X32,0X20,0X64,0X6F,0X65,0X73,0X20,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X20,0X6D,0X75,0X63,0X68,0X20,0X6D,0X6F,0X72,0X65,0X20,0X74,0X65,0X78,0X74,0X20,0X61,0X6E,0X64,0X20,0X65,0X76,0X65,0X6E,0X20,0X67,0X6F,0X65,0X73,0X20,0X62,0X65,0X79,0X6F,0X6E,0X64,0X20,0X74,0X68,0X65,0X20,0X31,0X32,0X36,0X20,0X62,0X79,0X74,0X65,0X20,0X6C,0X65,0X6E,0X20,0X66,0X69,0X65,0X6C,0X64,0X2E,0X20,0X46,0X72,0X61,0X6D,0X65,0X32,0X20,0X64,0X6F,0X65,0X73,0X20,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X20,0X6D,0X75,0X63,0X68,0X20,0X6D,0X6F,0X72,0X65,0X20,0X74,0X65,0X78,0X74,0X20,0X61,0X6E,0X64,0X20,0X65,0X76,0X65,0X6E,0X20,0X67,0X6F,0X65,0X73,0X20,0X62,0X65,0X79,0X6F,0X6E,0X64,0X20,0X74,0X68,0X65,0X20,0X31,0X32,0X36,0X20,0X62,0X79,0X74,0X65,0X20,0X6C,0X65,0X6E,0X20,0X66,0X69,0X65,0X6C,0X64,0X2E},
|
|
|
|
.frame_len=167,
|
|
|
|
.raw_payload_len=159,
|
|
|
|
.expected_errno=0,
|
|
|
|
.descr="Mid-long valid binary frame",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X88,0X82,0X6B,0X33,0X77,0X94,0X68,0XD8},
|
|
|
|
.expectedDecodeBuf={0X03,0XEB},
|
|
|
|
.frame_len=8,
|
|
|
|
.raw_payload_len=2,
|
|
|
|
.expected_errno=ECONNRESET,
|
|
|
|
.descr="Close frame (Reason 1003)",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X88,0XAD,0X4B,0XA1,0XCE,0XE8,0X48,0X4A,0X87,0XCF,0X26,0X81,0XAF,0XC8,0X28,0XCD,0XA1,0X9B,0X2E,0X81,0XBC,0X8D,0X2A,0XD2,0XA1,0X86,0X6B,0XC0,0XA0,0X8C,0X6B,0XCC,0XBB,0X8B,0X23,0X81,0XA3,0X87,0X39,0XC4,0XEE,0X9C,0X23,0XC0,0XA0,0XC8,0X3F,0XC9,0XAF,0X9C,0X6A},
|
|
|
|
.expectedDecodeBuf={0X03,0XEB,0X49,0X27,0X6D,0X20,0X61,0X20,0X63,0X6C,0X6F,0X73,0X65,0X20,0X72,0X65,0X61,0X73,0X6F,0X6E,0X20,0X61,0X6E,0X64,0X20,0X6D,0X75,0X63,0X68,0X20,0X6D,0X6F,0X72,0X65,0X20,0X74,0X68,0X61,0X6E,0X20,0X74,0X68,0X61,0X74,0X21},
|
|
|
|
.frame_len=51,
|
|
|
|
.raw_payload_len=45,
|
|
|
|
.expected_errno=ECONNRESET,
|
|
|
|
.descr="Close frame (Reason 1003) and msg",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X81,0X08,0X56,0X47,0X56,0X7A,0X64,0X47,0X6C,0X30},
|
|
|
|
.expectedDecodeBuf={0X54,0X65,0X73,0X74,0X69,0X74},
|
|
|
|
.frame_len=10,
|
|
|
|
.raw_payload_len=6,
|
|
|
|
.expected_errno=EPROTO,
|
|
|
|
.descr="Invalid frame: Wrong masking",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X81,0XFE,0X00,0X0F,0X71,0XE9,0X29,0X79,0X44,0XA4,0X07,0X23,0X3B,0X85,0X2C,0X55,0X1D,0X9E,0X06,0X23,0X27,0X9D},
|
|
|
|
.expectedDecodeBuf={0X2E,0XFE,0X00,0X0F,0X72,0X65,0X20,0X49,0X70,0X73,0X75,0X6D},
|
|
|
|
.frame_len=22,
|
|
|
|
.raw_payload_len=12,
|
|
|
|
.expected_errno=EPROTO,
|
|
|
|
.descr="Invalid frame: Length of < 126 with add. 16 bit len field",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X81,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0X40,0X2F,0X40,0XF3,0X5B,0X2F,0X40,0XF2,0X63,0X01,0X1A,0X8D,0X42,0X2A,0X6C,0XAB,0X59,0X00,0X1A,0X91,0X5A},
|
|
|
|
.expectedDecodeBuf={0X2E,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0X40,0X72,0X65,0X20,0X49,0X70,0X73,0X75,0X6D},
|
|
|
|
.frame_len=30,
|
|
|
|
.raw_payload_len=18,
|
|
|
|
.expected_errno=EPROTO,
|
|
|
|
.descr="Invalid frame: Length of < 126 with add. 64 bit len field",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X01,0XAC,0XC9,0X6E,0XC7,0X6E,0X9F,0X29,0XAF,0X1E,0XAA,0X17,0X85,0X1E,0XAA,0X17,0X85,0X06,0X80,0X29,0X9D,0X17,0X90,0X39,0XA3,0X1A,0X93,0X39,0XF2,0X5E,0X93,0X39,0X96,0X09,0XAD,0X5C,0X91,0X07,0XAA,0X5C,0XFE,0X04,0XA8,0X5C,0X91,0X5E,0X85,0X07,0XF3,0X1B},
|
|
|
|
.expectedDecodeBuf={0X54,0X68,0X69,0X73,0X20,0X69,0X73,0X20,0X61,0X20,0X66,0X72,0X61,0X67,0X6D,0X65,0X6E,0X74,0X65,0X64,0X20,0X77,0X65,0X62,0X73,0X6F,0X63,0X6B,0X65,0X74,0X2E,0X2E,0X2E},
|
|
|
|
.frame_len=50,
|
|
|
|
.raw_payload_len=33,
|
|
|
|
.expected_errno=0,
|
|
|
|
.descr="Continuation test frag1",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X00,0X9C,0X52,0XBC,0XD5,0X99,0X1E,0XD5,0XE1,0XEC,0X1B,0XFB,0X93,0XEC,0X08,0XFF,0X97,0XE9,0X36,0XFF,0X97,0XF7,0X30,0X8E,0X83,0XE3,0X1B,0XFB,0XEC,0XEC,0X1E,0XD5,0XE1,0XEC},
|
|
|
|
.expectedDecodeBuf={0X2E,0X2E,0X2E,0X20,0X61,0X6E,0X64,0X20,0X69,0X74,0X20,0X67,0X6F,0X65,0X73,0X20,0X6F,0X6E,0X2E,0X2E,0X2E},
|
|
|
|
.frame_len=34,
|
|
|
|
.raw_payload_len=21,
|
|
|
|
.expected_errno=0,
|
|
|
|
.descr="Continuation test frag2",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
.frame={0X80,0X94,0X3B,0X88,0XA1,0XE9,0X62,0XDF,0X94,0X82,0X72,0XCF,0X98,0X9C,0X72,0XCF,0XE7,0X9C,0X61,0XCB,0XE3,0X93,0X5F,0XCF,0X98,0X9E},
|
|
|
|
.expectedDecodeBuf={0X61,0X6E,0X64,0X20,0X6F,0X6E,0X20,0X61,0X6E,0X64,0X20,0X73,0X74,0X6F,0X70},
|
|
|
|
.frame_len=26,
|
|
|
|
.raw_payload_len=15,
|
|
|
|
.expected_errno=0,
|
|
|
|
.descr="Continuation test frag3",
|
|
|
|
.i=0,
|
|
|
|
.simulate_sock_malfunction_at=0,
|
|
|
|
.errno_val=0,
|
|
|
|
.close_sock_at=0
|
|
|
|
}
|
|
|
|
};
|