diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-11-23 20:31:58 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-11-23 20:31:58 +0100 |
| commit | 0696a5c7f9abe5451a0baf3170296704714fcce8 (patch) | |
| tree | 9b7380e82bcd5aba703d9bc23c355a31e542f78b /libasm_test.h | |
| parent | 99ebb4cc698da33c2f8aad8bb5d71ef060a01560 (diff) | |
| download | libasm_test-0696a5c7f9abe5451a0baf3170296704714fcce8.tar.gz libasm_test-0696a5c7f9abe5451a0baf3170296704714fcce8.tar.bz2 libasm_test-0696a5c7f9abe5451a0baf3170296704714fcce8.zip | |
Basic segfault and comparison test for ft_strlen.s
Diffstat (limited to 'libasm_test.h')
| -rw-r--r-- | libasm_test.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/libasm_test.h b/libasm_test.h index 37577e5..c340903 100644 --- a/libasm_test.h +++ b/libasm_test.h @@ -1,6 +1,12 @@ #ifndef LIBASM_TEST_H # define LIBASM_TEST_H +# include <unistd.h> +# include <stdbool.h> +# include <stdlib.h> +# include <stdio.h> +# include <string.h> +# include <sys/wait.h> # include <stddef.h> /* @@ -55,4 +61,54 @@ void ft_strdup_test(void); +void +print_ok(void); +void +print_signaled_ko(void); +void +expect_int(int expected, int actual); + +int pid; +bool signaled; + +# define TEST_SEGFAULT(x) do { \ + if ((pid = fork()) < 0) \ + exit(EXIT_FAILURE); \ + if (pid == 0) { \ + do { x; } while(0); \ + exit(EXIT_SUCCESS); \ + } else { \ + wait(&pid); \ + signaled = WIFSIGNALED(pid); \ + } \ +} while(0); + + +// void *saved_sp; +// bool stack_alignment_error; +// +// # define TEST_STACK_ALIGNMENT(x) do { \ +// stack_alignment_error = false; \ +// saved_sp = asm ("sp"); \ +// do { x } while(0); \ +// stack_alignment_error = saved_sp != asm("sp")); \ +// } while (0); + +char *test_name; + +# define TEST_ASM_FUNCTION(x) do { \ + TEST_SEGFAULT(x); \ + if (signaled) \ + print_signaled_ko(); \ + else \ + print_ok(); \ +} while(0); + +// # define EXPECT(expected, actual) do { \ +// if (actual == expected) \ +// print_ok(); \ +// else \ +// printf("KO: [COMPARE]: expected: \""#expected"\" got: \""#actual"\"\n", test_name); \ +// while (0); + #endif |
