Added tests to the main package and completely reworked the code around that
This commit is contained in:
parent
2661ce9a2b
commit
cadb15f7af
17 changed files with 285 additions and 239 deletions
31
job/utils.go
31
job/utils.go
|
@ -1,25 +1,32 @@
|
|||
package job
|
||||
|
||||
// KeepOldestOnly filters a job list and keeps only the most recent entry for a job name
|
||||
func KeepOldestOnly(jobs []Job) []Job {
|
||||
tmpMap := make(map[string]Job)
|
||||
for _, elt := range jobs {
|
||||
prev, exists := tmpMap[elt.Name]
|
||||
if !exists || (exists && prev.Timestamp < elt.Timestamp) {
|
||||
tmpMap[elt.Name] = elt
|
||||
func KeepOldestOnly(jobs []Job) (results []Job) {
|
||||
outerLoop:
|
||||
for i := 0; i < len(jobs); i++ {
|
||||
job := jobs[i]
|
||||
for j := 0; j < len(results); j++ {
|
||||
result := results[j]
|
||||
if result.Name == job.Name {
|
||||
continue outerLoop
|
||||
}
|
||||
}
|
||||
for j := i + 1; j < len(jobs); j++ {
|
||||
sec := jobs[j]
|
||||
if sec.Name == job.Name && sec.Timestamp > job.Timestamp {
|
||||
job = sec
|
||||
}
|
||||
}
|
||||
results = append(results, job)
|
||||
}
|
||||
values := make([]Job, 0, len(tmpMap))
|
||||
for _, value := range tmpMap {
|
||||
values = append(values, value)
|
||||
}
|
||||
return values
|
||||
return
|
||||
}
|
||||
|
||||
// KeepSuccessOnly returns only the successful jobs from a job list (suiatble to write a new spool file)
|
||||
func KeepSuccessOnly(jobs []Job) (result []Job) {
|
||||
result = make([]Job, 0)
|
||||
for _, job := range jobs {
|
||||
for i := 0; i < len(jobs); i++ {
|
||||
job := jobs[i]
|
||||
if job.Success {
|
||||
result = append(result, job)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue