File: cast-scope.exp

package info (click to toggle)
systemtap 5.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 47,556 kB
  • sloc: cpp: 81,117; ansic: 54,933; xml: 49,795; exp: 43,595; sh: 11,526; python: 5,003; perl: 2,252; tcl: 1,312; makefile: 1,006; javascript: 149; lisp: 105; awk: 101; asm: 91; java: 70; sed: 16
file content (68 lines) | stat: -rw-r--r-- 2,633 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
set test "cast-scope"
set ::result_string {function direct: {._str="Hello World!", ._l=12}
function cast: {._str="Hello World!", ._l=12}
mark cast: {._str="Hello World!", ._l=12}
statement direct: {._str="Hello World!", ._l=12}
statement cast: {._str="Hello World!", ._l=12}}

set srcfile "$srcdir/$subdir/$test.cxx"
set stpfile "$srcdir/$subdir/$test.stp"

proc dyninst_kfails {index} {

    # The dyninst runtime isn't multi-arch, it only works on the
    # native architecture. PR14490.
    if {! [all_compile_flag_native_p $index]} {
	setup_kfail 14490 "*-*-*"
    }

    # On ppc, stapdyn does not retrieve all registers, causing
    # various failures (such as the inability to retrieve DWARF
    # vars in unoptimized code). PR15614.
    if {[string match ppc* $::tcl_platform(machine)] && \
        ![all_compile_flag_optimized_p $index]} {
	setup_kfail 15614 "*-*-*"
    }
}

foreach dialect {"" "-std=c++98" "-std=c++03" "-std=c++11" "-std=c++14" "-std=c++17" "-std=c++20" "-std=c++23"} {
    for {set i 0} {$i < [all_compile_flags]} {incr i} {
        set extra_flag "[all_compile_flag $i] additional_flags=$dialect"
        set extra_name "[all_compile_flag_name $i]-$dialect"
        set test_flags "compiler=g++ additional_flags=-g [sdt_includes] $extra_flag"
        verbose -log "using $test_flags"
        set res [target_compile "$srcfile" $test-$extra_name.exe \
                     executable "$test_flags"]
        if { $res != "" } {
            verbose "target_compile failed: $res" 2
            fail "$test-$extra_name compile"
            untested "$test-$extra_name"
            continue
        } else {
            pass "$test-$extra_name compile"
        }

        catch {exec readelf -w $test-$extra_name.exe | grep "DW_AT_language.*:"} output
        verbose -log "$output"
        
        if {[installtest_p]} {
            foreach runtime [get_runtime_list] {
                if {$runtime != ""} {
                    if {[info procs ${runtime}_kfails] ne ""} {
                        ${runtime}_kfails $i
                    }
                    stap_run3 "$test-$extra_name-$runtime" "$stpfile" \
                        -c "./$test-$extra_name.exe 'Hello World!'" --runtime=$runtime
                } elseif {[uprobes_p]} {
                    stap_run3 "$test-$extra_name" "$stpfile" \
                        -c "./$test-$extra_name.exe 'Hello World!'"
                } else {
                    untested "$test-$extra_name"
                }
            }	    
        } else {
            untested "$test-$extra_name"
        }
        catch {exec rm -f $test-$extra_name.exe}
    }
}