RecordNumberFixture(uint32_t flags = 0) : m_flags(flags) { if (sizeof(RecnoType) == 4) require_create(m_flags, nullptr, UPS_RECORD_NUMBER32, nullptr); else require_create(m_flags, nullptr, UPS_RECORD_NUMBER64, nullptr); context.reset(new Context(lenv(), 0, 0)); }
void envTest() { ups_key_t key = {}; ups_record_t rec = {}; RecnoType recno; key.data = &recno; key.size = sizeof(recno); key.flags = UPS_KEY_USER_ALLOC; teardown(); if (sizeof(RecnoType) == 4) require_create(m_flags, nullptr, UPS_RECORD_NUMBER32, nullptr); else require_create(m_flags, nullptr, UPS_RECORD_NUMBER64, nullptr); REQUIRE(0 == ups_db_insert(db, 0, &key, &rec, 0)); REQUIRE((RecnoType)1ull == *(RecnoType *)key.data); if (!is_in_memory()) { reopen(); REQUIRE(0 == ups_db_insert(db, 0, &key, &rec, 0)); REQUIRE((RecnoType)2ull == *(RecnoType *)key.data); } }
void levelledDatabaseTest() { ups_parameter_t env_params[] = { { UPS_PARAM_PAGESIZE, 1024 }, { 0, 0 } }; ups_parameter_t db_params[] = { { UPS_PARAM_KEYSIZE, 80 }, { 0, 0 } }; close(); require_create(0, env_params, 0, db_params); DbProxy dbp(db); std::vector<uint8_t> kvec(80); std::vector<uint8_t> rvec; for (int i = 0; i < 100; i++) { *(int *)&kvec[0] = i; dbp.require_insert(kvec, rvec) .require_check_integrity(); } }
CheckIntegrityFixture(bool inmemory = false, ups_parameter_t *env_params = 0, ups_parameter_t *db_params = 0) { require_create(inmemory ? UPS_IN_MEMORY : 0, env_params, 0, db_params); }