Commit 5376c2e5 by András Bodor

gtest_lite frissítés

parent d650c0e1
......@@ -2,7 +2,7 @@
#define GTEST_LITE_H
/**
* \file gtest_lite.h (v3/2019)
* \file gtest_lite.h (v4/2022)
*
* Google gtest keretrendszerhez hasonló rendszer.
* Sz.I. 2015., 2016., 2017. (_Has_X)
......@@ -10,6 +10,9 @@
* Sz.I. 2019 singleton
* Sz.I. 2021 ASSERT.., STRCASE...
* Sz.I. 2021 EXPEXT_REGEXP, CREATE_Has_fn_, cmp w. NULL, EXPECT_ param fix
* V.B., Sz.I. 2022 almostEQ fix,
* Sz.I. 2022. EXPECT_THROW fix
* B.A. 2025. unused-variable fixek (memtrace nélkül, EXPECT_THROW)
*
* A tesztelés legalapvetőbb funkcióit támogató függvények és makrók.
* Nem szálbiztos megvalósítás.
......@@ -135,7 +138,7 @@
/// Kivételt várunk
#define EXPECT_THROW(statement, exception_type) try { gtest_lite::test.tmp = false; statement; } \
catch (exception_type) { gtest_lite::test.tmp = true; } \
catch (exception_type &) { gtest_lite::test.tmp = true; } \
catch (...) { } \
EXPECTTHROW(statement, "kivetelt dob.", "nem dobott '"#exception_type"' kivetelt.")
......@@ -156,7 +159,7 @@
/// Kivételt várunk és továbbdobjuk -- ilyen nincs a gtest-ben
#define EXPECT_THROW_THROW(statement, exception_type) try { gtest_lite::test.tmp = false; statement; } \
catch (exception_type) { gtest_lite::test.tmp = true; throw; } \
catch (exception_type &) { gtest_lite::test.tmp = true; throw; } \
EXPECTTHROW(statement, "kivetelt dob.", "nem dobott '"#exception_type"' kivetelt.")
/// Környezeti változóhoz hasonlít -- ilyen nincs a gtest-ben
......@@ -285,7 +288,7 @@ public:
}
/// Teszt vége
std::ostream& end(bool memchk = false) {
(void) memchk;
(void) memchk; // Elkerülni az unused-variable warningot, ha nincs memtrace
#ifdef MEMTRACE
if (memchk && ablocks != memtrace::allocated_blocks()) {
status = false;
......@@ -464,16 +467,16 @@ template <typename T>
bool almostEQ(T a, T b) {
// eps: ha a relatív, vagy abszolút hiba ettől kisebb, akkor elfogadjuk
T eps = 10 * std::numeric_limits<T>::epsilon(); // 10-szer a legkisebb érték
if (a == b) return true;
if (fabs(a - b) < eps)
T diff = fabs(a - b);
if (diff < eps)
return true;
double aa = fabs(a);
double ba = fabs(b);
T aa = fabs(a);
T ba = fabs(b);
if (aa < ba) {
aa = ba;
ba = fabs(a);
}
return (aa - ba) < aa * eps;
return diff < aa * eps;
}
/// Segédsablon ostream átirányításához
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment