From 82fa68acecf2f7e1d382501fbcff820883ec2ef4 Mon Sep 17 00:00:00 2001 From: Victor van den Elzen Date: Wed, 23 Apr 2008 15:05:31 +0200 Subject: [PATCH] Configure tests to be performed automatically --- test/a32offs.asm | 2 + test/absolute.asm | 1 + test/addr64x.asm | 7 ++ test/aoutso.asm | 3 + test/aouttest.asm | 3 + test/binexe.asm | 3 + test/bintest.asm | 3 + test/br1879590.asm | 3 + test/br560575.asm | 15 ++- test/br560873.asm | 3 + test/cofftest.asm | 3 + test/elfso.asm | 3 + test/elif.asm | 3 + test/expimp.asm | 12 +++ test/float.asm | 3 + test/float8.asm | 3 + test/floatb.asm | 3 + test/floatexp.asm | 3 + test/floatize.asm | 3 + test/floattest.asm | 2 + test/fmsub.asm | 3 + test/fpu.asm | 2 + test/ifmacro.asm | 2 + test/iftoken.asm | 2 + test/iftoken.pl | 1 + test/inctest.asm | 2 + test/insnlbl.asm | 2 + test/invlpga.asm | 3 + test/lar_lsl.asm | 246 +++++++++++++++++++++++++------------------------- test/larlsl.asm | 2 + test/lnxhello.asm | 5 + test/local.asm | 1 + test/loopoffs.asm | 2 + test/mmxsize.asm | 2 + test/movimm.asm | 2 + test/multisection.asm | 10 ++ test/nasmformat.asm | 3 + test/nop.asm | 3 + test/nullfile.asm | 1 + test/objtest.asm | 3 + test/org.asm | 3 + test/r13.asm | 2 + test/radix.asm | 2 + test/riprel.asm | 2 + test/riprel.pl | 4 + test/test67.asm | 3 + test/testdos.asm | 1 + test/testnos3.asm | 1 + test/time.asm | 1 + test/uscore.asm | 1 + test/xchg.asm | 3 + test/zerobyte.asm | 1 + 52 files changed, 278 insertions(+), 124 deletions(-) mode change 100644 => 100755 test/riprel.pl diff --git a/test/a32offs.asm b/test/a32offs.asm index d66aea3..e34aa64 100644 --- a/test/a32offs.asm +++ b/test/a32offs.asm @@ -1,3 +1,5 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -oa32offs.bin; Files=a32offs.bin .stdout .stderr +;Testname=optimized; Arguments=-Ox -fbin -oa32offs.bin; Files=a32offs.bin .stdout .stderr bits 16 foo: a32 loop foo bar: loop bar, ecx diff --git a/test/absolute.asm b/test/absolute.asm index 901a83f..ee5bb63 100644 --- a/test/absolute.asm +++ b/test/absolute.asm @@ -1,3 +1,4 @@ +;Testname=bin; Arguments=-fbin -oabsolute.bin; Files=.stdout .stderr absolute.bin org 7c00h init_foo: jmp init_bar diff --git a/test/addr64x.asm b/test/addr64x.asm index 1fbec45..bf52d92 100644 --- a/test/addr64x.asm +++ b/test/addr64x.asm @@ -1,3 +1,10 @@ +;Testname=O0; Arguments=-O0 -fbin -oaddr64.bin; Files=.stdout .stderr addr64.bin +;Testname=O1; Arguments=-O1 -fbin -oaddr64.bin; Files=.stdout .stderr addr64.bin +;Testname=O2; Arguments=-O2 -fbin -oaddr64.bin; Files=.stdout .stderr addr64.bin +;Testname=O3; Arguments=-O3 -fbin -oaddr64.bin; Files=.stdout .stderr addr64.bin +;Testname=O4; Arguments=-O4 -fbin -oaddr64.bin; Files=.stdout .stderr addr64.bin +;Testname=O5; Arguments=-O5 -fbin -oaddr64.bin; Files=.stdout .stderr addr64.bin +;Testname=Ox; Arguments=-Ox -fbin -oaddr64.bin; Files=.stdout .stderr addr64.bin bits 64 mov rdx,[rax] mov eax,[byte rsp+0x01] diff --git a/test/aoutso.asm b/test/aoutso.asm index b95b66e..eeab2e3 100644 --- a/test/aoutso.asm +++ b/test/aoutso.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -faoutb -oaoutso.o; Files=.stdout .stderr aoutso.o +;Testname=optimized; Arguments=-Ox -faoutb -oaoutso.o; Files=.stdout .stderr aoutso.o + ; test source file for assembling to NetBSD/FreeBSD a.out shared library ; build with: ; nasm -f aoutb aoutso.asm diff --git a/test/aouttest.asm b/test/aouttest.asm index a11824f..207a545 100644 --- a/test/aouttest.asm +++ b/test/aouttest.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -faout -oaouttest.o; Files=.stdout .stderr aouttest.o +;Testname=optimized; Arguments=-Ox -faout -oaouttest.o; Files=.stdout .stderr aouttest.o + ; test source file for assembling to a.out ; build with: ; nasm -f aout aouttest.asm diff --git a/test/binexe.asm b/test/binexe.asm index ab852fb..bc85eb4 100644 --- a/test/binexe.asm +++ b/test/binexe.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -obinexe.exe -i../misc/; Files=.stdout .stderr binexe.exe +;Testname=optimized; Arguments=-Ox -fbin -obinexe.exe -i../misc/; Files=.stdout .stderr binexe.exe + ; Demonstration of how to write an entire .EXE format program by using ; the `exebin.mac' macro package. ; To build: diff --git a/test/bintest.asm b/test/bintest.asm index 94d2bf7..7246a45 100644 --- a/test/bintest.asm +++ b/test/bintest.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -obintest.bin; Files=.stdout .stderr bintest.bin +;Testname=optimized; Arguments=-Ox -fbin -obintest.bin; Files=.stdout .stderr bintest.bin + ; test source file for assembling to binary files ; build with: ; nasm -f bin -o bintest.com bintest.asm diff --git a/test/br1879590.asm b/test/br1879590.asm index 6cac12d..d51a16c 100644 --- a/test/br1879590.asm +++ b/test/br1879590.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -obr1879590.bin; Files=.stdout .stderr br1879590.bin +;Testname=optimized; Arguments=-Ox -fbin -obr1879590.bin; Files=.stdout .stderr br1879590.bin + bits 32 pavgb mm0,[ebx] diff --git a/test/br560575.asm b/test/br560575.asm index 8e02ddd..bb6feb8 100644 --- a/test/br560575.asm +++ b/test/br560575.asm @@ -1,5 +1,16 @@ -; -; Test for bug report 560575 +;Testname=aout; Arguments=-faout -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=aoutb; Arguments=-faoutb -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=coff; Arguments=-fcoff -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=elf32; Arguments=-felf32 -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=elf64; Arguments=-felf64 -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=as86; Arguments=-fas86 -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=win32; Arguments=-fwin32 -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=win64; Arguments=-fwin64 -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=rdf; Arguments=-frdf -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=ieee; Arguments=-fieee -obr560575.o; Files=.stderr .stdout br560575.o +;Testname=macho; Arguments=-fmacho -obr560575.o; Files=.stderr .stdout br560575.o + +;Test for bug report 560575 - Using SEG with non-relocatable values doesn't work ; dw seg ~1 dw seg "a" diff --git a/test/br560873.asm b/test/br560873.asm index 1aebd0a..724507b 100644 --- a/test/br560873.asm +++ b/test/br560873.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -frdf -obr560873.rdf; Files=.stdout .stderr br560873.rdf +;Testname=optimized; Arguments=-Ox -frdf -obr560873.rdf; Files=.stdout .stderr br560873.rdf + label: bits 16 call far dword label diff --git a/test/cofftest.asm b/test/cofftest.asm index 88044c0..6b845e2 100644 --- a/test/cofftest.asm +++ b/test/cofftest.asm @@ -1,3 +1,6 @@ +;Cannot be automatically tested because it differs every time, +;I guess because of a date/time field. + ; test source file for assembling to COFF ; build with (under DJGPP, for example): ; nasm -f coff cofftest.asm diff --git a/test/elfso.asm b/test/elfso.asm index 5adb633..78df8ba 100644 --- a/test/elfso.asm +++ b/test/elfso.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -felf -oelfso.o; Files=.stdout .stderr elfso.o +;Testname=optimized; Arguments=-Ox -felf -oelfso.o; Files=.stdout .stderr elfso.o + ; test source file for assembling to ELF shared library ; build with: ; nasm -f elf elfso.asm diff --git a/test/elif.asm b/test/elif.asm index 057ce5f..57c9ac2 100644 --- a/test/elif.asm +++ b/test/elif.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fobj -oelif.obj; Files=.stdout .stderr elif.obj +;Testname=optimized; Arguments=-Ox -fobj -oelif.obj; Files=.stdout .stderr elif.obj + %macro DosPrintMsg 1+ %ifnid %1 section .data diff --git a/test/expimp.asm b/test/expimp.asm index 2db0338..2a0c1de 100644 --- a/test/expimp.asm +++ b/test/expimp.asm @@ -1,6 +1,18 @@ +;Testname=O0; Arguments=-O0 -fbin -oexpimp.bin; Files=.stdout .stderr expimp.bin +;Testname=O1; Arguments=-O1 -fbin -oexpimp.bin; Files=.stdout .stderr expimp.bin +;Testname=O2; Arguments=-O2 -fbin -oexpimp.bin; Files=.stdout .stderr expimp.bin +;Testname=O3; Arguments=-O3 -fbin -oexpimp.bin; Files=.stdout .stderr expimp.bin +;Testname=O4; Arguments=-O4 -fbin -oexpimp.bin; Files=.stdout .stderr expimp.bin +;Testname=O5; Arguments=-O5 -fbin -oexpimp.bin; Files=.stdout .stderr expimp.bin +;Testname=Ox; Arguments=-Ox -fbin -oexpimp.bin; Files=.stdout .stderr expimp.bin +;Testname=error-O0; Arguments=-O0 -fbin -oexpimp.bin -DERROR; Files=.stdout .stderr expimp.bin +;Testname=error-Ox; Arguments=-Ox -fbin -oexpimp.bin -DERROR; Files=.stdout .stderr expimp.bin + ; ; Test of explicitly and implicitly sized operands ; + BITS 32 + add esi,2 ; Implicit add esi,123456h ; Implicit add esi,byte 2 ; Explicit diff --git a/test/float.asm b/test/float.asm index df2d96c..567d200 100644 --- a/test/float.asm +++ b/test/float.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -ofloat.bin; Files=.stdout .stderr float.bin +;Testname=optimized; Arguments=-Ox -fbin -ofloat.bin; Files=.stdout .stderr float.bin + ; ; Test of floating-point formats ; diff --git a/test/float8.asm b/test/float8.asm index ddeb810..5520060 100644 --- a/test/float8.asm +++ b/test/float8.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -ofloat8.bin; Files=.stdout .stderr float8.bin +;Testname=optimized; Arguments=-Ox -fbin -ofloat8.bin; Files=.stdout .stderr float8.bin + ; Test of 8-bit floating-point constants ; Zero diff --git a/test/floatb.asm b/test/floatb.asm index 0665c60..75ca788 100644 --- a/test/floatb.asm +++ b/test/floatb.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -ofloatb.bin; Files=.stdout .stderr floatb.bin +;Testname=optimized; Arguments=-Ox -fbin -ofloatb.bin; Files=.stdout .stderr floatb.bin + ;; Known problematic floating-point numbers and their proper ;; encoding... diff --git a/test/floatexp.asm b/test/floatexp.asm index b3d14f7..5ef185f 100644 --- a/test/floatexp.asm +++ b/test/floatexp.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -ofloatexp.bin; Files=.stdout .stderr floatexp.bin +;Testname=optimized; Arguments=-Ox -fbin -ofloatexp.bin; Files=.stdout .stderr floatexp.bin + bits 64 ; ; Test of floating-point formats diff --git a/test/floatize.asm b/test/floatize.asm index 0ff43ef..714b44d 100644 --- a/test/floatize.asm +++ b/test/floatize.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -ofloatize.bin; Files=.stdout .stderr floatize.bin +;Testname=optimized; Arguments=-Ox -fbin -ofloatize.bin; Files=.stdout .stderr floatize.bin + %assign x13 13+26 %assign f16 __float16__(1.6e-7) %assign f32 __float32__(1.6e-7) diff --git a/test/floattest.asm b/test/floattest.asm index dcaac2e..a8db5ac 100644 --- a/test/floattest.asm +++ b/test/floattest.asm @@ -1,3 +1,5 @@ +;Testname=optimized; Arguments=-Ox -felf -ofloattest.o; Files=.stdout .stderr floattest.o + ; nasm -O99 -f elf32 floattest.asm ; ld -m elf_i386 -o floattest floattest.o -I/lib/ld-linux.so.2 -lc diff --git a/test/fmsub.asm b/test/fmsub.asm index 7f087cd..ca599d5 100644 --- a/test/fmsub.asm +++ b/test/fmsub.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fbin -ofmsub.bin; Files=.stdout .stderr fmsub.bin +;Testname=optimized; Arguments=-Ox -fbin -ofmsub.bin; Files=.stdout .stderr fmsub.bin + bits 64 fmsubps xmm0,xmm0,xmm1,xmm2 diff --git a/test/fpu.asm b/test/fpu.asm index 66af8d1..04680f7 100644 --- a/test/fpu.asm +++ b/test/fpu.asm @@ -1,3 +1,5 @@ +;Testname=test; Arguments=-fbin -ofpu.bin; Files=.stdout .stderr fpu.bin + ; relaxed encodings for FPU instructions, which NASM should support ; ----------------------------------------------------------------- diff --git a/test/ifmacro.asm b/test/ifmacro.asm index 8375614..abfa6a2 100644 --- a/test/ifmacro.asm +++ b/test/ifmacro.asm @@ -1,3 +1,5 @@ +;Testname=test; Arguments=-fbin -oifmacro.txt; Files=.stdout .stderr ifmacro.txt + ; ; ifmacro.asm ; diff --git a/test/iftoken.asm b/test/iftoken.asm index 7bf000c..92cf403 100644 --- a/test/iftoken.asm +++ b/test/iftoken.asm @@ -1,3 +1,5 @@ +;Testname=test; Arguments=-fbin -oiftoken.txt; Files=.stdout .stderr iftoken.txt + %define ZMACRO %define NMACRO 1 %define TMACRO 1 2 diff --git a/test/iftoken.pl b/test/iftoken.pl index 498b052..8f06366 100755 --- a/test/iftoken.pl +++ b/test/iftoken.pl @@ -4,6 +4,7 @@ 'foo', 'foo bar', '%', '+foo', '<<'); @tests = ('token', 'empty'); +print ";Testname=test; Arguments=-fbin -oiftoken.txt; Files=.stdout .stderr iftoken.txt" print "%define ZMACRO\n"; print "%define NMACRO 1\n"; print "%define TMACRO 1 2\n"; diff --git a/test/inctest.asm b/test/inctest.asm index d6d35cf..edc084f 100644 --- a/test/inctest.asm +++ b/test/inctest.asm @@ -1,3 +1,5 @@ +;Testname=test; Arguments=-fbin -oinctest.com; Files=.stdout .stderr inctest.com + ; This file, plus inc1.asm and inc2.asm, test NASM's file inclusion ; mechanism. ; diff --git a/test/insnlbl.asm b/test/insnlbl.asm index 5c16384..df81f73 100644 --- a/test/insnlbl.asm +++ b/test/insnlbl.asm @@ -1,3 +1,5 @@ +;Testname=test; Arguments=-fbin -oinsnlbl.bin; Files=.stdout .stderr insnlbl.bin + ; ; Test "instruction as label" -- make opcodes legal as labels if ; they are followed by a colon. diff --git a/test/invlpga.asm b/test/invlpga.asm index ae68310..43759ec 100644 --- a/test/invlpga.asm +++ b/test/invlpga.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-fbin -oinvlpga.bin; Files=.stdout .stderr invlpga.bin +;Testname=optimized; Arguments=-fbin -oinvlpga.bin -Ox; Files=.stdout .stderr invlpga.bin + bits 32 invlpga invlpga ax,ecx diff --git a/test/lar_lsl.asm b/test/lar_lsl.asm index 69c56fc..7c7b82c 100644 --- a/test/lar_lsl.asm +++ b/test/lar_lsl.asm @@ -1,122 +1,124 @@ -; LAR/LSL -;--------- - -; 1x ; = invalid due to lack of REX -; 3x ; = invalid due to Mw - -%macro m 1 - - bits 16 - - %1 ax, ax - %1 ax,eax -; %1 ax,rax - - %1 eax, ax - %1 eax,eax -; %1 eax,rax - -; %1 rax, ax -; %1 rax,eax -; %1 rax,rax - - %1 ax, [0] - %1 ax, word [0] -;;; %1 ax,dword [0] -; %1 ax,qword [0] - - %1 eax, [0] - %1 eax, word [0] -;;; %1 eax,dword [0] -; %1 eax,qword [0] - -; %1 rax, [0] -; %1 rax, word [0] -; %1 rax,dword [0] -; %1 rax,qword [0] - - bits 32 - - %1 ax, ax - %1 ax,eax -; %1 ax,rax - - %1 eax, ax - %1 eax,eax -; %1 eax,rax - -; %1 rax, ax -; %1 rax,eax -; %1 rax,rax - - %1 ax, [0] - %1 ax, word [0] -;;; %1 ax,dword [0] -; %1 ax,qword [0] - - %1 eax, [0] - %1 eax, word [0] -;;; %1 eax,dword [0] -; %1 eax,qword [0] - -; %1 rax, [0] -; %1 rax, word [0] -; %1 rax,dword [0] -; %1 rax,qword [0] - - bits 64 - - %1 ax, ax - %1 ax,eax - %1 ax,rax ; $TODO: shouldn't emit REX.W $ - - %1 eax, ax - %1 eax,eax - %1 eax,rax ; $TODO: shouldn't emit REX.W $ - - %1 rax, ax - %1 rax,eax - %1 rax,rax - - %1 ax, [0] - %1 ax, word [0] -;;; %1 ax,dword [0] -;;; %1 ax,qword [0] - - %1 eax, [0] - %1 eax, word [0] -;;; %1 eax,dword [0] -;;; %1 eax,qword [0] - - %1 rax, [0] - %1 rax, word [0] -;;; %1 rax,dword [0] -;;; %1 rax,qword [0] - -%endmacro - -m lar - -m lsl - -bits 16 -lar ax,[ si] -lar ax,[esi] -bits 32 -lar ax,[ si] -lar ax,[esi] -bits 64 -lar ax,[esi] -lar ax,[rsi] - -bits 16 -lsl ax,[ si] -lsl ax,[esi] -bits 32 -lsl ax,[ si] -lsl ax,[esi] -bits 64 -lar ax,[esi] -lsl ax,[rsi] - -; EOF +;Testname=test; Arguments=-fbin -olar_lsl.bin; Files=.stdout .stderr lar_lsl.bin + +; LAR/LSL +;--------- + +; 1x ; = invalid due to lack of REX +; 3x ; = invalid due to Mw + +%macro m 1 + + bits 16 + + %1 ax, ax + %1 ax,eax +; %1 ax,rax + + %1 eax, ax + %1 eax,eax +; %1 eax,rax + +; %1 rax, ax +; %1 rax,eax +; %1 rax,rax + + %1 ax, [0] + %1 ax, word [0] +;;; %1 ax,dword [0] +; %1 ax,qword [0] + + %1 eax, [0] + %1 eax, word [0] +;;; %1 eax,dword [0] +; %1 eax,qword [0] + +; %1 rax, [0] +; %1 rax, word [0] +; %1 rax,dword [0] +; %1 rax,qword [0] + + bits 32 + + %1 ax, ax + %1 ax,eax +; %1 ax,rax + + %1 eax, ax + %1 eax,eax +; %1 eax,rax + +; %1 rax, ax +; %1 rax,eax +; %1 rax,rax + + %1 ax, [0] + %1 ax, word [0] +;;; %1 ax,dword [0] +; %1 ax,qword [0] + + %1 eax, [0] + %1 eax, word [0] +;;; %1 eax,dword [0] +; %1 eax,qword [0] + +; %1 rax, [0] +; %1 rax, word [0] +; %1 rax,dword [0] +; %1 rax,qword [0] + + bits 64 + + %1 ax, ax + %1 ax,eax + %1 ax,rax ; $TODO: shouldn't emit REX.W $ + + %1 eax, ax + %1 eax,eax + %1 eax,rax ; $TODO: shouldn't emit REX.W $ + + %1 rax, ax + %1 rax,eax + %1 rax,rax + + %1 ax, [0] + %1 ax, word [0] +;;; %1 ax,dword [0] +;;; %1 ax,qword [0] + + %1 eax, [0] + %1 eax, word [0] +;;; %1 eax,dword [0] +;;; %1 eax,qword [0] + + %1 rax, [0] + %1 rax, word [0] +;;; %1 rax,dword [0] +;;; %1 rax,qword [0] + +%endmacro + +m lar + +m lsl + +bits 16 +lar ax,[ si] +lar ax,[esi] +bits 32 +lar ax,[ si] +lar ax,[esi] +bits 64 +lar ax,[esi] +lar ax,[rsi] + +bits 16 +lsl ax,[ si] +lsl ax,[esi] +bits 32 +lsl ax,[ si] +lsl ax,[esi] +bits 64 +lar ax,[esi] +lsl ax,[rsi] + +; EOF diff --git a/test/larlsl.asm b/test/larlsl.asm index c3c1299..fb1c42e 100644 --- a/test/larlsl.asm +++ b/test/larlsl.asm @@ -1,3 +1,5 @@ +;Testname=test; Arguments=-fbin -olarlsl.bin; Files=.stdout .stderr larlsl.bin + bits 64 lar ax,bx diff --git a/test/lnxhello.asm b/test/lnxhello.asm index 7bc8ff0..d48ab5b 100644 --- a/test/lnxhello.asm +++ b/test/lnxhello.asm @@ -1,3 +1,8 @@ +;Testname=aout; Arguments=-faout -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=aoutb; Arguments=-faoutb -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=as86; Arguments=-fas86 -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=elf32; Arguments=-felf32 -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o + ; ; Assembly "Hello, World!" for Linux ; diff --git a/test/local.asm b/test/local.asm index 64a0e59..a5ce707 100644 --- a/test/local.asm +++ b/test/local.asm @@ -1,3 +1,4 @@ +;Testname=test; Arguments=-fbin -olocal.bin; Files=.stdout .stderr local.bin bits 32 %push bluttan diff --git a/test/loopoffs.asm b/test/loopoffs.asm index 65914a6..f035e4a 100644 --- a/test/loopoffs.asm +++ b/test/loopoffs.asm @@ -1,3 +1,5 @@ +;Testname=unoptimized; Arguments=-fbin -oloopoffs.bin -O0; Files=.stdout .stderr loopoffs.bin +;Testname=optimized; Arguments=-fbin -oloopoffs.bin -Ox; Files=.stdout .stderr loopoffs.bin bits 16 delay: loop delay loop $ diff --git a/test/mmxsize.asm b/test/mmxsize.asm index 59fc470..260f994 100644 --- a/test/mmxsize.asm +++ b/test/mmxsize.asm @@ -1,3 +1,5 @@ +;Testname=unoptimized; Arguments=-fbin -ommxsize.bin -O0; Files=.stdout .stderr mmxsize.bin +;Testname=optimized; Arguments=-fbin -ommxsize.bin -Ox; Files=.stdout .stderr mmxsize.bin bits 32 movd mm0,eax movd mm0,[foo] diff --git a/test/movimm.asm b/test/movimm.asm index b5a7a27..d6450a6 100644 --- a/test/movimm.asm +++ b/test/movimm.asm @@ -1,3 +1,5 @@ +;Testname=unoptimized; Arguments=-fbin -omovimm.bin -O0; Files=.stdout .stderr movimm.bin +;Testname=optimized; Arguments=-fbin -omovimm.bin -Ox; Files=.stdout .stderr movimm.bin bits 64 mov rax,1234567890abcdefh diff --git a/test/multisection.asm b/test/multisection.asm index 0da2fc7..997ae6d 100644 --- a/test/multisection.asm +++ b/test/multisection.asm @@ -1,3 +1,13 @@ +;Testname=aout; Arguments=-faout -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=aoutb; Arguments=-faoutb -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=as86; Arguments=-fas86 -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=elf32; Arguments=-felf32 -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=elf64; Arguments=-felf64 -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=obj; Arguments=-fobj -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=rdf; Arguments=-frdf -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=win32; Arguments=-fwin32 -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o +;Testname=win64; Arguments=-fwin64 -olnxhello.o -Ox; Files=.stdout .stderr lnxhello.o + ; To test where code that is placed before any explicit SECTION ; gets placed, and what happens if a .text section has an ORG ;statement, uncomment the following lines. diff --git a/test/nasmformat.asm b/test/nasmformat.asm index 5b4dc25..0c3f0a7 100644 --- a/test/nasmformat.asm +++ b/test/nasmformat.asm @@ -1,3 +1,6 @@ +;Testname=obj; Arguments=-fobj -onasmfomat.o; Files=.stdout .stderr nasmfomat.o +;Testname=bin; Arguments=-fbin -onasmfomat.o; Files=.stdout .stderr nasmfomat.o +;Testname=rdf; Arguments=-frdf -onasmfomat.o; Files=.stdout .stderr nasmfomat.o %if __OUTPUT_FORMAT__ == 'bin' diff --git a/test/nop.asm b/test/nop.asm index 3dabaa0..49c1de0 100644 --- a/test/nop.asm +++ b/test/nop.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-fbin -onop.bin; Files=.stdout .stderr nop.bin +;Testname=optimized; Arguments=-fbin -onop.bin -Ox; Files=.stdout .stderr nop.bin + bits 64 nop diff --git a/test/nullfile.asm b/test/nullfile.asm index 338d710..f837e79 100644 --- a/test/nullfile.asm +++ b/test/nullfile.asm @@ -1,3 +1,4 @@ +;Testname=test; Arguments=-fbin -onull.bin; Files=.stdout .stderr null.bin ; ; A file that produces no output has been known to occationally crash NASM. ; diff --git a/test/objtest.asm b/test/objtest.asm index 24e9fbd..ba94c23 100644 --- a/test/objtest.asm +++ b/test/objtest.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-O0 -fobj -oobj.o; Files=.stdout .stderr obj.o +;Testname=optimized; Arguments=-Ox -fobj -oobj.o; Files=.stdout .stderr obj.o + ; test source file for assembling to Microsoft 16-bit .OBJ ; build with (16-bit Microsoft C): ; nasm -f obj objtest.asm diff --git a/test/org.asm b/test/org.asm index ae73ab6..a958242 100644 --- a/test/org.asm +++ b/test/org.asm @@ -1,3 +1,6 @@ +;Testname=elf64; Arguments=-Ox -felf64 -oorg.o; Files=.stdout .stderr org.o +;Testname=win64; Arguments=-Ox -fwin64 -oorg.o; Files=.stdout .stderr org.o + ; ; Simple test of a 64-bit org directive ; diff --git a/test/r13.asm b/test/r13.asm index 7748aa6..5d153de 100644 --- a/test/r13.asm +++ b/test/r13.asm @@ -1,3 +1,5 @@ +;Testname=test; Arguments=-fbin -or13.bin; Files=.stdout .stderr r13.bin + bits 64 mov rax,[rbx] mov rax,[rbx*4] diff --git a/test/radix.asm b/test/radix.asm index d5b6e0e..a22c2dc 100644 --- a/test/radix.asm +++ b/test/radix.asm @@ -1,3 +1,5 @@ +;Testname=test; Arguments=-fbin -oradix.bin; Files=.stdout .stderr radix.bin + ;; Integer constants... dd 1010_0101 ; Decimal diff --git a/test/riprel.asm b/test/riprel.asm index f585dab..937694b 100644 --- a/test/riprel.asm +++ b/test/riprel.asm @@ -1,3 +1,5 @@ +;Testname=unoptimized; Arguments=-fbin -oriprel.bin -O0; Files=.stdout .stderr riprel.bin +;Testname=optimized; Arguments=-fbin -oriprel.bin -Ox; Files=.stdout .stderr riprel.bin bits 64 default abs diff --git a/test/riprel.pl b/test/riprel.pl old mode 100644 new mode 100755 index 83dabe8..d4b3ad5 --- a/test/riprel.pl +++ b/test/riprel.pl @@ -1,5 +1,9 @@ #!/usr/bin/perl +print ";Testname=unoptimized; Arguments=-fbin -oriprel.bin -O0; Files=.stdout .stderr riprel.bin\n"; +print ";Testname=optimized; Arguments=-fbin -oriprel.bin -Ox; Files=.stdout .stderr riprel.bin\n"; + + print "\tbits 64\n"; foreach $mode ('abs', 'rel') { diff --git a/test/test67.asm b/test/test67.asm index 5917a1b..16fd5cc 100644 --- a/test/test67.asm +++ b/test/test67.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-fbin -otest67.bin -O0; Files=.stdout .stderr test67.bin +;Testname=optimized; Arguments=-fbin -otest67.bin -Ox; Files=.stdout .stderr test67.bin + bits 16 mov ax,[bx] diff --git a/test/testdos.asm b/test/testdos.asm index f03e52d..4fdf87b 100644 --- a/test/testdos.asm +++ b/test/testdos.asm @@ -1,3 +1,4 @@ +;Testname=test; Arguments=-fbin -otestdos.bin; Files=.stdout .stderr testdos.bin ; ; This file was known to miscompile with the 16-bit NASM built ; under Borland C++ 3.1, so keep it around for testing... diff --git a/test/testnos3.asm b/test/testnos3.asm index ed06473..9737e65 100644 --- a/test/testnos3.asm +++ b/test/testnos3.asm @@ -1,3 +1,4 @@ +;Testname=test; Arguments=-fbin -otestnos3.bin; Files=.stdout .stderr testnos3.bin ; ; Double-precision floating point tests, derived from Fred Tydeman's posting ; of 26 February 1996 to comp.arch.arithmetic, via David M. Gay's gdtoa diff --git a/test/time.asm b/test/time.asm index fa1dd29..ee4b9b7 100644 --- a/test/time.asm +++ b/test/time.asm @@ -1,3 +1,4 @@ +;Not automatically testable because it is not constant db __DATE__, 13, 10 db __TIME__, 13, 10 db __UTC_DATE__, 13, 10 diff --git a/test/uscore.asm b/test/uscore.asm index b82b7ce..d8670ee 100644 --- a/test/uscore.asm +++ b/test/uscore.asm @@ -1,3 +1,4 @@ +;Testname=test; Arguments=-fbin -ouscore.bin; Files=.stdout .stderr uscore.bin dd 0x1234_5678 dd 305_419_896 ; Same number as above it dd 0x1e16 ; NOT a floating-point number! diff --git a/test/xchg.asm b/test/xchg.asm index ad634c1..4bd95e4 100644 --- a/test/xchg.asm +++ b/test/xchg.asm @@ -1,3 +1,6 @@ +;Testname=unoptimized; Arguments=-fbin -oxchg.bin -O0; Files=.stdout .stderr xchg.bin +;Testname=optimized; Arguments=-fbin -oxchg.bin -Ox; Files=.stdout .stderr xchg.bin + %macro x 2 xchg %1,%2 xchg %2,%1 diff --git a/test/zerobyte.asm b/test/zerobyte.asm index edd88e9..676ea65 100644 --- a/test/zerobyte.asm +++ b/test/zerobyte.asm @@ -1,3 +1,4 @@ +;Testname=test; Arguments=-fbin -ozerobyte.bin; Files=.stdout .stderr zerobyte.bin bits 64 mov eax,bar-foo -- 2.7.4