[wpiutil] Upgrade to fmt 10.2.1, add wpi::print (#6161)

We now use a wrapper (wpi::print) to catch exceptions since we can't patch
std::print() to not throw when we ultimately migrate to it.

fmtlib and std format/print throw the same exceptions and always have. We previously patched fmt::print() to not throw a write failure exception, but we can't do that for std::print(); wpi::print() is the migration plan.
This commit is contained in:
Tyler Veness
2024-05-12 06:25:42 -07:00
committed by GitHub
parent 6c9dcc157e
commit d88c71ffdc
99 changed files with 1374 additions and 1130 deletions

View File

@@ -4,12 +4,12 @@
#include <thread>
#include <fmt/format.h>
#include <gtest/gtest.h>
#include <hal/DriverStation.h>
#include <hal/HALBase.h>
#include <hal/Main.h>
#include <hal/simulation/DIOData.h>
#include <wpi/print.h>
#include <wpinet/uv/Loop.h>
#include "HALSimWSServer.h"
@@ -55,7 +55,7 @@ TEST_F(WebServerIntegrationTest, DISABLED_DigitalOutput) {
return;
}
if (IsConnectedClientWS()) {
fmt::print("***** Setting DIO value for pin {} to {}\n", PIN,
wpi::print("***** Setting DIO value for pin {} to {}\n", PIN,
(EXPECTED_VALUE ? "true" : "false"));
HALSIM_SetDIOValue(PIN, EXPECTED_VALUE);
done = true;
@@ -83,7 +83,7 @@ TEST_F(WebServerIntegrationTest, DISABLED_DigitalOutput) {
test_value = it.value();
}
} catch (wpi::json::exception& e) {
fmt::print(stderr, "Error with incoming message: {}\n", e.what());
wpi::print(stderr, "Error with incoming message: {}\n", e.what());
}
// Compare results
@@ -109,7 +109,7 @@ TEST_F(WebServerIntegrationTest, DISABLED_DigitalInput) {
wpi::json msg = {{"type", "DIO"},
{"device", std::to_string(PIN)},
{"data", {{"<>value", EXPECTED_VALUE}}}};
fmt::print("***** Input JSON: {}\n", msg.dump());
wpi::print("***** Input JSON: {}\n", msg.dump());
m_webserverClient->SendMessage(msg);
done = true;
}
@@ -144,7 +144,7 @@ TEST_F(WebServerIntegrationTest, DriverStation) {
{"type", "DriverStation"},
{"device", ""},
{"data", {{">enabled", EXPECTED_VALUE}, {">new_data", true}}}};
fmt::print("***** Input JSON: {}\n", msg.dump());
wpi::print("***** Input JSON: {}\n", msg.dump());
m_webserverClient->SendMessage(msg);
done = true;
}