diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /vespalib/src/tests/valgrind |
Publish
Diffstat (limited to 'vespalib/src/tests/valgrind')
-rw-r--r-- | vespalib/src/tests/valgrind/.gitignore | 4 | ||||
-rw-r--r-- | vespalib/src/tests/valgrind/CMakeLists.txt | 11 | ||||
-rw-r--r-- | vespalib/src/tests/valgrind/DESC | 1 | ||||
-rw-r--r-- | vespalib/src/tests/valgrind/FILES | 1 | ||||
-rw-r--r-- | vespalib/src/tests/valgrind/valgrind_test.cpp | 68 |
5 files changed, 85 insertions, 0 deletions
diff --git a/vespalib/src/tests/valgrind/.gitignore b/vespalib/src/tests/valgrind/.gitignore new file mode 100644 index 00000000000..d4b7a9e7e55 --- /dev/null +++ b/vespalib/src/tests/valgrind/.gitignore @@ -0,0 +1,4 @@ +.depend +Makefile +valgrind_test +vespalib_valgrind_test_app diff --git a/vespalib/src/tests/valgrind/CMakeLists.txt b/vespalib/src/tests/valgrind/CMakeLists.txt new file mode 100644 index 00000000000..72643d9b7e7 --- /dev/null +++ b/vespalib/src/tests/valgrind/CMakeLists.txt @@ -0,0 +1,11 @@ +# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(vespalib_valgrind_test_app + SOURCES + valgrind_test.cpp + DEPENDS + vespalib +) +vespa_add_test(NAME vespalib_valgrind_test_app_testInitializedUser COMMAND vespalib_valgrind_test_app testInitializedUser NO_VALGRIND) +vespa_add_test(NAME vespalib_valgrind_test_app_testInitializedSystemCall COMMAND vespalib_valgrind_test_app testInitializedSystemCall NO_VALGRIND) +vespa_add_test(NAME vespalib_valgrind_test_app_testUninitializedUser COMMAND vespalib_valgrind_test_app testUninitializedUser NO_VALGRIND) +vespa_add_test(NAME vespalib_valgrind_test_app_testUninitializedSystemCall COMMAND vespalib_valgrind_test_app testUninitializedSystemCall NO_VALGRIND) diff --git a/vespalib/src/tests/valgrind/DESC b/vespalib/src/tests/valgrind/DESC new file mode 100644 index 00000000000..fdaf253ad9d --- /dev/null +++ b/vespalib/src/tests/valgrind/DESC @@ -0,0 +1 @@ +valgrind test. Take a look at valgrind.cpp for details. diff --git a/vespalib/src/tests/valgrind/FILES b/vespalib/src/tests/valgrind/FILES new file mode 100644 index 00000000000..c1ecefffc5a --- /dev/null +++ b/vespalib/src/tests/valgrind/FILES @@ -0,0 +1 @@ +valgrind.cpp diff --git a/vespalib/src/tests/valgrind/valgrind_test.cpp b/vespalib/src/tests/valgrind/valgrind_test.cpp new file mode 100644 index 00000000000..443f6814c5c --- /dev/null +++ b/vespalib/src/tests/valgrind/valgrind_test.cpp @@ -0,0 +1,68 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/log/log.h> +LOG_SETUP("valgrind_test"); +#include <vespa/vespalib/testkit/testapp.h> +#include <vespa/vespalib/util/valgrind.h> + +using namespace vespalib; + +class Test : public TestApp +{ + int Main(); + void testUninitializedUser(); + void testUninitializedSystemCall(); + void testInitializedUser(); + void testInitializedSystemCall(); +}; + +void Test::testUninitializedUser() +{ + char buf[7]; + buf[0] = 7; + buf[5] = 7; + Valgrind::testUninitialized(buf, sizeof(buf)); +} + +void Test::testUninitializedSystemCall() +{ + char buf[7]; + buf[0] = 7; + buf[5] = 7; + Valgrind::testSystemCall(buf, sizeof(buf)); +} +void Test::testInitializedUser() +{ + char buf[7]; + memset(buf, 0, sizeof(buf)); + Valgrind::testUninitialized(buf, sizeof(buf)); +} + +void Test::testInitializedSystemCall() +{ + char buf[7]; + memset(buf, 0, sizeof(buf)); + Valgrind::testSystemCall(buf, sizeof(buf)); +} + +int +Test::Main() +{ + TEST_INIT("valgrind_test"); + + if (strcmp(_argv[1], "testInitializedUser") == 0) { + testInitializedUser(); + } else if (strcmp(_argv[1], "testInitializedSystemCall") == 0) { + testInitializedSystemCall(); + } else if (strcmp(_argv[1], "testUninitializedUser") == 0) { + testUninitializedUser(); + } else if (strcmp(_argv[1], "testUninitializedSystemCall") == 0) { + testUninitializedSystemCall(); + } else { + testInitializedUser(); + } + + TEST_DONE(); +} + +TEST_APPHOOK(Test) |