gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/grpc/internal/grpcutil/encode_duration_test.go (about)

     1  /*
     2   *
     3   * Copyright 2020 gRPC authors.
     4   *
     5   * Licensed under the Apache License, Version 2.0 (the "License");
     6   * you may not use this file except in compliance with the License.
     7   * You may obtain a copy of the License at
     8   *
     9   *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   *
    17   */
    18  
    19  package grpcutil
    20  
    21  import (
    22  	"testing"
    23  	"time"
    24  )
    25  
    26  func TestEncodeDuration(t *testing.T) {
    27  	for _, test := range []struct {
    28  		in  string
    29  		out string
    30  	}{
    31  		{"12345678ns", "12345678n"},
    32  		{"123456789ns", "123457u"},
    33  		{"12345678us", "12345678u"},
    34  		{"123456789us", "123457m"},
    35  		{"12345678ms", "12345678m"},
    36  		{"123456789ms", "123457S"},
    37  		{"12345678s", "12345678S"},
    38  		{"123456789s", "2057614M"},
    39  		{"12345678m", "12345678M"},
    40  		{"123456789m", "2057614H"},
    41  	} {
    42  		d, err := time.ParseDuration(test.in)
    43  		if err != nil {
    44  			t.Fatalf("failed to parse duration string %s: %v", test.in, err)
    45  		}
    46  		out := EncodeDuration(d)
    47  		if out != test.out {
    48  			t.Fatalf("timeoutEncode(%s) = %s, want %s", test.in, out, test.out)
    49  		}
    50  	}
    51  }