summaryrefslogtreecommitdiffstats
path: root/llgo/third_party/gofrontend/libgo/go/time/time_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'llgo/third_party/gofrontend/libgo/go/time/time_test.go')
-rw-r--r--llgo/third_party/gofrontend/libgo/go/time/time_test.go25
1 files changed, 23 insertions, 2 deletions
diff --git a/llgo/third_party/gofrontend/libgo/go/time/time_test.go b/llgo/third_party/gofrontend/libgo/go/time/time_test.go
index 7e31dd78a92..2d16ea59ae3 100644
--- a/llgo/third_party/gofrontend/libgo/go/time/time_test.go
+++ b/llgo/third_party/gofrontend/libgo/go/time/time_test.go
@@ -830,8 +830,16 @@ var parseDurationTests = []struct {
{"39h9m14.425s", true, 39*Hour + 9*Minute + 14*Second + 425*Millisecond},
// large value
{"52763797000ns", true, 52763797000 * Nanosecond},
- // more than 9 digits after decimal point, see http://golang.org/issue/6617
+ // more than 9 digits after decimal point, see https://golang.org/issue/6617
{"0.3333333333333333333h", true, 20 * Minute},
+ // 9007199254740993 = 1<<53+1 cannot be stored precisely in a float64
+ {"9007199254740993ns", true, (1<<53 + 1) * Nanosecond},
+ // largest duration that can be represented by int64 in nanoseconds
+ {"9223372036854775807ns", true, (1<<63 - 1) * Nanosecond},
+ {"9223372036854775.807us", true, (1<<63 - 1) * Nanosecond},
+ {"9223372036s854ms775us807ns", true, (1<<63 - 1) * Nanosecond},
+ // large negative value
+ {"-9223372036854775807ns", true, -1<<63 + 1*Nanosecond},
// errors
{"", false, 0},
@@ -842,7 +850,13 @@ var parseDurationTests = []struct {
{"-.", false, 0},
{".s", false, 0},
{"+.s", false, 0},
- {"3000000h", false, 0}, // overflow
+ {"3000000h", false, 0}, // overflow
+ {"9223372036854775808ns", false, 0}, // overflow
+ {"9223372036854775.808us", false, 0}, // overflow
+ {"9223372036854ms775us808ns", false, 0}, // overflow
+ // largest negative value of type int64 in nanoseconds should fail
+ // see https://go-review.googlesource.com/#/c/2461/
+ {"-9223372036854775808ns", false, 0},
}
func TestParseDuration(t *testing.T) {
@@ -1052,6 +1066,13 @@ func BenchmarkParse(b *testing.B) {
}
}
+func BenchmarkParseDuration(b *testing.B) {
+ for i := 0; i < b.N; i++ {
+ ParseDuration("9007199254.740993ms")
+ ParseDuration("9007199254740993ns")
+ }
+}
+
func BenchmarkHour(b *testing.B) {
t := Now()
for i := 0; i < b.N; i++ {
OpenPOWER on IntegriCloud