Compare commits
2 Commits
eadf7cde62
...
fdc1923211
Author | SHA1 | Date | |
---|---|---|---|
fdc1923211 | |||
cbed6c468f |
@ -15,6 +15,8 @@ section .text
|
||||
|
||||
syscall_failed:
|
||||
|
||||
push rbx
|
||||
|
||||
neg rax
|
||||
mov rbx, rax
|
||||
|
||||
@ -22,4 +24,7 @@ section .text
|
||||
|
||||
mov [rax], rbx
|
||||
mov rax, -1
|
||||
|
||||
pop rbx
|
||||
|
||||
ret
|
@ -2,6 +2,8 @@ section .text
|
||||
global ft_strcmp
|
||||
|
||||
ft_strcmp:
|
||||
push rbx
|
||||
|
||||
xor rcx, rcx
|
||||
|
||||
loop:
|
||||
@ -20,4 +22,7 @@ section .text
|
||||
out:
|
||||
sub bl, dl
|
||||
movsx rax, bl
|
||||
|
||||
pop rbx
|
||||
|
||||
ret
|
@ -5,6 +5,8 @@ extern ft_strcpy
|
||||
section .text
|
||||
global ft_strdup
|
||||
ft_strdup:
|
||||
push rbx
|
||||
|
||||
call ft_strlen
|
||||
|
||||
mov rbx, rdi
|
||||
@ -20,8 +22,13 @@ section .text
|
||||
|
||||
call ft_strcpy
|
||||
|
||||
pop rbx
|
||||
|
||||
ret
|
||||
|
||||
error:
|
||||
xor rax, rax
|
||||
|
||||
pop rbx
|
||||
|
||||
ret
|
@ -14,10 +14,15 @@ section .text
|
||||
|
||||
syscall_failed:
|
||||
|
||||
push rbx
|
||||
|
||||
neg rax
|
||||
mov rbx, rax
|
||||
|
||||
call __errno_location wrt ..plt
|
||||
mov [rax], rbx
|
||||
mov rax, -1
|
||||
|
||||
pop rbx
|
||||
|
||||
ret
|
20
test/test.c
20
test/test.c
@ -163,6 +163,19 @@ void multiple_test_push_front()
|
||||
}
|
||||
}
|
||||
|
||||
void multiple_test_strdup(const char * const *values)
|
||||
{
|
||||
char *tmp;
|
||||
|
||||
for (size_t i = 0; values[i] != NULL; i++)
|
||||
{
|
||||
tmp = ft_strdup(values[i]);
|
||||
test_str(tmp, values[i]);
|
||||
free(tmp);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("STRLEN\n");
|
||||
@ -180,8 +193,11 @@ int main()
|
||||
multiple_test_strcpy(ft_strcpy, strcpy_tests);
|
||||
printf("\n");
|
||||
|
||||
ft_write(1, "bozo\n", 5);
|
||||
printf("%s\n", ft_strdup("sdsfsd"));
|
||||
printf("STRDUP\n");
|
||||
const char *strdup_tests[] = {"yo", "", "bonjour", "co\0fgf", NULL};
|
||||
multiple_test_strdup(strdup_tests);
|
||||
printf("\n");
|
||||
|
||||
/*
|
||||
printf("ATOI_BASE\n");
|
||||
const char *atoi_base_tests[][2] = {{"0123", ""}, {"0123", "0"}, {"0123", "0123456789"}, {"bonjour", "bonjour"}, {"", ""}, {"bonjour", "salut"}, {"co\0fgf", "co\0fgf"}, NULL};
|
||||
|
Loading…
Reference in New Issue
Block a user