diff -r 79d14e821b3a -r f937c6d11d1f test/test_list.cpp --- a/test/test_list.cpp Sat Apr 16 20:44:47 2022 +0200 +++ b/test/test_list.cpp Sat Apr 16 21:12:02 2022 +0200 @@ -57,20 +57,26 @@ const ptrdiff_t loc_data = offsetof(struct node, data); struct node_test_data { - node *begin; + node *begin = nullptr; - explicit node_test_data(node *begin) : begin(begin) {} - node_test_data(node_test_data&) = delete; - node_test_data(node_test_data&&) = default; + explicit node_test_data(node *begin) : begin(begin) { + auto n = begin; + while (n != nullptr) { + nodes.push_back(n); + n = n->next; + } + } + + node_test_data(node_test_data &) = delete; + + node_test_data(node_test_data &&) = default; ~node_test_data() { - auto n = begin; - while (n != nullptr) { - auto next = n->next; - delete n; - n = next; - } + for (auto &&n: nodes) delete n; } + +private: + std::vector nodes; }; static node_test_data create_nodes_test_data(size_t len) {