Updated for go 1.16 modules
This commit is contained in:
parent
8278d7b471
commit
38d9c881b3
25 changed files with 25 additions and 19 deletions
175
pkg/state/job_test.go
Normal file
175
pkg/state/job_test.go
Normal file
|
@ -0,0 +1,175 @@
|
|||
package state
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"git.adyxax.org/adyxax/bareos-zabbix-check/pkg/job"
|
||||
)
|
||||
|
||||
func Test_jobEntry_String(t *testing.T) {
|
||||
var badlyNamedJob [128]byte
|
||||
copy(badlyNamedJob[:], []byte("job_name"))
|
||||
var normalJob [128]byte
|
||||
copy(normalJob[:], []byte("normal_name.2012-06-01"))
|
||||
type fields struct {
|
||||
Errors int32
|
||||
JobType int32
|
||||
JobStatus int32
|
||||
JobLevel int32
|
||||
JobID uint32
|
||||
VolSessionID uint32
|
||||
VolSessionTime uint32
|
||||
JobFiles uint32
|
||||
JobBytes uint64
|
||||
StartTime uint64
|
||||
EndTime uint64
|
||||
Job [maxNameLength]byte
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
fields fields
|
||||
want string
|
||||
}{
|
||||
{
|
||||
"normal job",
|
||||
fields{Errors: 1, JobType: 'B', JobStatus: 'T', JobLevel: 'F', JobID: 2, VolSessionID: 3, VolSessionTime: 4, JobFiles: 5, JobBytes: 6, Job: badlyNamedJob},
|
||||
"Errors: 1, JobType: B, JobStatus: T, JobLevel: F, JobID: 2, VolSessionID: 3, VolSessionTime: 4, JobFiles: 5, JobBytes: 6, StartTime: 1970-01-01 01:00:00 +0100 CET, EndTime: 1970-01-01 01:00:00 +0100 CET, Job: job_name",
|
||||
},
|
||||
{
|
||||
"badly named job",
|
||||
fields{Errors: 1, JobType: 'B', JobStatus: 'T', JobLevel: 'F', JobID: 2, VolSessionID: 3, VolSessionTime: 4, JobFiles: 5, JobBytes: 6, Job: normalJob},
|
||||
"Errors: 1, JobType: B, JobStatus: T, JobLevel: F, JobID: 2, VolSessionID: 3, VolSessionTime: 4, JobFiles: 5, JobBytes: 6, StartTime: 1970-01-01 01:00:00 +0100 CET, EndTime: 1970-01-01 01:00:00 +0100 CET, Job: normal_name",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
je := jobEntry{
|
||||
Errors: tt.fields.Errors,
|
||||
JobType: tt.fields.JobType,
|
||||
JobStatus: tt.fields.JobStatus,
|
||||
JobLevel: tt.fields.JobLevel,
|
||||
JobID: tt.fields.JobID,
|
||||
VolSessionID: tt.fields.VolSessionID,
|
||||
VolSessionTime: tt.fields.VolSessionTime,
|
||||
JobFiles: tt.fields.JobFiles,
|
||||
JobBytes: tt.fields.JobBytes,
|
||||
StartTime: tt.fields.StartTime,
|
||||
EndTime: tt.fields.EndTime,
|
||||
Job: tt.fields.Job,
|
||||
}
|
||||
if got := je.String(); got != tt.want {
|
||||
t.Errorf("jobEntry.String() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseJobs(t *testing.T) {
|
||||
readerEmpty := bytes.NewReader([]byte{})
|
||||
readerTooSmall := bytes.NewReader([]byte{
|
||||
1, // number of jobs
|
||||
})
|
||||
readerJobError := bytes.NewReader([]byte{
|
||||
1, 0, 0, 0, // number of jobs
|
||||
})
|
||||
readerJobTooSmall := bytes.NewReader([]byte{
|
||||
1, 0, 0, 0, // number of jobs
|
||||
0,
|
||||
})
|
||||
readerInvalidJobName := bytes.NewReader([]byte{
|
||||
1, 0, 0, 0, // number of jobs
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // pad
|
||||
0, 0, 0, 0, // Errors
|
||||
'B', 0, 0, 0, // JobType
|
||||
'T', 0, 0, 0, // JobStatus
|
||||
0, 0, 0, 0, // JobLevel
|
||||
0, 0, 0, 0, // JobID
|
||||
0, 0, 0, 0, // VolSessionID
|
||||
0, 0, 0, 0, // VolSessionTime
|
||||
0, 0, 0, 0, // JobFiles
|
||||
0, 0, 0, 0, 0, 0, 0, 0, // JobBytes
|
||||
1, 0, 0, 0, 0, 0, 0, 0, // StartTime
|
||||
0, 0, 0, 0, 0, 0, 0, 0, // EndTime
|
||||
't', 'e', 's', 't', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // Job
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
})
|
||||
readerZeroJobs := bytes.NewReader([]byte{
|
||||
0, 0, 0, 0, // number of jobs
|
||||
})
|
||||
readerOneNonBackupJob := bytes.NewReader([]byte{
|
||||
1, 0, 0, 0, // number of jobs
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // pad
|
||||
0, 0, 0, 0, // Errors
|
||||
'R', 0, 0, 0, // JobType
|
||||
'T', 0, 0, 0, // JobStatus
|
||||
0, 0, 0, 0, // JobLevel
|
||||
0, 0, 0, 0, // JobID
|
||||
0, 0, 0, 0, // VolSessionID
|
||||
0, 0, 0, 0, // VolSessionTime
|
||||
0, 0, 0, 0, // JobFiles
|
||||
0, 0, 0, 0, 0, 0, 0, 0, // JobBytes
|
||||
1, 0, 0, 0, 0, 0, 0, 0, // StartTime
|
||||
0, 0, 0, 0, 0, 0, 0, 0, // EndTime
|
||||
't', 'e', 's', 't', '.', '2', '0', '1', '2', '-', '0', '2', '-', '0', '1', 0, // Job
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
})
|
||||
readerOneSuccessfulBackupJob := bytes.NewReader([]byte{
|
||||
1, 0, 0, 0, // number of jobs
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // pad
|
||||
0, 0, 0, 0, // Errors
|
||||
'B', 0, 0, 0, // JobType
|
||||
'T', 0, 0, 0, // JobStatus
|
||||
0, 0, 0, 0, // JobLevel
|
||||
0, 0, 0, 0, // JobID
|
||||
0, 0, 0, 0, // VolSessionID
|
||||
0, 0, 0, 0, // VolSessionTime
|
||||
0, 0, 0, 0, // JobFiles
|
||||
0, 0, 0, 0, 0, 0, 0, 0, // JobBytes
|
||||
1, 0, 0, 0, 0, 0, 0, 0, // StartTime
|
||||
0, 0, 0, 0, 0, 0, 0, 0, // EndTime
|
||||
't', 'e', 's', 't', '.', '2', '0', '1', '2', '-', '0', '2', '-', '0', '1', 0, // Job
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
})
|
||||
type args struct {
|
||||
handle io.Reader
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
wantJobs []job.Job
|
||||
wantErr bool
|
||||
}{
|
||||
{"read empty", args{readerEmpty}, nil, true},
|
||||
{"read too small", args{readerTooSmall}, nil, true},
|
||||
{"read job error", args{readerJobError}, nil, true},
|
||||
{"read job too small", args{readerJobTooSmall}, nil, true},
|
||||
{"read invalid job name", args{readerInvalidJobName}, nil, true},
|
||||
{"read zero jobs", args{readerZeroJobs}, nil, false},
|
||||
{"read one non backup job", args{readerOneNonBackupJob}, nil, false},
|
||||
{"read one successful backup job", args{readerOneSuccessfulBackupJob}, []job.Job{{Name: "test", Timestamp: 1, Success: true}}, false},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
gotJobs, err := ParseJobs(tt.args.handle)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("ParseJobs() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
}
|
||||
if !reflect.DeepEqual(gotJobs, tt.wantJobs) {
|
||||
t.Errorf("ParseJobs() = %v, want %v", gotJobs, tt.wantJobs)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue