Skip to content

Commit

Permalink
Merge pull request #11135 from matejvasek/fix_ts
Browse files Browse the repository at this point in the history
Fix TS parsing for fractional values
  • Loading branch information
openshift-ci[bot] authored Aug 5, 2021
2 parents faf489b + 8cbbbe6 commit b243185
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
6 changes: 4 additions & 2 deletions pkg/util/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package util
import (
"encoding/json"
"fmt"
"math"
"os"
"os/user"
"path/filepath"
Expand Down Expand Up @@ -530,9 +531,10 @@ func ParseInputTime(inputTime string) (time.Time, error) {
}
}

unixTimestamp, err := strconv.ParseInt(inputTime, 10, 64)
unixTimestamp, err := strconv.ParseFloat(inputTime, 64)
if err == nil {
return time.Unix(unixTimestamp, 0), nil
iPart, fPart := math.Modf(unixTimestamp)
return time.Unix(int64(iPart), int64(fPart*1_000_000_000)).UTC(), nil
}

// input might be a duration
Expand Down
15 changes: 15 additions & 0 deletions pkg/util/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package util

import (
"testing"
"time"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
Expand Down Expand Up @@ -277,3 +278,17 @@ func TestPeriodAndQuotaToCores(t *testing.T) {

assert.Equal(t, PeriodAndQuotaToCores(period, quota), expectedCores)
}

func TestParseInputTime(t *testing.T) {
tm, err := ParseInputTime("1.5")
if err != nil {
t.Errorf("expected error to be nil but was: %v", err)
}

expected, err := time.ParseInLocation(time.RFC3339Nano, "1970-01-01T00:00:01.500000000Z", time.UTC)
if err != nil {
t.Fatal(err)
}

assert.Equal(t, expected, tm)
}

0 comments on commit b243185

Please sign in to comment.