LCOV - code coverage report
Current view: top level - lib/tdb/test - run-rwlock-check.c (source / functions) Hit Total Coverage
Test: coverage report for master 2f515e9b Lines: 16 16 100.0 %
Date: 2024-04-21 15:09:00 Functions: 2 2 100.0 %

          Line data    Source code
       1             : #include "../common/tdb_private.h"
       2             : #include "../common/io.c"
       3             : #include "../common/tdb.c"
       4             : #include "../common/lock.c"
       5             : #include "../common/freelist.c"
       6             : #include "../common/traverse.c"
       7             : #include "../common/transaction.c"
       8             : #include "../common/error.c"
       9             : #include "../common/open.c"
      10             : #include "../common/check.c"
      11             : #include "../common/hash.c"
      12             : #include "../common/mutex.c"
      13             : #include "tap-interface.h"
      14             : #include <stdlib.h>
      15             : 
      16           2 : static void log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const char *fmt, ...)
      17             : {
      18           2 :         unsigned int *count = tdb_get_logging_private(tdb);
      19           2 :         if (strstr(fmt, "spinlocks"))
      20           2 :                 (*count)++;
      21           2 : }
      22             : 
      23             : /* The code should barf on TDBs created with rwlocks. */
      24           1 : int main(int argc, char *argv[])
      25             : {
      26             :         struct tdb_context *tdb;
      27             :         unsigned int log_count;
      28           1 :         struct tdb_logging_context log_ctx = { log_fn, &log_count };
      29             : 
      30             :         plan_tests(4);
      31             : 
      32             :         /* We should fail to open rwlock-using tdbs of either endian. */
      33           1 :         log_count = 0;
      34           1 :         tdb = tdb_open_ex("test/rwlock-le.tdb", 0, 0, O_RDWR, 0,
      35             :                           &log_ctx, NULL);
      36           1 :         ok1(!tdb);
      37           1 :         ok1(log_count == 1);
      38             : 
      39           1 :         log_count = 0;
      40           1 :         tdb = tdb_open_ex("test/rwlock-be.tdb", 0, 0, O_RDWR, 0,
      41             :                           &log_ctx, NULL);
      42           1 :         ok1(!tdb);
      43           1 :         ok1(log_count == 1);
      44             : 
      45           1 :         return exit_status();
      46             : }

Generated by: LCOV version 1.14