Files
fprime/FppTest/utils/Utils.cpp
Rob Bocchino 94c8feccdd Fix issues in FppTest (#2494)
* Fix bug in FppTest

* Avoid array size zero
2024-01-24 14:14:03 -08:00

62 lines
1.6 KiB
C++

// ======================================================================
// \title Utils.cpp
// \author T. Chieu
// \brief cpp file for Utils class
//
// \copyright
// Copyright (C) 2009-2022 California Institute of Technology.
// ALL RIGHTS RESERVED. United States Government Sponsorship
// acknowledged.
//
// ======================================================================
#include <string>
#include <limits>
#include <iostream>
#include "Fw/Types/Assert.hpp"
#include "STest/Pick/Pick.hpp"
namespace FppTest {
namespace Utils {
U8 getNonzeroU8() {
return static_cast<U8>(STest::Pick::lowerUpper(
1,
std::numeric_limits<U8>::max()
));
}
U32 getNonzeroU32() {
return STest::Pick::lowerUpper(
1,
std::numeric_limits<U32>::max()
);
}
char getChar() {
return static_cast<char>(STest::Pick::lowerUpper(32, 127));
}
void setString(char* buf, FwSizeType capacity, FwSizeType minLength) {
FW_ASSERT(buf != nullptr);
// capacity must be able to hold a null-terminated string
FW_ASSERT(capacity > 0);
// min length must fit within capacity
FW_ASSERT(minLength < capacity);
U32 length = STest::Pick::lowerUpper(minLength, capacity - 1);
for (U32 i = 0; i < length; i++) {
FW_ASSERT(i < capacity);
buf[i] = getChar();
}
FW_ASSERT(length < capacity);
buf[length] = 0;
}
} // namespace Utils
} // namespace FppTest