-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKconfig
More file actions
419 lines (353 loc) · 8.94 KB
/
Kconfig
File metadata and controls
419 lines (353 loc) · 8.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
# SPDX-License-Identifier: MIT
mainmenu "Multi-vendor S3 Storage Test Suite (MSST-S3) Configuration"
# S3 Endpoint Configuration
menu "S3 Endpoint Configuration"
config S3_ENDPOINT_URL
string "S3 endpoint URL"
default "http://localhost:9000"
help
The S3-compatible endpoint URL to test against.
Examples:
- AWS S3: https://s3.amazonaws.com
- MinIO: http://localhost:9000
- Ceph RGW: http://localhost:7480
config S3_ACCESS_KEY
string "S3 access key"
default "minioadmin"
help
Access key for S3 authentication.
config S3_SECRET_KEY
string "S3 secret key"
default "minioadmin"
help
Secret key for S3 authentication.
config S3_REGION
string "S3 region"
default "us-east-1"
help
AWS region for the S3 endpoint.
Use 'us-east-1' for most S3-compatible systems.
config S3_USE_SSL
bool "Use SSL/TLS"
default n
help
Enable SSL/TLS for secure connections.
config S3_VERIFY_SSL
bool "Verify SSL certificates"
depends on S3_USE_SSL
default y
help
Verify SSL certificates. Disable for self-signed certificates.
config S3_BUCKET_PREFIX
string "Test bucket prefix"
default "msst-test"
help
Prefix for test bucket names. Each test will append
its test number to create unique bucket names.
endmenu
# Test Selection
menu "Test Selection"
config TEST_BASIC
bool "Basic S3 operations (001-099)"
default y
help
Enable basic S3 operation tests including:
- Bucket CRUD operations
- Object PUT/GET/DELETE
- Simple listing operations
config TEST_MULTIPART
bool "Multipart upload tests (100-199)"
default y
help
Enable multipart upload tests including:
- Small multipart uploads
- Large file uploads
- Concurrent part uploads
- Abort and resume operations
config TEST_VERSIONING
bool "Versioning tests (200-299)"
default n
help
Enable object versioning tests including:
- Version creation and listing
- Version deletion
- Version restoration
config TEST_ACL
bool "Access control tests (300-399)"
default n
help
Enable access control tests including:
- Bucket ACLs
- Object ACLs
- Canned ACLs
- Cross-account access
config TEST_ENCRYPTION
bool "Encryption tests (400-499)"
default n
help
Enable encryption tests including:
- SSE-S3 (server-side encryption with S3 managed keys)
- SSE-C (customer provided keys)
- SSE-KMS (key management service)
config TEST_LIFECYCLE
bool "Lifecycle tests (500-599)"
default n
help
Enable lifecycle management tests including:
- Expiration policies
- Transition policies
- Noncurrent version expiration
config TEST_PERFORMANCE
bool "Performance tests (600-699)"
default n
help
Enable performance tests to measure:
- Upload/download throughput
- Operation latency
- Concurrent operation scaling
config TEST_STRESS
bool "Stress tests (700-799)"
default n
help
Enable stress tests including:
- High concurrency operations
- Large number of objects
- Extended duration tests
config TEST_COMPATIBILITY
bool "Vendor compatibility tests (800-899)"
default n
help
Enable vendor-specific compatibility tests
for different S3 implementations.
endmenu
# Test Parameters
menu "Test Parameters"
config TEST_RUN_MODE
string "Test run mode"
default "sequential"
help
Test execution mode:
- sequential: Run tests one by one
- parallel: Run tests in parallel
- group: Run test groups in parallel
config TEST_PARALLEL_ALL
bool "Run ALL tests in parallel simultaneously"
default n
help
WARNING: This will run ALL tests at the same time!
This can create thousands of concurrent connections and
may overwhelm the S3 endpoint or your system.
Only enable for stress testing with adequate resources.
When enabled, overrides TEST_PARALLEL_JOBS setting.
config TEST_PARALLEL_JOBS
int "Parallel test jobs"
depends on TEST_RUN_MODE = "parallel" || TEST_RUN_MODE = "group"
depends on !TEST_PARALLEL_ALL
default 4
range 1 32
help
Number of parallel test jobs to run.
config TEST_TIMEOUT
int "Test timeout (seconds)"
default 300
range 10 3600
help
Maximum time allowed for a single test to complete.
config TEST_RETRY_COUNT
int "Test retry count"
default 3
range 0 10
help
Number of times to retry a failed test.
config TEST_OBJECT_SIZES
string "Object sizes for tests"
default "1KB,1MB,10MB,100MB"
help
Comma-separated list of object sizes to test.
Supports units: B, KB, MB, GB.
config TEST_BUCKET_COUNT
int "Number of buckets per test"
default 5
range 1 100
help
Number of buckets to create in tests that use multiple buckets.
config TEST_OBJECT_COUNT
int "Number of objects per test"
default 10
range 1 10000
help
Number of objects to create in tests that use multiple objects.
endmenu
# Performance Test Configuration
menu "Performance Test Configuration"
depends on TEST_PERFORMANCE
config PERF_DURATION
int "Performance test duration (seconds)"
default 60
range 10 3600
help
Duration for each performance test run.
config PERF_CONCURRENT_CLIENTS
int "Concurrent clients"
default 10
range 1 1000
help
Number of concurrent clients for performance testing.
config PERF_WARMUP_TIME
int "Warmup time (seconds)"
default 10
range 0 60
help
Warmup period before collecting performance metrics.
config PERF_COLLECT_METRICS
bool "Collect detailed metrics"
default y
help
Collect detailed performance metrics including
latency percentiles and throughput statistics.
endmenu
# Stress Test Configuration
menu "Stress Test Configuration"
depends on TEST_STRESS
config STRESS_DURATION
int "Stress test duration (seconds)"
default 300
range 60 86400
help
Duration for stress test execution.
config STRESS_MAX_OBJECTS
int "Maximum objects to create"
default 10000
range 100 1000000
help
Maximum number of objects to create during stress testing.
config STRESS_CONCURRENT_OPS
int "Concurrent operations"
default 100
range 10 10000
help
Number of concurrent operations during stress testing.
config STRESS_MIXED_WORKLOAD
bool "Use mixed workload"
default y
help
Mix different operation types (PUT, GET, DELETE) in stress tests.
endmenu
# Output Configuration
menu "Output Configuration"
config OUTPUT_FORMAT
string "Output format"
default "json"
help
Test result output format:
- json: JSON format
- yaml: YAML format
- junit: JUnit XML format
- text: Human-readable text
config OUTPUT_VERBOSE
int "Verbosity level"
default 1
range 0 3
help
Output verbosity level:
0 - Quiet (errors only)
1 - Normal (test results)
2 - Verbose (detailed information)
3 - Debug (all output)
config OUTPUT_DIR
string "Output directory"
default "./results"
help
Directory to store test results and logs.
config OUTPUT_TIMESTAMP
bool "Add timestamp to output files"
default y
help
Add timestamp to output file names for unique identification.
config OUTPUT_SAVE_LOGS
bool "Save detailed logs"
default y
help
Save detailed test execution logs for debugging.
endmenu
# Ansible Integration
menu "Ansible Integration"
config ANSIBLE_ENABLED
bool "Enable Ansible integration"
default n
help
Enable Ansible playbook integration for automated testing.
config ANSIBLE_INVENTORY
string "Ansible inventory file"
depends on ANSIBLE_ENABLED
default "./playbooks/inventory/hosts"
help
Path to Ansible inventory file.
config ANSIBLE_PLAYBOOK
string "Main Ansible playbook"
depends on ANSIBLE_ENABLED
default "./playbooks/s3-tests.yml"
help
Path to main Ansible playbook for test execution.
config ANSIBLE_VERBOSE
bool "Verbose Ansible output"
depends on ANSIBLE_ENABLED
default n
help
Enable verbose output from Ansible playbooks.
endmenu
# Vendor-Specific Configuration
menu "Vendor-Specific Settings"
config VENDOR_TYPE
string "S3 vendor type"
default "generic"
help
S3 implementation type:
- generic: Generic S3-compatible
- aws: Amazon Web Services S3
- minio: MinIO
- ceph: Ceph RADOS Gateway
- gcs: Google Cloud Storage
- azure: Azure Blob Storage
- wasabi: Wasabi
- digitalocean: DigitalOcean Spaces
config VENDOR_SKIP_TESTS
string "Tests to skip for this vendor"
default ""
help
Comma-separated list of test numbers to skip
for the configured vendor.
config VENDOR_SPECIFIC_CONFIG
string "Vendor-specific configuration file"
default ""
help
Path to vendor-specific configuration file
with additional settings.
endmenu
# Developer Options
menu "Developer Options"
config DEBUG_ENABLED
bool "Enable debug mode"
default n
help
Enable debug mode with additional logging and checks.
config DEBUG_KEEP_BUCKETS
bool "Keep test buckets after tests"
depends on DEBUG_ENABLED
default n
help
Do not delete test buckets after test completion.
Useful for debugging failed tests.
config DEBUG_DUMP_REQUESTS
bool "Dump HTTP requests"
depends on DEBUG_ENABLED
default n
help
Dump all HTTP requests and responses for debugging.
config DEBUG_SLOW_MODE
bool "Slow mode execution"
depends on DEBUG_ENABLED
default n
help
Add delays between operations for easier debugging.
endmenu