mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 13:11:32 +00:00
For MongoDB < 3.0 explain is not supported
This commit is contained in:
@@ -37,90 +37,6 @@ func TestMain(m *testing.M) {
|
||||
func TestExplain(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
dir := vars.RootPath + samples + "/doc/out/"
|
||||
files, err := ioutil.ReadDir(dir)
|
||||
if err != nil {
|
||||
t.Fatalf("cannot list samples: %s", err)
|
||||
}
|
||||
|
||||
expectError := map[string]string{
|
||||
"aggregate_2.6.12": "Cannot explain cmd: aggregate",
|
||||
"aggregate_3.0.15": "Cannot explain cmd: aggregate",
|
||||
"aggregate_3.2.16": "Cannot explain cmd: aggregate",
|
||||
"aggregate_3.4.7": "Cannot explain cmd: aggregate",
|
||||
"aggregate_3.5.11": "Cannot explain cmd: aggregate",
|
||||
"count_2.6.12": "<nil>",
|
||||
"count_3.0.15": "<nil>",
|
||||
"count_3.2.16": "<nil>",
|
||||
"count_3.4.7": "<nil>",
|
||||
"count_3.5.11": "<nil>",
|
||||
"count_with_query_2.6.12": "<nil>",
|
||||
"count_with_query_3.0.15": "<nil>",
|
||||
"count_with_query_3.2.16": "<nil>",
|
||||
"count_with_query_3.4.7": "<nil>",
|
||||
"count_with_query_3.5.11": "<nil>",
|
||||
"delete_2.6.12": "<nil>",
|
||||
"delete_3.0.15": "<nil>",
|
||||
"delete_3.2.16": "<nil>",
|
||||
"delete_3.4.7": "<nil>",
|
||||
"delete_3.5.11": "<nil>",
|
||||
"delete_all_2.6.12": "<nil>",
|
||||
"delete_all_3.0.15": "<nil>",
|
||||
"delete_all_3.2.16": "<nil>",
|
||||
"delete_all_3.4.7": "<nil>",
|
||||
"delete_all_3.5.11": "<nil>",
|
||||
"distinct_2.6.12": "<nil>",
|
||||
"distinct_3.0.15": "<nil>",
|
||||
"distinct_3.2.16": "<nil>",
|
||||
"distinct_3.4.7": "<nil>",
|
||||
"distinct_3.5.11": "<nil>",
|
||||
"find_empty_2.6.12": "<nil>",
|
||||
"find_empty_3.0.15": "<nil>",
|
||||
"find_empty_3.2.16": "<nil>",
|
||||
"find_empty_3.4.7": "<nil>",
|
||||
"find_empty_3.5.11": "<nil>",
|
||||
"find_2.6.12": "<nil>",
|
||||
"find_3.0.15": "<nil>",
|
||||
"find_3.2.16": "<nil>",
|
||||
"find_3.4.7": "<nil>",
|
||||
"find_3.5.11": "<nil>",
|
||||
"find_andrii_2.6.12": "<nil>",
|
||||
"find_andrii_3.0.15": "<nil>",
|
||||
"find_andrii_3.2.16": "<nil>",
|
||||
"find_andrii_3.4.7": "<nil>",
|
||||
"find_andrii_3.5.11": "<nil>",
|
||||
"findandmodify_2.6.12": "<nil>",
|
||||
"findandmodify_3.0.15": "<nil>",
|
||||
"findandmodify_3.2.16": "<nil>",
|
||||
"findandmodify_3.4.7": "<nil>",
|
||||
"findandmodify_3.5.11": "<nil>",
|
||||
"geonear_2.6.12": "Cannot explain cmd: geoNear",
|
||||
"geonear_3.0.15": "Cannot explain cmd: geoNear",
|
||||
"geonear_3.2.16": "Cannot explain cmd: geoNear",
|
||||
"geonear_3.4.7": "Cannot explain cmd: geoNear",
|
||||
"geonear_3.5.11": "Cannot explain cmd: geoNear",
|
||||
"group_2.6.12": "<nil>",
|
||||
"group_3.0.15": "<nil>",
|
||||
"group_3.2.16": "<nil>",
|
||||
"group_3.4.7": "<nil>",
|
||||
"group_3.5.11": "<nil>",
|
||||
"insert_2.6.12": "Cannot explain cmd: insert",
|
||||
"insert_3.0.15": "Cannot explain cmd: insert",
|
||||
"insert_3.2.16": "Cannot explain cmd: insert",
|
||||
"insert_3.4.7": "Cannot explain cmd: insert",
|
||||
"insert_3.5.11": "Cannot explain cmd: insert",
|
||||
"mapreduce_2.6.12": "Cannot explain cmd: mapReduce",
|
||||
"mapreduce_3.0.15": "Cannot explain cmd: mapReduce",
|
||||
"mapreduce_3.2.16": "Cannot explain cmd: mapReduce",
|
||||
"mapreduce_3.4.7": "Cannot explain cmd: mapReduce",
|
||||
"mapreduce_3.5.11": "Cannot explain cmd: mapReduce",
|
||||
"update_2.6.12": "<nil>",
|
||||
"update_3.0.15": "<nil>",
|
||||
"update_3.2.16": "<nil>",
|
||||
"update_3.4.7": "<nil>",
|
||||
"update_3.5.11": "<nil>",
|
||||
}
|
||||
|
||||
dialer := pmgo.NewDialer()
|
||||
dialInfo, err := pmgo.ParseURL("")
|
||||
if err != nil {
|
||||
@@ -133,6 +49,12 @@ func TestExplain(t *testing.T) {
|
||||
}
|
||||
defer session.Close()
|
||||
|
||||
dir := vars.RootPath + samples + "/doc/out/"
|
||||
files, err := ioutil.ReadDir(dir)
|
||||
if err != nil {
|
||||
t.Fatalf("cannot list samples: %s", err)
|
||||
}
|
||||
|
||||
bi, err := session.BuildInfo()
|
||||
if err != nil {
|
||||
t.Fatalf("cannot get BuildInfo: %s", err)
|
||||
@@ -146,10 +68,45 @@ func TestExplain(t *testing.T) {
|
||||
"3.5.11",
|
||||
}
|
||||
|
||||
// For versions < 3.4 trying to explain "insert" returns different error
|
||||
if ok, _ := Constraint("< 3.4", bi.Version); ok {
|
||||
samples := map[string]string{
|
||||
"aggregate": "Cannot explain cmd: aggregate",
|
||||
"count": "<nil>",
|
||||
"count_with_query": "<nil>",
|
||||
"delete": "<nil>",
|
||||
"delete_all": "<nil>",
|
||||
"distinct": "<nil>",
|
||||
"find_empty": "<nil>",
|
||||
"find": "<nil>",
|
||||
"find_andrii": "<nil>",
|
||||
"findandmodify": "<nil>",
|
||||
"geonear": "Cannot explain cmd: geoNear",
|
||||
"group": "<nil>",
|
||||
"insert": "Cannot explain cmd: insert",
|
||||
"mapreduce": "Cannot explain cmd: mapReduce",
|
||||
"update": "<nil>",
|
||||
}
|
||||
|
||||
expectError := map[string]string{}
|
||||
|
||||
// For versions < 3.0 explain is not supported
|
||||
if ok, _ := Constraint("< 3.0", bi.Version); ok {
|
||||
for _, v := range versions {
|
||||
expectError["insert_"+v] = "Only update and delete write ops can be explained"
|
||||
for sample := range samples {
|
||||
expectError[sample+"_"+v] = "no such cmd: explain"
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for _, v := range versions {
|
||||
for sample, msg := range samples {
|
||||
expectError[sample+"_"+v] = msg
|
||||
}
|
||||
}
|
||||
|
||||
// For versions >= 3.0, < 3.4 trying to explain "insert" returns different error
|
||||
if ok, _ := Constraint(">= 3.0, < 3.4", bi.Version); ok {
|
||||
for _, v := range versions {
|
||||
expectError["insert_"+v] = "Only update and delete write ops can be explained"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user