projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
In an XFAIL line, treat "XFAIL: foo*bar" as a regular expression to be matched
[oota-llvm.git]
/
test
/
lib
/
llvm.exp
diff --git
a/test/lib/llvm.exp
b/test/lib/llvm.exp
index a844152bf23d8861351db46737324d9424a19223..3e2632f12c1f34a2f7b8c3cdb39553c80b299061 100644
(file)
--- a/
test/lib/llvm.exp
+++ b/
test/lib/llvm.exp
@@
-7,7
+7,7
@@
proc execOneLine { test PRS outcome lineno line } {
set code [lindex $::errorCode 0]
set lineno [expr $lineno + 1]
if { $PRS != ""} {
set code [lindex $::errorCode 0]
set lineno [expr $lineno + 1]
if { $PRS != ""} {
- set PRS " for $PRS"
+ set PRS " for $PRS"
}
set errmsg " at line $lineno\nwhile running: $line\n$errmsg"
switch "$code" {
}
set errmsg " at line $lineno\nwhile running: $line\n$errmsg"
switch "$code" {
@@
-33,23
+33,23
@@
proc execOneLine { test PRS outcome lineno line } {
NONE {
# Any other error such as stderr output of a program, or syntax error in
# the RUN line.
NONE {
# Any other error such as stderr output of a program, or syntax error in
# the RUN line.
- set resultmsg "$test$PRS\nFailed with unknown error (or has stderr output)$errmsg"
+ set resultmsg "$test$PRS\nFailed with unknown error (or has stderr output)$errmsg"
}
default {
}
default {
- set resultmsg "$test$PRS\nFailed with unknown error$errmsg"
+ set resultmsg "$test$PRS\nFailed with unknown error$errmsg"
}
}
}
}
- }
+ }
return $resultmsg
}
# This procedure performs variable substitutions on the RUN: lines of a test
# cases.
proc substitute { line test tmpFile } {
return $resultmsg
}
# This procedure performs variable substitutions on the RUN: lines of a test
# cases.
proc substitute { line test tmpFile } {
- global srcroot objroot srcdir objdir subdir target_triplet prcontext
+ global srcroot objroot srcdir objdir subdir target_triplet prcontext
global llvmgcc llvmgxx llvmgcc_version llvmgccmajvers ocamlc
global gccpath gxxpath compile_c compile_cxx link shlibext llvmlibsdir
global llvmgcc llvmgxx llvmgcc_version llvmgccmajvers ocamlc
global gccpath gxxpath compile_c compile_cxx link shlibext llvmlibsdir
- global
valgrind
+ global
llvmdsymutil valgrind grep gas bugpoint_topts
set path [file join $srcdir $subdir]
# Substitute all Tcl variables.
set path [file join $srcdir $subdir]
# Substitute all Tcl variables.
@@
-73,9
+73,13
@@
proc substitute { line test tmpFile } {
regsub -all {%shlibext} $new_line "$shlibext" new_line
#replace %ocamlc with ocaml compiler command
regsub -all {%ocamlc} $new_line "$ocamlc" new_line
regsub -all {%shlibext} $new_line "$shlibext" new_line
#replace %ocamlc with ocaml compiler command
regsub -all {%ocamlc} $new_line "$ocamlc" new_line
+ #replace %llvmdsymutil with dsymutil command
+ regsub -all {%llvmdsymutil} $new_line "$llvmdsymutil" new_line
#replace %llvmlibsdir with configure library directory
regsub -all {%llvmlibsdir} $new_line "$llvmlibsdir" new_line
#replace %llvmlibsdir with configure library directory
regsub -all {%llvmlibsdir} $new_line "$llvmlibsdir" new_line
- #replace %p with path to source,
+ #replace %bugpoint_topts with actual bugpoint target options
+ regsub -all {%bugpoint_topts} $new_line "$bugpoint_topts" new_line
+ #replace %p with path to source,
regsub -all {%p} $new_line [file join $srcdir $subdir] new_line
#replace %s with filename
regsub -all {%s} $new_line $test new_line
regsub -all {%p} $new_line [file join $srcdir $subdir] new_line
#replace %s with filename
regsub -all {%s} $new_line $test new_line
@@
-84,6
+88,11
@@
proc substitute { line test tmpFile } {
#replace _#MARKER#_ with %
regsub -all {_#MARKER#_} $new_line % new_line
#replace _#MARKER#_ with %
regsub -all {_#MARKER#_} $new_line % new_line
+ #replace grep with GNU grep
+ regsub -all { grep } $new_line " $grep " new_line
+ #replace as with GNU as
+ regsub -all {\| as } $new_line "| $gas " new_line
+
#valgind related stuff
# regsub -all {bugpoint } $new_line "$valgrind bugpoint " new_line
regsub -all {llc } $new_line "$valgrind llc " new_line
#valgind related stuff
# regsub -all {bugpoint } $new_line "$valgrind bugpoint " new_line
regsub -all {llc } $new_line "$valgrind llc " new_line
@@
-112,7
+121,7
@@
proc RunLLVMTests { test_source_files } {
set timeout 60
set path [file join $objdir $subdir]
set timeout 60
set path [file join $objdir $subdir]
-
+
#Make Output Directory if it does not exist already
if { [file exists path] } {
cd $path
#Make Output Directory if it does not exist already
if { [file exists path] } {
cd $path
@@
-120,22
+129,22
@@
proc RunLLVMTests { test_source_files } {
file mkdir $path
cd $path
}
file mkdir $path
cd $path
}
-
+
file mkdir Output
cd Output
foreach test $test_source_files {
#Should figure out best way to set the timeout
#set timeout 40
file mkdir Output
cd Output
foreach test $test_source_files {
#Should figure out best way to set the timeout
#set timeout 40
-
+
set filename [file tail $test]
verbose "ABOUT TO RUN: $filename" 2
set outcome PASS
set tmpFile "$filename.tmp"
set filename [file tail $test]
verbose "ABOUT TO RUN: $filename" 2
set outcome PASS
set tmpFile "$filename.tmp"
-
+
# Mark that it should not be XFAIL for this target.
set targetPASS 0
# Mark that it should not be XFAIL for this target.
set targetPASS 0
-
+
#set hasRunline bool to check if testcase has a runline
set numLines 0
#set hasRunline bool to check if testcase has a runline
set numLines 0
@@
-146,7
+155,7
@@
proc RunLLVMTests { test_source_files } {
foreach line [split [read $testFileId] \n] {
# if its the END. line then stop parsing (optimization for big files)
foreach line [split [read $testFileId] \n] {
# if its the END. line then stop parsing (optimization for big files)
- if {[regexp {END.[[:space:]]*$} $line match endofscript]} {
+ if {[regexp {END.[[:space:]]*$} $line match endofscript]} {
break
# if the line is continued, concatenate and continue the loop
break
# if the line is continued, concatenate and continue the loop
@@
-154,7
+163,7
@@
proc RunLLVMTests { test_source_files } {
set runline "$runline$oneline "
# if its a terminating RUN: line then do substitution on the whole line
set runline "$runline$oneline "
# if its a terminating RUN: line then do substitution on the whole line
- # and then save the line.
+ # and then save the line.
} elseif {[regexp {RUN: *(.+)$} $line match oneline suffix]} {
set runline "$runline$oneline"
set runline [ substitute $runline $test $tmpFile ]
} elseif {[regexp {RUN: *(.+)$} $line match oneline suffix]} {
set runline "$runline$oneline"
set runline [ substitute $runline $test $tmpFile ]
@@
-175,7
+184,7
@@
proc RunLLVMTests { test_source_files } {
#split up target if more then 1 specified
foreach target [split $targets ,] {
#split up target if more then 1 specified
foreach target [split $targets ,] {
- if {
[regexp {\*} $target match]
} {
+ if {
$target == "*"
} {
if {$targetPASS != 1} {
set outcome XFAIL
}
if {$targetPASS != 1} {
set outcome XFAIL
}
@@
-211,11
+220,11
@@
proc RunLLVMTests { test_source_files } {
}
}
}
}
}
}
-
+
# Done reading the script
close $testFileId
# Done reading the script
close $testFileId
-
-
+
+
if { $numLines == 0 } {
fail "$test: \nDoes not have a RUN line\n"
} else {
if { $numLines == 0 } {
fail "$test: \nDoes not have a RUN line\n"
} else {
@@
-267,9
+276,9
@@
proc llvm_gcc_supports { lang } {
foreach supported_lang [split "$llvmgcc_langs" ,] {
if { "$lang" == "$supported_lang" } {
# FIXME: Knowing it is configured is not enough. We should do two more
foreach supported_lang [split "$llvmgcc_langs" ,] {
if { "$lang" == "$supported_lang" } {
# FIXME: Knowing it is configured is not enough. We should do two more
- # checks here. First, we need to run llvm-gcc -print-prog-name=$file to
+ # checks here. First, we need to run llvm-gcc -print-prog-name=$file to
# get the path to the compiler. If we don't get a path, the language isn't
# get the path to the compiler. If we don't get a path, the language isn't
- # properly configured or built. If we do get a path, we should check to
+ # properly configured or built. If we do get a path, we should check to
# make sure that it is executable and perhaps even try executing it.
return 1;
}
# make sure that it is executable and perhaps even try executing it.
return 1;
}