FreeRDP
TestFreeRDPCodecMppc.c File Reference
#include <winpr/crt.h>
#include <winpr/print.h>
#include <winpr/bitstream.h>
#include <freerdp/freerdp.h>
#include <freerdp/codec/mppc.h>
#include <freerdp/log.h>

Functions

static int test_MppcCompressBellsRdp5 (void)
 
static int test_MppcCompressBellsRdp4 (void)
 
static int test_MppcDecompressBellsRdp5 (void)
 
static int test_MppcDecompressBellsRdp4 (void)
 
static int test_MppcCompressIslandRdp5 (void)
 
static int test_MppcCompressBufferRdp5 (void)
 
static int test_MppcDecompressBufferRdp5 (void)
 
int TestFreeRDPCodecMppc (int argc, char *argv[])
 

Variables

static const BYTE TEST_RDP5_COMPRESSED_DATA []
 
static const BYTE TEST_RDP5_UNCOMPRESSED_DATA []
 
static const BYTE TEST_MPPC_BELLS [] = "for.whom.the.bell.tolls,.the.bell.tolls.for.thee!"
 
static const BYTE TEST_MPPC_BELLS_RDP4 []
 
static const BYTE TEST_MPPC_BELLS_RDP5 []
 
static const BYTE TEST_ISLAND_DATA []
 
static const BYTE TEST_ISLAND_DATA_RDP5 []
 

Function Documentation

static int test_MppcCompressBellsRdp4 ( void  )
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int test_MppcCompressBellsRdp5 ( void  )
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int test_MppcCompressBufferRdp5 ( void  )
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int test_MppcCompressIslandRdp5 ( void  )
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int test_MppcDecompressBellsRdp4 ( void  )
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int test_MppcDecompressBellsRdp5 ( void  )
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int test_MppcDecompressBufferRdp5 ( void  )
static

Here is the call graph for this function:

Here is the caller graph for this function:

int TestFreeRDPCodecMppc ( int  argc,
char *  argv[] 
)

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

const BYTE TEST_ISLAND_DATA[]
static
Initial value:
=
"No man is an island entire of itself; every man "
"is a piece of the continent, a part of the main; "
"if a clod be washed away by the sea, Europe "
"is the less, as well as if a promontory were, as"
"well as any manner of thy friends or of thine "
"own were; any man's death diminishes me, "
"because I am involved in mankind. "
"And therefore never send to know for whom "
"the bell tolls; it tolls for thee."
const BYTE TEST_ISLAND_DATA_RDP5[]
static
Initial value:
=
"\x4e\x6f\x20\x6d\x61\x6e\x20\x69\x73\x20\xf8\xd2\xd8\xc2\xdc\xc8"
"\x40\xca\xdc\xe8\xd2\xe4\xca\x40\xde\xcc\x40\xd2\xe8\xe6\xca\xd8"
"\xcc\x76\x40\xca\xec\xca\xe4\xf3\xfa\x71\x20\x70\x69\x65\x63\xfc"
"\x12\xe8\xd0\xca\x40\xc6\xdf\xfb\xcd\xdf\xd0\x58\x40\xc2\x40\xe0"
"\xc2\xe4\xe9\xfe\x63\xec\xc3\x6b\x0b\x4b\x71\xd9\x03\x4b\x37\xd7"
"\x31\xb6\x37\xb2\x10\x31\x32\x90\x3b\xb0\xb9\xb4\x32\xb2\x10\x30"
"\xbb\xb0\xbc\x90\x31\x3c\x90\x7e\x68\x73\x65\x61\x2c\x20\x45\x75"
"\x72\x6f\x70\x65\xf2\x34\x7d\x38\x6c\x65\x73\x73\xf0\x69\xcc\x81"
"\xdd\x95\xb1\xb0\x81\x85\xcf\xc0\x94\xe0\xe4\xde\xdb\xe2\xb3\x7f"
"\x92\x4e\xec\xae\x4c\xbf\x86\x3f\x06\x0c\x2d\xde\x5d\x96\xe6\x57"
"\x2f\x1e\x53\xc9\x03\x33\x93\x4b\x2b\x73\x23\x99\x03\x7f\xd2\xb6"
"\x96\xef\x38\x1d\xdb\xbc\x24\x72\x65\x3b\xf5\x5b\xf8\x49\x3b\x99"
"\x03\x23\x2b\x0b\xa3\x41\x03\x23\x4b\x6b\x4b\x73\x4f\x96\xce\x64"
"\x0d\xbe\x19\x31\x32\xb1\xb0\xba\xb9\xb2\x90\x24\x90\x30\xb6\x90"
"\x34\xb7\x3b\x37\xb6\x3b\x79\xd4\xd2\xdd\xec\x18\x6b\x69\x6e\x64"
"\x2e\x20\x41\xf7\x33\xcd\x47\x26\x56\x66\xff\x74\x9b\xbd\xbf\x04"
"\x0e\x7e\x31\x10\x3a\x37\x90\x35\xb7\x37\xbb\x90\x7d\x81\x03\xbb"
"\x43\x7b\x6f\xa8\xe5\x8b\xd0\xf0\xe8\xde\xd8\xd8\xe7\xec\xf3\xa7"
"\xe4\x7c\xa7\xe2\x9f\x01\x99\x4b\x80"
const BYTE TEST_MPPC_BELLS[] = "for.whom.the.bell.tolls,.the.bell.tolls.for.thee!"
static

for.whom.the.bell.tolls,.the.bell.tolls.for.thee!

for.whom.the.bell.tolls,<16,15>.<40,4><19,3>e! ([MS-RDPBCGR])

<16,15> : ".the.bell.tolls" <40,4> : "for." <19,3> : "the"

for.whom.the.bell.tolls,<16,15>.f<40,3><35,3>e! (Microsoft implementation)

<16,15> : ".the.bell.tolls" <40,3> : "or." <19,3> " "the"

RDP5: 01100110 Literal 'f' 01101111 Literal 'o' 01110010 Literal 'r' 00101110 Literal '.' 01110111 Literal 'w' 01101000 Literal 'h' 01101111 Literal 'o' 01101101 Literal 'm' 00101110 Literal '.' 01110100 Literal 't' 01101000 Literal 'h' 01100101 Literal 'e' 00101110 Literal '.' 01100010 Literal 'b' 01100101 Literal 'e' 01101100 Literal 'l' 01101100 Literal 'l' 00101110 Literal '.' 01110100 Literal 't' 01101111 Literal 'o' 01101100 Literal 'l' 01101100 Literal 'l' 01110011 Literal 's' 00101100 Literal ',' 11111+010000 CopyOffset 16 110+111 LengthOfMatch 15 00101110 Literal '.' 01100110 Literal 'f' 11111+101000 CopyOffset 40 0 LengthOfMatch 3 11111+100011 CopyOffset 35 0 LengthOfMatch 3 01100101 Literal 'e' 00100001 Literal '!' 0000000 Trailing Bits

RDP4: 01100110 Literal 'f' 01101111 Literal 'o' 01110010 Literal 'r' 00101110 Literal '.' 01110111 Literal 'w' 01101000 Literal 'h' 01101111 Literal 'o' 01101101 Literal 'm' 00101110 Literal '.' 01110100 Literal 't' 01101000 Literal 'h' 01100101 Literal 'e' 00101110 Literal '.' 01100010 Literal 'b' 01100101 Literal 'e' 01101100 Literal 'l' 01101100 Literal 'l' 00101110 Literal '.' 01110100 Literal 't' 01101111 Literal 'o' 01101100 Literal 'l' 01101100 Literal 'l' 01110011 Literal 's' 00101100 Literal ',' 1111+010000 CopyOffset 16 110+111 LengthOfMatch 15 00101110 Literal '.' 01100110 Literal 'f' 1111+101000 CopyOffset 40 0 LengthOfMatch 3 1111+100011 CopyOffset 35 0 LengthOfMatch 3 01100101 Literal 'e' 00100001 Literal '!' 00 Trailing Bits

const BYTE TEST_MPPC_BELLS_RDP4[]
static
Initial value:
=
"\x66\x6f\x72\x2e\x77\x68\x6f\x6d\x2e\x74\x68\x65\x2e\x62\x65\x6c"
"\x6c\x2e\x74\x6f\x6c\x6c\x73\x2c\xf4\x37\x2e\x66\xfa\x1f\x19\x94"
"\x84"
const BYTE TEST_MPPC_BELLS_RDP5[]
static
Initial value:
=
"\x66\x6f\x72\x2e\x77\x68\x6f\x6d\x2e\x74\x68\x65\x2e\x62\x65\x6c"
"\x6c\x2e\x74\x6f\x6c\x6c\x73\x2c\xfa\x1b\x97\x33\x7e\x87\xe3\x32"
"\x90\x80"
const BYTE TEST_RDP5_COMPRESSED_DATA[]
static
const BYTE TEST_RDP5_UNCOMPRESSED_DATA[]
static