[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