diff options
author | Anthony G. Basile <basile@opensource.dyc.edu> | 2011-04-12 18:57:06 -0400 |
---|---|---|
committer | Anthony G. Basile <basile@opensource.dyc.edu> | 2011-04-12 18:57:06 -0400 |
commit | 854534e5a480460934cfdc141bff3778b08ea602 (patch) | |
tree | 63f78e88e62339db51125a2d0a968aa33d802a0a /tests | |
parent | Added autotool build system (diff) | |
download | elfix-854534e5a480460934cfdc141bff3778b08ea602.tar.gz elfix-854534e5a480460934cfdc141bff3778b08ea602.tar.bz2 elfix-854534e5a480460934cfdc141bff3778b08ea602.zip |
Fixed unit tests to work with 'make check'
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 24 | ||||
-rw-r--r-- | tests/bad.c | 8 | ||||
-rw-r--r-- | tests/test-bad.asm | 85 |
3 files changed, 22 insertions, 95 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 50f6db4..eb398ea 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,9 +1,19 @@ -bin_PROGRAMS = good -good_SOURCES = good.c +check_SCRIPTS = test.sh +TEST = $(check_SCRIPTS) -test-bad.o: test-bad.asm - yasm -f elf -m amd64 $< +test.sh: + @echo "================================================================================" + @echo + @gcc -o good good.c + @echo "Good result" + @[[ -x ../get-gnustack ]] && ../get-gnustack good || echo "Run 'make' first" + @echo + @yasm -f elf -m amd64 test-bad.asm + @gcc -c bad.c + @gcc -o bad bad.o test-bad.o + @echo "Bad result" + @[[ -x ../get-gnustack ]] && ../get-gnustack bad || echo "Run 'make' first" + @echo + @echo "================================================================================" -bad.o: bad.c - -bad: bad.o test-bad.o +CLEANFILES = good good.o bad bad.o test-bad.o test.sh diff --git a/tests/bad.c b/tests/bad.c index 4e47d3b..ea8cb2b 100644 --- a/tests/bad.c +++ b/tests/bad.c @@ -1,12 +1,10 @@ #include <stdlib.h> -int CrcUpdateT8(int, const void *, size_t, int *); - -void doit(){;return;} +extern int badness(); int main() { - int i = 5 ; - CrcUpdateT8(3,doit,(size_t)5,&i); + badness(); + return 0; } diff --git a/tests/test-bad.asm b/tests/test-bad.asm index c11b715..265fdb6 100644 --- a/tests/test-bad.asm +++ b/tests/test-bad.asm @@ -1,94 +1,13 @@ -
-
-global CrcUpdateT8:function
+global badness:function
SECTION .text
-%macro CRC1b 0
- movzx EDX, BYTE [RSI]
- inc RSI
- movzx EBX, AL
- xor EDX, EBX
- shr EAX, 8
- xor EAX, [RDI + RDX * 4]
- dec R8
-%endmacro
-
-
-
align 16
-CrcUpdateT8:
+badness:
push RBX
push RBP
- mov EAX, EDI
- mov R8, RDX
- mov RDI, RCX
-
-
- test R8, R8
- jz sl_end
- sl:
- test RSI, 7
- jz sl_end
- CRC1b
- jnz sl
- sl_end:
-
- cmp R8, 16
- jb crc_end
- mov R9, R8
- and R8, 7
- add R8, 8
- sub R9, R8
-
- add R9, RSI
- xor EAX, [RSI]
- mov EBX, [RSI + 4]
- movzx ECX, BL
- align 16
- main_loop:
- mov EDX, [RDI + RCX*4 + 0C00h]
- movzx EBP, BH
- xor EDX, [RDI + RBP*4 + 0800h]
- shr EBX, 16
- movzx ECX, BL
- xor EDX, [RSI + 8]
- xor EDX, [RDI + RCX*4 + 0400h]
- movzx ECX, AL
- movzx EBP, BH
- xor EDX, [RDI + RBP*4 + 0000h]
-
- mov EBX, [RSI + 12]
-
- xor EDX, [RDI + RCX*4 + 01C00h]
- movzx EBP, AH
- shr EAX, 16
- movzx ECX, AL
- xor EDX, [RDI + RBP*4 + 01800h]
- movzx EBP, AH
- mov EAX, [RDI + RCX*4 + 01400h]
- add RSI, 8
- xor EAX, [RDI + RBP*4 + 01000h]
- movzx ECX, BL
- xor EAX,EDX
-
- cmp RSI, R9
- jne main_loop
- xor EAX, [RSI]
-
-
-
- crc_end:
-
- test R8, R8
- jz fl_end
- fl:
- CRC1b
- jnz fl
- fl_end:
-
pop RBP
pop RBX
ret
|