#include <config.h>#include "api_wrdb.h"#include <xapian.h>#include "backendmanager.h"#include "omassert.h"#include "str.h"#include "testsuite.h"#include "testutils.h"#include "unixcmds.h"#include "utils.h"#include "apitest.h"#include <cmath>#include <cstdlib>#include <map>#include <string>

Go to the source code of this file.
Functions | |
| DEFINE_TESTCASE (adddoc1, writable) | |
| DEFINE_TESTCASE (adddoc2, writable) | |
| DEFINE_TESTCASE (adddoc3, writable) | |
| DEFINE_TESTCASE (adddoc4, writable) | |
| DEFINE_TESTCASE (adddoc5, writable) | |
| DEFINE_TESTCASE (adddoc6, writable) | |
| DEFINE_TESTCASE (implicitendsession1, writable) | |
| DEFINE_TESTCASE (databaseassign1, writable) | |
| DEFINE_TESTCASE (deldoc1, writable) | |
| DEFINE_TESTCASE (deldoc2, writable) | |
| DEFINE_TESTCASE (deldoc3, writable) | |
| DEFINE_TESTCASE (deldoc4, writable) | |
| DEFINE_TESTCASE (deldoc5, writable) | |
| DEFINE_TESTCASE (deldoc6, writable) | |
| DEFINE_TESTCASE (replacedoc1, writable) | |
| DEFINE_TESTCASE (replacedoc2, writable) | |
| DEFINE_TESTCASE (replacedoc3, writable) | |
| DEFINE_TESTCASE (replacedoc4, writable) | |
| DEFINE_TESTCASE (replacedoc5, writable) | |
| DEFINE_TESTCASE (replacedoc6, writable) | |
| DEFINE_TESTCASE (uniqueterm1, writable) | |
| DEFINE_TESTCASE (allpostlist2, writable) | |
| static void | test_emptyterm2_helper (Xapian::WritableDatabase &db) |
| DEFINE_TESTCASE (emptyterm2, writable) | |
| DEFINE_TESTCASE (phraseorneartoand1, writable) | |
| DEFINE_TESTCASE (longpositionlist1, writable) | |
| DEFINE_TESTCASE (consistency2, writable) | |
| DEFINE_TESTCASE (crashrecovery1, brass||chert||flint) | |
| DEFINE_TESTCASE (nomoredocids1, writable) | |
| DEFINE_TESTCASE (synonymitor1, writable &&synonyms) | |
| DEFINE_TESTCASE (termtoolong1, writable) | |
| DEFINE_TESTCASE (postlist7, writable) | |
| Test playing with a postlist. | |
| DEFINE_TESTCASE (lazytablebug1, brass||chert||flint) | |
| DEFINE_TESTCASE (cursordelbug1, brass||chert||flint) | |
| Regression test for bug #287 for flint. | |
| static void | check_vals (const Xapian::Database &db, const map< Xapian::docid, string > &vals) |
| Helper function for modifyvalues1. | |
| DEFINE_TESTCASE (modifyvalues1, writable) | |
| Regression test for bug in initial streaming values implementation in chert. | |
| static void check_vals | ( | const Xapian::Database & | db, | |
| const map< Xapian::docid, string > & | vals | |||
| ) | [static] |
Helper function for modifyvalues1.
Check that the values stored in the database match
Definition at line 1858 of file api_wrdb.cc.
References Xapian::Database::get_doccount(), Xapian::Database::get_document(), Xapian::Database::get_lastdocid(), Xapian::Document::get_value(), TEST_EQUAL, TEST_NOT_EQUAL, TEST_REL, tout, Xapian::Document::values_begin(), Xapian::Document::values_count(), and Xapian::Document::values_end().
Referenced by DEFINE_TESTCASE().
| DEFINE_TESTCASE | ( | modifyvalues1 | , | |
| writable | ||||
| ) |
Regression test for bug in initial streaming values implementation in chert.
Definition at line 1888 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_value(), check_vals(), Xapian::WritableDatabase::commit(), Xapian::Database::get_document(), get_writable_database(), Xapian::WritableDatabase::replace_document(), seed, STATIC_ASSERT, Xapian::Internal::str(), and tout.
| DEFINE_TESTCASE | ( | cursordelbug1 | , | |
| brass||chert|| | flint | |||
| ) |
Regression test for bug #287 for flint.
Chert also has the same duff code but this testcase doesn't actually tickle the bug there.
Definition at line 1815 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::WritableDatabase::delete_document(), get_named_writable_database(), get_named_writable_database_path(), Xapian::Internal::str(), system(), and XAPIAN_BIN_PATH.
| DEFINE_TESTCASE | ( | lazytablebug1 | , | |
| brass||chert|| | flint | |||
| ) |
Definition at line 1783 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::WritableDatabase::add_synonym(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), get_named_writable_database(), get_writable_database_as_database(), Xapian::Database::synonym_keys_begin(), Xapian::Database::synonym_keys_end(), and tout.
| DEFINE_TESTCASE | ( | postlist7 | , | |
| writable | ||||
| ) |
Test playing with a postlist.
Definition at line 1741 of file api_wrdb.cc.
References Xapian::Document::add_term(), Xapian::PostingIterator::get_doclength(), Xapian::PostingIterator::get_wdf(), get_writable_database(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::WritableDatabase::replace_document(), TEST, and TEST_EQUAL.
| DEFINE_TESTCASE | ( | termtoolong1 | , | |
| writable | ||||
| ) |
Definition at line 1683 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::Error::get_msg(), get_writable_database(), SKIP_TEST_FOR_BACKEND, TEST, TEST_AND_EXPLAIN, and tout.
| DEFINE_TESTCASE | ( | synonymitor1 | , | |
| writable && | synonyms | |||
| ) |
Definition at line 1568 of file api_wrdb.cc.
References Xapian::Database::add_database(), Xapian::WritableDatabase::add_synonym(), Xapian::WritableDatabase::clear_synonyms(), Xapian::WritableDatabase::commit(), get_database(), get_writable_database(), Xapian::WritableDatabase::remove_synonym(), Xapian::Database::synonym_keys_begin(), Xapian::Database::synonym_keys_end(), Xapian::Database::synonyms_begin(), Xapian::Database::synonyms_end(), TEST, and TEST_STRINGS_EQUAL.
| DEFINE_TESTCASE | ( | nomoredocids1 | , | |
| writable | ||||
| ) |
Definition at line 1550 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_term(), get_writable_database(), Xapian::WritableDatabase::replace_document(), Xapian::Document::set_data(), SKIP_TEST_FOR_BACKEND, and TEST_EXCEPTION.
| DEFINE_TESTCASE | ( | crashrecovery1 | , | |
| brass||chert|| | flint | |||
| ) |
Definition at line 1491 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::WritableDatabase::commit(), Xapian::DB_OPEN, get_dbtype(), Xapian::Database::get_doccount(), get_writable_database(), get_writable_database_as_database(), Xapian::Database::reopen(), TEST_EQUAL, and unlink().
| DEFINE_TESTCASE | ( | consistency2 | , | |
| writable | ||||
| ) |
Definition at line 1440 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_term(), Xapian::Document::add_value(), Xapian::WritableDatabase::commit(), Xapian::Enquire::get_mset(), get_writable_database(), Xapian::Enquire::set_query(), Xapian::Enquire::set_sort_by_value_then_relevance(), Xapian::MSet::size(), and TEST_EQUAL.
| DEFINE_TESTCASE | ( | longpositionlist1 | , | |
| writable | ||||
| ) |
Definition at line 1375 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::WritableDatabase::commit(), Xapian::Database::get_document(), get_writable_database(), Xapian::TermIterator::positionlist_begin(), Xapian::TermIterator::positionlist_end(), Xapian::Document::set_data(), Xapian::Document::termlist_begin(), Xapian::Document::termlist_end(), TEST, and TEST_EQUAL.
| DEFINE_TESTCASE | ( | phraseorneartoand1 | , | |
| writable | ||||
| ) |
Definition at line 1336 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::Enquire::get_mset(), get_writable_database(), Xapian::Query::OP_NEAR, Xapian::Query::OP_PHRASE, Xapian::Document::set_data(), Xapian::Enquire::set_query(), Xapian::MSet::size(), Xapian::Internal::str(), and TEST_EQUAL.
| DEFINE_TESTCASE | ( | emptyterm2 | , | |
| writable | ||||
| ) |
Definition at line 1300 of file api_wrdb.cc.
References Xapian::WritableDatabase::delete_document(), Xapian::Database::get_doccount(), get_writable_database(), test_emptyterm2_helper(), and TEST_EQUAL.
| DEFINE_TESTCASE | ( | allpostlist2 | , | |
| writable | ||||
| ) |
Definition at line 1247 of file api_wrdb.cc.
References Xapian::WritableDatabase::delete_document(), get_writable_database(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::PostingIterator::skip_to(), and TEST_EQUAL.
| DEFINE_TESTCASE | ( | uniqueterm1 | , | |
| writable | ||||
| ) |
Definition at line 1192 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_term(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_doccount(), get_writable_database(), Xapian::WritableDatabase::replace_document(), Xapian::Document::set_data(), Xapian::Internal::str(), and TEST_EQUAL.
| DEFINE_TESTCASE | ( | replacedoc6 | , | |
| writable | ||||
| ) |
Definition at line 1153 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_value(), Xapian::WritableDatabase::commit(), Xapian::Database::get_document(), Xapian::Document::get_value(), get_writable_database(), Xapian::WritableDatabase::replace_document(), and TEST_EQUAL.
| DEFINE_TESTCASE | ( | replacedoc5 | , | |
| writable | ||||
| ) |
Definition at line 1096 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::Database::get_document(), get_writable_database(), Xapian::Database::has_positions(), Xapian::Database::positionlist_begin(), Xapian::Database::positionlist_end(), Xapian::WritableDatabase::replace_document(), TEST, and TEST_EQUAL.
| DEFINE_TESTCASE | ( | replacedoc4 | , | |
| writable | ||||
| ) |
Definition at line 1034 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_document(), Xapian::Database::get_termfreq(), get_writable_database(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::Document::remove_term(), Xapian::WritableDatabase::replace_document(), TEST_EQUAL, and TEST_NOT_EQUAL.
| DEFINE_TESTCASE | ( | replacedoc3 | , | |
| writable | ||||
| ) |
Definition at line 968 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::Database::get_doclength(), Xapian::Database::get_document(), Xapian::Database::get_termfreq(), get_writable_database(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::Document::remove_term(), Xapian::WritableDatabase::replace_document(), TEST_EQUAL, and TEST_NOT_EQUAL.
| DEFINE_TESTCASE | ( | replacedoc2 | , | |
| writable | ||||
| ) |
Definition at line 910 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Database::get_doccount(), Xapian::Database::get_document(), get_writable_database(), Xapian::TermIterator::positionlist_begin(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::WritableDatabase::replace_document(), Xapian::Document::termlist_begin(), TEST, TEST_EQUAL, and TEST_EXCEPTION.
| DEFINE_TESTCASE | ( | replacedoc1 | , | |
| writable | ||||
| ) |
Definition at line 864 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Database::get_document(), get_writable_database(), Xapian::TermIterator::positionlist_begin(), Xapian::WritableDatabase::replace_document(), Xapian::Document::termlist_begin(), Xapian::Document::termlist_end(), and TEST_EQUAL.
| DEFINE_TESTCASE | ( | deldoc6 | , | |
| writable | ||||
| ) |
Definition at line 834 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_document(), get_writable_database(), Xapian::Document::remove_term(), TEST_EQUAL, and TEST_EXCEPTION.
| DEFINE_TESTCASE | ( | deldoc5 | , | |
| writable | ||||
| ) |
Definition at line 787 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_document(), Xapian::Database::get_termfreq(), get_writable_database(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::Document::remove_term(), TEST_EQUAL, TEST_EXCEPTION, and TEST_NOT_EQUAL.
| DEFINE_TESTCASE | ( | deldoc4 | , | |
| writable | ||||
| ) |
Definition at line 702 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Database::allterms_begin(), Xapian::Database::allterms_end(), Xapian::WritableDatabase::commit(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_avlength(), Xapian::Database::get_collection_freq(), Xapian::Database::get_doccount(), Xapian::Database::get_doclength(), Xapian::Database::get_document(), Xapian::Database::get_termfreq(), get_writable_database(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::Document::remove_term(), Xapian::Database::reopen(), Xapian::Database::term_exists(), Xapian::Database::termlist_begin(), TEST, TEST_EQUAL, TEST_EXCEPTION, and tout.
| DEFINE_TESTCASE | ( | deldoc3 | , | |
| writable | ||||
| ) |
Definition at line 654 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Database::allterms_begin(), Xapian::Database::allterms_end(), Xapian::WritableDatabase::commit(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_avlength(), Xapian::Database::get_collection_freq(), Xapian::Database::get_doccount(), Xapian::Database::get_doclength(), Xapian::Database::get_document(), Xapian::Database::get_termfreq(), get_writable_database(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::Database::reopen(), Xapian::Database::term_exists(), Xapian::Database::termlist_begin(), TEST, TEST_EQUAL, and TEST_EXCEPTION.
| DEFINE_TESTCASE | ( | deldoc2 | , | |
| writable | ||||
| ) |
Definition at line 578 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Database::allterms_begin(), Xapian::Database::allterms_end(), Xapian::WritableDatabase::commit(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_avlength(), Xapian::Database::get_collection_freq(), Xapian::Database::get_doccount(), Xapian::Database::get_doclength(), Xapian::Database::get_document(), Xapian::Database::get_termfreq(), get_writable_database(), Xapian::Database::postlist_begin(), Xapian::Database::postlist_end(), Xapian::Document::remove_term(), Xapian::Database::reopen(), Xapian::Database::term_exists(), Xapian::Database::termlist_begin(), TEST, TEST_EQUAL, and TEST_EXCEPTION.
| DEFINE_TESTCASE | ( | deldoc1 | , | |
| writable | ||||
| ) |
Definition at line 531 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_term(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_document(), get_writable_database(), Xapian::Document::remove_term(), Xapian::WritableDatabase::replace_document(), Xapian::Document::termlist_begin(), Xapian::Document::termlist_end(), TEST_EQUAL, TEST_EXCEPTION, and TEST_NOT_EQUAL.
| DEFINE_TESTCASE | ( | databaseassign1 | , | |
| writable | ||||
| ) |
| DEFINE_TESTCASE | ( | implicitendsession1 | , | |
| writable | ||||
| ) |
Definition at line 499 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), get_writable_database(), and Xapian::Document::set_data().
| DEFINE_TESTCASE | ( | adddoc6 | , | |
| writable | ||||
| ) |
Definition at line 454 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_value(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_avlength(), Xapian::Database::get_collection_freq(), Xapian::Database::get_doccount(), Xapian::Database::get_termfreq(), get_writable_database(), get_writable_database_again(), Xapian::Document::remove_term(), Xapian::WritableDatabase::replace_document(), Xapian::Document::set_data(), SKIP_TEST_FOR_BACKEND, and TEST_EQUAL.
| DEFINE_TESTCASE | ( | adddoc5 | , | |
| writable | ||||
| ) |
Definition at line 322 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_value(), Xapian::WritableDatabase::delete_document(), Xapian::Database::get_avlength(), Xapian::Database::get_collection_freq(), Xapian::Document::get_data(), Xapian::Database::get_doccount(), Xapian::Database::get_document(), Xapian::Database::get_termfreq(), get_writable_database(), get_writable_database_as_database(), Xapian::Document::set_data(), SKIP_TEST_FOR_BACKEND, Xapian::Document::termlist_begin(), Xapian::Document::termlist_end(), TEST_EQUAL, TEST_EXCEPTION, TEST_NOT_EQUAL, Xapian::Document::values_begin(), and Xapian::Document::values_end().
| DEFINE_TESTCASE | ( | adddoc4 | , | |
| writable | ||||
| ) |
Definition at line 292 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_term(), Xapian::WritableDatabase::commit(), Xapian::Database::get_document(), get_writable_database(), Xapian::Document::termlist_begin(), Xapian::Document::termlist_end(), TEST, and TEST_EQUAL.
| DEFINE_TESTCASE | ( | adddoc3 | , | |
| writable | ||||
| ) |
Definition at line 274 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), and get_writable_database().
| DEFINE_TESTCASE | ( | adddoc2 | , | |
| writable | ||||
| ) |
Definition at line 99 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Document::add_term(), Xapian::Database::get_document(), Xapian::TermIterator::get_termfreq(), Xapian::TermIterator::get_wdf(), get_writable_database(), Xapian::TermIterator::positionlist_begin(), Xapian::TermIterator::positionlist_end(), Xapian::Document::remove_posting(), Xapian::Document::remove_term(), Xapian::Document::termlist_begin(), Xapian::Document::termlist_end(), TEST, and TEST_EQUAL.
| DEFINE_TESTCASE | ( | adddoc1 | , | |
| writable | ||||
| ) |
Definition at line 54 of file api_wrdb.cc.
References Xapian::WritableDatabase::add_document(), Xapian::Document::add_posting(), Xapian::Enquire::get_mset(), get_writable_database(), mset_expect_order(), query(), Xapian::Document::set_data(), and Xapian::Enquire::set_query().
| static void test_emptyterm2_helper | ( | Xapian::WritableDatabase & | db | ) | [static] |
Definition at line 1289 of file api_wrdb.cc.
References Xapian::Database::get_collection_freq(), Xapian::Database::get_doccount(), Xapian::Database::get_termfreq(), Xapian::Database::positionlist_begin(), Xapian::Database::term_exists(), TEST_EQUAL, and TEST_EXCEPTION.
Referenced by DEFINE_TESTCASE().