Skip to content

Commit 28a5bf5

Browse files
committed
fix:修复fallback测试方式顺序
1 parent 6651095 commit 28a5bf5

File tree

1 file changed

+86
-14
lines changed

1 file changed

+86
-14
lines changed

cmd/main.go

Lines changed: 86 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,19 @@ func main() {
6060
res = memory.WindowsDDTest(language)
6161
if res == "" || strings.TrimSpace(res) == "" {
6262
if language == "en" {
63-
res = "DD test failed, switching to Winsat for testing.\n"
63+
res = "DD test failed, switching to STREAM for testing.\n"
6464
} else {
65-
res = "DD测试失败,切换使用Winsat进行测试。\n"
65+
res = "DD测试失败,切换使用STREAM进行测试。\n"
66+
}
67+
res += memory.StreamTest(language)
68+
if res == "" || strings.TrimSpace(res) == "" {
69+
if language == "en" {
70+
res = "STREAM test failed, switching to Winsat for testing.\n"
71+
} else {
72+
res = "STREAM测试失败,切换使用Winsat进行测试。\n"
73+
}
74+
res += memory.WinsatTest(language)
6675
}
67-
res += memory.WinsatTest(language)
6876
}
6977
case "sysbench":
7078
if language == "en" {
@@ -90,33 +98,97 @@ func main() {
9098
res = memory.StreamTest(language)
9199
if res == "" || strings.TrimSpace(res) == "" {
92100
if language == "en" {
93-
res = "STREAM test failed, switching to DD for testing.\n"
101+
res = "STREAM test failed, switching to Sysbench for testing.\n"
94102
} else {
95-
res = "STREAM测试失败,切换使用DD进行测试。\n"
103+
res = "STREAM测试失败,切换使用Sysbench进行测试。\n"
104+
}
105+
res += memory.SysBenchTest(language)
106+
if res == "" || strings.TrimSpace(res) == "" {
107+
if language == "en" {
108+
res = "Sysbench test failed, switching to DD for testing.\n"
109+
} else {
110+
res = "Sysbench测试失败,切换使用DD进行测试。\n"
111+
}
112+
res += memory.DDTest(language)
96113
}
97-
res += memory.DDTest(language)
98114
}
99115
case "dd":
100116
res = memory.DDTest(language)
117+
if res == "" || strings.TrimSpace(res) == "" {
118+
if language == "en" {
119+
res = "DD test failed, switching to STREAM for testing.\n"
120+
} else {
121+
res = "DD测试失败,切换使用STREAM进行测试。\n"
122+
}
123+
res += memory.StreamTest(language)
124+
if res == "" || strings.TrimSpace(res) == "" {
125+
if language == "en" {
126+
res = "STREAM test failed, switching to Sysbench for testing.\n"
127+
} else {
128+
res = "STREAM测试失败,切换使用Sysbench进行测试。\n"
129+
}
130+
res += memory.SysBenchTest(language)
131+
}
132+
}
101133
case "sysbench":
102134
res = memory.SysBenchTest(language)
103135
if res == "" || strings.TrimSpace(res) == "" {
104136
if language == "en" {
105-
res = "Sysbench test failed, switching to DD for testing.\n"
137+
res = "Sysbench test failed, switching to STREAM for testing.\n"
106138
} else {
107-
res = "Sysbench测试失败,切换使用DD进行测试。\n"
139+
res = "Sysbench测试失败,切换使用STREAM进行测试。\n"
140+
}
141+
res += memory.StreamTest(language)
142+
if res == "" || strings.TrimSpace(res) == "" {
143+
if language == "en" {
144+
res = "STREAM test failed, retrying Sysbench for testing.\n"
145+
} else {
146+
res = "STREAM测试失败,重试使用Sysbench进行测试。\n"
147+
}
148+
res += memory.SysBenchTest(language)
149+
if res == "" || strings.TrimSpace(res) == "" {
150+
if language == "en" {
151+
res = "Sysbench retry failed, switching to DD for testing.\n"
152+
} else {
153+
res = "Sysbench重试失败,切换使用DD进行测试。\n"
154+
}
155+
res += memory.DDTest(language)
156+
}
108157
}
109-
res += memory.DDTest(language)
110158
}
111159
case "auto":
112-
// Priority: stream > dd > sysbench (with mbw fallback built into each)
160+
// Priority: stream > sysbench > dd (with mbw fallback built into each)
113161
res = memory.StreamTest(language)
114162
if res == "" || strings.TrimSpace(res) == "" {
115-
// Stream failed or not available, try DD
116-
res = memory.DDTest(language)
163+
// Stream failed or not available, try Sysbench
164+
res = memory.SysBenchTest(language)
165+
if res == "" || strings.TrimSpace(res) == "" {
166+
// Sysbench failed, try DD as final fallback
167+
res = memory.DDTest(language)
168+
}
169+
}
170+
case "winsat":
171+
// Winsat is only supported on Windows
172+
if language == "en" {
173+
res = "Winsat is only supported on Windows, switching to STREAM for testing.\n"
174+
} else {
175+
res = "Winsat仅在Windows上支持,切换使用STREAM进行测试。\n"
176+
}
177+
res += memory.StreamTest(language)
178+
if res == "" || strings.TrimSpace(res) == "" {
179+
if language == "en" {
180+
res = "STREAM test failed, switching to Sysbench for testing.\n"
181+
} else {
182+
res = "STREAM测试失败,切换使用Sysbench进行测试。\n"
183+
}
184+
res += memory.SysBenchTest(language)
117185
if res == "" || strings.TrimSpace(res) == "" {
118-
// DD failed, try sysbench as final fallback
119-
res = memory.SysBenchTest(language)
186+
if language == "en" {
187+
res = "Sysbench test failed, switching to DD for testing.\n"
188+
} else {
189+
res = "Sysbench测试失败,切换使用DD进行测试。\n"
190+
}
191+
res += memory.DDTest(language)
120192
}
121193
}
122194
default:

0 commit comments

Comments
 (0)