2026-08-24 06:41:47 +09:00
|
|
|
/// Configuration for an iperf3 client test.
|
|
|
|
|
class TestConfiguration {
|
|
|
|
|
final String server;
|
|
|
|
|
final int port;
|
|
|
|
|
final Duration duration;
|
|
|
|
|
final int interval;
|
|
|
|
|
final int parallelStreams;
|
|
|
|
|
|
|
|
|
|
const TestConfiguration({
|
2026-08-26 22:38:19 +09:00
|
|
|
this.server = 'speedtest.uztelecom.uz',
|
2026-08-24 06:41:47 +09:00
|
|
|
this.port = 5201,
|
|
|
|
|
this.duration = const Duration(seconds: 10),
|
|
|
|
|
this.interval = 1,
|
|
|
|
|
this.parallelStreams = 1,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/// Convert to iperf3 CLI arguments.
|
|
|
|
|
List<String> toCliArgs() {
|
|
|
|
|
return <String>[
|
|
|
|
|
'-c', server,
|
|
|
|
|
'-p', '$port',
|
|
|
|
|
'-t', '${duration.inSeconds}',
|
|
|
|
|
'-i', '$interval',
|
|
|
|
|
'-P', '$parallelStreams',
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Validate the configuration.
|
|
|
|
|
bool get isValid {
|
|
|
|
|
if (server.isEmpty) return false;
|
|
|
|
|
if (port < 1 || port > 65535) return false;
|
|
|
|
|
if (duration.inSeconds < 1) return false;
|
|
|
|
|
if (interval < 1) return false;
|
|
|
|
|
if (parallelStreams < 1) return false;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|