diff options
| author | Mistivia <i@mistivia.com> | 2025-03-26 19:11:10 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-03-26 19:11:10 +0800 |
| commit | 97d4462ac24b726d9313ec52ca0f11711ead553b (patch) | |
| tree | 1bba7f6d4f2690d673b810bda4ec34523034bcaa /tests/test_as_tokenizer.c | |
| parent | 312716a295626f2b60b41777728c7f220fee843d (diff) | |
Diffstat (limited to 'tests/test_as_tokenizer.c')
| -rw-r--r-- | tests/test_as_tokenizer.c | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/tests/test_as_tokenizer.c b/tests/test_as_tokenizer.c deleted file mode 100644 index 995c764..0000000 --- a/tests/test_as_tokenizer.c +++ /dev/null @@ -1,65 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <assert.h> - -#include "as_tokenizer.h" -#include "utils.h" - -char *input_buffer = - "start:\n" - " add 1\n" - " sub start\n" - " div\n" - " eq\n"; - -char *expected_output = - "LABEL: start, line: 1, col: 1\n" - "COLON\n" - "NEWLINE\n" - "OP: add, line: 2, col: 5\n" - "ARG: 1, line: 2, col: 10\n" - "NEWLINE\n" - "OP: sub, line: 3, col: 5\n" - "LABEL: start, line: 3, col: 9\n" - "NEWLINE\n" - "OP: div, line: 4, col: 5\n" - "NEWLINE\n" - "OP: eq, line: 5, col: 5\n" - "NEWLINE\n" - "ENDOFFILE\n"; - -int main(int argc, char** argv) { - printf("[TEST] assembler tokenizer\n"); - // make a memory buffer to FILE* - FILE *fp = fmemopen(input_buffer, strlen(input_buffer), "r"); - struct allocator * alct = new_allocator(); - struct token_stream * ts = new_token_stream(alct, fp); - - char *output_buffer = malloc(10240); - // redirect stdout to a file - FILE *out = fmemopen(output_buffer, 10240, "w"); - FILE *origin_stdout = stdout; - stdout = out; - struct token* token; - struct result result; - while (1) { - result = peek_token(alct, ts); - assert(result.errmsg == NULL); - assert(result.value != NULL); - token = result.value; - print_token(token); - if (token->type == TK_ENDOFFILE) break; - next_token(alct, ts); - } - fclose(out); - stdout = origin_stdout; - - assert(strcmp(output_buffer, expected_output) == 0); - printf("[PASS] assembler tokenizer\n"); - free(output_buffer); - delete_allocator(alct); - return 0; -} - - |
