summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-09-26 08:47:42 +0200
committerHenning Baldersheim <balder@oath.com>2018-09-26 08:47:42 +0200
commit08f34e35fca75b3af2b68391a4bb5de6d6252159 (patch)
tree6e2daef7c81967df3b3387cb3c787a48c74a02f8 /vespalib
parent00d75be4343bbdd95175ab12aaa388944e10ba55 (diff)
Add simple usage test for vespa-drop-file-from-cache
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/CMakeLists.txt1
-rw-r--r--vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp15
-rw-r--r--vespalib/src/tests/drop-file-from-cache/drop_file_from_cache_test.cpp20
3 files changed, 28 insertions, 8 deletions
diff --git a/vespalib/CMakeLists.txt b/vespalib/CMakeLists.txt
index 2212bbeb57a..c5dafcf789d 100644
--- a/vespalib/CMakeLists.txt
+++ b/vespalib/CMakeLists.txt
@@ -37,6 +37,7 @@ vespa_define_module(
src/tests/data/smart_buffer
src/tests/delegatelist
src/tests/dotproduct
+ src/tests/drop-file-from-cache
src/tests/dual_merge_director
src/tests/eventbarrier
src/tests/exception_classes
diff --git a/vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp b/vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp
index eca88c83738..c4129305ac1 100644
--- a/vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp
+++ b/vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp
@@ -1,10 +1,13 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <cstdio>
+#include <cerrno>
+#include <cstring>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char **argv) {
+ char errorBuf[200];
if (argc != 2) {
fprintf(stderr, "%s <filename>", argv[0]);
return 1;
@@ -12,14 +15,18 @@ int main(int argc, char **argv) {
const char *fileName = argv[1];
int fh = open(fileName, O_RDONLY);
if (fh != -1) {
+ int retval = 0;
int err = posix_fadvise(fh, 0, 0, POSIX_FADV_DONTNEED);
if (err != 0) {
- perror("posix_fadvise failed");
+ const char *errorString = strerror_r(errno, errorBuf, sizeof(errorBuf));
+ fprintf(stderr, "posix_fadvise failed: %s", errorString);
+ retval = 3;
}
close(fh);
+ return retval;
} else {
- perror("Failed opening file");
- return 1;
+ const char *errorString = strerror_r(errno, errorBuf, sizeof(errorBuf));
+ fprintf(stderr, "Failed opening file %s: %s", fileName, errorString);
+ return 2;
}
- return 0;
}
diff --git a/vespalib/src/tests/drop-file-from-cache/drop_file_from_cache_test.cpp b/vespalib/src/tests/drop-file-from-cache/drop_file_from_cache_test.cpp
index efdc81ab6d0..63defa58c41 100644
--- a/vespalib/src/tests/drop-file-from-cache/drop_file_from_cache_test.cpp
+++ b/vespalib/src/tests/drop-file-from-cache/drop_file_from_cache_test.cpp
@@ -4,10 +4,22 @@
using vespalib::SlaveProc;
-TEST("simple run") {
- std::string out;
- EXPECT_TRUE(SlaveProc::run("../../apps/vespa-drop-file-from-cache/vespa-drop-file-from-cache", out));
- EXPECT_EQUAL(out, "foo");
+TEST("no arguments") {
+ SlaveProc drop("../../apps/vespa-drop-file-from-cache/vespa-drop-file-from-cache");
+ drop.wait();
+ EXPECT_EQUAL(1, drop.getExitCode());
+}
+
+TEST("file does not exist") {
+ SlaveProc drop("../../apps/vespa-drop-file-from-cache/vespa-drop-file-from-cache not_exist");
+ drop.wait();
+ EXPECT_EQUAL(2, drop.getExitCode());
+}
+
+TEST("All is well") {
+ SlaveProc drop("../../apps/vespa-drop-file-from-cache/vespa-drop-file-from-cache vespalib_drop_file_from_cache_test_app");
+ drop.wait();
+ EXPECT_EQUAL(0, drop.getExitCode());
}
TEST_MAIN_WITH_PROCESS_PROXY() { TEST_RUN_ALL(); }