-
Notifications
You must be signed in to change notification settings - Fork 0
/
replay.go
64 lines (58 loc) · 1.96 KB
/
replay.go
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
// Copyright (C) 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package scheduler
import (
"context"
"github.com/google/gapid/core/log"
"github.com/google/gapid/test/robot/build"
"github.com/google/gapid/test/robot/job"
"github.com/google/gapid/test/robot/monitor"
"github.com/google/gapid/test/robot/replay"
)
func (s schedule) doReplay(ctx context.Context, t *monitor.Trace,
tools *build.ToolSet, androidTools *build.AndroidToolSet) error {
if !s.worker.Supports(job.Replay) {
return nil
}
ctx = log.Enter(ctx, "Replay")
ctx = log.V{"Package": s.pkg.Id}.Bind(ctx)
input := &replay.Input{
Trace: t.Action.Output.Trace,
Gapit: tools.Host.Gapit,
Gapis: tools.Host.Gapis,
Gapir: tools.Host.Gapir,
VirtualSwapChainLib: tools.Host.VirtualSwapChainLib,
VirtualSwapChainJson: tools.Host.VirtualSwapChainJson,
Package: s.pkg.Id,
Api: t.Input.Hints.API,
GapirDevice: s.gapirDevice(),
}
if androidTools != nil {
input.GapidApk = androidTools.GapidApk
input.ToolingLayout = &replay.ToolingLayout{
GapidAbi: androidTools.Abi,
}
}
action := &replay.Action{
Input: input,
Host: s.worker.Host,
Target: s.worker.Target,
}
if _, found := s.data.Replays.FindOrCreate(ctx, action); found {
return nil
}
// TODO: we just ignore the error right now, what should we do?
go s.managers.Replay.Do(ctx, action.Target, input)
return nil
}