aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-12-11 14:12:43 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-12-13 18:56:36 +0100
commitf007a558a8779585ff5968c53737ed89a40aa64b (patch)
treeb8506fbd2aa1843cb66496767facd12b29cd8ecc /pkg
parent7268cf9dbd7bb12380df1e672578a9a27f4d02ae (diff)
pkg/cover: accept object dir instead of object file
This looks more natural. All users duplicate logic of creating object file path, and then pkg/cover second guesses object dir back.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/cover/backend/backend.go4
-rw-r--r--pkg/cover/backend/elf.go4
-rw-r--r--pkg/cover/report.go6
-rw-r--r--pkg/cover/report_test.go4
4 files changed, 10 insertions, 8 deletions
diff --git a/pkg/cover/backend/backend.go b/pkg/cover/backend/backend.go
index 1e7a2bc7f..d712bcff8 100644
--- a/pkg/cover/backend/backend.go
+++ b/pkg/cover/backend/backend.go
@@ -30,6 +30,6 @@ type Symbol struct {
Symbolized bool
}
-func Make(target *targets.Target, vm, kernelObject, srcDir, buildDir string) (*Impl, error) {
- return makeELF(target, kernelObject, srcDir, buildDir)
+func Make(target *targets.Target, vm, objDir string) (*Impl, error) {
+ return makeELF(target, objDir)
}
diff --git a/pkg/cover/backend/elf.go b/pkg/cover/backend/elf.go
index 1e46578ed..dba8e4f0f 100644
--- a/pkg/cover/backend/elf.go
+++ b/pkg/cover/backend/elf.go
@@ -11,6 +11,7 @@ import (
"encoding/binary"
"fmt"
"io/ioutil"
+ "path/filepath"
"runtime"
"sort"
"strconv"
@@ -20,7 +21,8 @@ import (
"github.com/google/syzkaller/sys/targets"
)
-func makeELF(target *targets.Target, kernelObject, srcDir, buildDir string) (*Impl, error) {
+func makeELF(target *targets.Target, objDir string) (*Impl, error) {
+ kernelObject := filepath.Join(objDir, target.KernelObject)
file, err := elf.Open(kernelObject)
if err != nil {
return nil, err
diff --git a/pkg/cover/report.go b/pkg/cover/report.go
index 56ab949a0..9b515905f 100644
--- a/pkg/cover/report.go
+++ b/pkg/cover/report.go
@@ -26,15 +26,15 @@ type Prog struct {
PCs []uint64
}
-func MakeReportGenerator(target *targets.Target, vm, kernelObject, srcDir, buildDir string) (*ReportGenerator, error) {
- impl, err := backend.Make(target, vm, kernelObject, srcDir, buildDir)
+func MakeReportGenerator(target *targets.Target, vm, objDir, srcDir, buildDir string) (*ReportGenerator, error) {
+ impl, err := backend.Make(target, vm, objDir)
if err != nil {
return nil, err
}
rg := &ReportGenerator{
target: target,
srcDir: srcDir,
- objDir: filepath.Dir(kernelObject),
+ objDir: objDir,
buildDir: buildDir,
Impl: impl,
}
diff --git a/pkg/cover/report_test.go b/pkg/cover/report_test.go
index 2fdf8e4e0..afda03203 100644
--- a/pkg/cover/report_test.go
+++ b/pkg/cover/report_test.go
@@ -151,7 +151,7 @@ void __sanitizer_cov_trace_pc() { printf("%llu", (long long)__builtin_return_add
}
kcovFlags := append([]string{"-c", "-w", "-x", "c", "-o", kcovObj, kcovSrc}, target.CFlags...)
src := filepath.Join(dir, "main.c")
- bin := filepath.Join(dir, "bin")
+ bin := filepath.Join(dir, target.KernelObject)
if err := osutil.WriteFile(src, []byte(`int main() {}`)); err != nil {
t.Fatal(err)
}
@@ -179,7 +179,7 @@ func generateReport(t *testing.T, target *targets.Target, test Test) ([]byte, []
}
defer os.RemoveAll(dir)
bin := buildTestBinary(t, target, test, dir)
- rg, err := MakeReportGenerator(target, "", bin, dir, dir)
+ rg, err := MakeReportGenerator(target, "", dir, dir, dir)
if err != nil {
return nil, nil, err
}