1 #include "private.h" // for ntdb_context
3 #include "tap-interface.h"
9 int main(int argc, char *argv[])
12 struct ntdb_context *ntdb;
13 int flags[] = { NTDB_INTERNAL, NTDB_DEFAULT, NTDB_NOMMAP,
14 NTDB_INTERNAL|NTDB_CONVERT, NTDB_CONVERT,
15 NTDB_NOMMAP|NTDB_CONVERT };
18 for (i = 0; i < sizeof(flags) / sizeof(flags[0]); i++) {
19 ntdb = ntdb_open("run-add-remove-flags.ntdb", flags[i],
20 O_RDWR|O_CREAT|O_TRUNC, 0600, &tap_log_attr);
25 ok1(ntdb_get_flags(ntdb) == ntdb->flags);
27 ntdb_add_flag(ntdb, NTDB_NOLOCK);
28 if (flags[i] & NTDB_INTERNAL)
29 ok1(tap_log_messages == 1);
31 ok1(tap_log_messages == 0);
32 ok1(ntdb_get_flags(ntdb) & NTDB_NOLOCK);
36 ntdb_add_flag(ntdb, NTDB_NOMMAP);
37 if (flags[i] & NTDB_INTERNAL)
38 ok1(tap_log_messages == 1);
40 ok1(tap_log_messages == 0);
41 ok1(ntdb_get_flags(ntdb) & NTDB_NOMMAP);
42 ok1(ntdb->file->map_ptr == NULL);
46 ntdb_add_flag(ntdb, NTDB_NOSYNC);
47 if (flags[i] & NTDB_INTERNAL)
48 ok1(tap_log_messages == 1);
50 ok1(tap_log_messages == 0);
51 ok1(ntdb_get_flags(ntdb) & NTDB_NOSYNC);
54 ok1(ntdb_get_flags(ntdb) == ntdb->flags);
57 ntdb_remove_flag(ntdb, NTDB_NOLOCK);
58 if (flags[i] & NTDB_INTERNAL)
59 ok1(tap_log_messages == 1);
61 ok1(tap_log_messages == 0);
62 ok1(!(ntdb_get_flags(ntdb) & NTDB_NOLOCK));
66 ntdb_remove_flag(ntdb, NTDB_NOMMAP);
67 if (flags[i] & NTDB_INTERNAL)
68 ok1(tap_log_messages == 1);
70 ok1(tap_log_messages == 0);
71 ok1(!(ntdb_get_flags(ntdb) & NTDB_NOMMAP));
72 ok1(ntdb->file->map_ptr != NULL);
76 ntdb_remove_flag(ntdb, NTDB_NOSYNC);
77 if (flags[i] & NTDB_INTERNAL)
78 ok1(tap_log_messages == 1);
80 ok1(tap_log_messages == 0);
81 ok1(!(ntdb_get_flags(ntdb) & NTDB_NOSYNC));
87 ok1(tap_log_messages == 0);