summaryrefslogtreecommitdiffstats
path: root/tinySIGCOMP/test
diff options
context:
space:
mode:
authorMamadou DIOP <bossiel@yahoo.fr>2015-08-17 01:56:35 +0200
committerMamadou DIOP <bossiel@yahoo.fr>2015-08-17 01:56:35 +0200
commit631fffee8a28b1bec5ed1f1d26a20e0135967f99 (patch)
tree74afe3bf3efe15aa82bcd0272b2b0f4d48c2d837 /tinySIGCOMP/test
parent7908865936604036e6f200f1b5e069f8752f3a3a (diff)
downloaddoubango-631fffee8a28b1bec5ed1f1d26a20e0135967f99.zip
doubango-631fffee8a28b1bec5ed1f1d26a20e0135967f99.tar.gz
-
Diffstat (limited to 'tinySIGCOMP/test')
-rw-r--r--tinySIGCOMP/test/rfc4465_torture_tests.h621
-rw-r--r--tinySIGCOMP/test/stdafx.c25
-rw-r--r--tinySIGCOMP/test/stdafx.h34
-rw-r--r--tinySIGCOMP/test/targetver.h38
-rw-r--r--tinySIGCOMP/test/test.c61
-rw-r--r--tinySIGCOMP/test/test.vcproj389
-rw-r--r--tinySIGCOMP/test/test_manager.h402
-rw-r--r--tinySIGCOMP/test/test_osc.h27
-rw-r--r--tinySIGCOMP/test/test_tortures.h1146
9 files changed, 2743 insertions, 0 deletions
diff --git a/tinySIGCOMP/test/rfc4465_torture_tests.h b/tinySIGCOMP/test/rfc4465_torture_tests.h
new file mode 100644
index 0000000..11d9437
--- /dev/null
+++ b/tinySIGCOMP/test/rfc4465_torture_tests.h
@@ -0,0 +1,621 @@
+/*
+* Copyright (C) 2009 Mamadou Diop.
+* Copyright (C) 2012 Doubango Telecom <http://doubango.org>.
+*
+* This file is part of Open Source Doubango Framework.
+*
+* DOUBANGO is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* DOUBANGO is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with DOUBANGO.
+*
+*/
+#ifndef _RFC4465_TORTURE_TESTS_H_
+#define _RFC4465_TORTURE_TESTS_H_
+
+typedef struct rfc4465_struct_torture_test
+{
+ const char* section_name;
+ const char* bytecode;
+ size_t bytecode_size;
+ struct{ tsk_size_t size; const char* ptr; } xoutput; // Excepted output
+ signed xcycles; // Excepted cycles
+ int stream;
+ int xfail;
+ const char* comp_id;
+}
+struct_torture_test, *lpstruct_torture_test;
+
+/*************************************************************
+*** A.1.1. Bit Manipulation
+*/
+#define RFC4465_A_1_1__Bit_Manipulation \
+ "\xf8\x0a\x71\x16\xa0\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xc0\x00\xff\x80\x55\x55\x02\x20\x2a\x03\x21\x04\x20\x03\x05\x21\xff\x22\x86\x04\x01\x20\xc0\xff\x02\x20\x60\x03\x20\x04\x21\x60\x05\x20\x61\x22\x86\x04\x23"
+
+
+/*************************************************************
+*** A.1.2. Arithmetic
+*/
+#define RFC4465_A_1_2__Arithmetic_1 \
+ "\xf8\x0a\xa1\x1c\x01\xa0\x45\x0b\x07\x22\x01\x16\xa0\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xc0\x00\xff\x99\x41\x07\x20\x01\x08\x20\xa3\xe9\x09\x20\xa0\x65\x0a\x20\x0b\x22\x86\x04\x06\x21\xc0\xff\x07\x21\x62\x08\x21\x61\x09\x20\x61\x0a\x21\x62\x22\x86\x04\x23" \
+ "\x00"
+#define RFC4465_A_1_2__Arithmetic_2 \
+ "\xf8\x0a\xa1\x1c\x01\xa0\x45\x0b\x07\x22\x01\x16\xa0\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xc0\x00\xff\x99\x41\x07\x20\x01\x08\x20\xa3\xe9\x09\x20\xa0\x65\x0a\x20\x0b\x22\x86\x04\x06\x21\xc0\xff\x07\x21\x62\x08\x21\x61\x09\x20\x61\x0a\x21\x62\x22\x86\x04\x23" \
+ "\x01"
+#define RFC4465_A_1_2__Arithmetic_3 \
+ "\xf8\x0a\xa1\x1c\x01\xa0\x45\x0b\x07\x22\x01\x16\xa0\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xc0\x00\xff\x99\x41\x07\x20\x01\x08\x20\xa3\xe9\x09\x20\xa0\x65\x0a\x20\x0b\x22\x86\x04\x06\x21\xc0\xff\x07\x21\x62\x08\x21\x61\x09\x20\x61\x0a\x21\x62\x22\x86\x04\x23" \
+ "\x02"
+
+/*************************************************************
+*** A.1.3. Sorting
+*/
+#define RFC4465_A_1_3__Sorting \
+ "\xf8\x0d\xc1\x0c\x88\x02\x17\x0b\x88\x02\x17\x22\xa1\x2e\x2d\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0a\x00\x11\x00\x07\x00\x16\x00\x03\x00\x03\x00\x03\x00\x13\x00\x01\x00\x10\x00\x0e\x00\x08\x00\x02\x00\x0d\x00\x14\x00\x12\x00\x17\x00\x0f\x00\x15\x00\x0c\x00\x06\x00\x09\x6e\x67\x20\x69\x75\x69\x20\x74\x69\x74\x2c\x20\x79\x6f\x75\x27\x20\x53\x46\x6f\x6e\x67\x61\x20\x75\x72\x72\x64\x6f\x20\x74\x6f\x6e\x2e\x2e\x00\x70\x65\x70\x20\x6e\x74\x72\x65\x6e\x69"
+
+
+/*************************************************************
+*** A.1.4. SHA-1
+*/
+#define RFC4465_A_1_4__SHA1 \
+ "\xf8\x08\x71\x0d\xa0\xc3\x03\xa0\x44\x22\xa0\x44\x14\x0d\xa0\xc6\x38\xa0\x44\x22\xa0\x44\x14\x0e\x86\xa0\xfe\x0e\xa0\x42\xa0\xff\x0d\xa0\xfe\x8e\xa0\x44\x22\xa0\x44\x14\x0e\x86\xa0\xff\x0e\xa0\x42\xa1\x07\x0d\xa0\xff\xa2\x80\xa0\xff\x22\xa0\xff\x14\x23\x00\x00\x00\x00\x00\x00\x00\x61\x62\x63\x61\x62\x63\x64\x62\x63\x64\x65\x63\x64\x65\x66\x64\x65\x66\x67\x65\x66\x67\x68\x66\x67\x68\x69\x67\x68\x69\x6a\x68\x69\x6a\x6b\x69\x6a\x6b\x6c\x6a\x6b\x6c\x6d\x6b\x6c\x6d\x6e\x6c\x6d\x6e\x6f\x6d\x6e\x6f\x70\x6e\x6f\x70\x71\x61\x30\x31\x32\x33\x34\x35\x36\x37"
+
+
+/*************************************************************
+*** A.1.5. LOAD and MULTILOAD
+*/
+#define RFC4465_A_1_5__LOAD_and_MULTILOAD_1 \
+ "\xf8\x03\x61\x0e\x87\xa0\x84\x0e\xa0\x82\xc0\x80\x0e\xc0\x80\xa0\x86\x0e\xc0\x84\xc0\x84\x22\x87\x08\x1c\x01\xa0\x41\x27\x08\x20\x02\x06\x20\x3c\x0f\x60\x03\xa0\xa2\xa0\xb1\x87\x0f\x60\x04\x2a\x87\xc0\x80\xc0\x84\x22\x87\x08\x23" \
+ "\x00"
+#define RFC4465_A_1_5__LOAD_and_MULTILOAD_2 \
+ "\xf8\x03\x61\x0e\x87\xa0\x84\x0e\xa0\x82\xc0\x80\x0e\xc0\x80\xa0\x86\x0e\xc0\x84\xc0\x84\x22\x87\x08\x1c\x01\xa0\x41\x27\x08\x20\x02\x06\x20\x3c\x0f\x60\x03\xa0\xa2\xa0\xb1\x87\x0f\x60\x04\x2a\x87\xc0\x80\xc0\x84\x22\x87\x08\x23" \
+ "\x01"
+#define RFC4465_A_1_5__LOAD_and_MULTILOAD_3 \
+ "\xf8\x03\x61\x0e\x87\xa0\x84\x0e\xa0\x82\xc0\x80\x0e\xc0\x80\xa0\x86\x0e\xc0\x84\xc0\x84\x22\x87\x08\x1c\x01\xa0\x41\x27\x08\x20\x02\x06\x20\x3c\x0f\x60\x03\xa0\xa2\xa0\xb1\x87\x0f\x60\x04\x2a\x87\xc0\x80\xc0\x84\x22\x87\x08\x23" \
+ "\x02"
+
+/*************************************************************
+*** A.1.6. COPY
+*/
+#define RFC4465_A_1_6__COPY \
+ "\xf8\x03\x91\x0e\x20\x8e\x0e\x86\x86\x0e\xa0\x42\x87\x12\x20\x87\x21\x0e\x86\x80\x41\x00\x12\x86\xa0\x55\xa0\x41\x22\x20\xa0\x77\x0e\x86\x20\x0e\xa0\x42\x30\x15\x20\x04\xa0\x41\x01\x12\x20\x04\x30\x22\x30\x04\x12\x30\x04\x2e\x22\x20\x02\x23"
+
+
+/*************************************************************
+*** A.1.7. COPY-LITERAL and COPY-OFFSET
+*/
+#define RFC4465_A_1_7__COPY_LITERAL_and_COPY_OFFSET \
+ "\xf8\x06\x11\x0e\x20\x80\x41\x00\x0e\x86\x86\x0e\xa0\x42\x87\x0e\xa0\x44\x21\x13\x20\x87\x22\x22\x86\x08\x0e\xa0\x44\xa0\x9c\x13\x20\x02\x22\x22\xa0\x9c\x02\x0e\x86\xa0\x48\x0e\xa0\x42\xa0\x52\x0e\xa0\x44\xa0\x52\x15\xa0\x48\x0a\xa0\x41\x01\x14\x02\x06\x22\x0e\xa0\x46\x06\x14\x63\x04\x22\x22\x61\x0a\x0e\xa0\x44\xa0\x50\x14\x04\x04\x22\x22\xa0\x44\x02\x14\x05\x04\x22\x22\xa0\x44\x02\x22\x60\x0a\x23"
+
+
+/*************************************************************
+*** A.1.8. MEMSET
+*/
+#define RFC4465_A_1_8__MEMSET \
+ "\xf8\x01\x81\x0e\x86\x87\x0e\xa0\x42\xa0\x81\x15\x86\xa0\x81\x00\x01\x15\xa0\x81\x0f\x86\x0f\x22\x87\x10\x23"
+
+
+/*************************************************************
+*** A.1.9. CRC
+*/
+#define RFC4465_A_1_9__CRC_1 \
+ "\xf8\x01\x81\x15\xa0\x46\x18\x01\x01\x15\xa0\x5e\x14\x87\x01\x1c\x02\xa0\x44\x13\x1b\x62\xa0\x46\x2c\x0e\x23"\
+ "\x62\xcb"
+#define RFC4465_A_1_9__CRC_2 \
+ "\xf8\x01\x81\x15\xa0\x46\x18\x01\x01\x15\xa0\x5e\x14\x87\x01\x1c\x02\xa0\x44\x13\x1b\x62\xa0\x46\x2c\x0e\x23"\
+ "\xab\xcb"
+
+
+/*************************************************************
+*** A.1.10. INPUT-BITS
+*/
+#define RFC4465_A_1_10__INPUT_BITS \
+ "\xf8\x01\x51\x1d\x62\xa0\x46\x14\x22\xa0\x46\x02\x06\x22\x01\x0a\x22\x07\x06\x22\x01\x16\xee\x23"\
+ "\x93\x2e\xac\x71"
+
+
+/*************************************************************
+*** A.1.11. INPUT-HUFFMAN
+*/
+#define RFC4465_A_1_11__INPUT_HUFFMAN \
+ "\xf8\x01\xd1\x1e\xa0\x46\x1c\x02\x62\x00\x62\x62\x62\x00\xff\x00\x22\xa0\x46\x02\x06\x22\x01\x0a\x22\x07\x06\x22\x01\x16\xe6\x23"\
+ "\x93\x2e\xac\x71\x66\xd8\x6f"
+
+
+
+/*************************************************************
+*** A.1.12. INPUT-BYTES
+*/
+#define RFC4465_A_1_12__INPUT_BYTES \
+ "\xf8\x02\x71\x0e\x86\xa0\x48\x0e\xa0\x42\xa0\x4c\x1d\x62\xa0\x46\x1d\x22\xa0\x46\x02\x06\x22\x02\x0a\x22\x07\x1c\x62\xa0\x48\x0e\x22\xa0\x48\x62\x06\x22\x01\x16\xe5\x23"\
+ "\x93\x2e\xac\x71\x66\xd8\x6f\xb1\x59\x2b\xdc\x9a\x97\x34\xd8\x47\xa7\x33\x87\x4e\x1b\xcb\xcd\x51\xb5\xdc\x96\x59\x9d\x6a"
+
+
+/*************************************************************
+*** A.1.13. Stack Manipulation
+*/
+#define RFC4465_A_1_13__Stack_Manipulation \
+ "\xf8\x14\x11\x0e\xa0\x46\x86\x10\x02\x10\x60\x10\xa0\x42\x22\x86\x08\x11\x86\x11\x63\x11\xa0\x46\x22\x86\x08\x16\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\xa0\x46\x20\x0e\xa0\x48\xa1\x40\x07\x24\x88\x18\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\xa0\x46\xa1\x7f\x0e\xa1\x7f\x1a\x0f\xa1\xb0\x03\x01\x80\xc0\x01\x8f\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23"
+
+
+/*************************************************************
+*** A.1.14. Program Flow
+*/
+#define RFC4465_A_1_14__Program_Flow \
+ "\xf8\x03\xf1\x0e\xa0\x44\x04\x0e\x86\xa0\x92\x07\x20\xa0\x90\x22\xa0\x43\x01\x16\x60\x06\x21\x01\x0e\x86\xa0\x84\x07\x20\xa0\xa1\x22\xa0\x43\x01\x17\x61\x06\x60\xf1\x06\x07\x22\x01\x0e\x86\xa0\x84\x07\x20\xa0\xb6\x22\xa0\x43\x01\x1a\x04\x62\x08\x60\x9f\xdc\xf1\x23"
+
+
+/*************************************************************
+*** A.1.15. State Creation_1
+*/
+#define RFC4465_A_1_15__State_Creation_1 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x01"
+
+
+/*************************************************************
+*** A.1.15. State Creation_2
+*/
+#define RFC4465_A_1_15__State_Creation_2 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x02"
+
+
+/*************************************************************
+*** A.1.15. State Creation_3
+*/
+#define RFC4465_A_1_15__State_Creation_3 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x03"
+
+
+/*************************************************************
+*** A.1.15. State Creation_4
+*/
+#define RFC4465_A_1_15__State_Creation_4 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x04\x05"
+
+
+/*************************************************************
+*** A.1.15. State Creation_5
+*/
+#define RFC4465_A_1_15__State_Creation_5 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x04\x15"
+
+
+/*************************************************************
+*** A.1.15. State Creation_6
+*/
+#define RFC4465_A_1_15__State_Creation_6 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x04\x06"
+
+
+/*************************************************************
+*** A.1.15. State Creation_7
+*/
+#define RFC4465_A_1_15__State_Creation_7 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x09"
+
+
+/*************************************************************
+*** A.1.15. State Creation_8
+*/
+#define RFC4465_A_1_15__State_Creation_8 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x1e\x06"
+
+
+/*************************************************************
+*** A.1.15. State Creation_9
+*/
+#define RFC4465_A_1_15__State_Creation_9 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x1e\x07"
+
+
+/*************************************************************
+*** A.1.15. State Creation_10
+*/
+#define RFC4465_A_1_15__State_Creation_10 \
+ "\xf8\x09\x41\x1c\x01\xa0\x45\xff\x04\x22\x0b\x17\x62\x8f\x0d\x06\x06\x20\x0a\xa1\x0a\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x0c\x06\x06\x20\x0a\x88\x00\x14\x00\x04\x22\x01\x17\x62\x8f\x16\x06\x06\x1c\x01\xa0\x47\x9f\xd2\x21\xa0\x48\x63\x12\xa0\xe3\x63\xa0\x48\x04\x22\x01\x17\x62\x8f\x0a\x06\x06\x21\xa0\xe3\x06\x04\x22\x01\x17\x62\x8f\x0e\x06\x06\x23\x00\x00\x0a\x88\x00\x14\x00\x23\x00\x00\x00\x00\x00\x00\x00\x43\x7a\xe8\x0a\x0f\xdc\x1e\x6a\x87\xc1\xb6\x2a\x76\x76\xb9\x73\x31\x8c\x0e\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xcc\x3f\xee\x79\xbc\xfc\x8f\xd1\x08\x65\xe8\x03\x52\xee\x29\x77\x17\xdf\x57"\
+ "\x1e\14"
+
+
+/*************************************************************
+*** A.1.16. STATE-ACCESS Set up bytecode}
+*/
+#define RFC4465_A_1_16__STATE_ACCESS__SETUP \
+ "\xf8\x19\x01\x23\x00\x00\x10\x89\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\xa2\x0c\x04\x23\x00\x00\x00\x00\x00\x00\x00\x74\x65\x73\x74"\
+ ""
+
+
+/*************************************************************
+*** A.1.16. STATE-ACCESS_1
+*/
+#define RFC4465_A_1_16__STATE_ACCESS_1 \
+ "\xf8\x19\x41\x1c\x01\xa0\x45\xff\x17\x62\x01\x06\x0d\x1c\x1f\x89\x14\x00\x00\x00\x89\x1f\x89\x14\x0c\x04\xa0\x46\x00\x22\xa0\x46\x04\x16\xa1\x46\x17\x62\x03\x06\x10\x1b\x1f\x87\x14\x00\x00\x00\x00\x16\xa1\x36\x1f\x89\x13\x06\x04\xa0\x46\x00\x16\xa1\x2b\x1f\x89\x14\x0c\x05\xa0\x46\x00\x16\xa1\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf8\xbc\x3e\x20\x93\xb5\xab\xe1\xf1\x70\x13\x42\x4c\xe7\xfe\x05\xe0\x69\x39"\
+ "\x00"
+
+
+/*************************************************************
+*** A.1.16. STATE-ACCESS_2
+*/
+#define RFC4465_A_1_16__STATE_ACCESS_2 \
+ "\xf8\x19\x41\x1c\x01\xa0\x45\xff\x17\x62\x01\x06\x0d\x1c\x1f\x89\x14\x00\x00\x00\x89\x1f\x89\x14\x0c\x04\xa0\x46\x00\x22\xa0\x46\x04\x16\xa1\x46\x17\x62\x03\x06\x10\x1b\x1f\x87\x14\x00\x00\x00\x00\x16\xa1\x36\x1f\x89\x13\x06\x04\xa0\x46\x00\x16\xa1\x2b\x1f\x89\x14\x0c\x05\xa0\x46\x00\x16\xa1\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf8\xbc\x3e\x20\x93\xb5\xab\xe1\xf1\x70\x13\x42\x4c\xe7\xfe\x05\xe0\x69\x39"\
+ "\x01"
+
+
+/*************************************************************
+*** A.1.16. STATE-ACCESS_3
+*/
+#define RFC4465_A_1_16__STATE_ACCESS_3 \
+ "\xf8\x19\x41\x1c\x01\xa0\x45\xff\x17\x62\x01\x06\x0d\x1c\x1f\x89\x14\x00\x00\x00\x89\x1f\x89\x14\x0c\x04\xa0\x46\x00\x22\xa0\x46\x04\x16\xa1\x46\x17\x62\x03\x06\x10\x1b\x1f\x87\x14\x00\x00\x00\x00\x16\xa1\x36\x1f\x89\x13\x06\x04\xa0\x46\x00\x16\xa1\x2b\x1f\x89\x14\x0c\x05\xa0\x46\x00\x16\xa1\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf8\xbc\x3e\x20\x93\xb5\xab\xe1\xf1\x70\x13\x42\x4c\xe7\xfe\x05\xe0\x69\x39"\
+ "\x02"
+
+
+/*************************************************************
+*** A.1.16. STATE-ACCESS_4
+*/
+#define RFC4465_A_1_16__STATE_ACCESS_4 \
+ "\xf8\x19\x41\x1c\x01\xa0\x45\xff\x17\x62\x01\x06\x0d\x1c\x1f\x89\x14\x00\x00\x00\x89\x1f\x89\x14\x0c\x04\xa0\x46\x00\x22\xa0\x46\x04\x16\xa1\x46\x17\x62\x03\x06\x10\x1b\x1f\x87\x14\x00\x00\x00\x00\x16\xa1\x36\x1f\x89\x13\x06\x04\xa0\x46\x00\x16\xa1\x2b\x1f\x89\x14\x0c\x05\xa0\x46\x00\x16\xa1\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf8\xbc\x3e\x20\x93\xb5\xab\xe1\xf1\x70\x13\x42\x4c\xe7\xfe\x05\xe0\x69\x39"\
+ "\x03"
+
+
+/*************************************************************
+*** A.1.16. STATE-ACCESS_5
+*/
+#define RFC4465_A_1_16__STATE_ACCESS_5 \
+ "\xf8\x19\x41\x1c\x01\xa0\x45\xff\x17\x62\x01\x06\x0d\x1c\x1f\x89\x14\x00\x00\x00\x89\x1f\x89\x14\x0c\x04\xa0\x46\x00\x22\xa0\x46\x04\x16\xa1\x46\x17\x62\x03\x06\x10\x1b\x1f\x87\x14\x00\x00\x00\x00\x16\xa1\x36\x1f\x89\x13\x06\x04\xa0\x46\x00\x16\xa1\x2b\x1f\x89\x14\x0c\x05\xa0\x46\x00\x16\xa1\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf8\xbc\x3e\x20\x93\xb5\xab\xe1\xf1\x70\x13\x42\x4c\xe7\xfe\x05\xe0\x69\x39"\
+ "\x04"
+
+
+/*************************************************************
+*** A.2.1. Useful Values_1 (NOT from rfc4465)
+*/
+#define RFC4465_A_2_1__Useful_Values_1 \
+ "\xf8\x05\xa1\x0e\x86\x20\x0e\xa0\x42\x21\x17\x42\x02\xf8\x06\xf8\x17\x43\x00\xf2\x06\x0c\x17\x44\x00\xec"\
+ "\x3f\xec\x17\x44\xa3\xc0\xe6\x07\xe6\x1c\x01\xa0\x47\x9f\xdf\x06\x23\x40\x07\x23\x01\x12\x20\x01\x63\x1c"\
+ "\x01\xa0\x49\x9f\xcf\x0e\xa0\x44\x43\x06\x22\x03\x08\x22\x08\x06\x22\xa3\xe8\x08\x22\x41\x06\x22\x64\x07"\
+ "\x22\xa3\xd6\x12\x20\x62\x20\x23\x00\x00\xa3\xc0\x86\x87\x06"
+
+/*************************************************************
+*** A.2.1. Useful Values_2 (NOT from rfc4465)
+*/
+#define RFC4465_A_2_1__Useful_Values_2 \
+ "\xf9\x46\x84\x75\x55\xd9\x2d"\
+ "\x00\x00"
+
+
+/*************************************************************
+*** A.2.1. Useful Values_3 (NOT from rfc4465)
+*/
+#define RFC4465_A_2_1__Useful_Values_3 \
+ "\xf9\x46\x84\x75\x55\xd9\x2d"\
+ "\x00\x01"
+
+
+/*************************************************************
+*** A.2.1. Useful Values_4
+*/
+#define RFC4465_A_2_1__Useful_Values_4 \
+ "\xf9\x46\x84\x75\x55\xd9\x2d"\
+ "x01\x00"
+
+
+/*************************************************************
+*** A.2.2. Cycles Checking
+*/
+#define RFC4465_A_2_2__Cycles_Checking \
+ "\xf8\x01\xa1\x0f\x86\x04\x20\x29\x00\x22\x12\xa0\x44\x02\x60\x14\x02\xa0\x64\x23\x22\xa0\x44\x02\x06\x22\x01\x16\xef"\
+ ""
+
+
+/*************************************************************
+*** A.2.3. Message-based Transport
+*/
+#define RFC4465_A_2_3_Message_based_Transport_1 \
+ "\xf8"\
+ ""
+
+
+/*************************************************************
+*** A.2.3. Message-based Transport
+*/
+#define RFC4465_A_2_3_Message_based_Transport_2 \
+ "\xf8\x00"\
+ ""
+
+
+/*************************************************************
+*** A.2.3. Message-based Transport
+*/
+#define RFC4465_A_2_3_Message_based_Transport_3 \
+ "\xf8\x00\xe1\x06\x00\x11\x22\x00\x02\x23\x00\x00\x00\x00\x00\x00\x01"\
+ ""
+
+
+/*************************************************************
+*** A.2.3. Message-based Transport
+*/
+#define RFC4465_A_2_3_Message_based_Transport_4 \
+ "\xf8\x00\xf1\x06\x00\x11\x22\x00\x02\x23\x00\x00\x00\x00\x00\x00\x01"\
+ ""
+
+
+/*************************************************************
+*** A.2.3. Message-based Transport
+*/
+#define RFC4465_A_2_3_Message_based_Transport_5 \
+ "\xf8\x00\xe0\x06\x00\x11\x22\x00\x02\x23\x00\x00\x00\x00\x00\x00\x01"\
+ ""
+
+
+/*************************************************************
+*** A.2.3. Message-based Transport
+*/
+#define RFC4465_A_2_3_Message_based_Transport_6 \
+ "\xf8\x00\xee\x06\x00\x11\x22\x00\x02\x23\x00\x00\x00\x00\x00\x00\x01"\
+ ""
+
+
+/*************************************************************
+*** A.2.4. Stream-based Transport_1 (Outputs 2 messages. This why "RFC4465_A_2_4_Stream_based_Transport_2" is missing)
+*/
+#define RFC4465_A_2_4_Stream_based_Transport_1\
+ "\xff\xff\xf8\x01\x71\x08\x00\x02\x22\x00\x02\x22\xa0\x92\x05\x23\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x03\xff\xff\xff\xff\xff\xff\xff\xf8\x01\x7e\x08\x00\x02\x22\x00\x02\x22\xa3\xd2\x05\x23\x00\x00\x00\x00\x00\x00\x00\xff\x04\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"\
+ ""
+
+
+/*************************************************************
+*** A.2.4. Stream-based Transport_3
+*/
+#define RFC4465_A_2_4_Stream_based_Transport_3\
+ "\xf8\xff\xff"\
+ ""
+
+
+/*************************************************************
+*** A.2.4. Stream-based Transport_4
+*/
+#define RFC4465_A_2_4_Stream_based_Transport_4\
+ "\xf8\x00\xff\xff"\
+ ""
+
+
+/*************************************************************
+*** A.2.4. Stream-based Transport_5
+*/
+#define RFC4465_A_2_4_Stream_based_Transport_5\
+ "\xf8\x01\x81\x08\x00\x02\x22\x00\x02\x22\xa0\x92\x05\x23\xff\xff\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x03\xff\xff\xff"\
+ ""
+
+
+/*************************************************************
+*** A.2.4. Stream-based Transport_6
+*/
+#define RFC4465_A_2_4_Stream_based_Transport_6\
+ "\xf8\x01\x70\x08\x00\x02\x22\x00\x02\x22\xa0\x92\x05\x23\xff\xff\x00\x00\x00\x00\x00\x00\x00\xff\x04\xff\xff\xff\xff"\
+ ""
+
+
+
+/*************************************************************
+*** A.2.5. Input Past the End of a Message_1
+*/
+#define RFC4465_A_2_5__Input_Past_the_End_of_a_Message_1\
+ "\xf8\x03\x21\x0e\x86\xa0\x46\x0e\xa0\x42\xa0\x4d\x1d\x09\xa0\x46\x0a\x1c\x07\xa0\x46\x06\x00\x1d\x07\xa0\x46\xff\x1c\x02\xa0\x46\xfa\x22\xa0\x46\x02\x1d\x10\xa0\x46\x06\x00\x1d\x08\xa0\x46\xff\x22\xa0\x47\x01\x23"\
+ "\xff\xfa\x00\x68\x69\x21"
+
+
+/*************************************************************
+*** A.2.5. Input Past the End of a Message_2
+*/
+#define RFC4465_A_2_5__Input_Past_the_End_of_a_Message_2\
+ "\xf8\x03\x21\x0e\x86\xa0\x46\x0e\xa0\x42\xa0\x4d\x1d\x09\xa0\x46\x0a\x1c\x07\xa0\x46\x06\x00\x1d\x07\xa0\x46\xff\x1c\x02\xa0\x46\xfa\x22\xa0\x46\x02\x1d\x10\xa0\x46\x06\x00\x1d\x08\xa0\x46\xff\x22\xa0\x47\x01\x23"\
+ "\xff\xfa\x00\x68\x69"
+
+
+
+/*************************************************************
+*** A.3.1. SigComp Feedback Mechanism_1
+*/
+#define RFC4465_A_3_1__SigComp_Feedback_Mechanism_1\
+ "\xf8\x05\x03\x1c\x01\xa0\x41\xa0\x55\x17\x60\x01\x07\x0e\xa0\x4f\x0e\xa0\x42\xa4\x7f\x16\x0e\x0e\xa0\x42\xa4\xff\x15\xa0\x44\xa0\x7f\x01\x01\x0e\xa0\xc3\xa8\x01\x0e\xa0\xc5\xa6\x00\x0e\xa0\xcc\xac\x00\x0e\xa0\xd9\xb4\x00\x0e\xa0\xee\xb5\x00\x15\xa0\xc6\x06\x00\x01\x15\xa0\xcd\x0c\x00\x01\x15\xa0\xda\x14\x00\x01\x23\xa0\x42\xa0\xc3"\
+ "\x00"
+
+
+/*************************************************************
+*** A.3.1. SigComp Feedback Mechanism_2
+*/
+#define RFC4465_A_3_1__SigComp_Feedback_Mechanism_2\
+ "\xf8\x05\x03\x1c\x01\xa0\x41\xa0\x55\x17\x60\x01\x07\x0e\xa0\x4f\x0e\xa0\x42\xa4\x7f\x16\x0e\x0e\xa0\x42\xa4\xff\x15\xa0\x44\xa0\x7f\x01\x01\x0e\xa0\xc3\xa8\x01\x0e\xa0\xc5\xa6\x00\x0e\xa0\xcc\xac\x00\x0e\xa0\xd9\xb4\x00\x0e\xa0\xee\xb5\x00\x15\xa0\xc6\x06\x00\x01\x15\xa0\xcd\x0c\x00\x01\x15\xa0\xda\x14\x00\x01\x23\xa0\x42\xa0\xc3"\
+ "\x01"
+
+
+/*************************************************************
+*** A.3.2. State Memory Management_1
+*/
+#define RFC4465_A_3_2__State_Memory_Management_1\
+ "\xf8\x1b\xa1\x0f\x86\x02\x89\xa2\x04\x1c\x01\xa0\x47\xf9\x17\x63\x05\x08\xa0\x68\xa0\x70\x17\x63\x03\x07\x34\xa0\x56\x08\x23\x06\x06\x23\xa2\x04\x0e\xa0\x44\x63\x06\x23\x06\x12\x62\x02\xa0\x4a\x17\x62\x63\x08\xa0\x58\x9f\xd2\x0e\xa0\x48\x65\x08\x24\x88\x20\x64\x89\x00\x06\x65\x06\x22\x02\x16\xe3\x1f\xa2\x16\x06\x00\x00\x00\x00\x1f\xa2\x1c\x06\x00\x00\x00\x00\x1f\xa2\x22\x06\x00\x00\x00\x00\x1f\xa2\x2e\x06\x00\x00\x00\x00\x16\x1e\x1f\xa2\x28\x06\x00\x00\x00\x00\x16\x14\x20\x8b\x89\x00\x06\x00\x16\x0c\x1f\xa2\x34\x06\x00\x00\x00\x00\x16\x02\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x65\x73\x74\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x03\x00\x02\x00\x01\x00\x00\x8e\xea\x4b\x43\xa7\x87\xf9\x01\x0e\xef\x56\x7b\x23\x9a\x34\x6b\x15\xa6\xb4\x0f\xc0\xe4\x4d\x2c\xd4\xa2\x21\x47\xe6\x0a\xef\xf2\xbc\x0f\xb6\xaf"\
+ "\x00"
+
+
+/*************************************************************
+*** A.3.2. State Memory Management_2
+*/
+#define RFC4465_A_3_2__State_Memory_Management_2\
+ "\xf8\x1b\xa1\x0f\x86\x02\x89\xa2\x04\x1c\x01\xa0\x47\xf9\x17\x63\x05\x08\xa0\x68\xa0\x70\x17\x63\x03\x07\x34\xa0\x56\x08\x23\x06\x06\x23\xa2\x04\x0e\xa0\x44\x63\x06\x23\x06\x12\x62\x02\xa0\x4a\x17\x62\x63\x08\xa0\x58\x9f\xd2\x0e\xa0\x48\x65\x08\x24\x88\x20\x64\x89\x00\x06\x65\x06\x22\x02\x16\xe3\x1f\xa2\x16\x06\x00\x00\x00\x00\x1f\xa2\x1c\x06\x00\x00\x00\x00\x1f\xa2\x22\x06\x00\x00\x00\x00\x1f\xa2\x2e\x06\x00\x00\x00\x00\x16\x1e\x1f\xa2\x28\x06\x00\x00\x00\x00\x16\x14\x20\x8b\x89\x00\x06\x00\x16\x0c\x1f\xa2\x34\x06\x00\x00\x00\x00\x16\x02\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x65\x73\x74\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x03\x00\x02\x00\x01\x00\x00\x8e\xea\x4b\x43\xa7\x87\xf9\x01\x0e\xef\x56\x7b\x23\x9a\x34\x6b\x15\xa6\xb4\x0f\xc0\xe4\x4d\x2c\xd4\xa2\x21\x47\xe6\x0a\xef\xf2\xbc\x0f\xb6\xaf"\
+ "\x01"
+
+
+/*************************************************************
+*** A.3.2. State Memory Management_3
+*/
+#define RFC4465_A_3_2__State_Memory_Management_3\
+ "\xf8\x1b\xa1\x0f\x86\x02\x89\xa2\x04\x1c\x01\xa0\x47\xf9\x17\x63\x05\x08\xa0\x68\xa0\x70\x17\x63\x03\x07\x34\xa0\x56\x08\x23\x06\x06\x23\xa2\x04\x0e\xa0\x44\x63\x06\x23\x06\x12\x62\x02\xa0\x4a\x17\x62\x63\x08\xa0\x58\x9f\xd2\x0e\xa0\x48\x65\x08\x24\x88\x20\x64\x89\x00\x06\x65\x06\x22\x02\x16\xe3\x1f\xa2\x16\x06\x00\x00\x00\x00\x1f\xa2\x1c\x06\x00\x00\x00\x00\x1f\xa2\x22\x06\x00\x00\x00\x00\x1f\xa2\x2e\x06\x00\x00\x00\x00\x16\x1e\x1f\xa2\x28\x06\x00\x00\x00\x00\x16\x14\x20\x8b\x89\x00\x06\x00\x16\x0c\x1f\xa2\x34\x06\x00\x00\x00\x00\x16\x02\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x65\x73\x74\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x03\x00\x02\x00\x01\x00\x00\x8e\xea\x4b\x43\xa7\x87\xf9\x01\x0e\xef\x56\x7b\x23\x9a\x34\x6b\x15\xa6\xb4\x0f\xc0\xe4\x4d\x2c\xd4\xa2\x21\x47\xe6\x0a\xef\xf2\xbc\x0f\xb6\xaf"\
+ "\x02"
+
+
+/*************************************************************
+*** A.3.2. State Memory Management_4
+*/
+#define RFC4465_A_3_2__State_Memory_Management_4\
+ "\xf8\x1b\xa1\x0f\x86\x02\x89\xa2\x04\x1c\x01\xa0\x47\xf9\x17\x63\x05\x08\xa0\x68\xa0\x70\x17\x63\x03\x07\x34\xa0\x56\x08\x23\x06\x06\x23\xa2\x04\x0e\xa0\x44\x63\x06\x23\x06\x12\x62\x02\xa0\x4a\x17\x62\x63\x08\xa0\x58\x9f\xd2\x0e\xa0\x48\x65\x08\x24\x88\x20\x64\x89\x00\x06\x65\x06\x22\x02\x16\xe3\x1f\xa2\x16\x06\x00\x00\x00\x00\x1f\xa2\x1c\x06\x00\x00\x00\x00\x1f\xa2\x22\x06\x00\x00\x00\x00\x1f\xa2\x2e\x06\x00\x00\x00\x00\x16\x1e\x1f\xa2\x28\x06\x00\x00\x00\x00\x16\x14\x20\x8b\x89\x00\x06\x00\x16\x0c\x1f\xa2\x34\x06\x00\x00\x00\x00\x16\x02\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x65\x73\x74\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x03\x00\x02\x00\x01\x00\x00\x8e\xea\x4b\x43\xa7\x87\xf9\x01\x0e\xef\x56\x7b\x23\x9a\x34\x6b\x15\xa6\xb4\x0f\xc0\xe4\x4d\x2c\xd4\xa2\x21\x47\xe6\x0a\xef\xf2\xbc\x0f\xb6\xaf"\
+ "\x03"
+
+
+/*************************************************************
+*** A.3.2. State Memory Management_5
+*/
+#define RFC4465_A_3_2__State_Memory_Management_5\
+ "\xf8\x1b\xa1\x0f\x86\x02\x89\xa2\x04\x1c\x01\xa0\x47\xf9\x17\x63\x05\x08\xa0\x68\xa0\x70\x17\x63\x03\x07\x34\xa0\x56\x08\x23\x06\x06\x23\xa2\x04\x0e\xa0\x44\x63\x06\x23\x06\x12\x62\x02\xa0\x4a\x17\x62\x63\x08\xa0\x58\x9f\xd2\x0e\xa0\x48\x65\x08\x24\x88\x20\x64\x89\x00\x06\x65\x06\x22\x02\x16\xe3\x1f\xa2\x16\x06\x00\x00\x00\x00\x1f\xa2\x1c\x06\x00\x00\x00\x00\x1f\xa2\x22\x06\x00\x00\x00\x00\x1f\xa2\x2e\x06\x00\x00\x00\x00\x16\x1e\x1f\xa2\x28\x06\x00\x00\x00\x00\x16\x14\x20\x8b\x89\x00\x06\x00\x16\x0c\x1f\xa2\x34\x06\x00\x00\x00\x00\x16\x02\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x65\x73\x74\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x03\x00\x02\x00\x01\x00\x00\x8e\xea\x4b\x43\xa7\x87\xf9\x01\x0e\xef\x56\x7b\x23\x9a\x34\x6b\x15\xa6\xb4\x0f\xc0\xe4\x4d\x2c\xd4\xa2\x21\x47\xe6\x0a\xef\xf2\xbc\x0f\xb6\xaf"\
+ "\x04"
+
+
+/*************************************************************
+*** A.3.2. State Memory Management_6
+*/
+#define RFC4465_A_3_2__State_Memory_Management_6\
+ "\xf8\x1b\xa1\x0f\x86\x02\x89\xa2\x04\x1c\x01\xa0\x47\xf9\x17\x63\x05\x08\xa0\x68\xa0\x70\x17\x63\x03\x07\x34\xa0\x56\x08\x23\x06\x06\x23\xa2\x04\x0e\xa0\x44\x63\x06\x23\x06\x12\x62\x02\xa0\x4a\x17\x62\x63\x08\xa0\x58\x9f\xd2\x0e\xa0\x48\x65\x08\x24\x88\x20\x64\x89\x00\x06\x65\x06\x22\x02\x16\xe3\x1f\xa2\x16\x06\x00\x00\x00\x00\x1f\xa2\x1c\x06\x00\x00\x00\x00\x1f\xa2\x22\x06\x00\x00\x00\x00\x1f\xa2\x2e\x06\x00\x00\x00\x00\x16\x1e\x1f\xa2\x28\x06\x00\x00\x00\x00\x16\x14\x20\x8b\x89\x00\x06\x00\x16\x0c\x1f\xa2\x34\x06\x00\x00\x00\x00\x16\x02\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x65\x73\x74\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x03\x00\x02\x00\x01\x00\x00\x8e\xea\x4b\x43\xa7\x87\xf9\x01\x0e\xef\x56\x7b\x23\x9a\x34\x6b\x15\xa6\xb4\x0f\xc0\xe4\x4d\x2c\xd4\xa2\x21\x47\xe6\x0a\xef\xf2\xbc\x0f\xb6\xaf"\
+ "\x05"
+
+
+/*************************************************************
+*** A.3.2. State Memory Management_7
+*/
+#define RFC4465_A_3_2__State_Memory_Management_7\
+ "\xf8\x1b\xa1\x0f\x86\x02\x89\xa2\x04\x1c\x01\xa0\x47\xf9\x17\x63\x05\x08\xa0\x68\xa0\x70\x17\x63\x03\x07\x34\xa0\x56\x08\x23\x06\x06\x23\xa2\x04\x0e\xa0\x44\x63\x06\x23\x06\x12\x62\x02\xa0\x4a\x17\x62\x63\x08\xa0\x58\x9f\xd2\x0e\xa0\x48\x65\x08\x24\x88\x20\x64\x89\x00\x06\x65\x06\x22\x02\x16\xe3\x1f\xa2\x16\x06\x00\x00\x00\x00\x1f\xa2\x1c\x06\x00\x00\x00\x00\x1f\xa2\x22\x06\x00\x00\x00\x00\x1f\xa2\x2e\x06\x00\x00\x00\x00\x16\x1e\x1f\xa2\x28\x06\x00\x00\x00\x00\x16\x14\x20\x8b\x89\x00\x06\x00\x16\x0c\x1f\xa2\x34\x06\x00\x00\x00\x00\x16\x02\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x65\x73\x74\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x03\x00\x02\x00\x01\x00\x00\x8e\xea\x4b\x43\xa7\x87\xf9\x01\x0e\xef\x56\x7b\x23\x9a\x34\x6b\x15\xa6\xb4\x0f\xc0\xe4\x4d\x2c\xd4\xa2\x21\x47\xe6\x0a\xef\xf2\xbc\x0f\xb6\xaf"\
+ "\x06"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_1
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_1\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x00"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_2
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_2\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x01"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_3
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_3\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x02"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_4
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_4\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x03"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_5
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_5\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x04"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_6
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_6\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x05"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_7
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_7\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x06"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_8
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_8\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x07"
+
+
+/*************************************************************
+*** A.3.3. Multiple Compartments_9
+*/
+#define RFC4465_A_3_3__Multiple_Compartments_9\
+ "\xf8\x1b\x11\x0f\x86\x02\x89\xa2\x07\x1c\x01\xa0\x45\xf9\x17\x62\x03\x0d\x3d\x06\x17\x62\x05\x37\x86\xa0\x68\x06\x22\x89\x20\xa1\xc0\x62\x00\x06\x00\x06\x22\x03\x20\xa1\xc0\x62\x00\x06\x00\x07\x22\xa2\x02\x0a\x22\x03\x06\x22\xa2\x03\x20\xa1\xc0\x62\x00\x06\x00\x20\xa1\xc0\xa2\x06\x00\x06\x62\x16\x2b\x20\xa7\xc0\x20\x00\x06\x00\x16\x22\x1f\xa2\x13\x06\x00\x00\x00\x00\x1f\xa2\x19\x06\x00\x00\x00\x00\x1f\xa2\x25\x06\x00\x00\x00\x00\x1f\xa2\x2b\x06\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x17\x62\x07\x06\x10\x1a\x1f\xa2\x07\x06\x00\x00\x00\x00\x16\xea\x1f\xa2\x0d\x06\x00\x00\x00\x00\x16\xe0\x1f\xa2\x1f\x06\x00\x00\x00\x00\x16\x9f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\xac\xa6\x0b\x8e\xb2\x83\x9d\xbf\xaf\xc6\x3d\xd2\x34\xc5\xd9\x1d\x53\x61\xbd\xd6\xba\x2a\xc6\x5a\x47\xc2\x18\x14\xee\x07\xc2\x75\x94\x1d\xd7\xa1\x48\x87\x9c\x8d\xe9\x0e"\
+ "\x08"
+
+
+/*************************************************************
+*** A.3.4. Accessing RFC 3485 State
+*/
+#define RFC4465_A_3_4__Accessing_RFC_3485_State\
+ "\xf8\x03\xa1\x1f\xa0\xa6\x14\xac\xfe\x01\x20\x00\x1f\xa0\xa6\x06\xac\xff\x01\x21\x00\x1f\xa0\xa6\x0c\xad\x00\x01\x22\x00\x22\x20\x03\x23\x00\x00\x00\x00\x00\x00\x00\xfb\xe5\x07\xdf\xe5\xe6\xaa\x5a\xf2\xab\xb9\x14\xce\xaa\x05\xf9\x9c\xe6\x1b\xa5"\
+ ""
+
+
+/*************************************************************
+*** A.3.5. Bytecode State Creation_1
+*/
+#define RFC4465_A_3_5__Bytecode_State_Creation_1\
+ "\xf8\x04\x61\x12\xa0\xbe\x08\x1e\x20\x08\x1e\x21\x06\x0a\x0e\x23\xbe\x03\x12\xa0\xbe\x08\xa0\x50\x20\x08\xa0\x50\xa0\x53\x14\x0a\x20\x08\xa0\x50\xa0\x53\x0c\x0a\x16\x06\x00\x4f\x4b\x31\x1c\x01\xa0\xb3\xfc\x22\xa0\xa8\x03\x23\x00\x00\x0d\xa0\xa8\xa0\xab\x06\x0a\x4f\x4b\x32\x22\xa0\x50\x03\x23\x02"\
+ ""
+
+
+/*************************************************************
+*** A.3.5. Bytecode State Creation_2
+*/
+#define RFC4465_A_3_5__Bytecode_State_Creation_2\
+ "\xf9\x05\xb8\x8c\xe7\x2c\x91\x03"\
+ ""
+
+
+/*************************************************************
+*** A.3.5. Bytecode State Creation_3
+*/
+#define RFC4465_A_3_5__Bytecode_State_Creation_3\
+ "\xfb\x24\x63\xcd\xff\x5c\xf8\xc7\x6d\xf6\xa2\x89\xff"\
+ ""
+
+
+/*************************************************************
+*** A.3.5. Bytecode State Creation_4
+*/
+#define RFC4465_A_3_5__Bytecode_State_Creation_4\
+ "\xf9\x5b\x4b\x43\xd5\x67\x83"\
+ ""
+
+
+/*************************************************************
+*** A.3.5. Bytecode State Creation_5
+*/
+#define RFC4465_A_3_5__Bytecode_State_Creation_5\
+ "\xf9\xde\x81\x26\x11\x99\x1f"\
+ ""
+
+#endif /* _RFC4465_TORTURE_TESTS_H_ */ \ No newline at end of file
diff --git a/tinySIGCOMP/test/stdafx.c b/tinySIGCOMP/test/stdafx.c
new file mode 100644
index 0000000..c303ba3
--- /dev/null
+++ b/tinySIGCOMP/test/stdafx.c
@@ -0,0 +1,25 @@
+/*
+* Copyright (C) 2009 Mamadou Diop.
+* Copyright (C) 2012 Doubango Telecom <http://doubango.org>.
+*
+* This file is part of Open Source Doubango Framework.
+*
+* DOUBANGO is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* DOUBANGO is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with DOUBANGO.
+*
+*/
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file
diff --git a/tinySIGCOMP/test/stdafx.h b/tinySIGCOMP/test/stdafx.h
new file mode 100644
index 0000000..0ad4eea
--- /dev/null
+++ b/tinySIGCOMP/test/stdafx.h
@@ -0,0 +1,34 @@
+/*
+* Copyright (C) 2009 Mamadou Diop.
+* Copyright (C) 2012 Doubango Telecom <http://doubango.org>.
+*
+* This file is part of Open Source Doubango Framework.
+*
+* DOUBANGO is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* DOUBANGO is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with DOUBANGO.
+*
+*/
+
+#ifndef TEST_TINYSIGCOMP_STDAFX_H
+#define TEST_TINYSIGCOMP_STDAFX_H
+
+#include "targetver.h"
+
+#include <stdio.h>
+#if (defined(_WIN32) || defined(WIN32) || defined(_WIN32_WCE)) && !defined(__SYMBIAN32__)
+# include <tchar.h>
+#endif
+
+#include <string.h>
+
+#endif /* TEST_TINYSIGCOMP_STDAFX_H */ \ No newline at end of file
diff --git a/tinySIGCOMP/test/targetver.h b/tinySIGCOMP/test/targetver.h
new file mode 100644
index 0000000..4631d99
--- /dev/null
+++ b/tinySIGCOMP/test/targetver.h
@@ -0,0 +1,38 @@
+/*
+* Copyright (C) 2009 Mamadou Diop.
+* Copyright (C) 2012 Doubango Telecom <http://doubango.org>.
+*
+* This file is part of Open Source Doubango Framework.
+*
+* DOUBANGO is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* DOUBANGO is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with DOUBANGO.
+*
+*/
+#ifndef _TEST_TINYSIGCOMP_VER
+#define _TEST_TINYSIGCOMP_VER
+
+#if (defined(_WIN32) || defined(WIN32) || defined(_WIN32_WCE)) && !defined(__SYMBIAN32__)
+// The following macros define the minimum required platform. The minimum required platform
+// is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run
+// your application. The macros work by enabling all features available on platform versions up to and
+// including the version specified.
+
+// Modify the following defines if you have to target a platform prior to the ones specified below.
+// Refer to MSDN for the latest info on corresponding values for different platforms.
+#ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista.
+#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
+#endif
+
+#endif
+
+#endif /*_TEST_TINYSIGCOMP_VER*/ \ No newline at end of file
diff --git a/tinySIGCOMP/test/test.c b/tinySIGCOMP/test/test.c
new file mode 100644
index 0000000..b18c325
--- /dev/null
+++ b/tinySIGCOMP/test/test.c
@@ -0,0 +1,61 @@
+/*
+* Copyright (C) 2009 Mamadou Diop.
+* Copyright (C) 2012 Doubango Telecom <http://doubango.org>.
+*
+* This file is part of Open Source Doubango Framework.
+*
+* DOUBANGO is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* DOUBANGO is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with DOUBANGO.
+*
+*/
+
+#include "stdafx.h"
+#include "tsk_string.h"
+#include "tsk_debug.h"
+
+#include "tcomp_manager.h" /* TinySIGCOMP API functions. */
+
+#define STREAM_ID 1983
+#define IS_STREAM 0 // Using reliable transport
+#define MAX_BUFFER_SIZE 0xfff0
+
+#include "test_manager.h"
+#include "test_osc.h"
+#include "test_tortures.h"
+
+#define TEST_TORTURES 1
+#define TEST_MANAGER 0
+#define TEST_OSC 0
+
+#ifdef _WIN32_WCE
+int _tmain(int argc, _TCHAR* argv[])
+#else
+int main()
+#endif
+{
+#if TEST_TORTURES
+ test_tortures();
+#endif
+
+#if TEST_MANAGER
+ test_manager();
+#endif
+
+#if TEST_OSC
+ test_osc();
+#endif
+
+ getchar();
+
+ return 0;
+}
diff --git a/tinySIGCOMP/test/test.vcproj b/tinySIGCOMP/test/test.vcproj
new file mode 100644
index 0000000..e3e67a6
--- /dev/null
+++ b/tinySIGCOMP/test/test.vcproj
@@ -0,0 +1,389 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="test"
+ ProjectGUID="{0FC0B98C-E5BE-4AB4-A382-CBBEA5F09AFE}"
+ RootNamespace="test"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="&quot;$(SolutionDir)\src&quot;;..\..\thirdparties\win32\include;..\..\tinySAK\src"
+ PreprocessorDefinitions="DEBUG_LEVEL=DEBUG_LEVEL_INFO;WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ WarnAsError="true"
+ DebugInformationFormat="4"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="$(OutDir)\tinySAK.lib $(OutDir)\tinySIGCOMP.lib"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
+ OutputDirectory="&quot;$(SolutionDir)$(ConfigurationName)\wce&quot;"
+ IntermediateDirectory="&quot;$(SolutionDir)$(ConfigurationName)&quot;"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="1"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ ExecutionBucket="7"
+ Optimization="0"
+ AdditionalIncludeDirectories="&quot;$(SolutionDir)\src&quot;;&quot;$(DOUBANGO_HOME)\thirdparties\wince\include&quot;;&quot;$(DOUBANGO_HOME)\tinySAK\src&quot;"
+ PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;DEBUG;$(ARCHFAM);$(_ARCHFAM_);_CONSOLE"
+ MinimalRebuild="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ WarnAsError="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="$(OutDir)\tinySAK.lib $(OutDir)\tinySIGCOMP.lib"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="8"
+ EntryPointSymbol="mainWCRTStartup"
+ ResourceOnlyDLL="false"
+ TargetMachine="0"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCCodeSignTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <DeploymentTool
+ ForceDirty="-1"
+ RemoteDirectory=""
+ RegisterOutput="0"
+ AdditionalFiles=""
+ />
+ <DebuggerTool
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="&quot;$(SolutionDir)\src&quot;;&quot;$(DOUBANGO_HOME)\thirdparties\win32\include&quot;;&quot;$(DOUBANGO_HOME)\tinySAK\src&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="$(OutDir)\tinySAK.lib $(OutDir)\tinySIGCOMP.lib"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
+ OutputDirectory="&quot;$(SolutionDir)$(ConfigurationName)\wce&quot;"
+ IntermediateDirectory="&quot;$(SolutionDir)$(ConfigurationName)&quot;"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="1"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ ExecutionBucket="7"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="8"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="0"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCCodeSignTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <DeploymentTool
+ ForceDirty="-1"
+ RemoteDirectory=""
+ RegisterOutput="0"
+ AdditionalFiles=""
+ />
+ <DebuggerTool
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\stdafx.c"
+ >
+ </File>
+ <File
+ RelativePath=".\test.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\rfc4465_torture_tests.h"
+ >
+ </File>
+ <File
+ RelativePath=".\stdafx.h"
+ >
+ </File>
+ <File
+ RelativePath=".\targetver.h"
+ >
+ </File>
+ <File
+ RelativePath=".\test_manager.h"
+ >
+ </File>
+ <File
+ RelativePath=".\test_osc.h"
+ >
+ </File>
+ <File
+ RelativePath=".\test_tortures.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/tinySIGCOMP/test/test_manager.h b/tinySIGCOMP/test/test_manager.h
new file mode 100644
index 0000000..bfcdfea
--- /dev/null
+++ b/tinySIGCOMP/test/test_manager.h
@@ -0,0 +1,402 @@
+/*
+* Copyright (C) 2009 Mamadou Diop.
+* Copyright (C) 2012 Doubango Telecom <http://doubango.org>.
+*
+* This file is part of Open Source Doubango Framework.
+*
+* DOUBANGO is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* DOUBANGO is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with DOUBANGO.
+*
+*/
+#ifndef TEST_TINYSIGCOMP_MANAGER_H
+#define TEST_TINYSIGCOMP_MANAGER_H
+
+#define SIGCOMP_TESTS SIGCOMP_TESTS_CALL
+
+#define COMPARTMENT_ID_CLIENT "urn:uuid:2e5fdc76-00be-4314-8202-1116fa82a474"
+#define COMPARTMENT_ID_SERVER "urn:uuid:2e5fdc76-00be-4314-8202-1116fa82a475"
+#define SIGCOMP_DMS 8192//4096//8192//65536
+#define SIGCOMP_SMS 8192//4096//8192//65536
+#define SIGCOMP_CPB 64
+#define SIGCOMP_LOOP_COUNT 10
+#define USE_ONLY_ACKED_STATES tsk_false // Should be false unless you know what you're doing
+
+
+typedef struct sigcomp_test_s
+{
+ const char* description;
+ const char* msg;
+ tsk_bool_t is_client;
+ tsk_bool_t tobe_lost;
+}
+sigcomp_test_t;
+
+#define IS_CLIENT_YES tsk_true
+#define IS_CLIENT_NO tsk_false
+#define TOBE_LOST_YES tsk_true
+#define TOBE_LOST_NO tsk_false
+
+static const sigcomp_test_t SIGCOMP_TESTS_CALL[]=
+{
+ {
+ "REGISTER (client -> server)",
+ "REGISTER sip:doubango.org SIP/2.0\r\n"
+ "Via: SIP/2.0/UDP 192.168.0.11:64549;branch=z9hG4bK357158829;rport;comp=sigcomp;sigcomp-id=\"urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b\"\r\n"
+ "From: <sip:001@doubango.org>;tag=357151115\r\n"
+ "To: <sip:001@doubango.org>\r\n"
+ "Contact: <sip:001@192.168.0.11:64549;transport=udp;sigcomp-id=urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b>;expires=3600;+g.oma.sip-im;language=\"en,fr\";+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs\";+g.3gpp.cs-voice\r\n"
+ "Call-ID: 0473e8ff-2cd6-fada-70ab-ce8c9523db8c\r\n"
+ "CSeq: 5493 REGISTER\r\n"
+ "Content-Length: 0\r\n"
+ "Max-Forwards: 70\r\n"
+ "Allow: INVITE, ACK, CANCEL, BYE, MESSAGE, OPTIONS, NOTIFY, PRACK, UPDATE, REFER\r\n"
+ "Privacy: none\r\n"
+ "P-Access-Network-Info: ADSL;utran-cell-id-3gpp=00000000\r\n"
+ "User-Agent: IM-client/OMA1.0 Boghe/v2.0.121.757\r\n"
+ "P-Preferred-Identity: <sip:001@doubango.org>\r\n"
+ "Supported: path\r\n"
+ "\r\n",
+ IS_CLIENT_YES,
+ TOBE_LOST_NO
+ },
+ {
+ "200 REGISTER (server -> client)",
+ "SIP/2.0 200 OK\r\n"
+ "Via: SIP/2.0/UDP 192.168.0.11:64549;branch=z9hG4bK357158829;rport=64549;comp=sigcomp;sigcomp-id=\"urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b\"\r\n"
+ "Contact: <sip:001@192.168.0.11:54027;transport=udp;sigcomp-id=\"urn:uuid:7556d001-9ca7-41a3-80b0-5b7725a91cc4\">;expires=2761;language=\"en,fr\";+g.oma.sip-im;+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs\";+g.3gpp.cs-voice\r\n"
+ "Contact: <sip:001@192.168.0.11:50417;transport=udp;sigcomp-id=\"urn:uuid:6a8b493e-7dd8-45fb-b104-085723cbfb7b\">;expires=3025;language=\"en,fr\";+g.oma.sip-im;+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs\";+g.3gpp.cs-voice\r\n"
+ "Contact: <sip:001@192.168.0.11:50464;transport=udp;sigcomp-id=\"urn:uuid:c5534343-0fb1-41a8-b4bc-612f04913d2a\">;expires=3409;language=\"en,fr\";+g.oma.sip-im;+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs\";+g.3gpp.cs-voice\r\n"
+ "Contact: <sip:001@192.168.0.11:64547;transport=udp;sigcomp-id=\"urn:uuid:40ce6b6c-90b3-487d-8768-ae180a8153b1\">;expires=3487;language=\"en,fr\";+g.oma.sip-im;+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs\";+g.3gpp.cs-voice\r\n"
+ "Contact: <sip:001@192.168.0.11:64549;transport=udp;sigcomp-id=\"urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b\">;expires=3600;language=\"en,fr\";+g.oma.sip-im;+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs\";+g.3gpp.cs-voice\r\n"
+ "To: <sip:001@doubango.org>;tag=4345c04e\r\n"
+ "From: <sip:001@doubango.org>;tag=357151115\r\n"
+ "Call-ID: 0473e8ff-2cd6-fada-70ab-ce8c9523db8c\r\n"
+ "CSeq: 5493 REGISTER\r\n"
+ "Content-Length: 0\r\n"
+ "\r\n",
+ IS_CLIENT_NO,
+ TOBE_LOST_NO
+ },
+ {
+ "INVITE (client -> server)",
+ "INVITE sip:13131313@sip2sip.info SIP/2.0\r\n"
+ "Via: SIP/2.0/UDP 192.168.0.11:64549;branch=z9hG4bK357179240;rport;comp=sigcomp;sigcomp-id=\"urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b\"\r\n"
+ "From: <sip:001@doubango.org>;tag=357203612\r\n"
+ "To: <sip:13131313@sip2sip.info>\r\n"
+ "Contact: <sip:001@192.168.0.11:64549;transport=udp;sigcomp-id=urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b>;+g.oma.sip-im;language=\"en,fr\";+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel\"\r\n"
+ "Call-ID: da91debf-0033-dd9e-9c8d-e9018f825c8f\r\n"
+ "CSeq: 14727 INVITE\r\n"
+ "Content-Type: application/sdp\r\n"
+ "Content-Length: 989\r\n"
+ "Max-Forwards: 70\r\n"
+ "Accept-Contact: *;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel\"\r\n"
+ "P-Preferred-Service: urn:urn-7:3gpp-service.ims.icsi.mmtel\r\n"
+ "Allow: INVITE, ACK, CANCEL, BYE, MESSAGE, OPTIONS, NOTIFY, PRACK, UPDATE, REFER\r\n"
+ "Privacy: none\r\n"
+ "P-Access-Network-Info: ADSL;utran-cell-id-3gpp=00000000\r\n"
+ "User-Agent: IM-client/OMA1.0 Boghe/v2.0.121.757\r\n"
+ "Supported: 100rel\r\n"
+ "\r\n"
+ "v=0\r\n"
+ "o=doubango 1983 678901 IN IP4 192.168.0.11\r\n"
+ "s=-\r\n"
+ "c=IN IP4 192.168.0.11\r\n"
+ "t=0 0\r\n"
+ "m=audio 64550 RTP/SAVPF 0 8 97 101\r\n"
+ "c=IN IP4 192.168.0.11\r\n"
+ "a=ptime:20\r\n"
+ "a=silenceSupp:off - - - -\r\n"
+ "a=rtpmap:0 PCMU/8000/1\r\n"
+ "a=rtpmap:8 PCMA/8000/1\r\n"
+ "a=rtpmap:97 SPEEX/8000/1\r\n"
+ "a=rtpmap:101 telephone-event/8000/1\r\n"
+ "a=fmtp:101 0-16\r\n"
+ "a=sendrecv\r\n"
+ "a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:JaJaTgwhqSd2A7yQ842YPXASomulb95aX/Wa96T7\r\n"
+ "a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:T3yTUA2dVXTr6v0jb+E1TR3Btj4xP3mPeaAtQbeC\r\n"
+ "a=rtcp-mux\r\n"
+ "a=ssrc:3301897658 cname:ldjWoB60jbyQlR6e\r\n"
+ "a=ssrc:3301897658 mslabel:6994f7d1-6ce9-4fbd-acfd-84e5131ca2e2\r\n"
+ "a=ssrc:3301897658 label:Doubango\r\n"
+ "a=ice-ufrag:zNevtNKAGk6h7gJ\r\n"
+ "a=ice-pwd:YaOV3FlWUkBmifZ87SP51\r\n"
+ "a=mid:audio\r\n"
+ "a=candidate:CuNeg0Keh 1 udp 2130706431 192.168.0.11 64550 typ host\r\n"
+ "a=candidate:CuNeg0Keh 2 udp 2130706430 192.168.0.11 64551 typ host\r\n"
+ "a=candidate:srflxCuNe 1 udp 1694498815 88.179.39.5 64550 typ srflx\r\n"
+ "a=candidate:srflxCuNe 2 udp 1694498814 88.179.39.5 64551 typ srflx\r\n"
+ "\r\n",
+ IS_CLIENT_YES,
+ TOBE_LOST_NO
+ },
+ {
+ "100 TRYING (server -> client)",
+ "SIP/2.0 100 Trying\r\n"
+ "Via: SIP/2.0/UDP 192.168.0.11:64549;branch=z9hG4bK357179240;rport=64549;comp=sigcomp;sigcomp-id=\"urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b\"\r\n"
+ "To: <sip:13131313@sip2sip.info>\r\n"
+ "From: <sip:001@doubango.org>;tag=357203612\r\n"
+ "Call-ID: da91debf-0033-dd9e-9c8d-e9018f825c8f\r\n"
+ "CSeq: 14727 INVITE\r\n"
+ "Content-Length: 0\r\n"
+ "\r\n",
+ IS_CLIENT_NO,
+ TOBE_LOST_NO
+ },
+ {
+ "488 Not acceptable (server -> client)",
+ "SIP/2.0 488 Not acceptable here\r\n"
+ "Via: SIP/2.0/UDP 192.168.0.11:64549;branch=z9hG4bK357179240;rport=64549;comp=sigcomp;sigcomp-id=\"urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b\"\r\n"
+ "To: <sip:13131313@sip2sip.info>;tag=as6edf9ce2\r\n"
+ "From: <sip:001@doubango.org>;tag=357203612\r\n"
+ "Call-ID: da91debf-0033-dd9e-9c8d-e9018f825c8f\r\n"
+ "CSeq: 14727 INVITE\r\n"
+ "Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH\r\n"
+ "Server: Asterisk PBX\r\n"
+ "Supported: replaces, timer\r\n"
+ "Content-Length: 0\r\n"
+ "\r\n",
+ IS_CLIENT_NO,
+ TOBE_LOST_NO
+ },
+ {
+ "ACK (client -> server)",
+ "ACK sip:13131313@sip2sip.info SIP/2.0\r\n"
+ "Via: SIP/2.0/UDP 192.168.0.11:64549;branch=z9hG4bK357179240;rport;comp=sigcomp;sigcomp-id=\"urn:uuid:d343a50a-2961-4a25-93d8-4e0677b68e6b\"\r\n"
+ "From: <sip:001@doubango.org>;tag=357203612\r\n"
+ "To: <sip:13131313@sip2sip.info>;tag=as6edf9ce2\r\n"
+ "Call-ID: da91debf-0033-dd9e-9c8d-e9018f825c8f\r\n"
+ "CSeq: 14727 ACK\r\n"
+ "Content-Length: 0\r\n"
+ "Max-Forwards: 70\r\n"
+ "\r\n",
+ IS_CLIENT_YES,
+ TOBE_LOST_NO
+ }
+};
+
+static const sigcomp_test_t SIGCOMP_TESTS_SUBSCRIBE[]=
+{
+ {
+ "REGISTER (client -> server)",
+ "REGISTER sip:test.3gpp.com SIP/2.0\r\n"
+ "Via: SIP/2.0/TCP 156.141.115.182:62493;branch=z9hG4bK1403432184;rport;comp=sigcomp;sigcomp-id=\"urn:uuid:41147e2b-d2b9-47c1-a698-c732f6f036f4\"\r\n"
+ "From: <sip:johndoe@test.3gpp.com>;tag=1403421024\r\n"
+ "To: <sip:johndoe@test.3gpp.com>\r\n"
+ "Contact: <sip:johndoe@156.141.115.182:62493;transport=tcp;sigcomp-id=urn:uuid:41147e2b-d2b9-47c1-a698-c732f6f036f4>;expires=600000;+g.oma.sip-im;language=\"en,fr\";+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs\";+g.3gpp.cs-voice\r\n"
+ "Call-ID: afac1d20-b998-2720-6407-7bbbc77ace9b\r\n"
+ "CSeq: 27335 REGISTER\r\n"
+ "Content-Length: 0\r\n"
+ "Max-Forwards: 70\r\n"
+ "Authorization: Digest username=\"johndoe@test.3gpp.com\",realm=\"test.3gpp.com\",nonce=\"\",uri=\"sip:test.3gpp.com\",response=\"\"\r\n"
+ "Allow: INVITE, ACK, CANCEL, BYE, MESSAGE, OPTIONS, NOTIFY, PRACK, UPDATE, REFER\r\n"
+ "Privacy: none\r\n"
+ "P-Access-Network-Info: ADSL;utran-cell-id-3gpp=00000000\r\n"
+ "User-Agent: IM-client/OMA1.0 Boghe/v2.0.132.808\r\n"
+ "P-Preferred-Identity: <sip:johndoe@test.3gpp.com>\r\n"
+ "Supported: path\r\n"
+ "\r\n",
+ IS_CLIENT_YES,
+ TOBE_LOST_NO
+ },
+ {
+ "200 REGISTER (server -> client)",
+ "SIP/2.0 200 OK\r\n"
+ "Via: SIP/2.0/TCP 156.141.115.182:62493;branch=z9hG4bK1403432184;rport;comp=sigcomp;sigcomp-id=\"urn:uuid:41147e2b-d2b9-47c1-a698-c732f6f036f4\"\r\n"
+ "From: <sip:johndoe@test.3gpp.com>;tag=1403421024\r\n"
+ "To: <sip:johndoe@test.3gpp.com>;tag=T91612B6\r\n"
+ "Call-ID: afac1d20-b998-2720-6407-7bbbc77ace9b\r\n"
+ "CSeq: 27335 REGISTER\r\n"
+ "Contact: <sip:johndoe@156.141.115.182:62493;transport=tcp;sigcomp-id=urn:uuid:41147e2b-d2b9-47c1-a698-c732f6f036f4>;q=0.500;expires = 600000;+g.oma.sip-im;language=\"en,fr\";+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs\";+g.3gpp.cs-voice\r\n"
+ "Content-Length: 0\r\n"
+ "Date: Fri, 25 Jan 2013 09:20:31 GMT\r\n"
+ "P-Associated-URI: <sip:johndoe@test.3gpp.com>\r\n"
+ "Server: Agilent_IMS-SIP_Server/4.11.0.0\r\n"
+ "\r\n",
+ IS_CLIENT_NO,
+ TOBE_LOST_NO
+ },
+ {
+ "SUBSCRIBE-1 (client -> server)",
+ "SUBSCRIBE sip:johndoe@test.3gpp.com SIP/2.0\r\n"
+ "Via: SIP/2.0/TCP 156.141.115.182:62493;branch=z9hG4bK1403431204;rport;comp=sigcomp;sigcomp-id=\"urn:uuid:41147e2b-d2b9-47c1-a698-c732f6f036f4\"\r\n"
+ "From: <sip:johndoe@test.3gpp.com>;tag=1403442750\r\n"
+ "To: <sip:johndoe@test.3gpp.com>\r\n"
+ "Contact: <sip:johndoe@156.141.115.182:62493;transport=tcp;sigcomp-id=urn:uuid:41147e2b-d2b9-47c1-a698-c732f6f036f4>;+g.oma.sip-im;language=\"en,fr\"\r\n"
+ "Call-ID: 8c1a2260-c6e7-d415-2492-88493471d6fd\r\n"
+ "CSeq: 24466 SUBSCRIBE\r\n"
+ "Expires: 600000\r\n"
+ "Content-Length: 0\r\n"
+ "Max-Forwards: 70\r\n"
+ "Event: reg\r\n"
+ "Accept: application/reginfo+xml\r\n"
+ "Allow-Events: refer, presence, presence.winfo, xcap-diff, conference\r\n"
+ "Allow: INVITE, ACK, CANCEL, BYE, MESSAGE, OPTIONS, NOTIFY, PRACK, UPDATE, REFER\r\n"
+ "Privacy: none\r\n"
+ "P-Access-Network-Info: ADSL;utran-cell-id-3gpp=00000000\r\n"
+ "User-Agent: IM-client/OMA1.0 Boghe/v2.0.132.808\r\n"
+ "P-Preferred-Identity: <sip:johndoe@test.3gpp.com>\r\n"
+ "\r\n",
+ IS_CLIENT_YES,
+ TOBE_LOST_NO
+ },
+ {
+ "SUBSCRIBE-2 (client -> server)",
+ "SUBSCRIBE sip:johndoe@test.3gpp.com SIP/2.0\r\n"
+ "Via: SIP/2.0/TCP 156.141.115.182:62493;branch=z9hG4bK1403422374;rport;comp=sigcomp;sigcomp-id=\"urn:uuid:41147e2b-d2b9-47c1-a698-c732f6f036f4\"\r\n"
+ "From: <sip:johndoe@test.3gpp.com>;tag=1403431575\r\n"
+ "To: <sip:johndoe@test.3gpp.com>\r\n"
+ "Contact: <sip:johndoe@156.141.115.182:62493;transport=tcp;sigcomp-id=urn:uuid:41147e2b-d2b9-47c1-a698-c732f6f036f4>;+g.oma.sip-im;language=\"en,fr\"\r\n"
+ "Call-ID: 05952487-8f39-ddbd-ebac-72a3f33eaf8d\r\n"
+ "CSeq: 32393 SUBSCRIBE\r\n"
+ "Expires: 600000\r\n"
+ "Content-Length: 0\r\n"
+ "Max-Forwards: 70\r\n"
+ "Event: message-summary\r\n"
+ "Accept: application/simple-message-summary\r\n"
+ "Allow-Events: refer, presence, presence.winfo, xcap-diff, conference\r\n"
+ "Allow: INVITE, ACK, CANCEL, BYE, MESSAGE, OPTIONS, NOTIFY, PRACK, UPDATE, REFER\r\n"
+ "Privacy: none\r\n"
+ "P-Access-Network-Info: ADSL;utran-cell-id-3gpp=00000000\r\n"
+ "User-Agent: IM-client/OMA1.0 Boghe/v2.0.132.808\r\n"
+ "P-Preferred-Identity: <sip:johndoe@test.3gpp.com>\r\n"
+ "\r\n",
+ IS_CLIENT_YES,
+ TOBE_LOST_NO
+ },
+};
+
+
+
+
+static int handle_nack(tcomp_result_t *nack, tcomp_manager_handle_t* manager)
+{
+ if(nack->isNack){
+ tsk_size_t nack_info_size;
+ if(nack->nack_info && (nack_info_size = tcomp_buffer_getSize(nack->nack_info))){
+ char buff[MAX_BUFFER_SIZE];
+ tcomp_result_t* result = tcomp_result_create();
+ tcomp_result_setOutputBuffer(result, buff, sizeof(buff), IS_STREAM, STREAM_ID);
+ tcomp_manager_decompress(manager, tcomp_buffer_getBuffer(nack->nack_info), nack_info_size, result);
+ TSK_OBJECT_SAFE_FREE(result);
+ return 0;
+ }
+ }
+ return -1;
+}
+
+static int test_manager()
+{
+ size_t i, j;
+ size_t outLen;
+ const sigcomp_test_t* test;
+
+ tcomp_manager_handle_t *client = tsk_null, *server = tsk_null;
+ tcomp_result_t *result_client = tsk_null, *result_server = tsk_null;
+
+ /* temporary buffers --> will hold compression/decompression results */
+ char buff_client[MAX_BUFFER_SIZE];
+ char buff_server[MAX_BUFFER_SIZE];
+
+ /* Managers */
+ client = tcomp_manager_create();
+ server = tcomp_manager_create();
+
+ /* Add SIP/Presence dictionnaries */
+ tcomp_manager_addSipSdpDictionary(client);
+ tcomp_manager_addPresenceDictionary(client);
+ tcomp_manager_addSipSdpDictionary(server);
+ tcomp_manager_addPresenceDictionary(server);
+
+ /* Results --> it is recomanded to use one result struct for each manager */
+ result_client = tcomp_result_create();
+ result_server = tcomp_result_create();
+
+ /* Sets compartment Ids */
+ tcomp_result_setCompartmentId(result_client, COMPARTMENT_ID_CLIENT, strlen(COMPARTMENT_ID_CLIENT));
+ tcomp_result_setCompartmentId(result_server, COMPARTMENT_ID_SERVER, strlen(COMPARTMENT_ID_SERVER));
+
+ /* Set DMS and SMS */
+ tcomp_manager_setDecompression_Memory_Size(client, SIGCOMP_DMS);
+ tcomp_manager_setDecompression_Memory_Size(server, SIGCOMP_DMS);
+ tcomp_manager_setCycles_Per_Bit(client, SIGCOMP_CPB);
+ tcomp_manager_setCycles_Per_Bit(server, SIGCOMP_CPB);
+ tcomp_manager_setState_Memory_Size(client, SIGCOMP_SMS);
+ tcomp_manager_setState_Memory_Size(server, SIGCOMP_SMS);
+
+ /* Set wehther to use only ACKed states (should be false) */
+ tcomp_manager_setUseOnlyACKedStates(client, USE_ONLY_ACKED_STATES);
+ tcomp_manager_setUseOnlyACKedStates(server, USE_ONLY_ACKED_STATES);
+
+ tcomp_result_setOutputBuffer(result_client, buff_client, sizeof(buff_client), IS_STREAM, STREAM_ID);
+ tcomp_result_setOutputBuffer(result_server, buff_server, sizeof(buff_server), IS_STREAM, STREAM_ID);
+
+ for(j = 0; j < SIGCOMP_LOOP_COUNT; ++j)
+ {
+ for(i = 0; i < sizeof(SIGCOMP_TESTS)/sizeof(SIGCOMP_TESTS[0]); ++i)
+ {
+ test = &SIGCOMP_TESTS[i];
+
+ // compress
+ outLen = tcomp_manager_compress(
+ test->is_client ? client : server,
+ test->is_client ? COMPARTMENT_ID_CLIENT : COMPARTMENT_ID_SERVER,
+ tsk_strlen((test->is_client ? COMPARTMENT_ID_CLIENT : COMPARTMENT_ID_SERVER)),
+ test->msg,
+ tsk_strlen(test->msg),
+ test->is_client ? buff_client : buff_server,
+ test->is_client ? sizeof(buff_client) : sizeof(buff_server),
+ IS_STREAM);
+ if(!outLen)
+ {
+ TSK_DEBUG_ERROR("Failed to compress %s message", test->description);
+ goto bail;
+ }
+ TSK_DEBUG_INFO("==%s compression ratio = %f%%==", test->description, ((float)tsk_strlen(test->msg) / (float)outLen) * 100.f);
+
+ // decompress
+ if(!test->tobe_lost)
+ {
+ tsk_bool_t server_decompress = test->is_client; // decompress using server manager if compressed using client mgr
+ memset(server_decompress ? buff_server : buff_client, '\0', server_decompress ? sizeof(buff_server) : sizeof(buff_client));
+ outLen = tcomp_manager_decompress(server_decompress ? server : client, server_decompress ? buff_client : buff_server, outLen, server_decompress ? result_server : result_client);
+ if(!outLen)
+ {
+ TSK_DEBUG_ERROR("Failed to decompress %s message", test->description);
+ // pass NACK to remote peer (sendto())
+ if(handle_nack(server_decompress ? result_server : result_client, server_decompress ? client : server) != 0){
+ goto bail;
+ }
+ }
+ tcomp_manager_provideCompartmentId(server_decompress ? server : client, server_decompress ? result_server : result_client); // save states
+ TSK_DEBUG_INFO("Decompressed message:\n%s = %s", test->description, server_decompress ? buff_server : buff_client);
+ }
+ }// for (i < count(SIGCOMP_TESTS))
+ } // for (j < SIGCOMP_LOOP_COUNT)
+
+bail:
+ // Close compartments
+ tcomp_manager_closeCompartment(client, COMPARTMENT_ID_CLIENT, tsk_strlen(COMPARTMENT_ID_CLIENT));
+ tcomp_manager_closeCompartment(server, COMPARTMENT_ID_SERVER, tsk_strlen(COMPARTMENT_ID_SERVER));
+
+ // Delete Results
+ TSK_OBJECT_SAFE_FREE(result_client);
+ TSK_OBJECT_SAFE_FREE(result_server);
+
+ // Delete managers
+ TSK_OBJECT_SAFE_FREE(client);
+ TSK_OBJECT_SAFE_FREE(server);
+
+ return 0;
+}
+
+#endif /* TEST_TINYSIGCOMP_MANAGER_H */
diff --git a/tinySIGCOMP/test/test_osc.h b/tinySIGCOMP/test/test_osc.h
new file mode 100644
index 0000000..d63ba5b
--- /dev/null
+++ b/tinySIGCOMP/test/test_osc.h
@@ -0,0 +1,27 @@
+/*
+* Copyright (C) 2009 Mamadou Diop.
+* Copyright (C) 2012 Doubango Telecom <http://doubango.org>.
+*
+* This file is part of Open Source Doubango Framework.
+*
+* DOUBANGO is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* DOUBANGO is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with DOUBANGO.
+*
+*/
+#ifndef TEST_TINYSIGCOMP_OSC_H
+#define TEST_TINYSIGCOMP_OSC_H
+
+
+
+
+#endif /* TEST_TINYSIGCOMP_OSC_H */
diff --git a/tinySIGCOMP/test/test_tortures.h b/tinySIGCOMP/test/test_tortures.h
new file mode 100644
index 0000000..c1222b6
--- /dev/null
+++ b/tinySIGCOMP/test/test_tortures.h
@@ -0,0 +1,1146 @@
+/*
+* Copyright (C) 2009 Mamadou Diop.
+* Copyright (C) 2012 Doubango Telecom <http://doubango.org>.
+*
+* This file is part of Open Source Doubango Framework.
+*
+* DOUBANGO is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* DOUBANGO is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with DOUBANGO.
+*
+*/
+#ifndef TEST_TINYSIGCOMP_TORTURES_H
+#define TEST_TINYSIGCOMP_TORTURES_H
+
+#define COMPARTMENT_ID "urn:uuid:2e5fdc76-00be-4314-8202-1116fa82a473"
+#define COMPARTMENT_ID_0 "urn:uuid:0"
+#define COMPARTMENT_ID_1 "urn:uuid:1"
+#define COMPARTMENT_ID_2 "urn:uuid:2"
+
+#define OUTPUT_BUFFER_SIZE 2000
+// Be careful before changing these values as not all tests accept any
+#define DMS 16384 //2048//4096//8192//65536
+#define SMS 2048 //2048//4096//8192//65536
+#define CPB 16 // 16//32//64//128
+
+#define RUN_TEST_LOOP 1
+
+#define RUN_TEST_ALL 1
+#define RUN_TEST_NO 68
+
+#define IS_STREAM_YES 1
+#define IS_STREAM_NO 0
+
+#define XFAIL_YES 1
+#define XFAIL_NO 0
+
+#include "rfc4465_torture_tests.h"
+
+#include <assert.h>
+
+struct_torture_test tests[] =
+{
+ { //*** 0***
+ "A.1.1. Bit Manipulation",
+ RFC4465_A_1_1__Bit_Manipulation,
+ 170,
+ {8, "\x01\x50\x00\x00\xfe\xbf\x00\x00"},
+ 22,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ { //*** 1***
+ "A.1.2(.1) Arithmetic",
+ RFC4465_A_1_2__Arithmetic_1,
+ 174,
+ {8, "\x00\x00\x00\x00\x00\x00\x00\x04"},
+ 25,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ { //*** 2***
+ "A.1.2(.2) Arithmetic",
+ RFC4465_A_1_2__Arithmetic_2,
+ 174,
+ {11, "DIV_BY_ZERO"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ { //*** 3***
+ "A.1.2(.3) Arithmetic",
+ RFC4465_A_1_2__Arithmetic_3,
+ 174,
+ {11, "DIV_BY_ZERO"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //*** 4***
+ "A.1.3. Sorting",
+ RFC4465_A_1_3__Sorting,
+ 223,
+ {45, "\x46\x6f\x72\x64\x2c\x20\x79\x6f\x75\x27\x72\x65\x20\x74\x75\x72\x6e\x69\x6e\x67"
+ "\x20\x69\x6e\x74\x6f\x20\x61\x20\x70\x65\x6e\x67\x75\x69\x6e\x2e\x20\x53\x74\x6f"
+ "\x70\x20\x69\x74\x2e"},
+ 371,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //*** 5**
+ "A.1.4. SHA-1",
+ RFC4465_A_1_4__SHA1,
+ 138,
+ {40, "\xa9\x99\x3e\x36\x47\x06\x81\x6a\xba\x3e\x25\x71\x78\x50\xc2\x6c\x9c\xd0\xd8\x9d"
+ "\x84\x98\x3e\x44\x1c\x3b\xd2\x6e\xba\xae\x4a\xa1\xf9\x51\x29\xe5\xe5\x46\x70\xf1"
+ "\x12\xff\x34\x7b\x4f\x27\xd6\x9e\x1f\x32\x8e\x6f\x4b\x55\x73\xe3\x66\x6e\x12\x2f"
+ "\x4f\x46\x04\x52\xeb\xb5\x63\x93\x4f\x46\x04\x52\xeb\xb5\x63\x93\x4f\x46\x04\x52"},
+ 17176,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //*** 6**
+ "A.1.5.(1) LOAD and MULTILOAD",
+ RFC4465_A_1_5__LOAD_and_MULTILOAD_1,
+ 58,
+ {16, "\x00\x84\x00\x84\x00\x86\x00\x86\x00\x2a\x00\x80\x00\x2a\x00\x2a"},
+ 36,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //*** 7**
+ "A.1.5.(2) LOAD and MULTILOAD",
+ RFC4465_A_1_5__LOAD_and_MULTILOAD_2,
+ 58,
+ {21, "MULTILOAD_OVERWRITTEN"},
+ 36,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //*** 8**
+ "A.1.5.(3) LOAD and MULTILOAD",
+ RFC4465_A_1_5__LOAD_and_MULTILOAD_3,
+ 58,
+ {21, "MULTILOAD_OVERWRITTEN"},
+ 36,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 9**
+ "A.1.6. COPY",
+ RFC4465_A_1_6__COPY,
+ 60,
+ {125, "\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40"
+ "\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x41\x41\x41\x41\x41\x41\x41\x41"
+ "\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
+ "\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
+ "\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
+ "\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x55\x41"
+ "\x42\x43\x44\x43\x44"},
+ 365,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 10**
+ "A.1.7. COPY-LITERAL and COPY-OFFSET",
+ RFC4465_A_1_7__COPY_LITERAL_and_COPY_OFFSET,
+ 100,
+ {34, "\x41\x41\x41\x41\x00\x61\x41\x41\x41\x41\x49\x4a\x41\x42\x43\x44\x49\x4a\x41\x42"
+ "\x00\x4a\x00\x4e\x47\x48\x48\x45\x46\x47\x47\x48\x45\x46"},
+ 216,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 11**
+ "A.1.8. MEMSET",
+ RFC4465_A_1_8__MEMSET,
+ 27,
+ {16, "\x80\x40\x4f\x5e\x6d\x7c\x8b\x9a\xa9\xb8\xc7\xd6\xe5\xf4\x03\x12"},
+ 166,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 12**
+ "A.1.9.(1) CRC",
+ RFC4465_A_1_9__CRC_1,
+ 29,
+ {0, ""},
+ 95,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 13**
+ "A.1.9.(2) CRC",
+ RFC4465_A_1_9__CRC_2,
+ 29,
+ {14, "USER_REQUESTED"},
+ 95,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 14**
+ "A.1.10. INPUT-BITS",
+ RFC4465_A_1_10__INPUT_BITS,
+ 28,
+ {16, "\x00\x00\x00\x02\x00\x02\x00\x13\x00\x00\x00\x03\x00\x1a\x00\x38"},
+ 66,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 15**
+ "A.1.11. INPUT-HUFFMAN",
+ RFC4465_A_1_11__INPUT_HUFFMAN,
+ 39,
+ {16, "\x00\x00\x00\x03\x00\x08\x04\xd7\x00\x02\x00\x03\x03\x99\x30\xfe"},
+ 84,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 16**
+ "A.1.12. INPUT-BYTES",
+ RFC4465_A_1_12__INPUT_BYTES,
+ 72,
+ {39, "\x00\x00\x93\x2e\x00\x01\xb1\x66\xd8\x6f\xb1\x00\x1a\x2b\x00\x03\x9a\x97\x34\xd8"
+ "\x00\x07\x00\x01\x33\x87\x4e\x00\x08\xdc\x96\x51\xb5\xdc\x96\x00\x59\x9d\x6a"},
+ 130,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 17**
+ "A.1.13. Stack Manipulation",
+ RFC4465_A_1_13__Stack_Manipulation,
+ 324,
+ {16, "\x00\x03\x00\x02\x00\x01\x00\x42\x00\x42\x00\x00\x00\x01\x00\x01"},
+ 40,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 18**
+ "A.1.14. Program Flow",
+ RFC4465_A_1_14__Program_Flow,
+ 66,
+ {20, "\x00\x01\x01\x02\x02\x03\x03\x04\x04\x05\x05\x06\x07\x07\x07\x08\x08\x08\x09\x09"},
+ 131,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 19**
+ "A.1.15.(1) State Creation",
+ RFC4465_A_1_15__State_Creation_1,
+ 152,
+ {0, ""},
+ 23,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 20 (requires previsous test)**
+ "A.1.15.(2) State Creation",
+ RFC4465_A_1_15__State_Creation_2,
+ 152,
+ {0, ""},
+ 14,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 21 (requires previsous test)**
+ "A.1.15.(3) State Creation",
+ RFC4465_A_1_15__State_Creation_3,
+ 152,
+ {0, ""},
+ 24,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 22 (requires previsous test)**
+ "A.1.15.(4) State Creation", // FAIL
+ RFC4465_A_1_15__State_Creation_4,
+ 153,
+ {23, "INVALID_STATE_ID_LENGTH"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 23 (requires previsous test)**
+ "A.1.15.(5) State Creation", // FAIL
+ RFC4465_A_1_15__State_Creation_5,
+ 153,
+ {23, "INVALID_STATE_ID_LENGTH"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 24 (requires previsous test)**
+ "A.1.15.(6) State Creation",
+ RFC4465_A_1_15__State_Creation_6,
+ 153,
+ {0, ""},
+ 23,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 25 (requires previsous test)**
+ "A.1.15.(7) State Creation",
+ RFC4465_A_1_15__State_Creation_7,
+ 152,
+ {0, ""},
+ 34,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 26 (requires previsous test)**
+ "A.1.15.(8) State Creation",
+ RFC4465_A_1_15__State_Creation_8,
+ 153,
+ {0, ""},
+ 46,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 27 (requires previsous test)**
+ "A.1.15.(9) State Creation",
+ RFC4465_A_1_15__State_Creation_9,
+ 153,
+ {0, ""},
+ 47,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+#if 0 // FIXME: http://code.google.com/p/doubango/issues/detail?id=181
+ ,
+ {
+ //** 23 (requires previsous test)**
+ "A.1.15.(10) State Creation",
+ RFC4465_A_1_15__State_Creation_10,
+ 153,
+ {0, ""},
+ 60,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+#endif
+ ,
+ {
+ //** 28**
+ "A.1.16.(0) STATE-ACCESS {Set up bytecode}",
+ RFC4465_A_1_16__STATE_ACCESS__SETUP,
+ 403,
+ {0, ""},
+ 17,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 29 (requires previous test)**
+ "A.1.16.(1) STATE-ACCESS",
+ RFC4465_A_1_16__STATE_ACCESS_1,
+ 408,
+ {4, "\x74\x65\x73\x74"},
+ 26,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 30 (requires previous test)**
+ "A.1.16.(2) STATE-ACCESS",
+ RFC4465_A_1_16__STATE_ACCESS_2,
+ 408,
+ {4, "\x74\x65\x73\x74"},
+ 15,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 31 (requires previous test)**
+ "A.1.16.(3) STATE-ACCESS",
+ RFC4465_A_1_16__STATE_ACCESS_3,
+ 408,
+ {15, "STATE_NOT_FOUND"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 32 (requires previous test)**
+ "A.1.16.(4) STATE-ACCESS",
+ RFC4465_A_1_16__STATE_ACCESS_4,
+ 408,
+ {15, "STATE_NOT_FOUND"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 33 (requires previous test)**
+ "A.1.16.(5) STATE-ACCESS",
+ RFC4465_A_1_16__STATE_ACCESS_5,
+ 408,
+ {15, "STATE_TOO_SHORT"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 34**
+ "A.2.1.(1) Useful Values",
+ RFC4465_A_2_1__Useful_Values_1,
+ 93,
+ {0, ""},
+ 966,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 35 (Requires previous test)**
+ "A.2.1.(2) Useful Values",
+ RFC4465_A_2_1__Useful_Values_2,
+ 9,
+ {0, ""},
+ (1072 << 4),
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 36 (Requires previous test)**
+ "A.2.1.(3) Useful Values",
+ RFC4465_A_2_1__Useful_Values_3,
+ 9,
+ {16, "CYCLES_EXHAUSTED"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 37 (Requires previous test)**
+ "A.2.1.(4) Useful Values",
+ RFC4465_A_2_1__Useful_Values_4,
+ 9,
+ {8, "SEGFAULT"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 38**
+ "A.2.2. Cycles Checking",
+ RFC4465_A_2_2__Cycles_Checking,
+ 29,
+ {16, "CYCLES_EXHAUSTED"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 39**
+ "A.2.3.(1) Message-based Transport",
+ RFC4465_A_2_3_Message_based_Transport_1,
+ 1,
+ {17, "MESSAGE_TOO_SHORT"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 40**
+ "A.2.3.(2) Message-based Transport",
+ RFC4465_A_2_3_Message_based_Transport_2,
+ 2,
+ {17, "MESSAGE_TOO_SHORT"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 41**
+ "A.2.3.(3) Message-based Transport",
+ RFC4465_A_2_3_Message_based_Transport_3,
+ 17,
+ {25, "decompression_memory_size"},
+ 5,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 42**
+ "A.2.3.(4) Message-based Transport",
+ RFC4465_A_2_3_Message_based_Transport_4,
+ 17,
+ {17, "MESSAGE_TOO_SHORT"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 43**
+ "A.2.3.(5) Message-based Transport",
+ RFC4465_A_2_3_Message_based_Transport_5,
+ 17,
+ {21, "INVALID_CODE_LOCATION"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 44**
+ "A.2.3.(6) Message-based Transport",
+ RFC4465_A_2_3_Message_based_Transport_6,
+ 17,
+ {25, "decompression_memory_size"},
+ 5,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 45**
+ "A.2.4.(1&2) Stream-based Transport",
+ RFC4465_A_2_4_Stream_based_Transport_1,
+ 67,
+ {25, "decompression_memory_size"},
+ 11,
+ IS_STREAM_YES,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 46**
+ "A.2.4.(3) Stream-based Transport",
+ RFC4465_A_2_4_Stream_based_Transport_3,
+ 3,
+ {17, "MESSAGE_TOO_SHORT"},
+ 0,
+ IS_STREAM_YES,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 47**
+ "A.2.4.(4) Stream-based Transport",
+ RFC4465_A_2_4_Stream_based_Transport_4,
+ 4,
+ {17, "MESSAGE_TOO_SHORT"},
+ 0,
+ IS_STREAM_YES,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 48**
+ "A.2.4.(5) Stream-based Transport",
+ RFC4465_A_2_4_Stream_based_Transport_5,
+ 30,
+ {17, "MESSAGE_TOO_SHORT"},
+ 0,
+ IS_STREAM_YES,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 49**
+ "A.2.4.(5.1) Stream-based Transport (cleanup)",
+ "\xff\xff",
+ 2,
+ {14, "INTERNAL_ERROR"},
+ 0,
+ IS_STREAM_YES,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 50**
+ "A.2.4.(6) Stream-based Transport",
+ RFC4465_A_2_4_Stream_based_Transport_6,
+ 29,
+ {21, "INVALID_CODE_LOCATION"},
+ 0,
+ IS_STREAM_YES,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 51**
+ "A.2.4.(6.1) Stream-based Transport (cleanup)",
+ "\xff\xff",
+ 2,
+ {14, "INTERNAL_ERROR"},
+ 0,
+ IS_STREAM_YES,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 52**
+ "A.2.5.(1) Input Past the End of a Message",
+ RFC4465_A_2_5__Input_Past_the_End_of_a_Message_1,
+ 59,
+ {3, "\x68\x69\x21"},
+ 23,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 53**
+ "A.2.5.(2) Input Past the End of a Message",
+ RFC4465_A_2_5__Input_Past_the_End_of_a_Message_2,
+ 58,
+ {14, "USER_REQUESTED"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 54**
+ "A.3.1.(1) SigComp Feedback Mechanism",
+ RFC4465_A_3_1__SigComp_Feedback_Mechanism_1,
+ 84,
+ {0, ""},
+ 52,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 55**
+ "A.3.1.(2) SigComp Feedback Mechanism",
+ RFC4465_A_3_1__SigComp_Feedback_Mechanism_2,
+ 84,
+ {0, ""},
+ 179,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 56 (SMS MUST be 2048)**
+ "A.3.2.(1) State Memory Management",
+ RFC4465_A_3_2__State_Memory_Management_1,
+ 446,
+ {0, ""},
+ 811,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 57 (Requires previous test)**
+ "A.3.2.(2) State Memory Management",
+ RFC4465_A_3_2__State_Memory_Management_2,
+ 446,
+ {0, ""},
+ 2603,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 58 (Requires previous test)**
+ "A.3.2.(3) State Memory Management",
+ RFC4465_A_3_2__State_Memory_Management_3,
+ 446,
+ {0, ""},
+ 811,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 59 (Requires previous test)**
+ "A.3.2.(4) State Memory Management",
+ RFC4465_A_3_2__State_Memory_Management_4,
+ 446,
+ {0, ""},
+ 1805,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 60 (Requires previous test)**
+ "A.3.2.(5) State Memory Management",
+ RFC4465_A_3_2__State_Memory_Management_5,
+ 446,
+ {15, "STATE_NOT_FOUND"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 61 (Requires previous test)**
+ "A.3.2.(6) State Memory Management",
+ RFC4465_A_3_2__State_Memory_Management_6,
+ 446,
+ {0, ""},
+ 2057,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 62 (Requires previous test)**
+ "A.3.2.(7) State Memory Management",
+ RFC4465_A_3_2__State_Memory_Management_7,
+ 446,
+ {0, ""},
+ 1993,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 63**
+ "A.3.3.(1) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_1,
+ 437,
+ {0, ""},
+ 1809,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID_0
+ }
+ ,
+ {
+ //** 64 (requires previsous test)**
+ "A.3.3.(2) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_2,
+ 437,
+ {0, ""},
+ 1809,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID_1
+ }
+ ,
+ {
+ //** 65 (requires previsous test)**
+ "A.3.3.(3) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_3,
+ 437,
+ {0, ""},
+ 1809,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID_2
+ }
+ ,
+ {
+ //** 66 (requires previsous test)**
+ "A.3.3.(4) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_4,
+ 437,
+ {0, ""},
+ 1993,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID_0
+ }
+ ,
+ {
+ //** 67 (requires previsous test)**
+ "A.3.3.(5) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_5,
+ 437,
+ {0, ""},
+ 1994,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID_1
+ }
+ ,
+ {
+ //** 68 (requires previsous test)**
+ "A.3.3.(6) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_6,
+ 437,
+ {0, ""},
+ 1804,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID_2
+ }
+ ,
+ {
+ //** 69 (requires previsous test)**
+ "A.3.3.(7) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_7,
+ 437,
+ {15, "STATE_NOT_FOUND"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID_0
+ }
+ ,
+ {
+ //** 70 (requires previsous test)**
+ "A.3.3.(8) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_8,
+ 437,
+ {15, "STATE_NOT_FOUND"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID_1
+ }
+ ,
+ {
+ //** 71 (requires previsous test)**
+ "A.3.3.(9) Multiple Compartments",
+ RFC4465_A_3_3__Multiple_Compartments_9,
+ 437,
+ {15, "STATE_NOT_FOUND"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ COMPARTMENT_ID_2
+ }
+ ,
+ {
+ //** 72**
+ "A.3.4. Accessing RFC 3485 State",
+ RFC4465_A_3_4__Accessing_RFC_3485_State,
+ 61,
+ {3, "\x53\x49\x50"},
+ 11,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ COMPARTMENT_ID
+ }
+ ,
+ {
+ //** 73**
+ "A.3.5.(1) Bytecode State Creation",
+ RFC4465_A_3_5__Bytecode_State_Creation_1,
+ 74,
+ {2, "\x4f\x4b"},
+ 66,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ "Comp-id:A.3.5. Bytecode State Creation"
+ }
+ ,
+ {
+ //** 74**
+ "A.3.5.(2) Bytecode State Creation",
+ RFC4465_A_3_5__Bytecode_State_Creation_2,
+ 8,
+ {3, "\x4f\x4b\x31"},
+ 7,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ "Comp-id:A.3.5. Bytecode State Creation"
+ }
+ ,
+ {
+ //** 75**
+ "A.3.5.(3) Bytecode State Creation",
+ RFC4465_A_3_5__Bytecode_State_Creation_3,
+ 13,
+ {3, "\x4f\x4b\x32"},
+ 5,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ "Comp-id:A.3.5. Bytecode State Creation"
+ }
+ ,
+ {
+ //** 76**
+ "A.3.5.(4) Bytecode State Creation",
+ RFC4465_A_3_5__Bytecode_State_Creation_4,
+ 7,
+ {3, "\x00\x00\x32"},
+ 5,
+ IS_STREAM_NO,
+ XFAIL_NO,
+ "Comp-id:A.3.5. Bytecode State Creation"
+ }
+ ,
+ {
+ //** 77**
+ "A.3.5.(5) Bytecode State Creation",
+ RFC4465_A_3_5__Bytecode_State_Creation_5,
+ 7,
+ {15, "STATE_NOT_FOUND"},
+ 0,
+ IS_STREAM_NO,
+ XFAIL_YES,
+ "Comp-id:A.3.5. Bytecode State Creation"
+ }
+};
+
+int startsWith(const char* buffer1, size_t size1, const char* buffer2, size_t size2)
+{
+ size_t i;
+
+ if(!size2) return 1;
+ if(size1 < size2) return 0;
+
+ for(i = 0; i< size2; i++)
+ {
+ if(buffer1[i] != buffer2[i])
+ {
+ return 0;
+ }
+ }
+ return 1;
+}
+
+static const int16_t wordForEndianess = 0x4321;
+static tsk_bool_t isBigEndian;
+
+static TCOMP_INLINE uint16_t HostToNetworkShort(uint16_t x)
+{
+ return isBigEndian ? (x) : ((((uint16_t)(x) & 0xff00) >> 8) |
+ (((uint16_t)(x) & 0x00ff) << 8));
+}
+
+static void checkResult(const struct_torture_test* test, const tcomp_result_t *result, const void* output_ptr, tsk_size_t output_size)
+{
+ tsk_bool_t ok_cycles = (result->consumed_cycles == test->xcycles);
+ tsk_bool_t ok_output = tsk_true;
+
+ if(tsk_striequals(test->xoutput.ptr, "decompression_memory_size")){
+ printf("xoutput (decompression_memory_size): %s\n", (HostToNetworkShort(DMS) == *((uint16_t*)output_ptr)) ? "YES" : "NO");
+ }
+ else{
+ ok_output = startsWith(output_ptr, output_size, test->xoutput.ptr, test->xoutput.size);
+ printf("xoutput: %s\n", ok_output ? "YES" : "NO");
+ }
+ printf("xcycles: %s\n", ok_cycles ? "YES" : "NO");
+ if(!ok_cycles || !ok_output){
+ assert(test->xfail && result->isNack); // failure must be expected and NACK have to be present
+ assert(tsk_strequals(test->xoutput.ptr, tcomp_nackinfo_get_description(result->nack_info))); // returned NACK and expected one must be equal
+ }
+}
+
+static int test_tortures()
+{
+ size_t i, start, end;
+ size_t res_size = 0;
+ char buffer[OUTPUT_BUFFER_SIZE];
+
+#if RUN_TEST_LOOP
+ for(;;)
+#endif
+ {
+ tcomp_manager_handle_t *manager = tcomp_manager_create();
+ tcomp_result_t *result = tcomp_result_create();
+
+ isBigEndian = ((*(int8_t *)&wordForEndianess) != 0x21);
+
+ /* Add SIP dictionary. */
+ tcomp_manager_addSipSdpDictionary(manager);
+
+ /* Add Presence dictionary. */
+ tcomp_manager_addPresenceDictionary(manager);
+
+ /* Set decompression size. */
+ tcomp_manager_setDecompression_Memory_Size(manager, DMS);
+ /* Set state memory size. */
+ tcomp_manager_setState_Memory_Size(manager, SMS);
+ /* Set Cycles Per Bit */
+ tcomp_manager_setCycles_Per_Bit(manager, CPB);
+
+#if RUN_TEST_ALL
+ start = 0, end = sizeof(tests)/sizeof(tests[0]);
+#else
+ start = RUN_TEST_NO, end = RUN_TEST_NO + 1;
+#endif
+
+ for(i = start; i<end; i++){
+ printf("=== Testing %s ===\n\n", tests[i].section_name);
+
+ if(tests[i].stream){
+ tcomp_result_setOutputTCPBuffer(result, buffer, OUTPUT_BUFFER_SIZE, STREAM_ID);
+ }
+ else{
+ tcomp_result_setOutputUDPBuffer(result, buffer, OUTPUT_BUFFER_SIZE);
+ }
+
+ /* Performs decompression */
+ res_size = tcomp_manager_decompress(manager, tests[i].bytecode, tests[i].bytecode_size, result);
+ if(result->isNack){
+ printf("\n==WE GOT A NACK\n\n");
+ //sendto(tcomp_buffer_getBuffer(result->nack_info), tcomp_buffer_getSize(result->nack_info));
+ }
+ else{
+ tcomp_result_setCompartmentId(result, tests[i].comp_id, strlen(tests[i].comp_id));
+ tcomp_manager_provideCompartmentId(manager, result);
+ }
+
+ /* Checks result */
+ checkResult(&tests[i], result, buffer, sizeof(buffer));
+
+ /* Get sub-sequent stream messages */
+ if(tests[i].stream && (res_size || result->isNack)){
+ uint64_t consumed_cycles = result->consumed_cycles; // save "consumed_cycles" (shared by all sub-sequent messages)
+ for(;;){
+ res_size = tcomp_manager_getNextStreamMessage(manager, result);
+ if(!res_size && !result->isNack){
+ break;
+ }
+ else if(res_size){
+ tcomp_result_setCompartmentId(result, tests[i].comp_id, strlen(tests[i].comp_id));
+ tcomp_manager_provideCompartmentId(manager, result);
+ }
+ else{
+ printf("\n==WE GOT A NACK\n\n");
+ //sendto(tcomp_buffer_getBuffer(result->nack_info), tcomp_buffer_getSize(result->nack_info));
+ }
+ result->consumed_cycles = consumed_cycles; // restore cycles just for checking. Had been cleared by "tcomp_manager_getNextStreamMessage()"
+ checkResult(&tests[i], result, buffer, sizeof(buffer));
+ }
+ }
+ }
+
+ /* Free previously allocated resources. */
+ TSK_OBJECT_SAFE_FREE(result);
+ TSK_OBJECT_SAFE_FREE(manager);
+
+ }/* LOOP */
+
+ return 0;
+}
+
+#endif /* TEST_TINYSIGCOMP_TORTURES_H */
OpenPOWER on IntegriCloud