Rename the json_view test helpers that clash in the unity build

unit-json_view_builder.cpp has its own document generator besides
json_view_test::generator, and unit-json_view_edit.cpp and
unit-json_view_image.cpp define rng() and bits() like unit-json_view.cpp,
each in an anonymous namespace. In one batch these are ambiguous or
redefined, so give the file-local ones their own names.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
Niels Lohmann committed 2026-10-21 11:05:27 +02:00
1 parent d01e6382fe
commit 52724f5ae5
3 files changed
+13 -13

No files matched your search

+2 -2
View File
@@ -173,7 +173,7 @@ void check_string(const std::string& content)
}
// a small deterministic generator of documents
struct generator
struct builder_generator
{
std::mt19937 rng{5295}; // NOLINT(cert-msc32-c,cert-msc51-cpp,bugprone-random-generator-seed)
@@ -407,7 +407,7 @@ TEST_CASE("json_view builder")
SECTION("generated documents and damaged copies")
{
generator g;
builder_generator g;
for (int i = 0; i < 3000; ++i)
{
std::string text;
+7 -7
View File
@@ -39,7 +39,7 @@ using ptr_t = ordered_json::json_pointer;
namespace
{
std::uint32_t rng()
std::uint32_t edit_rng()
{
static std::mt19937 generator(5295); // NOLINT(cert-msc32-c,cert-msc51-cpp,bugprone-random-generator-seed): reproducible
// result_type is std::uint_fast32_t, which may be wider than 32 bits
@@ -49,12 +49,12 @@ std::uint32_t rng()
int r(int n)
{
return static_cast<int>(rng() % static_cast<unsigned>(n));
return static_cast<int>(edit_rng() % static_cast<unsigned>(n));
}
int counter = 0;
std::uint64_t bits(double x)
std::uint64_t edit_bits(double x)
{
std::uint64_t b = 0;
std::memcpy(&b, &x, sizeof(b));
@@ -81,11 +81,11 @@ ordered_json random_scalar()
case 1:
return r(2) == 0;
case 2:
return static_cast<std::int64_t>(rng()) - 2147483648LL;
return static_cast<std::int64_t>(edit_rng()) - 2147483648LL;
case 3:
return (static_cast<std::uint64_t>(rng()) * 4294967296ULL) + rng();
return (static_cast<std::uint64_t>(edit_rng()) * 4294967296ULL) + edit_rng();
case 4:
return static_cast<double>(static_cast<std::int32_t>(rng())) / (1 + r(1000));
return static_cast<double>(static_cast<std::int32_t>(edit_rng())) / (1 + r(1000));
case 5:
return r(2) == 0 ? 1e300 * (r(2) == 0 ? 1 : -1) : 5e-324;
case 6:
@@ -178,7 +178,7 @@ void compare(const ordered_json_editable_view& v, const ordered_json& j)
}
else if (j.is_number_float())
{
CHECK(bits(v.get<double>()) == bits(j.get<double>()));
CHECK(edit_bits(v.get<double>()) == edit_bits(j.get<double>()));
}
else if (j.is_number_integer())
{
+4 -4
View File
@@ -160,7 +160,7 @@ void check_round_trip(const Document& d)
CHECK(e.root().dump() == d.root().dump());
}
std::uint32_t rng()
std::uint32_t image_rng()
{
static std::mt19937 generator(5295); // NOLINT(cert-msc32-c,cert-msc51-cpp,bugprone-random-generator-seed): reproducible
// result_type is std::uint_fast32_t, which may be wider than 32 bits
@@ -1203,12 +1203,12 @@ TEST_CASE("json_view images: damaged images")
for (int round = 0; round < 3000; ++round)
{
std::vector<std::uint8_t> b = image;
const std::uint32_t flips = 1 + (rng() % 3);
const std::uint32_t flips = 1 + (image_rng() % 3);
for (std::uint32_t k = 0; k < flips; ++k)
{
// mostly the nodes, where the damage matters most
const std::size_t at = rng() % 4 != 0 ? header_size + (rng() % (b.size() - header_size)) : rng() % b.size();
b[at] = static_cast<std::uint8_t>(rng() % 3 == 0 ? rng() : b[at] ^ (1u << (rng() % 8)));
const std::size_t at = image_rng() % 4 != 0 ? header_size + (image_rng() % (b.size() - header_size)) : image_rng() % b.size();
b[at] = static_cast<std::uint8_t>(image_rng() % 3 == 0 ? image_rng() : b[at] ^ (1u << (image_rng() % 8)));
}
for (const image_check check :
{