SP12893678 commented on code in PR #888:
URL: https://github.com/apache/yunikorn-core/pull/888#discussion_r1635168119
##########
pkg/common/utils_test.go:
##########
@@ -380,3 +383,127 @@ func TestGetConfigurationInt(t *testing.T) {
})
}
}
+
+func TestZeroTimeInUnixNano(t *testing.T) {
+ tests := []struct {
+ name string
+ input time.Time
+ expected *int64
+ }{
+ {
+ name: "zero time",
+ input: time.Time{},
+ expected: nil,
+ },
+ {
+ name: "non-zero time",
+ input: time.Date(2024, time.June, 6, 0, 0, 0, 0,
time.UTC),
+ expected: func() *int64 {
+ tInt := time.Date(2024, time.June, 6, 0, 0, 0,
0, time.UTC).UnixNano()
+ return &tInt
+ }(),
+ },
+ {
+ name: "time in different timezone",
+ input: time.Date(2024, time.June, 6, 0, 0, 0, 0,
time.FixedZone("UTC+8", 8*60*60)),
+ expected: func() *int64 {
+ tInt := time.Date(2024, time.June, 6, 0, 0, 0,
0, time.FixedZone("UTC+8", 8*60*60)).UnixNano()
+ return &tInt
+ }(),
+ },
+ }
+
+ for _, tc := range tests {
+ t.Run(tc.name, func(t *testing.T) {
+ result := ZeroTimeInUnixNano(tc.input)
+ if tc.expected == nil {
+ assert.Equal(t, tc.expected, result)
+ } else {
+ assert.Equal(t, *tc.expected, *result)
+ }
+ })
+ }
+}
+
+func TestSynchronizeGetNewUUID(t *testing.T) {
+ const numUUIDs = 1000
+ uuids := make(map[string]struct{}, numUUIDs)
+
+ for i := 0; i < numUUIDs; i++ {
+ newUUID := GetNewUUID()
+ if _, err := uuid.Parse(newUUID); err != nil {
+ t.Errorf("Generated UUID is not valid: %s", newUUID)
+ }
+ if _, exists := uuids[newUUID]; exists {
+ t.Errorf("Generated UUID is duplicated: %s", newUUID)
+ }
+ uuids[newUUID] = struct{}{}
+ }
+}
+
+func TestAsynchronousGetNewUUID(t *testing.T) {
+ const numUUIDs = 1000
+ uuids := make(map[string]struct{}, numUUIDs)
+ var mu sync.Mutex
+ var wg sync.WaitGroup
+
+ for i := 0; i < numUUIDs; i++ {
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+ newUUID := GetNewUUID()
+ if _, err := uuid.Parse(newUUID); err != nil {
+ t.Errorf("Generated UUID is not valid: %s",
newUUID)
+ }
+ mu.Lock()
+ if _, exists := uuids[newUUID]; exists {
+ t.Errorf("Generated UUID is duplicated: %s",
newUUID)
+ }
+ uuids[newUUID] = struct{}{}
+ mu.Unlock()
+ }()
+ }
+
+ wg.Wait()
+}
+
+func TestIsRecoveryQueue(t *testing.T) {
+ tests := []struct {
+ name string
+ queueName string
+ expected bool
+ }{
+ {
+ name: "lowercase",
+ queueName: "root.@recovery@",
+ expected: true,
+ },
+ {
+ name: "uppercase",
+ queueName: "ROOT.@RECOVERY@",
+ expected: true,
+ },
+ {
+ name: "both lowercase and uppercase",
+ queueName: "RoOT.@rECoVeRY@",
+ expected: true,
+ },
+ {
+ name: "non-recovery queue",
+ queueName: "otherQueue",
+ expected: false,
+ },
+ {
+ name: "empty string",
+ queueName: "",
+ expected: false,
+ },
+ }
+
Review Comment:
Yes, it is more readable after simplifying it.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]