Esempio n. 1
0
void test_struct_parser_test ()
{
	byte bytes[] = { 0, 255, 255,
			FRAMEPARSER_HELPER_SENTINEL, FRAMEPARSER_HELPER_ENDFRAME, 1, 0, 0,
			FRAMEPARSER_HELPER_SENTINEL, FRAMEPARSER_HELPER_SENTINEL,
			64, 23, 3, 11, 5, 2, 4,	2,
			FRAMEPARSER_HELPER_SENTINEL, FRAMEPARSER_HELPER_SENTINEL, 4, 2, 1,
			114, 84, 5, 19,
			FRAMEPARSER_HELPER_ENDFRAME
	};
	int i;
	HighFlyersParser parser;

	parser_initialize(&parser);

	for (i = 0; i < 28; i++)
		parser_append_byte(&parser, bytes[i]);

	ASSERT_TRUE(parser_has_frame(&parser));
	FrameProxy p = parser_get_last_frame_ownership(&parser);
	ASSERT_EQ(T_TestStruct, p.type, "%d");
	TestStruct* str = (TestStruct*)p.pointer;
	ASSERT_TRUE(str);
	ASSERT_EQ(256 + FRAMEPARSER_HELPER_ENDFRAME, str->Field1, "%d");
	ASSERT_EQ(2, str->Field3, "%d");
	frame_proxy_free(&p);
}
Esempio n. 2
0
int main(void)
{
	status_t error = SUCCESS;
	parser_t *parser = parser_initialize(stdin);
	expr_t *expr;
	
	error = parse(parser, &expr);
	while (!error && expr != NULL)
	{
		printf("%lu\n", expr_eval(expr));
		expr_uninitialize(expr);
		
		error = parse(parser, &expr);
	}

exit1:
	parser_uninitialize(parser);
exit0:
	print_error(error);
	return error;
}
Esempio n. 3
0
void second_struct_serialize_parser_test ()
{
	int i;
	SecondStruct str;
	TestStruct ts;
	ts.Field1 = 256 + 5;
	ts.Field3 = 80;
	ts.Field4 = 52;
	ts.Field2_enabled = 0;
	ts.Field4_enabled = 1;
	str.Field1 = ts;

	str.Field2 = 98;
	str.Field3_enabled = 0;

	int frame_size = 22;

	byte data[frame_size];

	SecondStruct_serialize (&str, data);

	HighFlyersParser parser;

	parser_initialize(&parser);

	for (i = 0; i < frame_size; i++)
		parser_append_byte(&parser, data[i]);

	ASSERT_TRUE(parser_has_frame(&parser));
	FrameProxy p = parser_get_last_frame_ownership(&parser);
	ASSERT_EQ(T_SecondStruct, p.type, "%d");
	SecondStruct* frame = (SecondStruct*)p.pointer;
	ASSERT_TRUE(frame);
	ASSERT_EQ(frame->Field1.Field1, str.Field1.Field1, "%d");
	ASSERT_EQ(frame->Field1.Field3, str.Field1.Field3, "%d");
	ASSERT_EQ(frame->Field1.Field4, str.Field1.Field4, "%d");
	ASSERT_EQ(frame->Field2, str.Field2, "%d");

	frame_proxy_free(&p);
}
Esempio n. 4
0
void test_struct_serialize_parser_test ()
{
	int i;
	TestStruct str;
	str.Field1 = 32;
	str.Field3 = 13;
	str.Field4 = 108;

	str.Field2_enabled = 0;
	str.Field4_enabled = 1;

	int frame_size = 30;
	byte data[frame_size];

	TestStruct_serialize(&str, data);

	HighFlyersParser parser;

	parser_initialize (&parser);

	for (i = 0; i < frame_size; i++)
	{
		parser_append_byte(&parser, data[i]);
		if (parser_has_frame(&parser))
			break;
	}

	ASSERT_TRUE(parser_has_frame(&parser));
	FrameProxy p = parser_get_last_frame_ownership(&parser);
	TestStruct* frame = (TestStruct*)p.pointer;
	ASSERT_TRUE(frame);
	ASSERT_EQ(str.Field1, frame->Field1, "%d");
	ASSERT_EQ(str.Field3, frame->Field3, "%d");
	ASSERT_EQ(str.Field4, frame->Field4, "%d");

	frame_proxy_free(&p);
}
Esempio n. 5
0
void second_struct_parser_test ()
{
	byte bytes[] =
	{
			1, 1  + 2, 0,
			FRAMEPARSER_HELPER_SENTINEL, 1 + 4 + 8, 0,
			5, 1, 0, 0,
			80,
			52, 0, 0, 0,
			98,
			248, 53, 39, 134,
			FRAMEPARSER_HELPER_ENDFRAME
	};

	int i;
	HighFlyersParser parser;

	parser_initialize(&parser);

	for (i = 0; i < sizeof(bytes); i++)
		parser_append_byte(&parser, bytes[i]);

	ASSERT_TRUE(parser_has_frame(&parser));
	FrameProxy p = parser_get_last_frame_ownership(&parser);
	ASSERT_EQ(T_SecondStruct, p.type, "%d");
	SecondStruct* str = (SecondStruct*)p.pointer;
	ASSERT_TRUE(str);
	ASSERT_EQ(256 + 5, str->Field1.Field1, "%d");
	ASSERT_TRUE(!str->Field1.Field2_enabled);
	ASSERT_EQ(80, str->Field1.Field3, "%d");
	ASSERT_EQ(52, str->Field1.Field4, "%d");
	ASSERT_EQ(98, str->Field2, "%d");
	ASSERT_TRUE(!str->Field3_enabled);

	frame_proxy_free(&p);
}