Handle negative time and offset from Epoch
[babeltrace.git] / tests / lib / test_seek.c
index de2c93424f9351dd6e353015b6136d7c76174a04..444f1ab7664420520592a6b6d1c7949e22b3e7fb 100644 (file)
@@ -33,7 +33,7 @@
 #include <tap/tap.h>
 #include "common.h"
 
-#define NR_TESTS       29
+#define NR_TESTS       36
 
 void run_seek_begin(char *path, uint64_t expected_begin)
 {
@@ -42,23 +42,20 @@ void run_seek_begin(char *path, uint64_t expected_begin)
        struct bt_ctf_event *event;
        struct bt_iter_pos newpos;
        int ret;
-       uint64_t timestamp_begin;
-       uint64_t timestamp_seek_begin;
-       unsigned int nr_seek_begin_test;
-
-       nr_seek_begin_test = 5;
+       int64_t timestamp_begin;
+       int64_t timestamp_seek_begin;
 
        /* Open the trace */
        ctx = create_context_with_path(path);
        if (!ctx) {
-               skip(nr_seek_begin_test, "Cannot create valid context");
+               diag("Cannot create valid context");
                return;
        }
 
        /* Create iterator with null begin and end */
        iter = bt_ctf_iter_create(ctx, NULL, NULL);
        if (!iter) {
-               skip(nr_seek_begin_test, "Cannot create valid iterator");
+               diag("Cannot create valid iterator");
                return;
        }
 
@@ -67,7 +64,7 @@ void run_seek_begin(char *path, uint64_t expected_begin)
        ok(event, "Event valid");
 
        /* Validate that the first timestamp is right */
-       timestamp_begin = bt_ctf_get_timestamp(event);
+       ok1(bt_ctf_get_timestamp(event, &timestamp_begin) == 0);
 
        ok1(timestamp_begin == expected_begin);
 
@@ -81,7 +78,7 @@ void run_seek_begin(char *path, uint64_t expected_begin)
 
        ok(event, "Event valid");
 
-       timestamp_seek_begin = bt_ctf_get_timestamp(event);
+       ok1(bt_ctf_get_timestamp(event, &timestamp_seek_begin) == 0);
 
        ok1(timestamp_begin == timestamp_seek_begin);
 
@@ -96,22 +93,19 @@ void run_seek_last(char *path, uint64_t expected_last)
        struct bt_ctf_event *event;
        struct bt_iter_pos newpos;
        int ret;
-       uint64_t timestamp_last;
-       unsigned int nr_seek_last_tests;
-
-       nr_seek_last_tests = 6;
+       int64_t timestamp_last;
 
        /* Open the trace */
        ctx = create_context_with_path(path);
        if (!ctx) {
-               skip(nr_seek_last_tests, "Cannot create valid context");
+               diag("Cannot create valid context");
                return;
        }
 
        /* Create iterator with null last and end */
        iter = bt_ctf_iter_create(ctx, NULL, NULL);
        if (!iter) {
-               skip(nr_seek_last_tests, "Cannot create valid iterator");
+               diag("Cannot create valid iterator");
                return;
        }
 
@@ -129,7 +123,7 @@ void run_seek_last(char *path, uint64_t expected_last)
 
        ok(event, "Event valid at last position");
 
-       timestamp_last = bt_ctf_get_timestamp(event);
+       ok1(bt_ctf_get_timestamp(event, &timestamp_last) == 0);
 
        ok1(timestamp_last == expected_last);
 
@@ -152,24 +146,19 @@ void run_seek_time_at_last(char *path, uint64_t expected_last)
        struct bt_ctf_event *event;
        struct bt_iter_pos newpos;
        int ret;
-       uint64_t timestamp_last;
-       unsigned int nr_seek_time_at_last_tests;
-
-       nr_seek_time_at_last_tests = 6;
+       int64_t timestamp_last;
 
        /* Open the trace */
        ctx = create_context_with_path(path);
        if (!ctx) {
-               skip(nr_seek_time_at_last_tests,
-                    "Cannot create valid context");
+               diag("Cannot create valid context");
                return;
        }
 
        /* Create iterator with null last and end */
        iter = bt_ctf_iter_create(ctx, NULL, NULL);
        if (!iter) {
-               skip(nr_seek_time_at_last_tests,
-                    "Cannot create valid iterator");
+               diag("Cannot create valid iterator");
                return;
        }
 
@@ -188,7 +177,7 @@ void run_seek_time_at_last(char *path, uint64_t expected_last)
 
        ok(event, "Event valid at last position");
 
-       timestamp_last = bt_ctf_get_timestamp(event);
+       ok1(bt_ctf_get_timestamp(event, &timestamp_last) == 0);
 
        ok1(timestamp_last == expected_last);
 
@@ -213,23 +202,19 @@ void run_seek_cycles(char *path,
        struct bt_ctf_event *event;
        struct bt_iter_pos newpos;
        int ret;
-       uint64_t timestamp;
-
-       unsigned int nr_seek_cycles_tests;
-
-       nr_seek_cycles_tests = 12;
+       int64_t timestamp;
 
        /* Open the trace */
        ctx = create_context_with_path(path);
        if (!ctx) {
-               skip(nr_seek_cycles_tests, "Cannot create valid context");
+               diag("Cannot create valid context");
                return;
        }
 
        /* Create iterator with null last and end */
        iter = bt_ctf_iter_create(ctx, NULL, NULL);
        if (!iter) {
-               skip(nr_seek_cycles_tests, "Cannot create valid iterator");
+               diag("Cannot create valid iterator");
                return;
        }
 
@@ -247,7 +232,7 @@ void run_seek_cycles(char *path,
 
        ok(event, "Event valid at last position");
 
-       timestamp = bt_ctf_get_timestamp(event);
+       ok1(bt_ctf_get_timestamp(event, &timestamp) == 0);
 
        ok1(timestamp == expected_last);
 
@@ -270,7 +255,7 @@ void run_seek_cycles(char *path,
 
        ok(event, "Event valid at first position");
 
-       timestamp = bt_ctf_get_timestamp(event);
+       ok1(bt_ctf_get_timestamp(event, &timestamp) == 0);
 
        ok1(timestamp == expected_begin);
 
@@ -284,7 +269,7 @@ void run_seek_cycles(char *path,
 
        ok(event, "Event valid at last position");
 
-       timestamp = bt_ctf_get_timestamp(event);
+       ok1(bt_ctf_get_timestamp(event, &timestamp) == 0);
 
        ok1(timestamp == expected_last);
 
@@ -304,9 +289,11 @@ int main(int argc, char **argv)
        babeltrace_debug = 0;   /* libbabeltrace.la */
        opt_clock_offset = 0;   /* libbabeltrace-ctf.la */
 
-       if (argc < 4) {
-               plan_skip_all("Invalid arguments: need a trace path and the start and last timestamp");
+       plan_tests(NR_TESTS);
 
+       if (argc < 4) {
+               diag("Invalid arguments: need a trace path and the start and last timestamp");
+               exit(1);
        }
 
        /* Parse arguments (Trace, begin timestamp) */
@@ -314,16 +301,16 @@ int main(int argc, char **argv)
 
        expected_begin = strtoull(argv[2], NULL, 0);
        if (ULLONG_MAX == expected_begin && errno == ERANGE) {
-               plan_skip_all("Invalid value for begin timestamp");
+               diag("Invalid value for begin timestamp");
+               exit(1);
        }
 
        expected_last = strtoull(argv[3], NULL, 0);
        if (ULLONG_MAX == expected_last && errno == ERANGE) {
-               plan_skip_all("Invalid value for last timestamp");
+               diag("Invalid value for last timestamp");
+               exit(1);
        }
 
-       plan_tests(NR_TESTS);
-
        run_seek_begin(path, expected_begin);
        run_seek_time_at_last(path, expected_last);
        run_seek_last(path, expected_last);
This page took 0.026197 seconds and 4 git commands to generate.