aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fastlib/src/vespa/fastlib/io/bufferedfile.cpp3
-rw-r--r--fastlib/src/vespa/fastlib/io/bufferedfile.h2
-rw-r--r--fastlib/src/vespa/fastlib/io/tests/bufferedfiletest.cpp10
-rw-r--r--fastos/src/vespa/fastos/file.cpp4
-rw-r--r--fastos/src/vespa/fastos/file.h4
-rw-r--r--fastos/src/vespa/fastos/linux_file.h2
-rw-r--r--fastos/src/vespa/fastos/unix_file.h2
-rw-r--r--searchlib/src/apps/docstore/create-idx-from-dat.cpp3
-rw-r--r--searchlib/src/tests/util/rawbuf_test.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp3
10 files changed, 20 insertions, 17 deletions
diff --git a/fastlib/src/vespa/fastlib/io/bufferedfile.cpp b/fastlib/src/vespa/fastlib/io/bufferedfile.cpp
index cbe95e286b7..d93dbd74ee1 100644
--- a/fastlib/src/vespa/fastlib/io/bufferedfile.cpp
+++ b/fastlib/src/vespa/fastlib/io/bufferedfile.cpp
@@ -238,7 +238,8 @@ Fast_BufferedFile::ReadLine(char *line, size_t buflen)
}
}
-ssize_t Fast_BufferedFile::Write2(const void * src, size_t srclen)
+ssize_t
+Fast_BufferedFile::Write2(const void * src, size_t srclen)
{
const char *p, *pe;
p = static_cast<const char *>(src);
diff --git a/fastlib/src/vespa/fastlib/io/bufferedfile.h b/fastlib/src/vespa/fastlib/io/bufferedfile.h
index cdeb817b0de..ab01919d91a 100644
--- a/fastlib/src/vespa/fastlib/io/bufferedfile.h
+++ b/fastlib/src/vespa/fastlib/io/bufferedfile.h
@@ -107,7 +107,7 @@ public:
* @param src The source buffer.
* @param srclen The length of the source buffer.
*/
- ssize_t Write2(const void*, size_t) override;
+ [[nodiscard]] ssize_t Write2(const void*, size_t) override;
/**
* Write a string to a buffered file, flushing to file
* as necessary.
diff --git a/fastlib/src/vespa/fastlib/io/tests/bufferedfiletest.cpp b/fastlib/src/vespa/fastlib/io/tests/bufferedfiletest.cpp
index 0e27cb525af..8aa9b943419 100644
--- a/fastlib/src/vespa/fastlib/io/tests/bufferedfiletest.cpp
+++ b/fastlib/src/vespa/fastlib/io/tests/bufferedfiletest.cpp
@@ -19,7 +19,7 @@ TEST("main") {
printf ("testing 11 byte long file\n");
bufFile.WriteOpen("testfile1");
bufFile.addNum(1,10,' ');
- bufFile.CheckedWrite("\n",1);
+ ASSERT_TRUE(bufFile.CheckedWrite("\n",1));
ASSERT_TRUE(bufFile.Close());
FastOS_File::Stat("testfile1", &statInfo);
if (statInfo._size != 11) {
@@ -33,7 +33,7 @@ TEST("main") {
bufFile.WriteOpen("testfile2");
char buf[8192]; // allocate 8K buffer
memset(buf,0xff,8192);
- bufFile.CheckedWrite(buf,4095); // write almost 4K
+ ASSERT_TRUE(bufFile.CheckedWrite(buf,4095)); // write almost 4K
ASSERT_TRUE(bufFile.Close());
FastOS_File::Stat("testfile2", &statInfo);
if (statInfo._size != 4095) {
@@ -45,7 +45,7 @@ TEST("main") {
// test 3
printf ("testing 4096 byte long file\n");
bufFile.WriteOpen("testfile3");
- bufFile.CheckedWrite(buf,4096); // write exactly 4K
+ ASSERT_TRUE(bufFile.CheckedWrite(buf,4096)); // write exactly 4K
ASSERT_TRUE(bufFile.Close());
FastOS_File::Stat("testfile3", &statInfo);
if (statInfo._size != 4096) {
@@ -57,7 +57,7 @@ TEST("main") {
// test 4
printf ("testing 4097 byte long file\n");
bufFile.WriteOpen("testfile4");
- bufFile.CheckedWrite(buf,4097); // write a bit over 4K
+ ASSERT_TRUE(bufFile.CheckedWrite(buf,4097)); // write a bit over 4K
ASSERT_TRUE(bufFile.Close());
FastOS_File::Stat("testfile4", &statInfo);
if (statInfo._size != 4097) {
@@ -74,7 +74,7 @@ TEST("main") {
bufFile.addNum(value,6,' ');
value++;
}
- bufFile.CheckedWrite("\n",1);
+ ASSERT_TRUE(bufFile.CheckedWrite("\n",1));
}
ASSERT_TRUE(bufFile.Close());
FastOS_File::Stat("testfile5", &statInfo);
diff --git a/fastos/src/vespa/fastos/file.cpp b/fastos/src/vespa/fastos/file.cpp
index fc7074d7815..4f585e7daeb 100644
--- a/fastos/src/vespa/fastos/file.cpp
+++ b/fastos/src/vespa/fastos/file.cpp
@@ -245,8 +245,8 @@ FastOS_FileInterface::CopyFile( const char *src, const char *dst )
do {
unsigned int readBytes = s.Read( tmpBuf, bufSize );
if (readBytes > 0) {
-
- if ( !d.CheckedWrite( tmpBuf, readBytes)) {
+ ssize_t written = d.Write2(tmpBuf, readBytes);
+ if ( written != readBytes) {
success = false;
}
copied += readBytes;
diff --git a/fastos/src/vespa/fastos/file.h b/fastos/src/vespa/fastos/file.h
index aa8f495d064..611e179adf0 100644
--- a/fastos/src/vespa/fastos/file.h
+++ b/fastos/src/vespa/fastos/file.h
@@ -334,7 +334,7 @@ public:
* @param len number of bytes to write
* @return Boolean success/failure
*/
- bool CheckedWrite(const void *buffer, size_t len);
+ [[nodiscard]] bool CheckedWrite(const void *buffer, size_t len);
/**
* Write [len] bytes from [buffer].
@@ -342,7 +342,7 @@ public:
* @param len number of bytes to write
* @return The number of bytes actually written, or -1 on error
*/
- virtual ssize_t Write2(const void *buffer, size_t len) = 0;
+ [[nodiscard]] virtual ssize_t Write2(const void *buffer, size_t len) = 0;
/**
* Read [length] bytes into [buffer]. Caution! If the actual number
diff --git a/fastos/src/vespa/fastos/linux_file.h b/fastos/src/vespa/fastos/linux_file.h
index ababf51d26d..6ba5cdc8fea 100644
--- a/fastos/src/vespa/fastos/linux_file.h
+++ b/fastos/src/vespa/fastos/linux_file.h
@@ -37,7 +37,7 @@ public:
ssize_t Read(void *buffer, size_t len) override;
- ssize_t Write2(const void *buffer, size_t len) override;
+ [[nodiscard]] ssize_t Write2(const void *buffer, size_t len) override;
bool Open(unsigned int openFlags, const char *filename) override;
static bool InitializeClass();
diff --git a/fastos/src/vespa/fastos/unix_file.h b/fastos/src/vespa/fastos/unix_file.h
index 891b5e0dba7..86e89ffde95 100644
--- a/fastos/src/vespa/fastos/unix_file.h
+++ b/fastos/src/vespa/fastos/unix_file.h
@@ -59,7 +59,7 @@ public:
void ReadBuf(void *buffer, size_t length, int64_t readOffset) override;
ssize_t Read(void *buffer, size_t len) override;
- ssize_t Write2(const void *buffer, size_t len) override;
+ [[nodiscard]] ssize_t Write2(const void *buffer, size_t len) override;
bool Open(unsigned int openFlags, const char *filename) override;
[[nodiscard]] bool Close() override;
bool IsOpened() const override { return _filedes >= 0; }
diff --git a/searchlib/src/apps/docstore/create-idx-from-dat.cpp b/searchlib/src/apps/docstore/create-idx-from-dat.cpp
index 477282fdbf4..30af02ddb92 100644
--- a/searchlib/src/apps/docstore/create-idx-from-dat.cpp
+++ b/searchlib/src/apps/docstore/create-idx-from-dat.cpp
@@ -79,7 +79,8 @@ generate(uint64_t serialNum, size_t chunks, FastOS_FileInterface & idxFile, size
fprintf(stdout, "Failed with lengthError %ld due to '%s'\n", lengthError, e.what());
}
}
- idxFile.Write2(os.data(), os.size());
+ ssize_t written = idxFile.Write2(os.data(), os.size());
+ assert(written == ssize_t(os.size()));
return serialNum;
}
diff --git a/searchlib/src/tests/util/rawbuf_test.cpp b/searchlib/src/tests/util/rawbuf_test.cpp
index 1963833947f..fd77b5b4ddb 100644
--- a/searchlib/src/tests/util/rawbuf_test.cpp
+++ b/searchlib/src/tests/util/rawbuf_test.cpp
@@ -118,8 +118,8 @@ TEST("require that prealloc makes enough room") {
TEST("require that rawbuf can read from file") {
FastOS_File file("mytemporaryfile");
- file.OpenReadWrite();
- file.Write2("barbaz", 6);
+ ASSERT_TRUE(file.OpenReadWrite());
+ ASSERT_EQUAL(6, file.Write2("barbaz", 6));
file.SetPosition(0);
RawBuf buf(10);
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp b/searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp
index 3a24d348676..eea9610c7ab 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp
@@ -430,7 +430,8 @@ void
DomainPart::write(FastOS_FileInterface &file, SerialNumRange range, vespalib::ConstBufferRef buf)
{
std::lock_guard guard(_writeLock);
- if ( ! file.CheckedWrite(buf.data(), buf.size()) ) {
+ size_t written = file.Write2(buf.data(), buf.size());
+ if ( written != buf.size() ) {
throw runtime_error(handleWriteError("Failed writing the entry.", file, byteSize(), range, buf.size()));
}
LOG(debug, "Wrote chunk with and %zu bytes, range[%" PRIu64 ", %" PRIu64 "]", buf.size(), range.from(), range.to());