mirror of
https://github.com/EchoVault/SugarDB.git
synced 2025-10-05 16:06:57 +08:00
Added test setup that adds keys for RANDOMKEY command instead of relying on keys from other tests.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -642,22 +642,22 @@ func (server *EchoVault) randomKey(ctx context.Context) string {
|
|||||||
defer server.storeLock.RUnlock()
|
defer server.storeLock.RUnlock()
|
||||||
|
|
||||||
database := ctx.Value("Database").(int)
|
database := ctx.Value("Database").(int)
|
||||||
|
|
||||||
_max := len(server.store[database])
|
|
||||||
if _max == 0 {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
randnum := rand.Intn(_max)
|
_max := len(server.store[database])
|
||||||
i := 0
|
if _max == 0 {
|
||||||
var randkey string
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
for key, _ := range server.store[database] {
|
randnum := rand.Intn(_max)
|
||||||
if i == randnum {
|
i := 0
|
||||||
randkey = key
|
var randkey string
|
||||||
} else {
|
|
||||||
i++
|
for key, _ := range server.store[database] {
|
||||||
}
|
if i == randnum {
|
||||||
|
randkey = key
|
||||||
|
} else {
|
||||||
|
i++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return randkey
|
return randkey
|
||||||
|
@@ -2021,7 +2021,6 @@ func Test_Generic(t *testing.T) {
|
|||||||
t.Run("Test_HandlerDECR", func(t *testing.T) {
|
t.Run("Test_HandlerDECR", func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
conn, err := internal.GetConnection("localhost", port)
|
conn, err := internal.GetConnection("localhost", port)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
@@ -2760,6 +2759,20 @@ func Test_Generic(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("Test_HandleRANDOMKEY", func(t *testing.T) {
|
t.Run("Test_HandleRANDOMKEY", func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
// Populate the store with keys first
|
||||||
|
for i := 0; i < 10; i++ {
|
||||||
|
_, _, err := mockServer.Set(
|
||||||
|
fmt.Sprintf("RandomKey%d", i),
|
||||||
|
fmt.Sprintf("Value%d", i),
|
||||||
|
echovault.SetOptions{},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
conn, err := internal.GetConnection("localhost", port)
|
conn, err := internal.GetConnection("localhost", port)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
@@ -2770,23 +2783,18 @@ func Test_Generic(t *testing.T) {
|
|||||||
}()
|
}()
|
||||||
client := resp.NewConn(conn)
|
client := resp.NewConn(conn)
|
||||||
|
|
||||||
// Reuse existing keys to test RANDOMKEY
|
expected := "Key"
|
||||||
// All keys used for other tests contain the substring 'Key'
|
if err = client.WriteArray([]resp.Value{resp.StringValue("RANDOMKEY")}); err != nil {
|
||||||
expected := "Key"
|
t.Error(err)
|
||||||
// Test RANDOMKEY
|
}
|
||||||
if err = client.WriteArray([]resp.Value{resp.StringValue("RANDOMKEY")}); err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
res, _, err := client.ReadValue()
|
res, _, err := client.ReadValue()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !strings.Contains(res.String(), expected) {
|
|
||||||
t.Errorf("expected a key containing substring '%s', got %s", expected, res.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if !strings.Contains(res.String(), expected) {
|
||||||
|
t.Errorf("expected a key containing substring '%s', got %s", expected, res.String())
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user