summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-01-27 21:10:24 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-01-27 21:10:24 +0000
commit184f37836ae30b7c468dd4b1305695939ed92357 (patch)
treed4e2d0c76b6f85b97e6b304db39115875b98b177 /searchlib
parentfe2ea2e136cdba8f1351a4935b7c973e6f7c81a6 (diff)
GC unused Load/Save code for StringEnum
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/stringenum/stringenum_test.cpp75
-rw-r--r--searchlib/src/vespa/searchlib/util/stringenum.cpp94
-rw-r--r--searchlib/src/vespa/searchlib/util/stringenum.h19
3 files changed, 4 insertions, 184 deletions
diff --git a/searchlib/src/tests/stringenum/stringenum_test.cpp b/searchlib/src/tests/stringenum/stringenum_test.cpp
index 15ec1862338..f5915db6df0 100644
--- a/searchlib/src/tests/stringenum/stringenum_test.cpp
+++ b/searchlib/src/tests/stringenum/stringenum_test.cpp
@@ -1,43 +1,28 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/log/log.h>
-LOG_SETUP("stringenum");
-#include <vespa/fastlib/io/bufferedfile.h>
#include <vespa/searchlib/util/stringenum.h>
-
+LOG_SETUP("stringenum");
#include <vespa/vespalib/testkit/testapp.h>
using namespace vespalib;
-class MyApp : public vespalib::TestApp
-{
-public:
- void CheckLookup( search::util::StringEnum *strEnum, const char *str, int value);
- int Main() override;
- MyApp() {}
-};
-
-
void
-MyApp::CheckLookup( search::util::StringEnum *strEnum, const char *str, int value)
+CheckLookup( search::util::StringEnum *strEnum, const char *str, int value)
{
EXPECT_EQUAL(0, strcmp(str, strEnum->Lookup(value)));
EXPECT_EQUAL(value, strEnum->Lookup(str));
}
-int
-MyApp::Main()
+TEST("test StringEnum Add and Lookup")
{
- TEST_INIT("stringenum_test");
search::util::StringEnum enum1;
- search::util::StringEnum enum2;
// check number of entries
EXPECT_EQUAL(enum1.GetNumEntries(), 0u);
- EXPECT_EQUAL(enum2.GetNumEntries(), 0u);
// check add non-duplicates
EXPECT_EQUAL(enum1.Add("zero"), 0);
@@ -80,63 +65,11 @@ MyApp::Main()
TEST_DO(CheckLookup(&enum1, "nine", 9));
TEST_DO(CheckLookup(&enum1, "ten", 10));
- TEST_FLUSH();
-
- // save/load
- EXPECT_TRUE(enum1.Save("tmp.enum"));
- EXPECT_TRUE(enum2.Load("tmp.enum"));
-
- // check mapping and reverse mapping
- EXPECT_EQUAL(enum2.GetNumEntries(), 11u);
- TEST_DO(CheckLookup(&enum2, "zero", 0));
- TEST_DO(CheckLookup(&enum2, "one", 1));
- TEST_DO(CheckLookup(&enum2, "two", 2));
- TEST_DO(CheckLookup(&enum2, "three", 3));
- TEST_DO(CheckLookup(&enum2, "four", 4));
- TEST_DO(CheckLookup(&enum2, "five", 5));
- TEST_DO(CheckLookup(&enum2, "six", 6));
- TEST_DO(CheckLookup(&enum2, "seven", 7));
- TEST_DO(CheckLookup(&enum2, "eight", 8));
- TEST_DO(CheckLookup(&enum2, "nine", 9));
- TEST_DO(CheckLookup(&enum2, "ten", 10));
-
- // add garbage
- enum2.Add("sfsdffgdfh");
- enum2.Add("sf24dfsgg3");
- enum2.Add("sfwertfgdh");
- enum2.Add("sfewrgtsfh");
- enum2.Add("sfgdsdgdfh");
-
- TEST_FLUSH();
-
- // reload
- EXPECT_TRUE(enum2.Load("tmp.enum"));
-
- // check garbage lost
- EXPECT_EQUAL(enum2.GetNumEntries(), 11u);
- EXPECT_EQUAL(-1, enum2.Lookup("sfewrgtsfh"));
- // check mapping and reverse mapping
- TEST_DO(CheckLookup(&enum2, "zero", 0));
- TEST_DO(CheckLookup(&enum2, "one", 1));
- TEST_DO(CheckLookup(&enum2, "two", 2));
- TEST_DO(CheckLookup(&enum2, "three", 3));
- TEST_DO(CheckLookup(&enum2, "four", 4));
- TEST_DO(CheckLookup(&enum2, "five", 5));
- TEST_DO(CheckLookup(&enum2, "six", 6));
- TEST_DO(CheckLookup(&enum2, "seven", 7));
- TEST_DO(CheckLookup(&enum2, "eight", 8));
- TEST_DO(CheckLookup(&enum2, "nine", 9));
- TEST_DO(CheckLookup(&enum2, "ten", 10));
-
// clear
enum1.Clear();
- enum2.Clear();
// check number of entries
EXPECT_EQUAL(enum1.GetNumEntries(), 0u);
- EXPECT_EQUAL(enum2.GetNumEntries(), 0u);
-
- TEST_DONE();
}
-TEST_APPHOOK(MyApp);
+TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/searchlib/src/vespa/searchlib/util/stringenum.cpp b/searchlib/src/vespa/searchlib/util/stringenum.cpp
index 9744d39746e..116e400083a 100644
--- a/searchlib/src/vespa/searchlib/util/stringenum.cpp
+++ b/searchlib/src/vespa/searchlib/util/stringenum.cpp
@@ -1,7 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "stringenum.h"
-#include <vespa/fastlib/io/bufferedfile.h>
#include <vespa/vespalib/stllike/hashtable.hpp>
#include <cassert>
@@ -10,27 +9,6 @@ LOG_SETUP(".seachlib.util.stringenum");
namespace search::util {
-static inline char *
-StripString(char *str)
-{
- char *last = nullptr; // last non-space char
-
- if (str == nullptr)
- return nullptr;
-
- for (; *str != '\0' && isspace(*str); str++);
- char *first = str;
-
- for (; *str != '\0'; str++)
- if (!isspace(*str))
- last = str;
-
- if (last != nullptr)
- *(last + 1) = '\0';
-
- return first;
-}
-
StringEnum::StringEnum()
: _numEntries(0),
_mapping(),
@@ -55,78 +33,6 @@ StringEnum::CreateReverseMapping() const
}
}
-
-bool
-StringEnum::Save(const char *filename)
-{
- char str[1024];
-
- Fast_BufferedFile file;
- file.WriteOpen(filename);
- if (!file.IsOpened())
- return false;
-
- file.SetSize(0);
- sprintf(str, "%d\n", _numEntries);
- file.WriteString(str);
-
- for (uint32_t i = 0; i < _numEntries; i++) {
- file.WriteString(Lookup(i));
- file.WriteString("\n");
- }
-
- return file.Sync();
-}
-
-
-bool
-StringEnum::Load(const char *filename)
-{
- char line[1024];
- char *pt;
- uint32_t entries; // from first line of file
- uint32_t lineNumber; // current line in file
- uint32_t entryCnt; // # entries obtained from file
-
- Clear();
-
- Fast_BufferedFile file;
- if (!file.OpenReadOnly(filename))
- return false;
-
- lineNumber = 0;
- entryCnt = 0;
-
- pt = StripString(file.ReadLine(line, sizeof(line)));
- if (pt == nullptr || *pt == '\0')
- return false;
- lineNumber++;
-
- entries = atoi(pt);
-
- while (!file.Eof()) {
- pt = StripString(file.ReadLine(line, sizeof(line)));
- if (pt == nullptr) // end of input ?
- break;
- lineNumber++;
- if (*pt == '\0') // empty line ?
- continue;
-
- uint32_t tmp = _numEntries;
- if (static_cast<uint32_t>(Add(pt)) != tmp) {
- LOG(error, "(%s:%d) duplicate enum entry: %s", filename, lineNumber, pt);
- }
- entryCnt++;
- }
-
- if (entries != _numEntries
- || entries != entryCnt) {
- Clear();
- return false;
- }
- return true;
-}
-
void
StringEnum::Clear()
{
diff --git a/searchlib/src/vespa/searchlib/util/stringenum.h b/searchlib/src/vespa/searchlib/util/stringenum.h
index 85f97de48ad..0da79db323a 100644
--- a/searchlib/src/vespa/searchlib/util/stringenum.h
+++ b/searchlib/src/vespa/searchlib/util/stringenum.h
@@ -80,25 +80,6 @@ public:
* @return current number of entries.
**/
uint32_t GetNumEntries() const { return _numEntries; }
-
-
- /**
- * Save the enumeration currently held by this object to file.
- *
- * @return success(true)/fail(false).
- * @param filename name of save file.
- **/
- bool Save(const char *filename);
-
-
- /**
- * Load an enumeration from file. The loaded enumeration will
- * replace the one currently held by this object.
- *
- * @return success(true)/fail(false).
- * @param filename name of file to load.
- **/
- bool Load(const char *filename);
};
}