proc/test/support: implement EnableDWZCompression

The EnableDWZCompression flag allows tests to request BuildFixture to
run "dwz" on the Fixture's resulting binary to compress/deduplicate its
DWARF sections.
This commit is contained in:
Sergio Lopez 2018-05-21 16:41:28 +02:00 committed by Derek Parker
parent 38307f92d4
commit ed71248f9b

@ -54,6 +54,7 @@ const (
LinkStrip BuildFlags = 1 << iota
EnableCGOOptimization
EnableInlining
EnableDWZCompression
)
func BuildFixture(name string, flags BuildFlags) Fixture {
@ -110,6 +111,15 @@ func BuildFixture(name string, flags BuildFlags) Fixture {
os.Exit(1)
}
if flags&EnableDWZCompression != 0 {
cmd := exec.Command("dwz", tmpfile)
if out, err := cmd.CombinedOutput(); err != nil {
fmt.Printf("Error running dwz on %s: %s\n", tmpfile, err)
fmt.Printf("%s\n", string(out))
os.Exit(1)
}
}
source, _ := filepath.Abs(path)
source = filepath.ToSlash(source)