cbc: Initial set of CBC tess for osmo-cbc
osmo-cbc is the Osmocom cell broadcast centre. So far, there was no
TTCN-3 test suite. Let's change that.
Change-Id: I38286e8a3dd0f39bd25f631dcbb3ff4f8d4c221f
diff --git a/cbc/SABP_Selftest.ttcn b/cbc/SABP_Selftest.ttcn
new file mode 100644
index 0000000..1f6ecb5
--- /dev/null
+++ b/cbc/SABP_Selftest.ttcn
@@ -0,0 +1,180 @@
+module SABP_Selftest {
+
+/* This is testing the SABP code, specifically re-creating the SABP messages from within
+ * the TCP stream using SABP_Adapter.f_APER_getMsgLen() for the various possible APER
+ * length determinant cases */
+
+import from Osmocom_Types all;
+
+import from SABP_Adapter all;
+import from SABP_Templates all;
+import from IPL4asp_Types all;
+import from IPL4asp_PortType all;
+
+modulepar {
+ charstring mp_bind_ip := "127.0.0.1";
+ integer mp_bind_port := 12345;
+}
+
+type component test_CT extends SABP_Adapter_CT {
+ port IPL4asp_PT TCP;
+ var integer g_tcp_conn_id;
+ timer Tguard := 10.0;
+}
+
+template (value) ASP_Send ts_AS(integer conn_id, octetstring msg) := {
+ connId := conn_id,
+ proto := omit,
+ msg := msg
+}
+
+private altstep as_Tguard() runs on test_CT {
+ [] Tguard.timeout {
+ setverdict(fail, "Tguard timeout");
+ mtc.stop;
+ }
+}
+
+private function f_init() runs on test_CT {
+ var IPL4asp_Types.Result res;
+ var ASP_Event asp_evt;
+
+ activate(as_Tguard());
+ Tguard.start;
+
+ f_bind(mp_bind_ip, mp_bind_port, 0);
+
+ map(self:TCP, system:TCP);
+ res := f_IPL4_connect(TCP, mp_bind_ip, mp_bind_port, "", -1, 0, { tcp:={} });
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not connect to SABP TCP port");
+ mtc.stop;
+ }
+ g_tcp_conn_id := res.connId;
+
+ SABP[0].receive(ASP_Event:{connOpened:=?}) -> value asp_evt {
+ g_sabp_conn_id[0] := asp_evt.connOpened.connId;
+ }
+}
+
+/* send a given input octetstring 'stream' in chunks of 'chunk_size', spaced at 'delay' intervals */
+private function tcp_send_segmented(octetstring stream, integer chunk_size := 1, float delay := 0.05)
+runs on test_CT {
+ var integer i;
+
+ for (i := 0; i < lengthof(stream); i := i+chunk_size) {
+ var integer size := chunk_size;
+ if (lengthof(stream) - i < chunk_size) {
+ size := lengthof(stream) - i;
+ }
+ TCP.send(ts_AS(g_tcp_conn_id, substr(stream, i, size)));
+ f_sleep(delay);
+ }
+}
+
+/* a simple SABP-RESTART message with single-byte length dteerminant (shorter than 128 byte) */
+const octetstring c_restart := '00044010000001000F0009000062F22400230042'O;
+
+/* test whether a message with 1-byte length determinant is parsed */
+testcase TC_1byte_len() runs on test_CT {
+ f_init();
+ TCP.send(ts_AS(g_tcp_conn_id, c_restart));
+ f_sabp_exp(tr_SABP_Restart(?));
+ setverdict(pass);
+}
+
+/* test whether a message with 1-byte length determinant is parsed if each byte is received separately */
+testcase TC_1byte_len_bytewise() runs on test_CT {
+ f_init();
+ tcp_send_segmented(c_restart, 1, 0.05);
+ f_sabp_exp(tr_SABP_Restart(?));
+ setverdict(pass);
+}
+
+/* send three concatenated RESTART in one segment */
+testcase TC_1byte_len_chained() runs on test_CT {
+ var octetstring chain := c_restart & c_restart & c_restart;
+ f_init();
+ TCP.send(ts_AS(g_tcp_conn_id, chain));
+ f_sabp_exp(tr_SABP_Restart(?));
+ f_sabp_exp(tr_SABP_Restart(?));
+ f_sabp_exp(tr_SABP_Restart(?));
+ setverdict(pass);
+}
+
+
+/* SABP write-replace with length determinant encoded over two bytes ('8093'O) */
+const octetstring c_wrepl := '00000080930000080006000211120007000240C0000F0010000113F0030282EC0613F0030282EC070001400100000D0002012A000900020000000400010100000056029F01B4D90D064297D9EC37E8FE96B3C9A0303BDD68341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D10012'O;
+
+/* test whether a message with 2-byte length determinant is parsed */
+testcase TC_2byte_len() runs on test_CT {
+ f_init();
+ TCP.send(ts_AS(g_tcp_conn_id, c_wrepl));
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ f_sabp_send(ts_SABP_Reset({ { pLMNidentity := '09F107'O, lac := '0000'O, sac := '0000'O } }));
+ setverdict(pass);
+}
+
+/* test whether a message with 2-byte length determinant is parsed if each byte is received separately */
+testcase TC_2byte_len_bytewise() runs on test_CT {
+ f_init();
+ tcp_send_segmented(c_wrepl, 1, 0.05);
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ setverdict(pass);
+}
+
+/* send three concatenated WRITE-REPLACE in one segment */
+testcase TC_2byte_len_chained() runs on test_CT {
+ var octetstring chain := c_wrepl & c_wrepl & c_wrepl;
+ f_init();
+ TCP.send(ts_AS(g_tcp_conn_id, chain));
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ setverdict(pass);
+}
+
+/* send three concatenated WRITE-REPLACE in segments of 10 bytes */
+testcase TC_2byte_len_chained_bytewise() runs on test_CT {
+ var octetstring chain := c_wrepl & c_wrepl & c_wrepl;
+ f_init();
+ tcp_send_segmented(chain, 10, 0.05);
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ setverdict(pass);
+}
+
+/* SABP write-replace with length determinant encoded over multiple chunks ('Cx'O case) */
+const octetstring c_chunked := '000000C1000007000600020002000700020002000F00C109C462F2241000004262F2242000000062F2242000000162F2242000000262F2242000000362F2242000000462F2242000000562F2242000000662F2242000000762F2242000000862F2242000000962F2242000000A62F2242000000B62F2242000000C62F2242000000D62F2242000000E62F2242000000F62F2242000001062F2242000001162F2242000001262F2242000001362F2242000001462F2242000001562F2242000001662F2242000001762F2242000001862F2242000001962F2242000001A62F2242000001B62F2242000001C62F2242000001D62F2242000001E62F2242000001F62F2242000002062F2242000002162F2242000002262F2242000002362F2242000002462F2242000002562F2242000002662F2242000002762F2242000002862F2242000002962F2242000002A62F2242000002B62F2242000002C62F2242000002D62F2242000002E62F2242000002F62F2242000003062F2242000003162F2242000003262F2242000003362F2242000003462F2242000003562F2242000003662F2242000003762F2242000003862F2242000003962F2242000003A62F2242000003B62F2242000003C62F2242000003D62F2242000003E62F2242000003F62F2242000004062F2242000004162F2242000004262F2242000004362F2242000004462F2242000004562F2242000004662F2242000004762F2242000004862F2242000004962F2242000004A62F2242000004B62F2242000004C62F2242000004D62F2242000004E62F2242000004F62F2242000005062F2242000005162F2242000005262F2242000005362F2242000005462F2242000005562F2242000005662F2242000005762F2242000005862F2242000005962F2242000005A62F2242000005B62F2242000005C62F2242000005D62F2242000005E62F2242000005F62F2242000006062F2242000006162F2242000006262F2242000006362F2242000006462F2242000006562F2242000006662F2242000006762F2242000006862F2242000006962F2242000006A62F2242000006B62F2242000006C62F2242000006D62F2242000006E62F2242000006F62F2242000007062F2242000007162F2242000007262F2242000007362F2242000007462F2242000007562F2242000007662F2242000007762F2242000007862F2242000007962F2242000007A62F2242000007B62F2242000007C62F2242000007D62F2242000007E62F2242000007F62F2242000008062F2242000008162F2242000008262F2242000008362F2242000008462F2242000008562F2242000008662F2242000008762F2242000008862F2242000008962F2242000008A62F2242000008B62F2242000008C62F2242000008D62F2242000008E62F2242000008F62F2242000009062F2242000009162F2242000009262F2242000009362F2242000009462F2242000009562F2242000009662F2242000009762F2242000009862F2242000009962F2242000009A62F2242000009B62F2242000009C62F2242000009D62F2242000009E62F2242000009F62F224200000A062F224200000A162F224200000A262F224200000A362F224200000A462F224200000A562F224200000A662F224200000A762F224200000A862F224200000A962F224200000AA62F224200000AB62F224200000AC62F224200000AD62F224200000AE62F224200000AF62F224200000B062F224200000B162F224200000B262F224200000B362F224200000B462F224200000B562F224200000B662F224200000B762F224200000B862F224200000B962F224200000BA62F224200000BB62F224200000BC62F224200000BD62F224200000BE62F224200000BF62F224200000C062F224200000C162F224200000C262F224200000C362F224200000C462F224200000C562F224200000C662F224200000C762F224200000C862F224200000C962F224200000CA62F224200000CB62F224200000CC62F224200000CD62F224200000CE62F224200000CF62F224200000D062F224200000D162F224200000D262F224200000D362F224200000D462F224200000D562F224200000D662F224200000D762F224200000D862F224200000D962F224200000DA62F224200000DB62F224200000DC62F224200000DD62F224200000DE62F224200000DF62F224200000E062F224200000E162F224200000E262F224200000E362F224200000E462F224200000E562F224200000E662F224200000E762F224200000E862F224200000E962F224200000EA62F224200000EB62F224200000EC62F224200000ED62F224200000EE62F224200000EF62F224200000F062F224200000F162F224200000F262F224200000F362F224200000F462F224200000F562F224200000F662F224200000F762F224200000F862F224200000F962F224200000FA62F224200000FB62F224200000FC62F224200000FD62F224200000FE62F224200000FF62F2242000010062F2242000010162F2242000010262F2242000010362F2242000010462F2242000010562F2242000010662F2242000010762F2242000010862F2242000010962F2242000010A62F2242000010B62F2242000010C62F2242000010D62F2242000010E62F2242000010F62F2242000011062F2242000011162F2242000011262F2242000011362F2242000011462F2242000011562F2242000011662F2242000011762F2242000011862F2242000011962F2242000011A62F2242000011B62F2242000011C62F2242000011D62F2242000011E62F2242000011F62F2242000012062F2242000012162F2242000012262F2242000012362F2242000012462F2242000012562F2242000012662F2242000012762F2242000012862F2242000012962F2242000012A62F2242000012B62F2242000012C62F2242000012D62F2242000012E62F2242000012F62F2242000013062F2242000013162F2242000013262F2242000013362F2242000013462F2242000013562F2242000013662F2242000013762F2242000013862F2242000013962F2242000013A62F2242000013B62F2242000013C62F2242000013D62F2242000013E62F2242000013F62F2242000014062F2242000014162F2242000014262F2242000014362F2242000014462F2242000014562F2242000014662F2242000014762F2242000014862F2242000014962F2242000014A62F2242000014B62F2242000014C62F2242000014D62F2242000014E62F2242000014F62F2242000015062F2242000015162F2242000015262F2242000015362F2242000015462F2242000015562F2242000015662F2242000015762F2242000015862F2242000015962F2242000015A62F2242000015B62F2242000015C62F2242000015D62F2242000015E62F2242000015F62F2242000016062F2242000016162F2242000016262F2242000016362F2242000016462F2242000016562F2242000016662F2242000016762F2242000016862F2242000016962F2242000016A62F2242000016B62F2242000016C62F2242000016D62F2242000016E62F2242000016F62F2242000017062F2242000017162F2242000017262F2242000017362F2242000017462F2242000017562F2242000017662F2242000017762F2242000017862F2242000017962F2242000017A62F2242000017B62F2242000017C62F2242000017D62F2242000017E62F2242000017F62F2242000018062F2242000018162F2242000018262F2242000018362F2242000018462F2242000018562F2242000018662F2242000018762F2242000018862F2242000018962F2242000018A62F2242000018B62F2242000018C62F2242000018D62F2242000018E62F2242000018F62F2242000019062F2242000019162F2242000019262F2242000019362F2242000019462F2242000019562F2242000019662F2242000019762F2242000019862F2242000019962F2242000019A62F2242000019B62F2242000019C62F2242000019D62F2242000019E62F2242000019F62F224200001A062F224200001A162F224200001A262F224200001A362F224200001A462F224200001A562F224200001A662F224200001A762F224200001A862F224200001A962F224200001AA62F224200001AB62F224200001AC62F224200001AD62F224200001AE62F224200001AF62F224200001B062F224200001B162F224200001B262F224200001B362F224200001B462F224200001B562F224200001B662F224200001B762F224200001B862F224200001B962F224200001BA62F224200001BB62F224200001BC62F224200001BD62F224200001BE62F224200001BF62F224200001C062F224200001C162F224200001C262F224200001C362F224200001C462F224200001C562F224200001C662F224200001C762F224200001C862F224200001C962F224200001CA62F224200001CB62F224200001CC62F224200001CD62F224200001CE62F224200001CF62F224200001D062F224200001D162F224200001D262F224200001D362F224200001D462F224200001D562F224200001D662F224200001D762F224200001D862F224200001D962F224200001DA62F224200001DB62F224200001DC62F224200001DD62F224200001DE62F224200001DF62F224200001E062F224200001E162F224200001E262F224200001E362F224200001E462F224200001E562F224200001E662F224200001E762F224200001E862F224200001E962F224200001EA62F224200001EB62F224200001EC62F224200001ED62F224200001EE62F224200001EF62F224200001F062F224200001F162F224200001F262F224200001F362F224200001F462F224200001F562F224200001F662F224200001F762F224200001F862F224200001F962F224200001FA62F224200001FB62F224200001FC62F224200001FD62F224200001FE62F224200001FF62F2242000020062F2242000020162F2242000020262F2242000020362F2242000020462F2242000020562F2242000020662F2242000020762F2242000020862F2242000020962F2242000020A62F2242000020B62F2242000020C62F2242000020D62F2242000020E62F2242000020F62F2242000021062F2242000021162F2242000021262F2242000021362F2242000021462F2242000021562F2242000021662F2242000021762F2242000021862F2242000021962F2242000021A62F2242000021B62F2242000021C62F2242000021D62F2242000021E62F2242000021F62F2242000022062F2242000022162F2242000022262F2242000022362F2242000022462F2242000022562F2242000022662F2242000022762F2242000022862F2242000022962F2242000022A62F2242000022B62F2242000022C62F2242000022D62F2242000022E62F2242000022F62F2242000023062F2242000023162F2242000023262F2242000023362F2242000023462F2242000023562F2242000023662F2242000023762F2242000023862F2242000023962F2242000023A62F2242000023B62F2242000023C62F2242000023D62F2242000023E62F2242000023F62F2242000024062F2242000024162F2242000024262F2242000024362F2242000024462F2242000024562F2242000024662F2242000024762F2242000024862F2242000024962F2242000024A62F2242000024B62F2242000024C62F2242000024D62F2242000024E62F2242000024F62F2242000025062F2242000025162F2242000025262F2242000025362F2242000025462F2242000025562F2242000025662F2242000025762F2242000025862F2242000025962F2242000025A62F2242000025B62F2242000025C62F2242000025D62F2242000025E62F2242000025F62F2242000026062F2242000026162F2242000026262F2242000026362F2242000026462F2242000026562F2242000026662F2242000026762F2242000026862F2242000026962F2242000026A62F2242000026B62F2242000026C62F2242000026D62F2242000026E62F2242000026F62F2242000027062F2242000027162F2242000027262F2242000027362F2242000027462F2242000027562F2242000027662F2242000027762F2242000027862F2242000027962F2242000027A62F2242000027B62F2242000027C62F2242000027D62F2242000027E62F2242000027F62F2242000028062F2242000028162F2242000028262F2242000028362F2242000028462F2242000028562F2242000028662F2242000028762F2242000028862F2242000028962F2242000028A62F2242000028B62F2242000028C62F2242000028D62F2242000028E62F2242000028F62F2242000029062F2242000029162F2242000029262F2242000029362F2242000029462F2242000029562F2242000029662F2242000029762F2242000029862F2242000029962F2242000029A62F2242000029B62F2242000029C62F2242000029D62F2242000029E62F2242000029F62F224200002A062F224200002A162F224200002A262F224200002A362F224200002A462F224200002A562F224200002A662F224200002A762F224200002A862F224200002A962F224200002AA62F224200002AB62F224200002AC62F224200002AD62F224200002AE62F224200002AF62F224200002B062F224200002B162F224200002B262F224200002B362F224200002B462F224200002B562F224200002B662F224200002B762F224200002B862F224200002B962F224200002BA62F224200002BB62F224200002BC62F224200002BD62F224200002BE62F224200002BF62F224200002C062F224200002C162F224200002C262F224200002C362F224200002C462F224200002C562F224200002C662F224200002C762F224200002C862F224200002C962F224200002CA62F224200002CB62F224200002CC62F224200002CD62F224200002CE62F224200002CF62F224200002D062F224200002D162F224200002D262F224200002D362F224200002D462F224200002D562F224200002D662F224200002D762F224200002D862F224200002D962F224200002DA62F224200002DB62F224200002DC62F224200002DD62F224200002DE62F224200002DF62F224200002E062F224200002E162F224200002E262F224200002E362F224200002E462F224200002E562F224200002E662F224200002E762F224200002E862F224200002E962F224200002EA62F224200002EB62F224200002EC62F224200002ED62F224200002EE62F224200002EF62F224200002F062F224200002F162F224200002F262F224200002F362F224200002F462F224200002F562F224200002F662F224200002F762F224200002F862F224200002F962F224200002FA62F224200002FB62F224200002FC62F224200002FD62F224200002FE62F224200002FF62F2242000030062F2242000030162F2242000030262F2242000030362F2242000030462F2242000030562F2242000030662F2242000030762F2242000030862F2242000030962F2242000030A62F2242000030B62F2242000030C62F2242000030D62F2242000030E62F2242000030F62F2242000031062F2242000031162F2242000031262F2242000031362F2242000031462F2242000031562F2242000031662F2242000031762F2242000031862F2242000031962F2242000031A62F2242000031B62F2242000031C62F2242000031D62F2242000031E62F2242000031F62F2242000032062F2242000032162F2242000032262F2242000032362F2242000032462F2242000032562F2242000032662F2242000032762F2242000032862F2242000032962F2242000032A62F2242000032B62F2242000032C62F2242000032D62F2242000032E62F2242000032F62F2242000033062F2242000033162F2242000033262F2242000033362F2242000033462F2242000033562F2242000033662F2242000033762F2242000033862F2242000033962F2242000033A62F2242000033B62F2242000033C62F2242000033D62F2242000033E62F2242000033F62F2242000034062F2242000034162F2242000034262F2242000034362F2242000034462F2242000034562F2242000034662F2242000034762F2242000034862F2242000034962F2242000034A62F2242000034B62F2242000034C62F2242000034D62F2242000034E62F2242000034F62F2242000035062F2242000035162F2242000035262F2242000035362F2242000035462F2242000035562F2242000035662F2242000035762F2242000035862F2242000035962F2242000035A62F2242000035B62F2242000035C62F2242000035D62F2242000035E62F2242000035F62F2242000036062F2242000036162F2242000036262F2242000036362F2242000036462F2242000036562F2242000036662F2242000036762F2242000036862F2242000036962F2242000036A62F2242000036B62F2242000036C62F2242000036D62F2242000036E62F2242000036F62F2242000037062F2242000037162F2242000037262F2242000037362F2242000037462F2242000037562F2242000037662F2242000037762F2242000037862F2242000037962F2242000037A62F2242000037B62F2242000037C62F2242000037D62F2242000037E62F2242000037F62F2242000038062F2242000038162F2242000038262F2242000038362F2242000038462F2242000038562F2242000038662F2242000038762F2242000038862F2242000038962F2242000038A62F2242000038B62F2242000038C62F2242000038D62F2242000038E62F2242000038F62F2242000039062F2242000039162F2242000039262F2242000039362F2242000039462F2242000039562F2242000039662F2242000039762F2242000039862F2242000039962F2242000039A62F2242000039B62F2242000039C62F2242000039D62F2242000039E62F2242000039F62F224200003A062F224200003A162F224200003A262F224200003A362F224200003A462F224200003A562F224200003A662F224200003A762F224200003A862F224200003A962F224200003AA62F224200003AB62F224200003AC62F224200003AD62F224200003AE62F224200003AF62F224200003B062F224200003B162F224200003B262F224200003B362F224200003B462F224200003B562F224200003B662F224200003B762F224200003B862F224200003B962F224200003BA62F224200003BB62F224200003BC62F224200003BD62F224200003BE62F224200003BF62F224200003C062F224200003C162F224200003C262F224200003C362F224200003C462F224200003C562F224200003C662F224200003C762F224200003C862F224200003C962F224200003CA62F224200003CB62F224200003CC62F224200003CD62F224200003CE62F224200003CF62F224200003D062F224200003D162F224200003D262F224200003D362F224200003D462F224200003D562F224200003D662F224200003D762F224200003D862F224200003D962F224200003DA62F224200003DB62F224200003DC62F224200003DD62F224200003DE62F224200003DF62F224200003E062F224200003E162F224200003E262F224200003E362F224200003E462F224200003E562F224200003E662F224200003E762F224200003E862F224200003E962F224200003EA62F224200003EB62F224200003EC62F224200003ED62F224200003EE62F224200003EF62F224200003F062F224200003F162F224200003F262F224200003F362F224200003F462F224200003F562F224200003F662F224200003F762F224200003F862F224200003F962F224200003FA62F224200003FB62F224200003FC62F224200003FD62F224200003FE62F224200003FF62F2242000040062F2242000040162F2242000040262F2242000040362F2242000040462F2242000040562F2242000040662F2242000040762F2242000040862F2242000040962F2242000040A62F2242000040B62F2242000040C62F2242000040D62F2242000040E62F2242000040F62F2242000041062F2242000041162F2242000041262F2242000041362F2242000041462F2242000041562F2242000041662F2242000041762F2242000041862F2242000041962F2242000041A62F2242000041B62F2242000041C62F2242000041D62F2242000041E62F2242000041F62F2242000042062F2242000042162F2242000042262F2242000042362F2242000042462F2242000042562F2242000042662F2242000042762F2242000042862F2242000042962F2242000042A62F2242000042B62F2242000042C62F2242000042D62F2242000042E62F2242000042F62F2242000043062F2242000043162F2242000043262F2242000043362F2242000043462F2242000043562F2242000043662F2242000043762F2242000043862F2242000043962F2242000043A62F2242000043B62F2242000043C62F2242000043D62F2242000043E62F2242000043F62F2242000044062F2242000044162F2242000044262F2242000044362F2242000044462F2242000044562F2242000044662F2242000044762F2242000044862F2242000044962F2242000044A62F2242000044B62F2242000044C62F2242000044D62F2242000044E62F2242000044F62F2242000045062F2242000045162F2242000045262F2242000045362F2242000045462F2242000045562F2242000045662F2242000045762F2242000045862F2242000045962F2242000045A62F2242000045B62F2242000045C62F2242000045D62F2242000045E62F2242000045F62F2242000046062F2242000046162F2242000046262F2242000046362F2242000046462F2242000046562F2242000046662F2242000046762F2242000046862F2242000046962F2242000046A62F2242000046B62F2242000046C62F2242000046D62F2242000046E62F2242000046F62F2242000047062F2242000047162F2242000047262F2242000047362F2242000047462F2242000047562F2242000047662F2242000047762F2242000047862F2242000047962F2242000047A62F2242000047B62F2242000047C62F2242000047D62F2242000047E62F2242000047F62F2242000048062F2242000048162F2242000048262F2242000048362F2242000048462F2242000048562F2242000048662F2242000048762F2242000048862F2242000048962F2242000048A62F2242000048B62F2242000048C62F2242000048D62F2242000048E62F2242000048F62F2242000049062F2242000049162F2242000049262F2242000049362F2242000049462F2242000049562F2242000049662F2242000049762F2242000049862F2242000049962F2242000049A62F2242000049B62F2242000049C62F2242000049D62F2242000049E62F2242000049F62F224200004A062F224200004A162F224200004A262F224200004A362F224200004A462F224200004A562F224200004A662F224200004A762F224200004A862F224200004A962F224200004AA62F224200004AB62F224200004AC62F224200004AD62F224200004AE62F224200004AF62F224200004B062F224200004B162F224200004B262F224200004B362F224200004B462F224200004B562F224200004B662F224200004B762F224200004B862F224200004B962F224200004BA62F224200004BB62F224200004BC62F224200004BD62F224200004BE62F224200004BF62F224200004C062F224200004C162F224200004C262F224200004C362F224200004C462F224200004C562F224200004C662F224200004C762F224200004C862F224200004C962F224200004CA62F224200004CB62F224200004CC62F224200004CD62F224200004CE62F224200004CF62F224200004D062F224200004D162F224200004D262F224200004D362F224200004D462F224200004D562F224200004D662F224200004D762F224200004D862F224200004D962F224200004DA62F224200004DB62F224200004DC62F224200004DD62F224200004DE62F224200004DF62F224200004E062F224200004E162F224200004E262F224200004E362F224200004E462F224200004E562F224200004E662F224200004E762F224200004E862F224200004E962F224200004EA62F224200004EB62F224200004EC62F224200004ED62F224200004EE62F224200004EF62F224200004F062F224200004F162F224200004F262F224200004F362F224200004F462F224200004F562F224200004F662F224200004F762F224200004F862F224200004F962F224200004FA62F224200004FB62F224200004FC62F224200004FD62F224200004FE62F224200004FF62F2242000050062F2242000050162F2242000050262F2242000050362F2242000050462F2242000050562F2242000050662F2242000050762F2242000050862F2242000050962F2242000050A62F2242000050B62F2242000050C62F2242000050D62F2242000050E62F2242000050F62F2242000051062F2242000051162F2242000051262F2242000051362F2242000051462F2242000051562F2242000051662F2242000051762F2242000051862F2242000051962F2242000051A62F2242000051B62F2242000051C62F2242000051D62F2242000051E62F2242000051F62F2242000052062F2242000052162F2242000052262F2242000052362F2242000052462F2242000052562F2242000052662F2242000052762F2242000052862F2242000052962F2242000052A62F2242000052B62F2242000052C62F2242000052D62F2242000052E62F2242000052F62F2242000053062F2242000053162F2242000053262F2242000053362F2242000053462F2242000053562F2242000053662F2242000053762F2242000053862F2242000053962F2242000053A62F2242000053B62F2242000053C62F2242000053D62F2242000053E62F2242000053F62F2242000054062F2242000054162F2242000054262F2242000054362F2242000054462F2242000054562F2242000054662F2242000054762F2242000054862F2242000054962F2242000054A62F2242000054B62F2242000054C62F2242000054D62F2242000054E62F2242000054F62F2242000055062F2242000055162F2242000055262F2242000055362F2242000055462F2242000055562F2242000055662F2242000055762F2242000055862F2242000055962F2242000055A62F2242000055B62F2242000055C62F2242000055D62F2242000055E62F2242000055F62F2242000056062F2242000056162F2242000056262F2242000056362F2242000056462F2242000056562F2242000056662F2242000056762F2242000056862F2242000056962F2242000056A62F2242000056B62F2242000056C62F2242000056D62F2242000056E62F2242000056F62F2242000057062F2242000057162F2242000057262F2242000057362F2242000057462F2242000057562F2242000057662F2242000057762F2242000057862F2242000057962F2242000057A62F2242000057B62F2242000057C62F2242000057D62F2242000057E62F2242000057F62F2242000058062F2242000058162F2242000058262F2242000058362F2242000058462F2242000058562F2242000058662F2242000058762F2242000058862F2242000058962F2242000058A62F2242000058B62F2242000058C62F2242000058D62F2242000058E62F2242000058F62F2242000059062F2242000059162F2242000059262F2242000059362F2242000059462F2242000059562F2242000059662F2242000059762F2242000059862F2242000059962F2242000059A62F2242000059B62F2242000059C62F2242000059D62F2242000059E62F2242000059F62F224200005A062F224200005A162F224200005A262F224200005A362F224200005A462F224200005A562F224200005A662F224200005A762F224200005A862F224200005A962F224200005AA62F224200005AB62F224200005AC62F224200005AD62F224200005AE62F224200005AF62F224200005B062F224200005B162F224200005B262F224200005B362F224200005B462F224200005B562F224200005B662F224200005B762F224200005B862F224200005B962F224200005BA62F224200005BB62F224200005BC62F224200005BD62F224200005BE62F224200005BF62F224200005C062F224200005C162F224200005C262F224200005C362F224200005C462F224200005C562F224200005C662F224200005C762F224200005C862F224200005C962F224200005CA62F224200005CB62F224200005CC62F224200005CD62F224200005CE62F224200005CF62F224200005D062F224200005D162F224200005D262F224200005D362F224200005D462F224200005D562F224200005D662F224200005D762F224200005D862F224200005D962F224200005DA62F224200005DB62F224200005DC62F224200005DD62F224200005DE62F224200005DF62F224200005E062F224200005E162F224200005E262F224200005E362F224200005E462F224200005E562F224200005E662F224200005E762F224200005E862F224200005E962F224200005EA62F224200005EB62F224200005EC62F224200005ED62F224200005EE62F224200005EF62F224200005F062F224200005F162F224200005F262F224200005F362F224200005F462F224200005F562F224200005F662F224200005F762F224200005F862F224200005F962F224200005FA62F224200005FB62F224200005FC62F224200005FD62F224200005FE62F224200005FF62F2242000060062F2242000060162F2242000060262F2242000060362F2242000060462F2242000060562F2242000060662F2242000060762F2242000060862F2242000060962F2242000060A62F2242000060B62F2242000060C62F2242000060D62F2242000060E62F2242000060F62F2242000061062F2242000061162F2242000061262F2242000061362F2242000061462F2242000061562F2242000061662F2242000061762F2242000061862F2242000061962F2242000061A62F2242000061B62F2242000061C62F2242000061D62F2242000061E62F2242000061F62F2242000062062F2242000062162F2242000062262F2242000062362F2242000062462F2242000062562F2242000062662F2242000062762F2242000062862F2242000062962F2242000062A62F2242000062B62F2242000062C62F2242000062D62F2242000062E62F2242000062F62F2242000063062F2242000063162F2242000063262F2242000063362F2242000063462F2242000063562F2242000063662F2242000063762F2242000063862F2242000063962F2242000063A62F2242000063B62F2242000063C62F2242000063D62F2242000063E62F2242000063F62F2242000064062F2242000064162F2242000064262F2242000064362F2242000064462F2242000064562F2242000064662F2242000064762F2242000064862F2242000064962F2242000064A62F2242000064B62F2242000064C62F2242000064D62F2242000064E62F2242000064F62F2242000065062F2242000065162F2242000065262F2242000065362F2242000065462F2242000065562F2242000065662F2242000065762F2242000065862F2242000065962F2242000065A62F2242000065B62F2242000065C62F2242000065D62F2242000065E62F2242000065F62F2242000066062F2242000066162F2242000066262F2242000066362F2242000066462F2242000066562F2242000066662F2242000066762F2242000066862F2242000066962F2242000066A62F2242000066B62F2242000066C62F2242000066D62F2242000066E62F2242000066F62F2242000067062F2242000067162F2242000067262F2242000067362F2242000067462F2242000067562F2242000067662F2242000067762F2242000067862F2242000067962F2242000067A62F2242000067B62F2242000067C62F2242000067D62F2242000067E62F2242000067F62F2242000068062F2242000068162F2242000068262F2242000068362F2242000068462F2242000068562F2242000068662F2242000068762F2242000068862F2242000068962F2242000068A62F2242000068B62F2242000068C62F2242000068D62F2242000068E62F2242000068F62F2242000069062F2242000069162F2242000069262F2242000069362F2242000069462F2242000069562F2242000069662F2242000069762F2242000069862F2242000069962F2242000069A62F2242000069B62F2242000069C62F2242000069D62F2242000069E62F2242000069F62F224200006A062F224200006A162F224200006A262F224200006A362F224200006A462F224200006A562F224200006A662F224200006A762F224200006A862F224200006A962F224200006AA62F224200006AB62F224200006AC62F224200006AD62F224200006AE62F224200006AF62F224200006B062F224200006B162F224200006B262F224200006B362F224200006B462F224200006B562F224200006B662F224200006B762F224200006B862F224200006B962F224200006BA62F224200006BB62F224200006BC62F224200006BD62F224200006BE62F224200006BF62F224200006C062F224200006C162F224200006C262F224200006C362F224200006C462F224200006C562F224200006C662F224200006C762F224200006C862F224200006C962F224200006CA62F224200006CB62F224200006CC62F224200006CD62F224200006CE62F224200006CF62F224200006D062F224200006D162F224200006D262F224200006D362F224200006D462F224200006D562F224200006D662F224200006D762F224200006D862F224200006D962F224200006DA62F224200006DB62F224200006DC62F224200006DD62F224200006DE62F224200006DF62F224200006E062F224200006E162F224200006E262F224200006E362F224200006E462F224200006E562F224200006E662F224200006E762F224200006E862F224200006E962F224200006EA62F224200006EB62F224200006EC62F224200006ED62F224200006EE62F224200006EF62F224200006F062F224200006F162F224200006F262F224200006F362F224200006F462F224200006F562F224200006F662F224200006F762F224200006F862F224200006F962F224200006FA62F224200006FB62F224200006FC62F224200006FD62F224200006FE62F224200006FF62F2242000070062F2242000070162F2242000070262F2242000070362F2242000070462F2242000070562F2242000070662F2242000070762F2242000070862F2242000070962F2242000070A62F2242000070B62F2242000070C62F2242000070D62F2242000070E62F2242000070F62F2242000071062F2242000071162F2242000071262F2242000071362F2242000071462F2242000071562F2242000071662F2242000071762F2242000071862F2242000071962F2242000071A62F2242000071B62F2242000071C62F2242000071D62F2242000071E62F2242000071F62F2242000072062F2242000072162F2242000072262F2242000072362F2242000072462F2242000072562F2242000072662F2242000072762F2242000072862F2242000072962F2242000072A62F2242000072B62F2242000072C62F2242000072D62F2242000072E62F2242000072F62F2242000073062F2242000073162F2242000073262F2242000073362F2242000073462F2242000073562F2242000073662F2242000073762F2242000073862F2242000073962F2242000073A62F2242000073B62F2242000073C62F2242000073D62F2242000073E62F2242000073F62F2242000074062F2242000074162F2242000074262F2242000074362F2242000074462F2242000074562F2242000074662F2242000074762F2242000074862F2242000074962F2242000074A62F2242000074B62F2242000074C62F2242000074D62F2242000074E62F2242000074F62F2242000075062F2242000075162F2242000075262F2242000075362F2242000075462F2242000075562F2242000075662F2242000075762F2242000075862F2242000075962F2242000075A62F2242000075B62F2242000075C62F2242000075D62F2242000075E62F2242000075F62F2242000076062F2242000076162F2242000076262F2242000076362F2242000076462F2242000076562F2242000076662F2242000076762F2242000076862F2242000076962F2242000076A62F2242000076B62F2242000076C62F2242000076D62F2242000076E62F2242000076F62F2242000077062F2242000077162F2242000077262F2242000077362F2242000077462F2242000077562F2242000077662F2242000077762F2242000077862F2242000077962F2242000077A62F2242000077B62F2242000077C62F2242000077D62F2242000077E62F2242000077F62F2242000078062F2242000078162F2242000078262F2242000078362F2242000078462F2242000078562F2242000078662F2242000078762F2242000078862F2242000078962F2242000078A62F2242000078B62F2242000078C62F2242000078D62F2242000078E62F2242000078F62F2242000079062F2242000079162F2242000079262F2242000079362F2242000079462F2242000079562F2242000079662F2242000079762F2242000079862F2242000079962F2242000079A62F2242000079B62F2242000079C62F2242000079D62F2242000079E62F2242000079F62F224200007A062F224200007A162F224200007A262F224200007A362F224200007A462F224200007A562F224200007A662F224200007A762F224200007A862F224200007A962F224200007AA62F224200007AB62F224200007AC62F224200007AD62F224200007AE62F224200007AF62F224200007B062F224200007B162F224200007B262F224200007B362F224200007B462F224200007B562F224200007B662F224200007B762F224200007B862F224200007B962F224200007BA62F224200007BB62F224200007BC62F224200007BD62F224200007BE62F224200007BF62F224200007C062F224200007C162F224200007C262F224200007C362F224200007C462F224200007C562F224200007C662F224200007C762F224200007C862F224200007C962F224200007CA62F224200007CB62F224200007CC62F224200007CD62F224200007CE62F224200007CF62F224200007D062F224200007D162F224200007D262F224200007D362F224200007D462F224200007D562F224200007D662F224200007D762F224200007D862F224200007D962F224200007DA62F224200007DB62F224200007DC62F224200007DD62F224200007DE62F224200007DF62F224200007E062F224200007E162F224200007E262F224200007E362F224200007E462F224200007E562F224200007E662F224200007E762F224200007E862F224200007E962F224200007EA62F224200007EB62F224200007EC62F224200007ED62F224200007EE62F224200007EF62F224200007F062F224200007F162F224200007F262F224200007F362F224200007F462F224200007F562F224200007F662F224200007F762F224200007F862F224200007F962F224200007FA62F224200007FB62F224200007FC62F224200007FD62F224200007FE62F224200007FF62F2242000080062F2242000080162F2242000080262F2242000080362F2242000080462F2242000080562F2242000080662F2242000080762F2242000080862F2242000080962F2242000080A62F2242000080B62F2242000080C62F2242000080D62F2242000080E62F2242000080F62F2242000081062F2242000081162F2242000081262F2242000081362F2242000081462F2242000081562F2242000081662F2242000081762F2242000081862F2242000081962F2242000081A62F2242000081B62F2242000081C62F2242000081D62F2242000081E62F2242000081F62F2242000082062F2242000082162F2242000082262F2242000082362F2242000082462F2242000082562F2242000082662F2242000082762F2242000082862F2242000082962F2242000082A62F2242000082B62F2242000082C62F2242000082D62F2242000082E62F2242000082F62F2242000083062F2242000083162F2242000083262F2242000083362F2242000083462F2242000083562F2242000083662F2242000083762F2242000083862F2242000083962F2242000083A62F2242000083B62F2242000083C62F2242000083D62F2242000083E62F2242000083F62F2242000084062F2242000084162F2242000084262F2242000084362F2242000084462F2242000084562F2242000084662F2242000084762F2242000084862F2242000084962F2242000084A62F2242000084B62F2242000084C62F2242000084D62F2242000084E62F2242000084F62F2242000085062F2242000085162F2242000085262F2242000085362F2242000085462F2242000085562F2242000085662F2242000085762F2242000085862F2242000085962F2242000085A62F2242000085B62F2242000085C62F2242000085D62F2242000085E62F2242000085F62F2242000086062F2242000086162F2242000086262F2242000086362F2242000086462F2242000086562F2242000086662F2242000086762F2242000086862F2242000086962F2242000086A62F2242000086B62F2242000086C62F2242000086D62F2242000086E62F2242000086F62F2242000087062F2242000087162F2242000087262F2242000087362F2242000087462F2242000087562F2242000087662F2242000087762F2242000087862F2242000087962F2242000087A62F2242000087B62F2242000087C62F2242000087D62F2242000087E62F2242000087F62F2242000088062F2242000088162F2242000088262F2242000088362F2242000088462F2242000088562F2242000088662F2242000088762F2242000088862F2242000088962F2242000088A62F2242000088B62F2242000088C62F2242000088D62F2242000088E62F2242000088F62F2242000089062F2242000089162F2242000089262F2242000089362F2242000089462F2242000089562F2242000089662F2242000089762F2242000089862F2242000089962F2242000089A62F2242000089B62F2242000089C62F2242000089D62F2242000089E62F2242000089F62F224200008A062F224200008A162F224200008A262F224200008A362F224200008A462F224200008A562F224200008A662F224200008A762F224200008A862F224200008A962F224200008AA62F224200008AB62F224200008AC62F224200008AD62F224200008AE62F224200008AF62F224200008B062F224200008B162F224200008B262F224200008B362F224200008B462F224200008B562F224200008B662F224200008B762F224200008B862F224200008B962F224200008BA62F224200008BB62F224200008BC62F224200008BD62F224200008BE62F224200008BF62F224200008C062F224200008C162F224200008C262F224200008C362F224200008C462F224200008C562F224200008C662F224200008C762F224200008C862F224200008C962F224200008CA62F224200008CB62F224200008CC62F224200008CD62F224200008CE62F224200008CF62F224200008D062F224200008D162F224200008D262F224200008D362F224200008D462F224200008D562F224200008D662F224200008D762F224200008D862F224200008D962F224200008DA62F224200008DB62F224200008DC62F224200008DD62F224200008DE62F224200008DF62F224200008E062F224200008E162F224200008E262F224200008E362F224200008E462F224200008E562F224200008E662F224200008E762F224200008E862F224200008E962F224200008EA62F224200008EB62F224200008EC62F224200008ED62F224200008EE62F224200008EF62F224200008F062F224200008F162F224200008F262F224200008F362F224200008F462F224200008F562F224200008F662F224200008F762F224200008F862F224200008F962F224200008FA62F224200008FB62F224200008FC62F224200008FD62F224200008FE62F224200008FF62F2242000090062F2242000090162F2242000090262F2242000090362F2242000090462F2242000090562F2242000090662F2242000090762F2242000090862F2242000090962F2242000090A62F2242000090B62F2242000090C62F2242000090D62F2242000090E62F2242000090F62F2242000091062F2242000091162F2242000091262F2242000091362F2242000091462F2242000091562F2242000091662F2242000091762F2242000091862F2242000091962F2242000091A62F2242000091B62F2242000091C62F2242000091D62F2242000091E62F2242000091F62F22420849200092062F2242000092162F2242000092262F28465242000092362F2242000092462F2242000092562F2242000092662F2242000092762F2242000092862F2242000092962F2242000092A62F2242000092B62F2242000092C62F2242000092D62F2242000092E62F2242000092F62F2242000093062F2242000093162F2242000093262F2242000093362F2242000093462F2242000093562F2242000093662F2242000093762F2242000093862F2242000093962F2242000093A62F2242000093B62F2242000093C62F2242000093D62F2242000093E62F2242000093F62F2242000094062F2242000094162F2242000094262F2242000094362F2242000094462F2242000094562F2242000094662F2242000094762F2242000094862F2242000094962F2242000094A62F2242000094B62F2242000094C62F2242000094D62F2242000094E62F2242000094F62F2242000095062F2242000095162F2242000095262F2242000095362F2242000095462F2242000095562F2242000095662F2242000095762F2242000095862F2242000095962F2242000095A62F2242000095B62F2242000095C62F2242000095D62F2242000095E62F2242000095F62F2242000096062F2242000096162F2242000096262F2242000096362F2242000096462F2242000096562F2242000096662F2242000096762F2242000096862F2242000096962F2242000096A62F2242000096B62F2242000096C62F2242000096D62F2242000096E62F2242000096F62F2242000097062F2242000097162F2242000097262F2242000097362F2242000097462F2242000097562F2242000097662F2242000097762F2242000097862F2242000097962F2242000097A62F2242000097B62F2242000097C62F2242000097D62F2242000097E62F2242000097F62F2242000098062F2242000098162F2242000098262F2242000098362F2242000098462F2242000098562F2242000098662F2242000098762F2242000098862F2242000098962F2242000098A62F2242000098B62F2242000098C62F2242000098D62F2242000098E62F2242000098F62F2242000099062F2242000099162F2242000099262F2242000099362F2242000099462F2242000099562F2242000099662F2242000099762F2242000099862F2242000099962F2242000099A62F2242000099B62F2242000099C62F2242000099D62F2242000099E62F2242000099F62F224200009A062F224200009A162F224200009A262F224200009A362F224200009A462F224200009A562F224200009A662F224200009A762F224200009A862F224200009A962F224200009AA62F224200009AB62F224200009AC62F224200009AD62F224200009AE62F224200009AF62F224200009B062F224200009B162F224200009B262F224200009B362F224200009B462F224200009B562F224200009B662F224200009B762F224200009B862F224200009B962F224200009BA62F224200009BB62F224200009BC62F224200009BD62F224200009BE62F224200009BF62F224200009C062F224200009C162F224200009C262F224200009C3000D0002001600090002002A00040001000000000300075A'O;
+
+/* test whether a message with chnked length determinant is parsed */
+testcase TC_chunked_len() runs on test_CT {
+ f_init();
+ TCP.send(ts_AS(g_tcp_conn_id, c_chunked));
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ setverdict(pass);
+}
+
+/* test whether a message with chunked length determinant is parsed if each byte is received separately */
+testcase TC_chunked_len_bytewise() runs on test_CT {
+ f_init();
+ tcp_send_segmented(c_chunked, 100, 0.05);
+ f_sabp_exp(tr_SABP_Write(?, ?));
+ setverdict(pass);
+}
+
+control {
+ execute( TC_1byte_len() );
+ execute( TC_1byte_len_bytewise() );
+ execute( TC_1byte_len_chained() );
+ execute( TC_2byte_len() );
+ execute( TC_2byte_len_bytewise() );
+ execute( TC_2byte_len_chained() );
+ execute( TC_2byte_len_chained_bytewise() );
+ execute( TC_chunked_len() );
+ execute( TC_chunked_len_bytewise() );
+}
+
+
+}