From c074b8222426012841a3326b956d58428d09d54e Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 16 Sep 2023 17:28:43 +0800 Subject: [PATCH] [test-qofsession] plugs Account* leak --- libgnucash/engine/test/test-qofsession.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libgnucash/engine/test/test-qofsession.cpp b/libgnucash/engine/test/test-qofsession.cpp index 30d91e2978..9e57485adf 100644 --- a/libgnucash/engine/test/test-qofsession.cpp +++ b/libgnucash/engine/test/test-qofsession.cpp @@ -36,8 +36,20 @@ static bool sync_called {false}; static bool load_error {true}; static bool data_loaded {false}; +struct DestroyAccount +{ + void operator()(Account *acct) + { + xaccAccountBeginEdit (acct); + xaccAccountDestroy (acct); + } +}; + +using AccountPtr = std::unique_ptr; + class QofSessionMockBackend : public QofBackend { + AccountPtr m_root; public: QofSessionMockBackend() = default; QofSessionMockBackend(const QofSessionMockBackend&) = delete; @@ -56,7 +68,7 @@ void QofSessionMockBackend::load (QofBook *book, QofBackendLoadType) if (load_error) set_error(ERR_BACKEND_NO_BACKEND); else - gnc_account_create_root (book); + m_root = AccountPtr{gnc_account_create_root (book)}; data_loaded = true; }