summaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/valgrind
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /vespalib/src/tests/valgrind
Publish
Diffstat (limited to 'vespalib/src/tests/valgrind')
-rw-r--r--vespalib/src/tests/valgrind/.gitignore4
-rw-r--r--vespalib/src/tests/valgrind/CMakeLists.txt11
-rw-r--r--vespalib/src/tests/valgrind/DESC1
-rw-r--r--vespalib/src/tests/valgrind/FILES1
-rw-r--r--vespalib/src/tests/valgrind/valgrind_test.cpp68
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)