[llvm-commits] [dragonegg] r150680 - in /dragonegg/trunk/test: ./ Compilator/ Compilator/lit.cfg DEFormats.py DETestRunner.py README lit.site.cfg.in
Duncan Sands
baldrick at free.fr
Thu Feb 16 02:46:13 PST 2012
Author: baldrick
Date: Thu Feb 16 04:46:12 2012
New Revision: 150680
URL: http://llvm.org/viewvc/llvm-project?rev=150680&view=rev
Log:
First step towards cleaning up the dragonegg testsuite and making it
public.
Added:
dragonegg/trunk/test/
dragonegg/trunk/test/Compilator/
dragonegg/trunk/test/Compilator/lit.cfg
dragonegg/trunk/test/DEFormats.py
dragonegg/trunk/test/DETestRunner.py
dragonegg/trunk/test/README
dragonegg/trunk/test/lit.site.cfg.in
Added: dragonegg/trunk/test/Compilator/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/test/Compilator/lit.cfg?rev=150680&view=auto
==============================================================================
--- dragonegg/trunk/test/Compilator/lit.cfg (added)
+++ dragonegg/trunk/test/Compilator/lit.cfg Thu Feb 16 04:46:12 2012
@@ -0,0 +1,345 @@
+# -*- Python -*-
+import DEFormats
+
+# It will compile you. That's what it does. That's all it does.
+config.name = 'The Compilator'
+
+# Load common definitions.
+lit.load_config(config, lit.params['site'])
+
+# test_source_root: The root path where tests are located.
+config.test_source_root = os.path.dirname(__file__)
+
+# test_exec_root: The path where tests are executed.
+config.test_exec_root = config.test_output_dir + '/Compilator/'
+
+# suffixes: A list of file types to treat as compilable.
+config.suffixes = [
+ '.adb', # Ada
+ '.c', '.i', # C
+ '.C', '.cc', '.cpp', '.ii' # C++
+ '.f', '.f03', '.f08', '.f90', '.f95', # Fortran
+ '.go', # Go
+ '.jar', '.class', # Java
+ '.m', # ObjC
+ '.mm', # ObjC++
+]
+
+config.compilers = [
+ [config.gcc_executable],
+ [config.gcc_executable, '-fplugin=' + config.dragonegg_plugin]
+]
+
+config.compiler_flags = [[]]
+def addMutuallyExclusiveFlags(flags):
+ new_flags = []
+ for flag in flags:
+ new_args = [args + [flag] if flag else args for args in config.compiler_flags]
+ new_flags = new_flags + new_args
+ config.compiler_flags = new_flags
+
+addMutuallyExclusiveFlags([None, '-O1', '-O2', '-O3'])
+# The following are not mutually exclusive, but pretending they are speeds up
+# testing. Doing this fails to catch tests that pass with -g and also with
+# -march=native but fail with -g -march=native. Do such tests even exist?
+addMutuallyExclusiveFlags([None, '-g', '-march=native'])
+
+config.skip = [
+ 'gcc-testsuite/g++.dg/eh/cleanup1.C', # PR11811
+ 'gcc-testsuite/gnat.dg/frame_overflow.adb', # Fail to reject huge stack object; chews up all memory
+ 'gcc-testsuite/g++.dg/template/vtable2.C', # Some versions of GCC take forever
+]
+
+config.xfails = [
+ # asm goto
+ 'gcc-testsuite/c-c++-common/asmgoto-3.c',
+ 'gcc-testsuite/c-c++-common/asmgoto-4.c',
+ 'gcc-testsuite/g++.dg/ext/asmgoto1.C',
+ 'gcc-testsuite/gcc.c-torture/compile/asmgoto-1.c',
+ 'gcc-testsuite/gcc.dg/lto/20100518_0.c',
+ 'gcc-testsuite/gcc.dg/torture/pr46068.c',
+ 'gcc-testsuite/gcc.dg/tree-ssa/asmgoto-1.c',
+ 'gcc-testsuite/gcc.target/i386/pr44071.c',
+ 'gcc-testsuite/gcc.target/i386/pr46226.c',
+ 'gcc-testsuite/gcc.c-torture/compile/pr51767.c',
+
+ # bitfields with non-integer type
+ 'gcc-testsuite/gnat.dg/aggr4.adb',
+ 'gcc-testsuite/gnat.dg/assign_from_packed.adb',
+ 'gcc-testsuite/gnat.dg/bit_packed_array1.adb',
+ 'gcc-testsuite/gnat.dg/dynamic_elab1.adb',
+ 'gcc-testsuite/gnat.dg/dynamic_elab2.adb',
+ 'gcc-testsuite/gnat.dg/in_out_parameter.adb',
+ 'gcc-testsuite/gnat.dg/lto10.adb',
+ 'gcc-testsuite/gnat.dg/misaligned_nest.adb',
+ 'gcc-testsuite/gnat.dg/oconst3.adb',
+ 'gcc-testsuite/gnat.dg/oconst5.adb',
+ 'gcc-testsuite/gnat.dg/oconst4.adb',
+ 'gcc-testsuite/gnat.dg/opt10.adb',
+ 'gcc-testsuite/gnat.dg/opt9.adb',
+ 'gcc-testsuite/gnat.dg/pack2.adb',
+ 'gcc-testsuite/gnat.dg/packed_subtype.adb',
+ 'gcc-testsuite/gnat.dg/rep_clause3.adb',
+ 'gcc-testsuite/gnat.dg/test_oconst.adb',
+ 'gcc-testsuite/gnat.dg/unaligned_rep_clause.adb',
+
+ # calling a function with bad signature
+ 'gcc-testsuite/go.go-torture/execute/go-3.go',
+ 'gcc-testsuite/go.test/test/closedchan.go',
+ 'gcc-testsuite/go.test/test/convert.go',
+ 'gcc-testsuite/go.test/test/ddd.go',
+ 'gcc-testsuite/go.test/test/env.go',
+ 'gcc-testsuite/go.test/test/escape.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug093.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug099.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug111.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug130.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug190.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug206.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug243.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug257.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug286.go',
+ 'gcc-testsuite/go.test/test/fixedbugs/bug296.go',
+ 'gcc-testsuite/go.test/test/hashmap.go',
+ 'gcc-testsuite/go.test/test/interface/bigdata.go',
+ 'gcc-testsuite/go.test/test/interface/convert.go',
+ 'gcc-testsuite/go.test/test/interface/fake.go',
+ 'gcc-testsuite/go.test/test/interface/receiver.go',
+ 'gcc-testsuite/go.test/test/interface/returntype.go',
+ 'gcc-testsuite/go.test/test/interface/struct.go',
+ 'gcc-testsuite/go.test/test/ken/embed.go',
+ 'gcc-testsuite/go.test/test/ken/interfun.go',
+ 'gcc-testsuite/go.test/test/ken/intervar.go',
+ 'gcc-testsuite/go.test/test/ken/rob1.go',
+ 'gcc-testsuite/go.test/test/method.go',
+ 'gcc-testsuite/go.test/test/method3.go',
+ 'gcc-testsuite/go.test/test/recover2.go',
+ 'gcc-testsuite/go.test/test/recover3.go',
+ 'gcc-testsuite/go.test/test/zerodivide.go',
+
+ # f128
+ 'gcc-testsuite/c-c++-common/dfp/call-by-value.c',
+ 'gcc-testsuite/c-c++-common/dfp/cast.c',
+ 'gcc-testsuite/c-c++-common/dfp/compare-eq-dfp.c',
+ 'gcc-testsuite/c-c++-common/dfp/compare-eq-d128.c',
+ 'gcc-testsuite/c-c++-common/dfp/compare-rel-dfp.c',
+ 'gcc-testsuite/c-c++-common/dfp/compare-rel-d128.c',
+ 'gcc-testsuite/c-c++-common/dfp/compare-special-d128.c',
+ 'gcc-testsuite/c-c++-common/dfp/constants-zero.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-2.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-3.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-4.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-5.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-6.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-7.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-8.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-9.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-11.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-bfp-fold.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-dfp.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-dfp-fold-2.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-int-max.c',
+ 'gcc-testsuite/c-c++-common/dfp/convert-int.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-array.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-deref.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-mixed.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-pointer.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-scalar.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-struct.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-vararg-alternate-d128-2.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-vararg-alternate-d128.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-vararg-dfp.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-vararg-mixed.c',
+ 'gcc-testsuite/c-c++-common/dfp/func-vararg-mixed-2.c',
+ 'gcc-testsuite/c-c++-common/dfp/loop-index.c',
+ 'gcc-testsuite/c-c++-common/dfp/operator-comma.c',
+ 'gcc-testsuite/c-c++-common/dfp/operator-cond.c',
+ 'gcc-testsuite/c-c++-common/dfp/operator-unary.c',
+ 'gcc-testsuite/c-c++-common/dfp/pr36800.c',
+ 'gcc-testsuite/c-c++-common/dfp/pr39035.c',
+ 'gcc-testsuite/c-c++-common/dfp/usual-arith-conv.c',
+ 'gcc-testsuite/c-c++-common/dfp/pr39034.c',
+ 'gcc-testsuite/c-c++-common/dfp/pr39902.c',
+ 'gcc-testsuite/c-c++-common/dfp/pr39986.c',
+ 'gcc-testsuite/c-c++-common/dfp/signbit-1.c',
+ 'gcc-testsuite/c-c++-common/dfp/signbit-2.c',
+ 'gcc-testsuite/g++.dg/abi/mangle25.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-1_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-1_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-2_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-2_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-3_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-3_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-4_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-4_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-5_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-5_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-6_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/pass-6_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-1_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-1_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-2_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-2_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-3_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-3_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-4_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-4_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-5_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-5_y.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-6_x.C',
+ 'gcc-testsuite/g++.dg/compat/decimal/return-6_y.C',
+ 'gcc-testsuite/g++.dg/dfp/mangle-mode.C',
+ 'gcc-testsuite/gcc.dg/compat/scalar-by-value-dfp_x.c',
+ 'gcc-testsuite/gcc.dg/compat/scalar-by-value-dfp_y.c',
+ 'gcc-testsuite/gcc.dg/compat/scalar-return-dfp_x.c',
+ 'gcc-testsuite/gcc.dg/compat/scalar-return-dfp_y.c',
+ 'gcc-testsuite/gcc.dg/const-float128.c',
+ 'gcc-testsuite/gcc.dg/const-float128-ped.c',
+ 'gcc-testsuite/gcc.dg/dfp/constants-c99.c',
+ 'gcc-testsuite/gcc.dg/dfp/convert-complex.c',
+ 'gcc-testsuite/gcc.dg/dfp/constants.c',
+ 'gcc-testsuite/gcc.dg/dfp/convert-dfp-round.c',
+ 'gcc-testsuite/gcc.dg/dfp/constants-pedantic.c',
+ 'gcc-testsuite/gcc.dg/dfp/convert-dfp-round-thread.c',
+ 'gcc-testsuite/gcc.dg/dfp/fe-binop.c',
+ 'gcc-testsuite/gcc.dg/dfp/fe-convert-1.c',
+ 'gcc-testsuite/gcc.dg/dfp/pr35739.c',
+ 'gcc-testsuite/gcc.dg/dfp/pr41049.c',
+ 'gcc-testsuite/gcc.dg/dfp/union-init.c',
+ 'gcc-testsuite/gcc.dg/dfp/wtr-conversion-1.c',
+ 'gcc-testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c',
+ 'gcc-testsuite/gcc.dg/format/dfp-printf-1.c',
+ 'gcc-testsuite/gcc.dg/gomp/pr48591.c',
+ 'gcc-testsuite/gcc.dg/torture/fp-int-convert-float128.c',
+ 'gcc-testsuite/gcc.dg/torture/fp-int-convert-float128-timode.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/alloca-5.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/alloca-6.c',
+ 'gcc-testsuite/gcc.target/i386/avx-3.c',
+ 'gcc-testsuite/gcc.target/i386/float128-1.c',
+ 'gcc-testsuite/gcc.target/i386/float128-2.c',
+ 'gcc-testsuite/gcc.target/i386/movti.c',
+ 'gcc-testsuite/gcc.target/i386/pr31854.c',
+ 'gcc-testsuite/gcc.target/i386/pr32000-1.c',
+ 'gcc-testsuite/gcc.target/i386/pr32000-2.c',
+ 'gcc-testsuite/gcc.target/i386/pr32065-1.c',
+ 'gcc-testsuite/gcc.target/i386/pr32191.c',
+ 'gcc-testsuite/gcc.target/i386/pr32268.c',
+ 'gcc-testsuite/gcc.target/i386/pr35767-3.c',
+ 'gcc-testsuite/gcc.target/i386/pr35767-4.c',
+ 'gcc-testsuite/gcc.target/i386/pr40906-3.c',
+ 'gcc-testsuite/gcc.target/i386/pr45946.c',
+ 'gcc-testsuite/gcc.target/i386/pr48335-1.c',
+ 'gcc-testsuite/gcc.target/i386/stackalign/return-3.c',
+ 'gcc-testsuite/gcc.target/ia64/postinc-1.c',
+ 'gcc-testsuite/gcc.target/mips/pr37362.c',
+ 'gcc-testsuite/gcc.target/powerpc/dfp-td.c',
+ 'gcc-testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c',
+ 'gcc-testsuite/gcc.target/powerpc/ppc64-abi-dfp-1.c',
+ 'gcc-testsuite/gcc.target/powerpc/pr39902-2.c',
+ 'gcc-testsuite/gfortran.dg/quad_1.f90',
+
+ # non-local goto or label (partly fixable)
+ 'gcc-testsuite/gcc.c-torture/compile/20050122-2.c',
+ 'gcc-testsuite/gcc.c-torture/compile/920415-1.c',
+ 'gcc-testsuite/gcc.c-torture/compile/pr21728.c',
+ 'gcc-testsuite/gcc.c-torture/execute/920415-1.c',
+ 'gcc-testsuite/gcc.c-torture/execute/920428-2.c',
+ 'gcc-testsuite/gcc.c-torture/execute/920501-7.c',
+ 'gcc-testsuite/gcc.c-torture/execute/920721-4.c',
+ 'gcc-testsuite/gcc.c-torture/execute/comp-goto-2.c',
+ 'gcc-testsuite/gcc.c-torture/execute/nestfunc-5.c',
+ 'gcc-testsuite/gcc.c-torture/execute/nestfunc-6.c',
+ 'gcc-testsuite/gcc.c-torture/execute/pr24135.c',
+ 'gcc-testsuite/gcc.dg/non-local-goto-1.c',
+ 'gcc-testsuite/gcc.dg/non-local-goto-2.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/comp-goto-1.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/nested-4.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/nested-5.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/non-local-goto-1.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/nested-6.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/non-local-goto-2.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/non-local-goto-3.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/non-local-goto-4.c',
+ 'gcc-testsuite/gcc.dg/torture/stackalign/non-local-goto-5.c',
+ 'gcc-testsuite/gcc.target/powerpc/darwin-save-world-1.c',
+ 'gcc-testsuite/gcc.dg/tree-prof/pr44777.c',
+
+ # varargs thunk
+ 'gcc-testsuite/g++.dg/inherit/thunk1.C',
+ 'gcc-testsuite/g++.old-deja/g++.jason/thunk3.C',
+
+ # weak ABI support
+ 'gcc-testsuite/gcc.target/x86_64/abi/test_struct_returning.c',
+ 'gcc-testsuite/gnat.dg/array3.adb',
+ 'gcc-testsuite/gnat.dg/curr_task.adb',
+ 'gcc-testsuite/gnat.dg/frunaligned.adb',
+ 'gcc-testsuite/gnat.dg/interface2.adb',
+ 'gcc-testsuite/gnat.dg/task_stack_align.adb',
+ 'gcc-testsuite/objc.dg/stret-2.m',
+
+ # Miscellaneous failures
+ 'gcc-testsuite/c-c++-common/dfp/pr31385.c', # exposed a bug in GCC's native_encode_expr
+ 'gcc-testsuite/g++.dg/eh/ia64-1.C', # GCC accepts at -O1 or better because the optimizers removed the invalid register assignment
+ 'gcc-testsuite/g++.dg/ext/asm1.C', # PR11810
+ 'gcc-testsuite/g++.dg/ext/va-arg-pack-2.C', # Fails to reject invalid use of __builtin_va_arg_pack
+ 'gcc-testsuite/g++.dg/ext/va-arg-pack-len-2.C', # Not yet analyzed
+ 'gcc-testsuite/g++.dg/tree-ssa/pr42337.C', # GCC gives up at less than -O2
+ 'gcc-testsuite/g++.dg/ext/alias-canon2.C', # multiple fns with same name and neither are external!
+ 'gcc-testsuite/g++.dg/ext/attrib32.C', # multiple fns with same name and neither are external!
+ 'gcc-testsuite/gcc.c-torture/compile/20031023-4.c', # Stack variable doesn't fit in 32 bits
+ 'gcc-testsuite/gcc.c-torture/compile/limits-fndefn.c', # Huge function overflowed codegen's NodeId?
+ 'gcc-testsuite/gcc.c-torture/compile/limits-structnest.c', # Crash creating metadata when compiled with -g
+ 'gcc-testsuite/gcc.dg/20020919-1.c', # Invalid asm not rejected
+ 'gcc-testsuite/gcc.dg/20051207-3.c', # Wrong section not rejected
+ 'gcc-testsuite/gcc.dg/tls/section-1.c', # Wrong section not rejected
+ 'gcc-testsuite/gcc.dg/asm-4.c', # Valid (?) asm rejected
+ 'gcc-testsuite/gcc.dg/guality/sra-1.c', # Assertion "Cannot assign into a bitfield!" failed
+ 'gcc-testsuite/gcc.dg/lto/pr47259_0.c', # Crash processing inline asm
+ 'gcc-testsuite/gcc.dg/pr42611.c', # Variable not rejected as being too big, we miscompile instead!
+ 'gcc-testsuite/gcc.dg/pr46674.c', # Alias wrongly rejected
+ 'gcc-testsuite/gcc.dg/pr47276.c', # Alias wrongly rejected
+ 'gcc-testsuite/gcc.target/i386/alias-1.c', # Alias wrongly rejected
+ 'gcc-testsuite/gcc.dg/unwind-1.c', # Reject multiple functions with same assembler name
+ 'gcc-testsuite/gcc.dg/va-arg-pack-1.c', # Fail to reject invalid use of __builtin_va_arg_pack
+ 'gcc-testsuite/gcc.dg/va-arg-pack-len-2.c', # Fail to reject call to function with error attribute
+ 'gcc-testsuite/gcc.dg/vect/pr48377.c', # Underaligned integer type
+ 'gcc-testsuite/gcc.target/i386/builtin-copysign.c', # Missing support for builtin_fabsq
+ 'gcc-testsuite/gcc.target/i386/max-stack-align.c', # Invalid asm not rejected
+ 'gcc-testsuite/gcc.target/i386/pr30413.c', # Valid (?) asm rejected
+ 'gcc-testsuite/gcc.target/i386/pr39911.c', # Valid (?) asm rejected
+ 'gcc-testsuite/gcc.target/i386/pr9771-1.c', # Invalid (?) asm not rejected
+ 'gcc-testsuite/gcc.target/i386/quad-sse.c', # Missing support for builtin_fabsq
+ 'gcc-testsuite/gcc.target/i386/sse-13.c', # Missing support for builtin_ia32_bsrsi
+ 'gcc-testsuite/gcc.target/i386/sse-23.c', # Missing support for builtin_ia32_bsrsi
+ 'gcc-testsuite/gcc.target/i386/sse-24.c', # Missing support for builtin_ia32_bsrsi
+ 'gcc-testsuite/gcc.target/i386/sse-22.c', # Assertion "Not of memory type!" failed
+ 'gcc-testsuite/gcc.target/i386/ssse3-palignr.c', # Assertion "Not of memory type!" failed
+ 'gcc-testsuite/gcc.target/i386/vperm-v2df.c', # GCC rejects shuffle at -O0 due to non constant operands
+ 'gcc-testsuite/gcc.target/i386/vperm-v2di.c', # GCC rejects shuffle at -O0 due to non constant operands
+ 'gcc-testsuite/gcc.target/i386/vperm-v4sf-1.c', # GCC rejects shuffle at -O0 due to non constant operands
+ 'gcc-testsuite/gcc.target/i386/vperm-v4si-1.c', # GCC rejects shuffle at -O0 due to non constant operands
+ 'gcc-testsuite/gcc.target/i386/vperm-v4si-2-sse4.c', # GCC rejects shuffle at -O0 due to non constant operands
+ 'gcc-testsuite/gcc.target/i386/vperm-v4sf-2.c', # GCC rejects shuffle at -O0 due to non constant operands
+ 'gcc-testsuite/gcc.target/i386/vperm-v4si-2x.c', # GCC rejects shuffle at -O0 due to non constant operands
+ 'gcc-testsuite/gcc.target/i386/vperm-v4si-2.c', # GCC rejects shuffle at -O0 due to non constant operands
+ 'gcc-testsuite/gcc.target/ia64/pr43603.c', # GCC rejects inline asm with impossible constraint; we crash in codegen
+ 'gcc-testsuite/gcc.target/powerpc/recip-6.c', # GCC rejects inline asm with impossible constraint; we crash in codegen
+ 'gcc-testsuite/gcc.target/powerpc/recip-7.c', # GCC rejects inline asm; we crash in codegen
+ 'gcc-testsuite/gcc.target/powerpc/spe-unwind-1.c', # GCC rejects inline asm; we crash in codegen
+ 'gcc-testsuite/gcc.target/s390/20090223-1.c', # GCC rejects inline asm; we crash in codegen
+ 'gcc-testsuite/gcc.target/m68k/pr45015.c', # GCC rejects inline asm with impossible constraint; we crash in register allocation
+ 'gcc-testsuite/gcc.target/s390/pr24624.c', # GCC rejects inline asm with impossible constraint; we crash in register allocation
+ 'gcc-testsuite/gcc.target/powerpc/asm-es-1.c', # Fail to reject invalid asm
+ 'gcc-testsuite/gcc.target/powerpc/asm-y.c', # Valid (?) asm rejected
+ 'gcc-testsuite/gcc.target/powerpc/ppc64-abi-1.c', # Valid (?) asm rejected
+ 'gcc-testsuite/gcc.target/s390/20030129-1.c', # Fail to reject invalid (?) asm
+ 'gcc-testsuite/gcc.target/s390/pr20927.c', # Fail to reject invalid (?) asm
+ 'gcc-testsuite/go.test/test/fixedbugs/bug273.go', # Cache collision with decl_llvm
+ 'gcc-testsuite/go.test/test/fixedbugs/bug294.go', # Cache collision with decl_llvm
+ 'gcc-testsuite/go.test/test/interface/embed.go', # Cache collision with decl_llvm
+]
+
+# testFormat: The test format to use to interpret tests.
+config.test_format = DEFormats.CompilatorTest(config.compilers,
+ config.compiler_flags, config.skip, config.xfails)
Added: dragonegg/trunk/test/DEFormats.py
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/test/DEFormats.py?rev=150680&view=auto
==============================================================================
--- dragonegg/trunk/test/DEFormats.py (added)
+++ dragonegg/trunk/test/DEFormats.py Thu Feb 16 04:46:12 2012
@@ -0,0 +1,13 @@
+import DETestRunner
+from TestFormats import FileBasedTest
+
+class CompilatorTest(FileBasedTest):
+ def __init__(self, compilers, compiler_flags, skip, xfails):
+ self.compilers = compilers
+ self.compiler_flags = compiler_flags
+ self.skip = skip
+ self.xfails = xfails
+
+ def execute(self, test, litConfig):
+ return DETestRunner.executeCompilatorTest(test, litConfig,
+ self.compilers, self.compiler_flags, self.skip, self.xfails)
Added: dragonegg/trunk/test/DETestRunner.py
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/test/DETestRunner.py?rev=150680&view=auto
==============================================================================
--- dragonegg/trunk/test/DETestRunner.py (added)
+++ dragonegg/trunk/test/DETestRunner.py Thu Feb 16 04:46:12 2012
@@ -0,0 +1,74 @@
+import os
+import StringIO
+import Test
+import TestRunner
+import Util
+
+def describeFailure(output, cmd, out, err, exitCode):
+ print >>output, "Command:",
+ print >>output, ' '.join(cmd)
+ print >>output, "Failed with exit code: %r" % exitCode
+ if out:
+ print >>output, "Command output (stdout):"
+ print >>output, "--"
+ output.write(out)
+ print >>output, "--"
+ if err:
+ print >>output, "Command output (stderr):"
+ print >>output, "--"
+ output.write(err)
+ print >>output, "--"
+
+
+def compareCommands(cmds, args, cwd=None):
+ def executeOne(cmd):
+ return TestRunner.executeCommand(cmd + args, cwd)
+
+ results = map(executeOne, cmds)
+ failed = False
+
+ # Check that all commands exited with the same code.
+ out,err,commonExitCode = results[0]
+ for result in results:
+ out,err,exitCode = result
+ if exitCode != commonExitCode:
+ failed = True
+ break
+
+ # TODO: Consider comparing command output as well as the exit codes.
+ if not failed:
+ return (Test.PASS, None)
+
+ # Failure.
+ output = StringIO.StringIO()
+ for cmd,result in zip(cmds,results):
+ out,err,exitCode = result
+ if exitCode != 0:
+ describeFailure(output, cmd + args, out, err, exitCode)
+ return (Test.FAIL, output.getvalue())
+
+
+def executeCompilatorTest(test, litConfig, compilers, flags, skip, xfails):
+ test_path = '/'.join(test.path_in_suite)
+
+ # Skip this test if requested to do so.
+ if test_path in skip:
+ return (Test.UNSUPPORTED, None)
+
+ # Create the output directory if it does not already exist.
+ execpath = test.getExecPath()
+ execdir,execbase = os.path.split(execpath)
+ tmpDir = os.path.join(execdir, 'Output')
+ tmpDir = os.path.join(tmpDir, execbase)
+ Util.mkdir_p(tmpDir)
+
+ # Is this test expected to fail?
+ isXFail = test_path in xfails
+
+ # Compile the test.
+ common_args = ['-S', test.getSourcePath()]
+ for args in flags:
+ result,output = compareCommands(compilers, common_args + args, tmpDir)
+ if result != Test.PASS:
+ return (Test.XFAIL if isXFail else result,output)
+ return (Test.XPASS if isXFail else Test.PASS, None)
Added: dragonegg/trunk/test/README
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/test/README?rev=150680&view=auto
==============================================================================
--- dragonegg/trunk/test/README (added)
+++ dragonegg/trunk/test/README Thu Feb 16 04:46:12 2012
@@ -0,0 +1,11 @@
+Compilator
+----------
+
+Every file found under the Compilator directory is compiled by GCC both with and
+without the DragonEgg plugin, at a variety of optimization levels. If GCC can
+compile a file but DragonEgg cannot, or DragonEgg can compile the file but GCC
+cannot, then that test is considered to have failed.
+
+You should either checkout the GCC testsuite in the Compilator directory or use
+a symbolic link to ensure that Compilator/gcc-testsuite means the gcc/testsuite/
+directory from the GCC source tree.
Added: dragonegg/trunk/test/lit.site.cfg.in
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/test/lit.site.cfg.in?rev=150680&view=auto
==============================================================================
--- dragonegg/trunk/test/lit.site.cfg.in (added)
+++ dragonegg/trunk/test/lit.site.cfg.in Thu Feb 16 04:46:12 2012
@@ -0,0 +1,3 @@
+config.gcc_executable = "@GCC@"
+config.dragonegg_plugin = "@DRAGONEGG_PLUGIN@"
+config.test_output_dir = "@TEST_OUTPUT_DIR@"
More information about the llvm-commits
mailing list