Enable cppcoreguidelines-pro-type-vararg check
We only had one usage of printf in the code that was in violation of
this rule, so replace it with iostreams, and enable the check.
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ie62165b599a996f34893aa5a3f8d1f6e6cbaf903
diff --git a/.clang-tidy b/.clang-tidy
index 9c541aa..c8fe523 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -187,6 +187,7 @@
clang-analyzer-webkit.RefCntblBaseVirtualDtor,
cppcoreguidelines-avoid-c-arrays,
cppcoreguidelines-init-variables,
+cppcoreguidelines-pro-type-vararg,
misc-misplaced-const,
misc-redundant-expression,
misc-static-assert,
diff --git a/src/ADCSensor.cpp b/src/ADCSensor.cpp
index 0638b7d..a8287b4 100644
--- a/src/ADCSensor.cpp
+++ b/src/ADCSensor.cpp
@@ -54,11 +54,19 @@
maxVoltageReading / scaleFactor, minVoltageReading / scaleFactor,
conn, readState),
std::enable_shared_from_this<ADCSensor>(), objServer(objectServer),
- inputDev(io, open(path.c_str(), O_RDONLY)), waitTimer(io), path(path),
- scaleFactor(scaleFactor),
+ inputDev(io), waitTimer(io), path(path), scaleFactor(scaleFactor),
sensorPollMs(static_cast<unsigned int>(pollRate * 1000)),
bridgeGpio(std::move(bridgeGpio)), thresholdTimer(io)
{
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
+ int fd = open(path.c_str(), O_RDONLY);
+ if (fd < 0)
+ {
+ std::cerr << "unable to open acd device \n";
+ }
+
+ inputDev.assign(fd);
+
sensorInterface = objectServer.add_interface(
"/xyz/openbmc_project/sensors/voltage/" + name,
"xyz.openbmc_project.Sensor.Value");
@@ -183,6 +191,8 @@
{
(*bridgeGpio).set(0);
}
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
int fd = open(path.c_str(), O_RDONLY);
if (fd < 0)
{
diff --git a/src/CPUSensor.cpp b/src/CPUSensor.cpp
index 6154b6f..0fdb2f4 100644
--- a/src/CPUSensor.cpp
+++ b/src/CPUSensor.cpp
@@ -117,6 +117,8 @@
if (readingStateGood())
{
inputDev.close();
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
int fd = open(path.c_str(), O_RDONLY);
if (fd >= 0)
{
diff --git a/src/CPUSensorMain.cpp b/src/CPUSensorMain.cpp
index fd9e543..4f377aa 100644
--- a/src/CPUSensorMain.cpp
+++ b/src/CPUSensorMain.cpp
@@ -463,6 +463,8 @@
for (CPUConfig& config : cpuConfigs)
{
std::string peciDevPath = peciDev + std::to_string(config.bus);
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
auto file = open(peciDevPath.c_str(), O_RDWR | O_CLOEXEC);
if (file < 0)
{
@@ -474,6 +476,8 @@
struct peci_ping_msg msg
{};
msg.addr = config.addr;
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
if (!ioctl(file, PECI_IOC_PING, &msg))
{
bool dimmReady = false;
@@ -485,6 +489,8 @@
msg.index = PECI_MBX_INDEX_DDR_DIMM_TEMP;
msg.param = rank;
msg.rx_len = 4;
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
if (!ioctl(file, PECI_IOC_RD_PKG_CFG, &msg))
{
if (msg.pkg_config[0] || msg.pkg_config[1] ||
diff --git a/src/ChassisIntrusionSensor.cpp b/src/ChassisIntrusionSensor.cpp
index 4b89709..9b35da2 100644
--- a/src/ChassisIntrusionSensor.cpp
+++ b/src/ChassisIntrusionSensor.cpp
@@ -80,12 +80,15 @@
{
std::string i2cBus = "/dev/i2c-" + std::to_string(busId);
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
int fd = open(i2cBus.c_str(), O_RDWR | O_CLOEXEC);
if (fd < 0)
{
std::cerr << "unable to open i2c device \n";
return -1;
}
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
if (ioctl(fd, I2C_SLAVE_FORCE, slaveAddr) < 0)
{
std::cerr << "unable to set device address\n";
@@ -94,6 +97,8 @@
}
unsigned long funcs = 0;
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
if (ioctl(fd, I2C_FUNCS, &funcs) < 0)
{
std::cerr << "not support I2C_FUNCS \n";
diff --git a/src/HwmonTempSensor.cpp b/src/HwmonTempSensor.cpp
index 09fb33f..6577739 100644
--- a/src/HwmonTempSensor.cpp
+++ b/src/HwmonTempSensor.cpp
@@ -52,11 +52,20 @@
false, thisSensorParameters.maxValue, thisSensorParameters.minValue,
conn, powerState),
std::enable_shared_from_this<HwmonTempSensor>(), objServer(objectServer),
- inputDev(io, open(path.c_str(), O_RDONLY)), waitTimer(io), path(path),
+ inputDev(io), waitTimer(io), path(path),
offsetValue(thisSensorParameters.offsetValue),
scaleValue(thisSensorParameters.scaleValue),
sensorPollMs(static_cast<unsigned int>(pollRate * 1000))
{
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
+ int fd = open(path.c_str(), O_RDONLY);
+ if (fd < 0)
+ {
+ std::cerr << "HwmonTempSensor " << sensorName << " failed to open "
+ << path << "\n";
+ }
+ inputDev.assign(fd);
+
sensorInterface = objectServer.add_interface(
"/xyz/openbmc_project/sensors/" + thisSensorParameters.typeName + "/" +
name,
@@ -164,6 +173,8 @@
responseStream.clear();
inputDev.close();
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
int fd = open(path.c_str(), O_RDONLY);
if (fd < 0)
{
diff --git a/src/MCUTempSensor.cpp b/src/MCUTempSensor.cpp
index ede2a5e..4653bc8 100644
--- a/src/MCUTempSensor.cpp
+++ b/src/MCUTempSensor.cpp
@@ -102,8 +102,9 @@
int MCUTempSensor::getMCURegsInfoWord(uint8_t regs, int16_t* pu16data)
{
std::string i2cBus = "/dev/i2c-" + std::to_string(busId);
- int fd = open(i2cBus.c_str(), O_RDWR);
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
+ int fd = open(i2cBus.c_str(), O_RDWR);
if (fd < 0)
{
std::cerr << " unable to open i2c device" << i2cBus << " err=" << fd
@@ -111,6 +112,7 @@
return -1;
}
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
if (ioctl(fd, I2C_SLAVE_FORCE, mcuAddress) < 0)
{
std::cerr << " unable to set device address\n";
@@ -119,6 +121,7 @@
}
unsigned long funcs = 0;
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
if (ioctl(fd, I2C_FUNCS, &funcs) < 0)
{
std::cerr << " not support I2C_FUNCS\n";
diff --git a/src/NVMeBasicContext.cpp b/src/NVMeBasicContext.cpp
index ea17c73..0e04b16 100644
--- a/src/NVMeBasicContext.cpp
+++ b/src/NVMeBasicContext.cpp
@@ -61,26 +61,21 @@
static ssize_t execBasicQuery(int bus, uint8_t addr, uint8_t cmd,
std::vector<uint8_t>& resp)
{
- std::array<char, PATH_MAX> devpath{};
+ int rc = 0;
int32_t size = 0;
+ std::string devpath = "/dev/i2c-" + std::to_string(bus);
- ssize_t rc =
- snprintf(devpath.data(), devpath.size(), "/dev/i2c-%" PRIu32, bus);
- if ((size_t)rc > sizeof(devpath))
- {
- std::cerr << "Failed to format device path for bus " << bus << "\n";
- return -EINVAL;
- }
-
- int dev = ::open(devpath.data(), O_RDWR);
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
+ int dev = ::open(devpath.c_str(), O_RDWR);
if (dev == -1)
{
- std::cerr << "Failed to open bus device " << devpath.data() << ": "
+ std::cerr << "Failed to open bus device " << devpath << ": "
<< strerror(errno) << "\n";
return -errno;
}
/* Select the target device */
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
if (::ioctl(dev, I2C_SLAVE, addr) == -1)
{
rc = -errno;
diff --git a/src/PSUEvent.cpp b/src/PSUEvent.cpp
index 44275a3..7813741 100644
--- a/src/PSUEvent.cpp
+++ b/src/PSUEvent.cpp
@@ -157,6 +157,8 @@
{
eventPollMs = static_cast<unsigned int>(pollRate * 1000);
}
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
fd = open(path.c_str(), O_RDONLY);
if (fd < 0)
{
diff --git a/src/PSUSensor.cpp b/src/PSUSensor.cpp
index 99845b5..bbc0d2f 100644
--- a/src/PSUSensor.cpp
+++ b/src/PSUSensor.cpp
@@ -65,6 +65,7 @@
sensorPollMs = static_cast<unsigned int>(pollRate * 1000);
}
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
fd = open(path.c_str(), O_RDONLY | O_NONBLOCK);
if (fd < 0)
{
diff --git a/src/TachSensor.cpp b/src/TachSensor.cpp
index d0051a0..f609410 100644
--- a/src/TachSensor.cpp
+++ b/src/TachSensor.cpp
@@ -53,10 +53,17 @@
objectType, false, false, limits.second, limits.first, conn,
powerState),
objServer(objectServer), redundancy(redundancy),
- presence(std::move(presenceSensor)),
- inputDev(io, open(path.c_str(), O_RDONLY)), waitTimer(io), path(path),
- led(ledIn)
+ presence(std::move(presenceSensor)), inputDev(io), waitTimer(io),
+ path(path), led(ledIn)
{
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
+ int fd = open(path.c_str(), O_RDONLY);
+ if (fd < 0)
+ {
+ std::cerr << "Tach sensor failed to open file\n";
+ }
+ inputDev.assign(fd);
+
sensorInterface = objectServer.add_interface(
"/xyz/openbmc_project/sensors/fan_tach/" + name,
"xyz.openbmc_project.Sensor.Value");
@@ -162,6 +169,8 @@
}
responseStream.clear();
inputDev.close();
+
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
int fd = open(path.c_str(), O_RDONLY);
if (fd < 0)
{
diff --git a/tests/test_Utils.cpp b/tests/test_Utils.cpp
index 63fcde8..a66b70c 100644
--- a/tests/test_Utils.cpp
+++ b/tests/test_Utils.cpp
@@ -65,7 +65,7 @@
p != fs::recursive_directory_iterator(); ++p)
{
std::string path = p->path().string();
- fprintf(stderr, "%s\n", path.c_str());
+ std::cerr << path << "\n";
if (p.depth() >= 6)
{
p.disable_recursion_pending();