The open source OpenXR runtime
at prediction 1.5 kB view raw
1// Copyright 2022, Collabora, Ltd. 2// SPDX-License-Identifier: BSL-1.0 3/*! 4 * @file 5 * @brief Test u_deque C interface. 6 * @author Mateo de Mayo <mateo.demayo@collabora.com> 7 */ 8 9#include "catch_amalgamated.hpp" 10#include "util/u_deque.h" 11 12TEST_CASE("u_deque") 13{ 14 SECTION("Test interface generated from macros") 15 { 16 struct u_deque_timepoint_ns dt = u_deque_timepoint_ns_create(); 17 CHECK(dt.ptr != NULL); 18 19 constexpr timepoint_ns A = 11111111; 20 constexpr timepoint_ns B = 22222222; 21 constexpr timepoint_ns C = 33333333; 22 timepoint_ns elem = 0; 23 24 CHECK(!u_deque_timepoint_ns_pop_front(dt, &elem)); 25 CHECK(elem == 0); 26 27 u_deque_timepoint_ns_push_back(dt, C); 28 u_deque_timepoint_ns_push_back(dt, A); 29 30 CHECK(u_deque_timepoint_ns_pop_front(dt, &elem)); 31 CHECK(elem == C); 32 CHECK(u_deque_timepoint_ns_size(dt) == 1); 33 34 u_deque_timepoint_ns_push_back(dt, B); 35 u_deque_timepoint_ns_push_back(dt, C); 36 37 timepoint_ns a = u_deque_timepoint_ns_at(dt, 0); 38 timepoint_ns b = u_deque_timepoint_ns_at(dt, 1); 39 timepoint_ns c = u_deque_timepoint_ns_at(dt, 2); 40 41 CHECK(a == A); 42 CHECK(b == B); 43 CHECK(c == C); 44 45 CHECK(u_deque_timepoint_ns_size(dt) == 3); 46 47 CHECK(u_deque_timepoint_ns_pop_front(dt, &elem)); 48 CHECK(elem == A); 49 CHECK(u_deque_timepoint_ns_pop_front(dt, &elem)); 50 CHECK(elem == B); 51 CHECK(u_deque_timepoint_ns_pop_front(dt, &elem)); 52 CHECK(elem == C); 53 54 CHECK(u_deque_timepoint_ns_size(dt) == 0); 55 56 u_deque_timepoint_ns_destroy(&dt); 57 CHECK(dt.ptr == NULL); 58 } 59}