merge from gcc
[binutils.git] / gas / testsuite / lib / gas-dg.exp
blob92f7f3136c1783e243e5970a87ef666c9d33c3f2
1 # Define gas callbacks for dg.exp.
3 load_lib dg.exp
5 # The use of this function is still in a bit of flux.
6 # It should be theoretically possible to assemble, link, and run a file
7 # but we currently don't support that. Assembler testcases aren't usually
8 # that elaborate anyway. :-)
10 proc gas-dg-test { prog do_what tool_flags } {
11 # FIXME: the gas testsuite doesn't define tmpdir. Use outdir?
12 set output_file "./a.out"
14 switch $do_what {
15 "preprocess" {
17 "assemble" {
19 "link" {
21 "run" {
22 # This is the only place where we care if an executable was
23 # created or not. If it was, dg.exp will try to run it.
24 catch "exec rm -f $output_file"
26 default {
27 perror "$do_what: not a valid dg-do keyword"
28 return ""
32 # gas_start prepends $srcdir/$subdir so we must remove it from PROG
33 # if present. First remove extraneous //'s.
34 global srcdir subdir
35 set dir "$srcdir/$subdir"
36 regsub -all "//" $dir "/" dir
37 regsub -all "//" $prog "/" prog
38 if [string match "$dir/*" $prog] {
39 regsub "$dir" $prog "" prog
42 # FIXME: This should be gas_start but it doesn't set comp_output.
43 return [gas_run $prog $tool_flags ""]
46 proc gas-dg-prune { system text } {
47 #send_user "Before:$text\n"
48 regsub -all "(^|\n)\[^\n\]*: Assembler messages:\[^\n\]*" $text "" text
49 regsub -all "(^|\n)\[^\n\]*: End of file not at end\[^\n\]*Newline inserted." $text "" text
50 #send_user "After:$text\n"
52 return $text