Adds fopen(), fwrite(), fclose()
This commit is contained in:
46
tests.asm
46
tests.asm
@ -23,6 +23,10 @@ extern strclr
|
||||
extern strlclr
|
||||
extern strcat
|
||||
extern strcmp
|
||||
;file.asm
|
||||
extern fopen
|
||||
extern fclose
|
||||
extern fwrite
|
||||
|
||||
section .rodata
|
||||
PRINT_nums equ 1
|
||||
@ -42,6 +46,7 @@ section .rodata
|
||||
TEST_tolower equ 1
|
||||
TEST_toupper equ 1
|
||||
TEST_strcmp equ 1
|
||||
TEST_file1 equ 1
|
||||
|
||||
num1 dq 69
|
||||
num2 dq 0xFFFFFF
|
||||
@ -141,6 +146,16 @@ section .rodata
|
||||
msgStrcmp4 db "TEST strcmp(str4, str1): %d",NL,EOS
|
||||
msgStrcmp5 db "TEST strcmp(str1, str4): %d",NL,EOS
|
||||
msgStrcmp6 db "TEST strcmp(str1, str1): %d",NL,EOS
|
||||
; fopen(), fwrite(), fclose()
|
||||
testFile1 db "testFile1.txt",EOS
|
||||
fileStr1 db "Hello file world!",EOS
|
||||
fileMode_w db "w",EOS
|
||||
msgFileB db NL,"# fopen(), fwrite(), fclose()",EOS
|
||||
msgFileB1 db "TEST fopen('testFile1.txt', 'w'): %d",NL,EOS
|
||||
msgFileB2 db "TEST fwrite(filePointer1, fileStr1): %d",NL,EOS
|
||||
msgFileB3 db "TEST fclose(filePointer1): %d",NL,EOS
|
||||
section .data
|
||||
filePointer1 dq 0
|
||||
section .bss
|
||||
strBuff1 resb 32
|
||||
strBuff2 resb 8
|
||||
@ -712,6 +727,37 @@ main:
|
||||
lea rdi, [rel msgStrcmp6]
|
||||
call printf
|
||||
%ENDIF
|
||||
%IF TEST_file1
|
||||
lea rdi, [rel msgFileB]
|
||||
call puts
|
||||
|
||||
; TEST: fopen()
|
||||
lea rdi, [rel testFile1]
|
||||
lea rsi, [rel fileMode_w]
|
||||
call fopen
|
||||
mov r15, rax ;store filepointer to R15
|
||||
mov rsi, rax
|
||||
xor rax, rax
|
||||
lea rdi, [rel msgFileB1]
|
||||
call printf
|
||||
|
||||
; TEST: fwrite()
|
||||
mov rdi, r15
|
||||
lea rsi, [fileStr1]
|
||||
call fwrite
|
||||
mov rsi, rax
|
||||
xor rax, rax
|
||||
lea rdi, [rel msgFileB2]
|
||||
call printf
|
||||
|
||||
; TEST: fclose()
|
||||
mov rdi, r15
|
||||
call fclose
|
||||
mov rsi, rax
|
||||
xor rax, rax
|
||||
lea rdi, [rel msgFileB3]
|
||||
call printf
|
||||
%ENDIF
|
||||
|
||||
leave
|
||||
ret
|
||||
|
Reference in New Issue
Block a user