/
lib.go
80 lines (62 loc) · 1.76 KB
/
lib.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package worker
import (
"encoding/json"
"io"
"github.com/APITeamLimited/globe-test/worker/libWorker"
"github.com/APITeamLimited/globe-test/worker/loader"
"github.com/spf13/afero"
)
type consoleWriter struct {
gs libWorker.BaseGlobalState
}
func (w *consoleWriter) Write(p []byte) (n int, err error) {
origLen := len(p)
// Intercept the write message so can assess log errors parse json
parsed := make(map[string]interface{})
if err := json.Unmarshal(p, &parsed); err != nil {
return origLen, err
}
// Ignore debug messages
if parsed["level"] == "debug" {
return origLen, err
}
// Check message level, if error then log error
if parsed["level"] == "error" {
if parsed["error"] != nil {
libWorker.HandleStringError(w.gs, parsed["error"].(string))
} else {
libWorker.HandleStringError(w.gs, parsed["msg"].(string))
}
return
}
libWorker.DispatchMessage(w.gs, string(p), "CONSOLE")
return origLen, err
}
var _ io.Writer = &consoleWriter{}
type workerLoadedTest struct {
sourceRootPath string
source *loader.SourceData
fs afero.Fs
pwd string
fileSystems map[string]afero.Fs
preInitState *libWorker.TestPreInitState
initRunner libWorker.Runner // TODO: rename to something more appropriate
keyLogger io.Closer
}
// Config ...
type Config struct {
libWorker.Options
Out []string `json:"out" envconfig:"K6_OUT"`
// TODO: deprecate
Collectors map[string]json.RawMessage `json:"collectors"`
}
// loadedAndConfiguredTest contains the whole loadedTest, as well as the
// consolidated test config and the full test run state.
type workerLoadedAndConfiguredTest struct {
*workerLoadedTest
derivedConfig Config
}
const testTypeJS = "js"
type JobUserUpdate struct {
UpdateType string `json:"updateType"`
}