Files
EVEngine/test/editor_network_telemetry.cpp
T
西风逍遥游andCursor 24502babef Nest satellite packages under their host modules.
Keep CMake module names and trim switches, but stop flattening editing/editor and runtime bridges as top-level src/modules directories. Parent scans skip nested facets so runtime-3d can drop authoring by directory leaf.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 17:56:12 +08:00

22 lines
1.5 KiB
C++

#include "network/editing/NetworkTelemetry.h"
#include "zeroerr/assert.h"
#include "zeroerr/unittest.h"
using namespace eve::network_editing;
TEST_CASE("editor.network.telemetry_computes_rates_and_bounds_history") {
NetworkTelemetryModel model(2);
NetworkTelemetrySample a;a.revision=1;a.timeSeconds=1;a.sentBytes=100;a.receivedBytes=200;a.completions=10;a.errors=1;
NetworkTelemetrySample b=a;b.revision=2;b.timeSeconds=3;b.sentBytes=500;b.receivedBytes=1000;b.completions=14;b.errors=2;
REQUIRE(model.ingest(a).ok());REQUIRE(model.ingest(b).ok());
CHECK_EQ(model.samples().back().sendBytesPerSecond,200.0);CHECK_EQ(model.samples().back().receiveBytesPerSecond,400.0);CHECK_EQ(model.samples().back().errorRate,.25);
NetworkTelemetrySample c=b;c.revision=3;c.timeSeconds=4;c.sentBytes=600;REQUIRE(model.ingest(c).ok());CHECK_EQ(model.samples().size(),std::size_t{2});
CHECK_EQ(static_cast<int>(model.ingest(c).code()),static_cast<int>(EditorStatus::Conflict));
}
TEST_CASE("editor.network.telemetry_handles_reset_and_reports_health") {
NetworkTelemetryModel model;
NetworkTelemetrySample a;a.revision=4;a.timeSeconds=1;a.sentBytes=1000;a.completions=100;a.errors=1;
NetworkTelemetrySample reset;reset.revision=5;reset.timeSeconds=2;reset.queuedTcpBytes=600*1024;reset.watchedTcp=4097;
REQUIRE(model.ingest(a).ok());REQUIRE(model.ingest(reset).ok());
CHECK_EQ(model.samples().back().sendBytesPerSecond,0.0);
const auto diagnostics=model.diagnostics();CHECK_EQ(diagnostics.size(),std::size_t{2});
}