From aa73023bee1aebc745188e54039d3bf567be97e3 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Thu, 20 Feb 2025 23:47:02 +0100 Subject: Use intrusive list in logging, and add defer --- asl/base/defer_tests.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 asl/base/defer_tests.cpp (limited to 'asl/base/defer_tests.cpp') diff --git a/asl/base/defer_tests.cpp b/asl/base/defer_tests.cpp new file mode 100644 index 0000000..b5139d5 --- /dev/null +++ b/asl/base/defer_tests.cpp @@ -0,0 +1,32 @@ +#include "asl/base/defer.hpp" +#include "asl/testing/testing.hpp" + +ASL_TEST(defer) +{ + uint32_t a = 0; + + { + ASL_DEFER [&a]() { a |= 1; }; + ASL_TEST_EXPECT(a == 0); + + { + ASL_DEFER [&a]() { a |= 2; }; + ASL_DEFER [&a]() { a |= 4; }; + ASL_TEST_EXPECT(a == 0); + } + + ASL_TEST_EXPECT(a == 6); + + { + ASL_DEFER [&a]() { a |= 8; }; + ASL_TEST_EXPECT(a == 6); + } + + ASL_TEST_EXPECT(a == 14); + + ASL_DEFER [&a]() { a |= 16; }; + ASL_TEST_EXPECT(a == 14); + } + + ASL_TEST_EXPECT(a == 31); +} -- cgit