pebble/tests/pebble_asserts.h
2025-01-27 11:38:16 -08:00

120 lines
4.4 KiB
C

/*
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <stdio.h>
#define cl_assert_equal_grect(a, b) \
do { \
GRect rect_a = (a); \
GRect rect_b = (b); \
bool success = grect_equal(&rect_a, &rect_b); \
if (!success) { \
char error_msg[256] = {0}; \
sprintf(error_msg, \
"grect_equal(rect_a, rect_b)\n" \
" rect_a: {%d,%d,%d,%d}\n" \
" rect_b: {%d,%d,%d,%d}\n", \
rect_a.origin.x, rect_a.origin.y, rect_a.size.w, rect_a.size.h, \
rect_b.origin.x, rect_b.origin.y, rect_b.size.w, rect_b.size.h); \
clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \
} \
} while(0)
#define cl_assert_equal_gpoint(a, b) \
do { \
GPoint pt_a = (a); \
GPoint pt_b = (b); \
bool success = gpoint_equal(&pt_a, &pt_b); \
if (!success) { \
char error_msg[256] = {0}; \
sprintf(error_msg, \
"gpoint_equal(pt_a, pt_b)\n" \
" pt_a: {%d,%d}\n" \
" pt_b: {%d,%d}\n", \
pt_a.x, pt_a.y, \
pt_b.x, pt_b.y); \
clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \
} \
} while(0)
#define cl_assert_equal_gsize(a, b) \
do { \
GSize size_a = (a); \
GSize size_b = (b); \
bool success = gsize_equal(&size_a, &size_b); \
if (!success) { \
char error_msg[256] = {0}; \
sprintf(error_msg, \
"gsize_equal(size_a, size_b)\n" \
" size_a: {%d,%d}\n" \
" size_b: {%d,%d}\n", \
size_a.w, size_a.h, \
size_b.w, size_b.h); \
clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \
} \
} while(0)
#define cl_assert_equal_uuid(a, b) \
do { \
Uuid uuid_a = (a); \
Uuid uuid_b = (b); \
bool success = uuid_equal(&uuid_a, &uuid_b); \
if (!success) { \
char error_msg[256] = {0}; \
char uuid_a_buf[UUID_STRING_BUFFER_LENGTH] = {0}; \
char uuid_b_buf[UUID_STRING_BUFFER_LENGTH] = {0}; \
uuid_to_string(&uuid_a, uuid_a_buf); \
uuid_to_string(&uuid_b, uuid_b_buf); \
sprintf(error_msg, \
"uuid_equal(uuid_a, uuid_b)\n" \
" uuid_a: %s\n" \
" uuid_b: %s\n", \
uuid_a_buf, \
uuid_b_buf); \
clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \
} \
} while(0)
#define cl_assert_equal_edc(a, b) \
do { \
EllipsisDrawConfig edc_a = (a); \
EllipsisDrawConfig edc_b = (b); \
bool success = ((edc_a.start_quadrant.angle == edc_b.start_quadrant.angle) && \
(edc_a.start_quadrant.quadrant == edc_b.start_quadrant.quadrant) && \
(edc_a.full_quadrants == edc_b.full_quadrants) && \
(edc_a.end_quadrant.angle == edc_b.end_quadrant.angle) && \
(edc_a.end_quadrant.quadrant == edc_b.end_quadrant.quadrant)); \
if (!success) { \
char error_msg[256] = {0}; \
sprintf(error_msg, \
"EllipsisDrawConfig edc_a and edc_b are not equal:\n" \
" edc_a: start_quadrant: angle: %d quadrant: %d\n" \
" end_quadrant: angle: %d quadrant: %d\n" \
" full_quadrants: %d\n" \
" edc_b: start_quadrant: angle: %d quadrant: %d\n" \
" end_quadrant: angle: %d quadrant: %d\n" \
" full_quadrants: %d\n", \
edc_a.start_quadrant.angle, edc_a.start_quadrant.quadrant, \
edc_a.end_quadrant.angle, edc_a.end_quadrant.quadrant, \
edc_a.full_quadrants, \
edc_b.start_quadrant.angle, edc_b.start_quadrant.quadrant, \
edc_b.end_quadrant.angle, edc_b.end_quadrant.quadrant, \
edc_b.full_quadrants); \
clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \
} \
} while (0)