313 lines
6.8 KiB
Go
313 lines
6.8 KiB
Go
package hsperfdata
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestPerfDataPath(t *testing.T) {
|
|
type args struct {
|
|
pid string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
"1",
|
|
args{"18877"},
|
|
"C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18877",
|
|
false,
|
|
},
|
|
{
|
|
"2",
|
|
args{"123"},
|
|
"",
|
|
true,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := PerfDataPath(tt.args.pid)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("PerfDataPath() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if got != tt.want {
|
|
t.Errorf("PerfDataPath() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestPerfDataPaths(t *testing.T) {
|
|
type args struct {
|
|
pids []string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want map[string]string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
"1",
|
|
args{[]string{"18877", "18878"}},
|
|
map[string]string{
|
|
"18877": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18877",
|
|
"18878": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18878",
|
|
},
|
|
false,
|
|
},
|
|
{
|
|
"2",
|
|
args{[]string{"18877", "123"}},
|
|
nil,
|
|
true,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := PerfDataPaths(tt.args.pids)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("PerfDataPaths() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("PerfDataPaths() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestUserPerfDataPaths(t *testing.T) {
|
|
type args struct {
|
|
user string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want map[string]string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
"1",
|
|
args{"0686"},
|
|
map[string]string{
|
|
"18877": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18877",
|
|
"18878": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18878",
|
|
},
|
|
false,
|
|
},
|
|
{
|
|
"2",
|
|
args{"root"},
|
|
nil,
|
|
true,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := UserPerfDataPaths(tt.args.user)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("UserPerfDataPaths() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("UserPerfDataPaths() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestCurrentUserPerfDataPaths(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
want map[string]string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
"1",
|
|
map[string]string{
|
|
"18877": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18877",
|
|
"18878": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18878",
|
|
},
|
|
false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := CurrentUserPerfDataPaths()
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("CurrentUserPerfDataPaths() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("CurrentUserPerfDataPaths() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestAllPerfDataPaths(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
want map[string]string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
"1",
|
|
map[string]string{
|
|
"18877": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18877",
|
|
"18878": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\18878",
|
|
},
|
|
false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := AllPerfDataPaths()
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("AllPerfDataPaths() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("AllPerfDataPaths() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_removeNull(t *testing.T) {
|
|
type args struct {
|
|
s []byte
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want []byte
|
|
}{
|
|
{
|
|
"1",
|
|
args{[]byte{1, 2, 3, 0}},
|
|
[]byte{1, 2, 3},
|
|
},
|
|
{
|
|
"2",
|
|
args{[]byte{1, 2, 3}},
|
|
[]byte{1, 2, 3},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := removeNull(tt.args.s); !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("removeNull() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestDataPathsByProcessName(t *testing.T) {
|
|
type args struct {
|
|
processName string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want map[string]string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
"1",
|
|
args{"java"},
|
|
map[string]string{"53516": "C:\\Users\\0686\\AppData\\Local\\Temp\\hsperfdata_0686\\53516"},
|
|
false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := DataPathsByProcessName(tt.args.processName)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("DataPathsByProcessName() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("DataPathsByProcessName() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestReadPerfData(t *testing.T) {
|
|
type args struct {
|
|
filepath string
|
|
parserTime bool
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want [4]interface{}
|
|
wantErr bool
|
|
}{
|
|
{
|
|
"2036",
|
|
args{"../test-data/2036", false},
|
|
[4]interface{}{"1.6.0_45", "1.0", int64(20358139), 245},
|
|
false,
|
|
},
|
|
{
|
|
"2956",
|
|
args{"../test-data/2956", false},
|
|
[4]interface{}{"1.7.0-u40-rel_19", "1.7", int64(0), 218},
|
|
false,
|
|
},
|
|
{
|
|
"13223",
|
|
args{"../test-data/13223", true},
|
|
[4]interface{}{"1.6.0_65", "1.0", int64(11955673569), 212},
|
|
false,
|
|
},
|
|
{
|
|
"13984",
|
|
args{"../test-data/13984", true},
|
|
[4]interface{}{"1.8.0_172", "1.8", int64(85266870), 254},
|
|
false,
|
|
},
|
|
{
|
|
"15192",
|
|
args{"../test-data/15192", true},
|
|
[4]interface{}{"1.8.0_92", "1.8", int64(34831378), 253},
|
|
false,
|
|
},
|
|
{
|
|
"21916",
|
|
args{"../test-data/21916", false},
|
|
[4]interface{}{"1.8.0_31", "1.8", int64(0), 253},
|
|
false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := ReadPerfData(tt.args.filepath, tt.args.parserTime)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("ReadPerfData() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if !reflect.DeepEqual(got["java.property.java.version"], tt.want[0]) {
|
|
t.Errorf("ReadPerfData() java.property.java.version = %v, want %v", got["java.property.java.version"], tt.want[0])
|
|
}
|
|
if !reflect.DeepEqual(got["java.property.java.vm.specification.version"], tt.want[1]) {
|
|
t.Errorf("ReadPerfData() java.property.java.vm.specification.version = %v, want %v", got["java.property.java.vm.specification.version"], tt.want[1])
|
|
}
|
|
if !reflect.DeepEqual(got["sun.gc.collector.1.time"], tt.want[2]) {
|
|
t.Errorf("ReadPerfData() sun.gc.collector.1.time = %v, want %v", got["sun.gc.collector.1.time"], tt.want[2])
|
|
}
|
|
if !reflect.DeepEqual(len(got), tt.want[3]) {
|
|
t.Errorf("ReadPerfData() entries number = %v, want %v", len(got), tt.want[3])
|
|
}
|
|
})
|
|
}
|
|
}
|