File: utils.cc

package info (click to toggle)
yapet 2.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 11,920 kB
  • sloc: cpp: 32,397; sh: 5,032; makefile: 880; ansic: 36; sed: 16
file content (40 lines) | stat: -rw-r--r-- 1,042 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <cppunit/CompilerOutputter.h>
#include <cppunit/TestCaller.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>

#include "utils.hh"

class UtilsTest : public CppUnit::TestFixture {
   public:
    static CppUnit::TestSuite *suite() {
        CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite("Utils Test");

        suiteOfTests->addTest(new CppUnit::TestCaller<UtilsTest>(
            "deleteAndZero should free mem", &UtilsTest::deleteAndZero));

        return suiteOfTests;
    }

    void deleteAndZero() {
        // Must not segfault
        yapet::deleteAndZero((int **)nullptr);

        int *ptr = nullptr;
        // must not segfault
        yapet::deleteAndZero(&ptr);

        ptr = new int;
        // must not segfault
        yapet::deleteAndZero(&ptr);

        CPPUNIT_ASSERT(ptr == nullptr);
    }
};

int main() {
    CppUnit::TextUi::TestRunner runner;
    runner.addTest(UtilsTest::suite());
    return runner.run() ? 0 : 1;
}