Commit | Line | Data |
---|---|---|
252b5132 RH |
1 | # Define gas callbacks for dg.exp. |
2 | ||
3 | load_lib dg.exp | |
4 | ||
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. :-) | |
9 | ||
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" | |
13 | ||
14 | switch $do_what { | |
15 | "preprocess" { | |
16 | } | |
17 | "assemble" { | |
18 | } | |
19 | "link" { | |
20 | } | |
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" | |
25 | } | |
26 | default { | |
27 | perror "$do_what: not a valid dg-do keyword" | |
28 | return "" | |
29 | } | |
30 | } | |
31 | ||
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 | |
40 | } | |
41 | ||
42 | # FIXME: This should be gas_start but it doesn't set comp_output. | |
43 | return [gas_run $prog $tool_flags ""] | |
44 | } | |
45 | ||
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" | |
51 | ||
52 | return $text | |
53 | } |