⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ndr_align.pl

📁 wireshark 0.99.7 最新源码
💻 PL
字号:
#!/usr/bin/perl# NDR alignment tests# (C) 2005 Jelmer Vernooij. Published under the GNU GPLuse strict;use Test::More tests => 5 * 8;use FindBin qw($RealBin);use lib "$RealBin";use Util qw(test_samba4_ndr);test_samba4_ndr('align-uint8-uint16', '	typedef [public] struct { 		uint8 x;		uint16 y;	} bla;','	struct ndr_push *ndr = ndr_push_init_ctx(NULL);	struct bla r;	uint8_t expected[] = { 0x0D, 0x00, 0xef, 0xbe };	DATA_BLOB expected_blob = { expected, 4 };	DATA_BLOB result_blob;	r.x = 13;	r.y = 0xbeef;	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_bla(ndr, NDR_SCALARS|NDR_BUFFERS, &r)))		return 1;	result_blob = ndr_push_blob(ndr);		if (data_blob_cmp(&result_blob, &expected_blob) != 0) 		return 2;');test_samba4_ndr('align-uint8-uint32', '	typedef [public] struct { 		uint8 x;		uint32 y;	} bla;','	struct ndr_push *ndr = ndr_push_init_ctx(NULL);	struct bla r;	uint8_t expected[] = { 0x0D, 0x00, 0x00, 0x00, 0xef, 0xbe, 0xef, 0xbe };	DATA_BLOB expected_blob = { expected, 8 };	DATA_BLOB result_blob;	r.x = 13;	r.y = 0xbeefbeef;	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_bla(ndr, NDR_SCALARS|NDR_BUFFERS, &r)))		return 1;	result_blob = ndr_push_blob(ndr);		if (data_blob_cmp(&result_blob, &expected_blob) != 0) 		return 2;');test_samba4_ndr('align-uint8-hyper', '	typedef [public] struct { 		uint8 x;		hyper y;	} bla;','	struct ndr_push *ndr = ndr_push_init_ctx(NULL);	struct bla r;	uint8_t expected[] = { 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 			       0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe };	DATA_BLOB expected_blob = { expected, 16 };	DATA_BLOB result_blob;	r.x = 13;	r.y = 0xbeefbeefbeefbeefLLU;	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_bla(ndr, NDR_SCALARS|NDR_BUFFERS, &r)))		return 1;	result_blob = ndr_push_blob(ndr);		if (data_blob_cmp(&result_blob, &expected_blob) != 0) 		return 2;');test_samba4_ndr('noalignflag-uint8-uint16', '	typedef [public] struct { 		uint8 x;		uint16 y;	} bla;','	struct ndr_push *ndr = ndr_push_init_ctx(NULL);	struct bla r;	uint8_t expected[] = { 0x0D, 0xef, 0xbe };	DATA_BLOB expected_blob = { expected, 3 };	DATA_BLOB result_blob;	ndr->flags |= LIBNDR_FLAG_NOALIGN;	r.x = 13;	r.y = 0xbeef;	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_bla(ndr, NDR_SCALARS|NDR_BUFFERS, &r)))		return 1;	result_blob = ndr_push_blob(ndr);		if (data_blob_cmp(&result_blob, &expected_blob) != 0) 		return 2;');test_samba4_ndr('align-blob-align2', '	typedef [public] struct { 		uint8 x;		[flag(LIBNDR_FLAG_ALIGN2)] DATA_BLOB data;		uint8 y;	} blie;','	struct ndr_push *ndr = ndr_push_init_ctx(NULL);	struct blie r;	uint8_t data[] = { 0x01, 0x02 };	uint8_t expected[] = { 0x0D, 0x00, 0x0E };	DATA_BLOB expected_blob = { expected, 3 };	DATA_BLOB result_blob;	r.x = 13;	r.y = 14;	r.data.data = data;	r.data.length = 2;	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_blie(ndr, NDR_SCALARS|NDR_BUFFERS, &r)))		return 1;	result_blob = ndr_push_blob(ndr);	if (data_blob_cmp(&result_blob, &expected_blob) != 0) 		return 2;');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -