Esempio n. 1
0
TEST(sml_tree, add_tree) {
	sml_tree *t = sml_tree_init();
	sml_tree_add_tree(t, sml_tree_init());

	TEST_ASSERT_NOT_NULL(t->child_list[0]);
	TEST_ASSERT_EQUAL(1, t->child_list_len);
}
Esempio n. 2
0
TEST(sml_tree, write) {
	sml_tree *t = sml_tree_init();
	t->parameter_name = sml_octet_string_init((unsigned char *)"Hallo", 5);
	sml_tree_write(t, buf);
	expected_buf(buf, "730648616C6C6F0101", 9);
	sml_tree_free( t );
}
Esempio n. 3
0
sml_tree *sml_tree_parse(sml_buffer *buf) {
	if (sml_buf_optional_is_skipped(buf)) {
		return 0;
	}

	sml_tree *tree = sml_tree_init();

	if (sml_buf_get_next_type(buf) != SML_TYPE_LIST) {
		buf->error = 1;
		goto error;
	}

	if (sml_buf_get_next_length(buf) != 3) {
		buf->error = 1;
		goto error;
	}

	tree->parameter_name = sml_octet_string_parse(buf);
	if (sml_buf_has_errors(buf)) goto error;

	tree->parameter_value = sml_proc_par_value_parse(buf);
	if (sml_buf_has_errors(buf)) goto error;

	if (!sml_buf_optional_is_skipped(buf)) {
		if (sml_buf_get_next_type(buf) != SML_TYPE_LIST) {
			buf->error = 1;
			goto error;
		}

		sml_tree *c;
		int elems;
		for (elems = sml_buf_get_next_length(buf); elems > 0; elems--) {
			c = sml_tree_parse(buf);
			if (sml_buf_has_errors(buf)) goto error;
			if (c) {
				sml_tree_add_tree(tree, c);
			}
		}
	}

	return tree;

error:
	sml_tree_free(tree);
	return 0;
}
Esempio n. 4
0
TEST(sml_tree, init) {
	sml_tree *t = sml_tree_init();
	TEST_ASSERT_NOT_NULL(t);
}