diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-27 21:10:24 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-27 21:10:24 +0000 |
commit | 184f37836ae30b7c468dd4b1305695939ed92357 (patch) | |
tree | d4e2d0c76b6f85b97e6b304db39115875b98b177 /searchlib | |
parent | fe2ea2e136cdba8f1351a4935b7c973e6f7c81a6 (diff) |
GC unused Load/Save code for StringEnum
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/tests/stringenum/stringenum_test.cpp | 75 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/util/stringenum.cpp | 94 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/util/stringenum.h | 19 |
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); }; } |