コード例 #1
0
void test_str_nlen()
{
	const char *input = "foo";
	const char *input2 = "fo\0bar";
	const char *input3 = "";
	unsigned int result, expected_result;

	result = str_nlen(input, sizeof(input));
	expected_result = strlen(input);
	check_unsigned_ints(result, expected_result, "compare with libc");
	check_unsigned_int(result, 3);

	result = str_nlen(input2, sizeof(input2));
	expected_result = strlen(input2);
	check_unsigned_int(result, expected_result);

	result = str_nlen(input3, sizeof(input3));
	expected_result = strlen(input3);
	check_unsigned_int(result, expected_result);

	result = str_nlen(input, 2);
	check_unsigned_ints(result, 2, "limit to 2 not 3");
}
コード例 #2
0
void test_two_level_stack(void)
{
	names_stack *stack;
	unsigned int check_num;

	check_num = 0;
	stack = stack_new();

	stack_enter(stack);

	check_depth(check_num++, stack, "foo", 0);
	check_depth(check_num++, stack, "bar", 0);
	check_depth(check_num++, stack, "baz", 0);
	check_unsigned_int(stack_frame_size(stack), 0);

	stack_name_add(stack, "foo");
	stack_name_add(stack, "bar");

	check_depth(check_num++, stack, "foo", 1);
	check_depth(check_num++, stack, "bar", 2);
	check_depth(check_num++, stack, "baz", 0);
	check_unsigned_ints(stack_frame_size(stack), 2, "1");

	stack_enter(stack);
	check_unsigned_ints(stack_frame_size(stack), 0, "2");
	stack_name_add(stack, "baz");
	check_unsigned_ints(stack_frame_size(stack), 1, "3");
	stack_name_add(stack, "foo");
	check_unsigned_ints(stack_frame_size(stack), 2, "4");

	check_depth(check_num++, stack, "foo", 2);
	check_depth(check_num++, stack, "bar", 0);
	check_depth(check_num++, stack, "baz", 1);

	stack_leave(stack);
	check_unsigned_ints(stack_frame_size(stack), 2, "5");

	check_depth(check_num++, stack, "foo", 1);
	check_depth(check_num++, stack, "bar", 2);
	check_depth(check_num++, stack, "baz", 0);

	stack_leave(stack);
	check_unsigned_ints(stack_frame_size(stack), 0, "6");

	check_depth(check_num++, stack, "foo", 0);
	check_depth(check_num++, stack, "bar", 0);
	check_depth(check_num++, stack, "baz", 0);

	stack_destroy(stack);
}
コード例 #3
0
void test_str_ncpy()
{
	const char *src = "foo";
	char dest[80];
	char *result, *expected_result;

	dest[60] = 'X';
	check_unsigned_int(sizeof(dest), 80);
	check_char(dest[60], 'X');

	result = str_ncpy(dest, src, sizeof(dest));
	check_strs(dest, src, "1");
	check_ptrs(result, dest, "2");
	check_chars(dest[60], '\0', "should null-out rest of buffer");

	expected_result = strncpy(dest, src, sizeof(dest));
	check_strs(dest, src, "3");
	check_ptrs(result, expected_result, "4");
}