Commit 8ccb14db authored by Rusty Russell's avatar Rusty Russell

ntdb: fix up tests.

Mainly include path fixes.

Also Samba's unit tests were enhanced to detect the prefixes
helpapi and helprun to indicate an object was to be linked against
only api/run tests.  We hack around that by #including the helper
code instead.
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 6aa2f4e3
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include <ccan/hash/hash.h>
#include "logging.h"
#include "helpapi-external-agent.h"
/* We use the same seed which we saw a failure on. */
static uint32_t fixedhash(const void *key, size_t len, uint32_t seed, void *p)
......
#include "private.h" // For NTDB_TOPLEVEL_HASH_BITS
#include "../private.h" // For NTDB_TOPLEVEL_HASH_BITS
#include <ccan/hash/hash.h>
#include "ntdb.h"
#include "../ntdb.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
/* We rig the hash so adjacent-numbered records always clash. */
static uint32_t clash(const void *key, size_t len, uint32_t seed, void *priv)
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
static bool test_records(struct ntdb_context *ntdb)
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
static bool add_records(struct ntdb_context *ntdb)
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include <ccan/hash/hash.h>
#include <assert.h>
#include "logging.h"
#include "helpapi-external-agent.h"
static const struct ntdb_context *curr_ntdb;
static const struct ntdb_file *curr_file;
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
static enum NTDB_ERROR parse(NTDB_DATA key, NTDB_DATA data, NTDB_DATA *expected)
{
......
#include "private.h" // struct ntdb_context
#include "ntdb.h"
#include "../private.h" // struct ntdb_context
#include "../ntdb.h"
#include "tap-interface.h"
#include <stdlib.h>
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "private.h" // struct ntdb_context
#include "ntdb.h"
#include "../private.h" // struct ntdb_context
#include "../ntdb.h"
#include "tap-interface.h"
#include <stdlib.h>
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include <stdlib.h>
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "private.h" // for ntdb_fcntl_unlock
#include "ntdb.h"
#include "../private.h" // for ntdb_fcntl_unlock
#include "../ntdb.h"
#include "tap-interface.h"
#include <errno.h>
#include "logging.h"
#include "helpapi-external-agent.h"
static int mylock(int fd, int rw, off_t off, off_t len, bool waitflag,
void *_err)
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "external-agent.h"
#include "logging.h"
#include "helpapi-external-agent.h"
#define KEY_STR "key"
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
#define NUM_TESTS 1000
......
/* We use direct access to hand to the parse function: what if db expands? */
#include "config.h"
#include "ntdb.h"
#include "../ntdb.h"
#include "tap-interface.h"
#include "logging.h"
#include "../private.h" /* To establish size, esp. for NTDB_INTERNAL dbs */
#include "helpapi-external-agent.h"
static struct ntdb_context *ntdb;
......
/* Make sure write operations fail during ntdb_parse(). */
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
static struct ntdb_context *ntdb;
......
#include "private.h" // for ntdb_context
#include "ntdb.h"
#include "../private.h" // for ntdb_context
#include "../ntdb.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
#define NUM_RECORDS 1000
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
#define NUM_RECORDS 1000
......
......@@ -11,10 +11,11 @@
* that doesn't matter.
*/
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
static bool am_child = false;
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include <limits.h>
#include "logging.h"
#include "external-agent.h"
#include "helpapi-external-agent.h"
#undef alarm
#define alarm fast_alarm
......
/* Another test revealed that we lost an entry. This reproduces it. */
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include <ccan/hash/hash.h>
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
#define NUM_RECORDS 1189
......
#include "config.h"
#include "ntdb.h"
#include "../ntdb.h"
#include "tap-interface.h"
#include <stdlib.h>
#include "logging.h"
#include "../private.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
#define MAX_SIZE 10000
#define SIZE_STEP 131
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "config.h"
#include "ntdb.h"
#include "private.h"
#include "../ntdb.h"
#include "../private.h"
#include "tap-interface.h"
#include "logging.h"
#include "helpapi-external-agent.h"
int main(int argc, char *argv[])
{
......
......@@ -5,15 +5,6 @@
bool failtest_suppress = false;
/* FIXME: From ccan/str */
static inline bool strends(const char *str, const char *postfix)
{
if (strlen(str) < strlen(postfix))
return false;
return !strcmp(str + strlen(str) - strlen(postfix), postfix);
}
bool failmatch(const struct failtest_call *call,
const char *file, int line, enum failtest_call_type type)
{
......
#include "external-agent.h"
#include "private.h"
#include "../private.h"
enum agent_return external_agent_needs_rec(struct ntdb_context *ntdb)
{
......
......@@ -178,28 +178,7 @@ static void add_to_freetable(struct ntdb_context *ntdb,
NTDB_LOCK_WAIT, false);
}
/* Get bits from a value. */
static uint32_t bits(uint64_t val, unsigned start, unsigned num)
{
assert(num <= 32);
return (val >> start) & ((1U << num) - 1);
}
static ntdb_off_t encode_offset(const struct ntdb_context *ntdb,
ntdb_off_t new_off, uint32_t hash)
{
ntdb_off_t extra;
assert((new_off & (1ULL << NTDB_OFF_CHAIN_BIT)) == 0);
assert((new_off >> (64 - NTDB_OFF_UPPER_STEAL)) == 0);
/* We pack extra hash bits into the upper bits of the offset. */
extra = bits(hash, ntdb->hash_bits, NTDB_OFF_UPPER_STEAL);
extra <<= (64 - NTDB_OFF_UPPER_STEAL);
return new_off | extra;
}
static ntdb_off_t hbucket_off(ntdb_len_t idx)
static ntdb_off_t hbucket_offset(ntdb_len_t idx)
{
return sizeof(struct ntdb_header) + sizeof(struct ntdb_used_record)
+ idx * sizeof(ntdb_off_t);
......@@ -213,7 +192,7 @@ static void add_to_hashtable(struct ntdb_context *ntdb,
ntdb_off_t b_off;
uint32_t h = ntdb_hash(ntdb, key.dptr, key.dsize);
b_off = hbucket_off(h & ((1 << ntdb->hash_bits)-1));
b_off = hbucket_offset(h & ((1 << ntdb->hash_bits)-1));
if (ntdb_read_off(ntdb, b_off) != 0)
abort();
......
#ifndef NTDB_TEST_LAYOUT_H
#define NTDB_TEST_LAYOUT_H
#include "private.h"
#include "../private.h"
struct ntdb_layout *new_ntdb_layout(void);
void ntdb_layout_add_freetable(struct ntdb_layout *layout);
......@@ -76,4 +76,6 @@ struct ntdb_layout {
unsigned int num_elems;
union ntdb_layout_elem *elem;
};
#include "helprun-layout.h"
#endif /* NTDB_TEST_LAYOUT_H */
/* We save the locks so we can reaquire them. */
#include "private.h" /* For NTDB_HASH_LOCK_START, etc. */
#include "../private.h" /* For NTDB_HASH_LOCK_START, etc. */
#include <unistd.h>
#include <fcntl.h>
#include <stdarg.h>
......
#ifndef NTDB_TEST_LOGGING_H
#define NTDB_TEST_LOGGING_H
#include "ntdb.h"
#include "../ntdb.h"
#include <stdbool.h>
#include <string.h>
......
#include "config.h"
#include "check.c"
#include "free.c"
#include "hash.c"
#include "io.c"
#include "lock.c"
#include "open.c"
#include "summary.c"
#include "ntdb.c"
#include "transaction.c"
#include "traverse.c"
#include "../check.c"
#include "../free.c"
#include "../hash.c"
#include "../io.c"
#include "../lock.c"
#include "../open.c"
#include "../summary.c"
#include "../ntdb.c"
#include "../transaction.c"
#include "../traverse.c"
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "helprun-external-agent.h"
static unsigned int dumb_fls(uint64_t num)
{
......
......@@ -4,6 +4,7 @@
#include <ccan/failtest/failtest.h>
#include "logging.h"
#include "failtest_helper.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
......@@ -4,6 +4,7 @@
#include <ccan/failtest/failtest.h>
#include "logging.h"
#include "failtest_helper.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
......@@ -2,6 +2,7 @@
#include "tap-interface.h"
#include "logging.h"
#include "layout.h"
#include "helprun-external-agent.h"
static ntdb_len_t free_record_length(struct ntdb_context *ntdb, ntdb_off_t off)
{
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
/* We rig the hash so all records clash. */
static uint32_t clash(const void *key, size_t len, uint32_t seed, void *priv)
......
......@@ -4,6 +4,7 @@
#include <ccan/failtest/failtest.h>
#include "logging.h"
#include "failtest_helper.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
......@@ -4,6 +4,7 @@
#include <ccan/failtest/failtest.h>
#include "logging.h"
#include "failtest_helper.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
......@@ -4,6 +4,7 @@
#include <ccan/failtest/failtest.h>
#include "logging.h"
#include "failtest_helper.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "private.h"
#include "../private.h"
#include <ccan/failtest/failtest_override.h>
#include "ntdb-source.h"
#include "tap-interface.h"
#include <ccan/failtest/failtest.h>
#include "logging.h"
#include "failtest_helper.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
......@@ -2,6 +2,7 @@
#include "tap-interface.h"
#include <ccan/ilog/ilog.h>
#include "logging.h"
#include "helprun-external-agent.h"
#define MAX_SIZE 13100
#define SIZE_STEP 131
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
#define OVERLOAD 100
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
static bool empty_freetable(struct ntdb_context *ntdb)
{
......
#include "private.h"
#include "../private.h"
#include <ccan/failtest/failtest_override.h>
#include "ntdb-source.h"
#include "tap-interface.h"
#include <ccan/failtest/failtest.h>
#include "logging.h"
#include "failtest_helper.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
......@@ -2,6 +2,7 @@
#include "tap-interface.h"
#include "logging.h"
#include "layout.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "private.h"
#include "../private.h"
#include <unistd.h>
#include "lock-tracking.h"
......@@ -18,6 +18,7 @@ static int ftruncate_check(int fd, off_t length);
#include <stdarg.h>
#include "external-agent.h"
#include "logging.h"
#include "helprun-external-agent.h"
static struct agent *agent;
static bool opened;
......
#include "private.h"
#include "../private.h"
#include <unistd.h>
#include "lock-tracking.h"
#include "tap-interface.h"
......@@ -97,6 +97,7 @@ static void free_all(void)
#include <setjmp.h>
#include "external-agent.h"
#include "logging.h"
#include "helprun-external-agent.h"
static bool in_transaction;
static int target, current;
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
/* The largest 32-bit value which is still a multiple of NTDB_PGSIZE */
#define ALMOST_4G ((uint32_t)-NTDB_PGSIZE)
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
static int mylock(int fd, int rw, off_t off, off_t len, bool waitflag,
void *unused)
......
......@@ -5,6 +5,7 @@
#include "layout.h"
#include "failtest_helper.h"
#include <stdarg.h>
#include "helprun-external-agent.h"
static size_t len_of(bool breaks_check, bool breaks_write, bool breaks_open)
{
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "private.h"
#include "../private.h"
#include <unistd.h>
#include "lock-tracking.h"
......@@ -11,6 +11,7 @@
#include <stdarg.h>
#include "external-agent.h"
#include "logging.h"
#include "helprun-external-agent.h"
#define TEST_DBNAME "run-lockall.ntdb"
#define KEY_STR "key"
......
......@@ -4,6 +4,7 @@
#include "tap-interface.h"
#include "external-agent.h"
#include "logging.h"
#include "helprun-external-agent.h"
static bool file_larger(int fd, ntdb_len_t size)
{
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
static int log_count = 0;
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "helprun-external-agent.h"
int main(int argc, char *argv[])
{
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
static int drop_count(struct ntdb_context *ntdb, unsigned int *count)
{
......
#include "ntdb-source.h"
#include "tap-interface.h"
#include "logging.h"
#include "helprun-external-agent.h"
#define NUM_RECORDS 1000
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment