From a09ad5d84882304a16def9a31b9f30cefe9f5d3f Mon Sep 17 00:00:00 2001 From: Hanspeter Portner Date: Fri, 18 Mar 2022 15:45:14 +0100 Subject: [PATCH] add first unit test --- canvas.lv2/canvas.h | 61 +++---------------------------------- canvas.lv2/lv2_extensions.h | 15 --------- src/canvas.c | 61 +++++++++++++++++++++++++++++++++++-- test/canvas.c | 23 ++++++++++++-- 4 files changed, 84 insertions(+), 76 deletions(-) diff --git a/canvas.lv2/canvas.h b/canvas.lv2/canvas.h index 45027f9..024553f 100644 --- a/canvas.lv2/canvas.h +++ b/canvas.lv2/canvas.h @@ -10,9 +10,9 @@ extern "C" { #endif -#include -#include -#include +#include +#include +#include #define CANVAS_URI "http://open-music-kontrollers.ch/lv2/canvas" #define CANVAS_PREFIX CANVAS_URI"#" @@ -122,59 +122,8 @@ struct _LV2_Canvas_URID { LV2_Atom_Forge forge; }; -static inline void -lv2_canvas_urid_init(LV2_Canvas_URID *urid, LV2_URID_Map *map) -{ - urid->Canvas_graph = map->map(map->handle, CANVAS__graph); - urid->Canvas_body = map->map(map->handle, CANVAS__body); - urid->Canvas_aspectRatio = map->map(map->handle, CANVAS__aspectRatio); - - urid->Canvas_BeginPath = map->map(map->handle, CANVAS__BeginPath); - urid->Canvas_ClosePath = map->map(map->handle, CANVAS__ClosePath); - urid->Canvas_Arc = map->map(map->handle, CANVAS__Arc); - urid->Canvas_CurveTo = map->map(map->handle, CANVAS__CurveTo); - urid->Canvas_LineTo = map->map(map->handle, CANVAS__LineTo); - urid->Canvas_MoveTo = map->map(map->handle, CANVAS__MoveTo); - urid->Canvas_Rectangle = map->map(map->handle, CANVAS__Rectangle); - urid->Canvas_PolyLine = map->map(map->handle, CANVAS__PolyLine); - urid->Canvas_Style = map->map(map->handle, CANVAS__Style); - urid->Canvas_LineWidth = map->map(map->handle, CANVAS__LineWidth); - urid->Canvas_LineDash = map->map(map->handle, CANVAS__LineDash); - urid->Canvas_LineCap = map->map(map->handle, CANVAS__LineCap); - urid->Canvas_LineJoin = map->map(map->handle, CANVAS__LineJoin); - urid->Canvas_MiterLimit = map->map(map->handle, CANVAS__MiterLimit); - urid->Canvas_Stroke = map->map(map->handle, CANVAS__Stroke); - urid->Canvas_Fill = map->map(map->handle, CANVAS__Fill); - urid->Canvas_Clip = map->map(map->handle, CANVAS__Clip); - urid->Canvas_Save = map->map(map->handle, CANVAS__Save); - urid->Canvas_Restore = map->map(map->handle, CANVAS__Restore); - urid->Canvas_Translate = map->map(map->handle, CANVAS__Translate); - urid->Canvas_Scale = map->map(map->handle, CANVAS__Scale); - urid->Canvas_Rotate = map->map(map->handle, CANVAS__Rotate); - urid->Canvas_Transform = map->map(map->handle, CANVAS__Transform); - urid->Canvas_Reset = map->map(map->handle, CANVAS__Reset); - urid->Canvas_FontSize = map->map(map->handle, CANVAS__FontSize); - urid->Canvas_FillText = map->map(map->handle, CANVAS__FillText); - - urid->Canvas_lineCapButt = map->map(map->handle, CANVAS__lineCapButt); - urid->Canvas_lineCapRound = map->map(map->handle, CANVAS__lineCapRound); - urid->Canvas_lineCapSquare = map->map(map->handle, CANVAS__lineCapSquare); - - urid->Canvas_lineJoinMiter = map->map(map->handle, CANVAS__lineJoinMiter); - urid->Canvas_lineJoinRound = map->map(map->handle, CANVAS__lineJoinRound); - urid->Canvas_lineJoinBevel = map->map(map->handle, CANVAS__lineJoinBevel); - - urid->Canvas_mouseButtonLeft = map->map(map->handle, CANVAS__mouseButtonLeft); - urid->Canvas_mouseButtonMiddle = map->map(map->handle, CANVAS__mouseButtonMiddle); - urid->Canvas_mouseButtonRight = map->map(map->handle, CANVAS__mouseButtonRight); - urid->Canvas_mouseWheelX = map->map(map->handle, CANVAS__mouseWheelX); - urid->Canvas_mouseWheelY = map->map(map->handle, CANVAS__mouseWheelY); - urid->Canvas_mousePositionX = map->map(map->handle, CANVAS__mousePositionX); - urid->Canvas_mousePositionY = map->map(map->handle, CANVAS__mousePositionY); - urid->Canvas_mouseFocus = map->map(map->handle, CANVAS__mouseFocus); - - lv2_atom_forge_init(&urid->forge, map); -} +int +lv2_canvas_urid_init(LV2_Canvas_URID *urid, LV2_URID_Map *map); #ifdef __cplusplus } diff --git a/canvas.lv2/lv2_extensions.h b/canvas.lv2/lv2_extensions.h index 5a32124..f10d045 100644 --- a/canvas.lv2/lv2_extensions.h +++ b/canvas.lv2/lv2_extensions.h @@ -1,18 +1,3 @@ -/* - Copyright 2016 Robin Gareus - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ /* * SPDX-FileCopyrightText: Robin Gareus * SPDX-License-Identifier: ISC diff --git a/src/canvas.c b/src/canvas.c index 26dcfd9..e2ac720 100644 --- a/src/canvas.c +++ b/src/canvas.c @@ -3,8 +3,65 @@ * SPDX-License-Identifier: Artistic-2.0 */ -void -foo(void) +#include + +int +lv2_canvas_urid_init(LV2_Canvas_URID *urid, LV2_URID_Map *map) { + if (!urid || !map || !map->map) + { + return 1; + } + + urid->Canvas_graph = map->map(map->handle, CANVAS__graph); + urid->Canvas_body = map->map(map->handle, CANVAS__body); + urid->Canvas_aspectRatio = map->map(map->handle, CANVAS__aspectRatio); + + urid->Canvas_BeginPath = map->map(map->handle, CANVAS__BeginPath); + urid->Canvas_ClosePath = map->map(map->handle, CANVAS__ClosePath); + urid->Canvas_Arc = map->map(map->handle, CANVAS__Arc); + urid->Canvas_CurveTo = map->map(map->handle, CANVAS__CurveTo); + urid->Canvas_LineTo = map->map(map->handle, CANVAS__LineTo); + urid->Canvas_MoveTo = map->map(map->handle, CANVAS__MoveTo); + urid->Canvas_Rectangle = map->map(map->handle, CANVAS__Rectangle); + urid->Canvas_PolyLine = map->map(map->handle, CANVAS__PolyLine); + urid->Canvas_Style = map->map(map->handle, CANVAS__Style); + urid->Canvas_LineWidth = map->map(map->handle, CANVAS__LineWidth); + urid->Canvas_LineDash = map->map(map->handle, CANVAS__LineDash); + urid->Canvas_LineCap = map->map(map->handle, CANVAS__LineCap); + urid->Canvas_LineJoin = map->map(map->handle, CANVAS__LineJoin); + urid->Canvas_MiterLimit = map->map(map->handle, CANVAS__MiterLimit); + urid->Canvas_Stroke = map->map(map->handle, CANVAS__Stroke); + urid->Canvas_Fill = map->map(map->handle, CANVAS__Fill); + urid->Canvas_Clip = map->map(map->handle, CANVAS__Clip); + urid->Canvas_Save = map->map(map->handle, CANVAS__Save); + urid->Canvas_Restore = map->map(map->handle, CANVAS__Restore); + urid->Canvas_Translate = map->map(map->handle, CANVAS__Translate); + urid->Canvas_Scale = map->map(map->handle, CANVAS__Scale); + urid->Canvas_Rotate = map->map(map->handle, CANVAS__Rotate); + urid->Canvas_Transform = map->map(map->handle, CANVAS__Transform); + urid->Canvas_Reset = map->map(map->handle, CANVAS__Reset); + urid->Canvas_FontSize = map->map(map->handle, CANVAS__FontSize); + urid->Canvas_FillText = map->map(map->handle, CANVAS__FillText); + + urid->Canvas_lineCapButt = map->map(map->handle, CANVAS__lineCapButt); + urid->Canvas_lineCapRound = map->map(map->handle, CANVAS__lineCapRound); + urid->Canvas_lineCapSquare = map->map(map->handle, CANVAS__lineCapSquare); + + urid->Canvas_lineJoinMiter = map->map(map->handle, CANVAS__lineJoinMiter); + urid->Canvas_lineJoinRound = map->map(map->handle, CANVAS__lineJoinRound); + urid->Canvas_lineJoinBevel = map->map(map->handle, CANVAS__lineJoinBevel); + + urid->Canvas_mouseButtonLeft = map->map(map->handle, CANVAS__mouseButtonLeft); + urid->Canvas_mouseButtonMiddle = map->map(map->handle, CANVAS__mouseButtonMiddle); + urid->Canvas_mouseButtonRight = map->map(map->handle, CANVAS__mouseButtonRight); + urid->Canvas_mouseWheelX = map->map(map->handle, CANVAS__mouseWheelX); + urid->Canvas_mouseWheelY = map->map(map->handle, CANVAS__mouseWheelY); + urid->Canvas_mousePositionX = map->map(map->handle, CANVAS__mousePositionX); + urid->Canvas_mousePositionY = map->map(map->handle, CANVAS__mousePositionY); + urid->Canvas_mouseFocus = map->map(map->handle, CANVAS__mouseFocus); + + lv2_atom_forge_init(&urid->forge, map); + return 0; } diff --git a/test/canvas.c b/test/canvas.c index 69d3d5e..9dfa71c 100644 --- a/test/canvas.c +++ b/test/canvas.c @@ -3,11 +3,28 @@ * SPDX-License-Identifier: Artistic-2.0 */ +#include + +#include + +void +test_canvas_urid_init() +{ + static LV2_Canvas_URID urid; + static LV2_URID_Map map; + + assert(lv2_canvas_urid_init(NULL, NULL) == 1); + assert(lv2_canvas_urid_init(&urid, NULL) == 1); + assert(lv2_canvas_urid_init(NULL, &map) == 1); + assert(lv2_canvas_urid_init(&urid, &map) == 1); + + //FIXME do some real tests +} + int -main(int argc, char **argv) +main(int argc __attribute__((unused)), char **argv __attribute__((unused))) { - (void)argc; - (void)argv; + test_canvas_urid_init(); return 0; } -- 2.38.5