>>> graphene: Building community/graphene 1.10.2-r0 (using abuild 3.7.0_rc1-r1) started Sat, 19 Dec 2020 17:34:27 +0000 >>> graphene: Checking sanity of /home/buildozer/aports/community/graphene/APKBUILD... >>> graphene: Analyzing dependencies... >>> graphene: Installing for build: build-base meson glib-dev gobject-introspection-dev (1/97) Installing samurai (1.2-r0) (2/97) Installing libbz2 (1.0.8-r1) (3/97) Installing libffi (3.3-r2) (4/97) Installing gdbm (1.18.1-r0) (5/97) Installing xz-libs (5.2.5-r0) (6/97) Installing readline (8.0.4-r0) (7/97) Installing sqlite-libs (3.34.0-r0) (8/97) Installing python3 (3.8.6-r0) (9/97) Installing py3-ordered-set (4.0.2-r0) (10/97) Installing py3-appdirs (1.4.4-r1) (11/97) Installing py3-parsing (2.4.7-r1) (12/97) Installing py3-six (1.15.0-r0) (13/97) Installing py3-packaging (20.8-r0) (14/97) Installing py3-setuptools (51.0.0-r0) (15/97) Installing meson (0.56.0-r0) (16/97) Installing gettext-asprintf (0.20.2-r0) (17/97) Installing libintl (0.20.2-r0) (18/97) Installing libunistring (0.9.10-r0) (19/97) Installing gettext-libs (0.20.2-r0) (20/97) Installing libxml2 (2.9.10-r5) (21/97) Installing gettext (0.20.2-r0) (22/97) Installing gettext-dev (0.20.2-r0) (23/97) Installing bzip2-dev (1.0.8-r1) (24/97) Installing libxml2-utils (2.9.10-r5) (25/97) Installing libgpg-error (1.39-r0) (26/97) Installing libgcrypt (1.8.7-r0) (27/97) Installing libxslt (1.1.34-r0) (28/97) Installing docbook-xml (4.5-r6) Executing docbook-xml-4.5-r6.post-install (29/97) Installing docbook-xsl (1.79.2-r2) Executing docbook-xsl-1.79.2-r2.post-install (30/97) Installing libblkid (2.36.1-r0) (31/97) Installing libmount (2.36.1-r0) (32/97) Installing pcre (8.44-r0) (33/97) Installing glib (2.66.3-r0) (34/97) Installing linux-headers (5.7.8-r0) (35/97) Installing libffi-dev (3.3-r2) (36/97) Installing libpcre16 (8.44-r0) (37/97) Installing libpcre32 (8.44-r0) (38/97) Installing libpcrecpp (8.44-r0) (39/97) Installing pcre-dev (8.44-r0) (40/97) Installing blkid (2.36.1-r0) (41/97) Installing libcap-ng (0.8.2-r0) (42/97) Installing setpriv (2.36.1-r0) (43/97) Installing libsmartcols (2.36.1-r0) (44/97) Installing findmnt (2.36.1-r0) (45/97) Installing mcookie (2.36.1-r0) (46/97) Installing hexdump (2.36.1-r0) (47/97) Installing lsblk (2.36.1-r0) (48/97) Installing libuuid (2.36.1-r0) (49/97) Installing libfdisk (2.36.1-r0) (50/97) Installing sfdisk (2.36.1-r0) (51/97) Installing cfdisk (2.36.1-r0) (52/97) Installing partx (2.36.1-r0) (53/97) Installing libeconf (0.3.8-r0) (54/97) Installing util-linux (2.36.1-r0) (55/97) Installing util-linux-dev (2.36.1-r0) (56/97) Installing zlib-dev (1.2.11-r3) (57/97) Installing glib-dev (2.66.3-r0) (58/97) Installing libpng (1.6.37-r1) (59/97) Installing freetype (2.10.4-r0) (60/97) Installing fontconfig (2.13.1-r3) (61/97) Installing expat-dev (2.2.10-r0) (62/97) Installing brotli-dev (1.0.9-r2) (63/97) Installing libpng-dev (1.6.37-r1) (64/97) Installing freetype-dev (2.10.4-r0) (65/97) Installing fontconfig-dev (2.13.1-r3) (66/97) Installing libxau (1.0.9-r0) (67/97) Installing libbsd (0.10.0-r0) (68/97) Installing libxdmcp (1.1.3-r0) (69/97) Installing libxcb (1.14-r1) (70/97) Installing libx11 (1.7.0-r0) (71/97) Installing libxrender (0.9.10-r3) (72/97) Installing xorgproto (2020.1-r0) (73/97) Installing libxau-dev (1.0.9-r0) (74/97) Installing xcb-proto (1.14.1-r0) (75/97) Installing libxdmcp-dev (1.1.3-r0) (76/97) Installing libxcb-dev (1.14-r1) (77/97) Installing xtrans (1.4.0-r1) (78/97) Installing libx11-dev (1.7.0-r0) (79/97) Installing libxrender-dev (0.9.10-r3) (80/97) Installing pixman (0.40.0-r2) (81/97) Installing pixman-dev (0.40.0-r2) (82/97) Installing util-macros (1.19.2-r1) (83/97) Installing xcb-util (0.4.0-r3) (84/97) Installing xcb-util-dev (0.4.0-r3) (85/97) Installing libxext (1.3.4-r0) (86/97) Installing libxext-dev (1.3.4-r0) (87/97) Installing cairo (1.16.0-r2) (88/97) Installing cairo-tools (1.16.0-r2) (89/97) Installing cairo-gobject (1.16.0-r2) (90/97) Installing cairo-dev (1.16.0-r2) (91/97) Installing bash (5.0.18-r0) Executing bash-5.0.18-r0.post-install (92/97) Installing libltdl (2.4.6-r7) (93/97) Installing libtool (2.4.6-r7) (94/97) Installing gobject-introspection (1.66.1-r0) (95/97) Installing gobject-introspection-dev (1.66.1-r0) (96/97) Installing .makedepends-graphene (20201219.173429) (97/97) Installing util-linux-openrc (2.36.1-r0) Executing busybox-1.32.0-r8.trigger Executing glib-2.66.3-r0.trigger No schema files found: removed existing output file. OK: 450 MiB in 183 packages >>> graphene: Cleaning up srcdir >>> graphene: Cleaning up pkgdir >>> graphene: Fetching https://distfiles.alpinelinux.org/distfiles/v3.13/graphene-1.10.2.tar.xz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 285k 100 285k 0 0 3756k 0 --:--:-- --:--:-- --:--:-- 3756k >>> graphene: Fetching https://distfiles.alpinelinux.org/distfiles/v3.13/graphene-1.10.2.tar.xz >>> graphene: Checking sha512sums... graphene-1.10.2.tar.xz: OK >>> graphene: Unpacking /var/cache/distfiles/v3.13/graphene-1.10.2.tar.xz... The Meson build system Version: 0.56.0 Source dir: /home/buildozer/aports/community/graphene/src/graphene-1.10.2 Build dir: /home/buildozer/aports/community/graphene/src/graphene-1.10.2/output Build type: native build Project name: graphene Project version: 1.10.2 Using 'CC' from environment with value: 'gcc' Using 'CFLAGS' from environment with value: '-Os -fomit-frame-pointer' Using 'LDFLAGS' from environment with value: '-Wl,--as-needed' Using 'CPPFLAGS' from environment with value: '-Os -fomit-frame-pointer' C compiler for the host machine: gcc (gcc 10.2.1 "gcc (Alpine 10.2.1_pre1) 10.2.1 20201203") C linker for the host machine: gcc ld.bfd 2.35.1 Using 'CC' from environment with value: 'gcc' Using 'CFLAGS' from environment with value: '-Os -fomit-frame-pointer' Using 'LDFLAGS' from environment with value: '-Wl,--as-needed' Using 'CPPFLAGS' from environment with value: '-Os -fomit-frame-pointer' Host machine cpu family: x86 Host machine cpu: i686 Compiler for C supports arguments -ffast-math: YES Compiler for C supports arguments -fstrict-aliasing: YES Compiler for C supports arguments -Wpointer-arith: YES Compiler for C supports arguments -Wstrict-prototypes: YES Compiler for C supports arguments -Wnested-externs: YES Compiler for C supports arguments -Wold-style-definition: YES Compiler for C supports arguments -Wunused: YES Compiler for C supports arguments -Wmissing-noreturn: YES Compiler for C supports arguments -Wmissing-format-attribute: YES Compiler for C supports arguments -Wlogical-op: YES Compiler for C supports arguments -Wcast-align: YES Compiler for C supports arguments -Wno-unused-local-typedefs: YES Compiler for C supports arguments -Werror=float-conversion: YES Compiler for C supports arguments -Werror=float-equal: YES Compiler for C supports arguments -Werror=redundant-decls: YES Compiler for C supports arguments -Werror=missing-prototypes: YES Compiler for C supports arguments -Werror=missing-declarations: YES Compiler for C supports arguments -Werror=format=2: YES Compiler for C supports arguments -Werror=uninitialized: YES Compiler for C supports arguments -Werror=shadow: YES Compiler for C supports arguments -Werror=implicit: YES Compiler for C supports arguments -Werror=init-self: YES Compiler for C supports arguments -Werror=main: YES Compiler for C supports arguments -Werror=missing-braces: YES Compiler for C supports arguments -Werror=return-type: YES Compiler for C supports arguments -Werror=array-bounds: YES Compiler for C supports arguments -Werror=write-strings: YES Compiler for C supports arguments -Werror=undef: YES Compiler for C supports link arguments -Wl,-Bsymbolic-functions: YES Compiler for C supports link arguments -Wl,-z,relro: YES Compiler for C supports link arguments -Wl,-z,now: YES Library m found: YES Run-time dependency threads found: YES Has header "stdlib.h" : YES Has header "stdint.h" : YES Has header "stdbool.h" : YES Has header "memory.h" : YES Has header "pthread.h" with dependency threads: YES Checking for function "memalign" : YES Checking for function "sincosf" with dependency -lm: YES Checking for function "isinff" with dependency -lm: NO Checking for function "isnanf" with dependency -lm: NO Found pkg-config: /usr/bin/pkg-config (1.7.3) Run-time dependency gobject-2.0 found: YES 2.66.3 Checking if "SSE intrinsics" compiles: YES Checking if "GCC vector intrinsics" compiles: NO Checking if "ARM NEON intrinsics" compiles: NO WARNING: Project targeting '>= 0.50.1' but tried to use feature deprecated since '0.48.0': python3 module. Configuring graphene-config.h using configuration Configuring graphene-version.h using configuration Configuring config.h using configuration Found pkg-config: /usr/bin/pkg-config (1.7.3) Build-time dependency gobject-introspection-1.0 found: YES 1.66.1 Program g_ir_scanner found: YES (/usr/bin/g-ir-scanner) Program g_ir_compiler found: YES (/usr/bin/g-ir-compiler) Did not find CMake 'cmake' Found CMake: NO Run-time dependency mutest-1 found: NO (tried pkgconfig and cmake) Looking for a fallback subproject for the dependency mutest-1 |Executing subproject mutest method meson | |Project name: mutest |Project version: 2019.1 |C compiler for the host machine: gcc (gcc 10.2.1 "gcc (Alpine 10.2.1_pre1) 10.2.1 20201203") |C linker for the host machine: gcc ld.bfd 2.35.1 |Compiler for C supports arguments -fstrict-aliasing: YES (cached) |Compiler for C supports arguments -Wcast-align: YES (cached) |Compiler for C supports arguments -Wignored-qualifiers: YES |Compiler for C supports arguments -Wimplicit-function-declaration: YES |Compiler for C supports arguments -Wlogical-op: YES (cached) |Compiler for C supports arguments -Wmissing-format-attribute: YES (cached) |Compiler for C supports arguments -Wmissing-noreturn: YES (cached) |Compiler for C supports arguments -Wmissing-include-dirs: YES |Compiler for C supports arguments -Wnested-externs: YES (cached) |Compiler for C supports arguments -Wold-style-definition: YES (cached) |Compiler for C supports arguments -Wpointer-arith: YES (cached) |Compiler for C supports arguments -Wredundant-decls: YES |Compiler for C supports arguments -Wshadow: YES |Compiler for C supports arguments -Wstrict-prototypes: YES (cached) |Compiler for C supports arguments -Wswitch-enum: YES |Compiler for C supports arguments -Wuninitialized: YES |Compiler for C supports arguments -Wunused: YES (cached) |Compiler for C supports arguments -Werror=address: YES |Compiler for C supports arguments -Werror=array-bounds: YES (cached) |Compiler for C supports arguments -Werror=empty-body: YES |Compiler for C supports arguments -Werror=format=2: YES (cached) |Compiler for C supports arguments -Werror=implicit: YES (cached) |Compiler for C supports arguments -Werror=init-self: YES (cached) |Compiler for C supports arguments -Werror=main: YES (cached) |Compiler for C supports arguments -Werror=missing-braces: YES (cached) |Compiler for C supports arguments -Werror=missing-declarations: YES (cached) |Compiler for C supports arguments -Werror=missing-prototypes: YES (cached) |Compiler for C supports arguments -Werror=nonnull: YES |Compiler for C supports arguments -Werror=pointer-to-int-cast: YES |Compiler for C supports arguments -Werror=return-type: YES (cached) |Compiler for C supports arguments -Werror=sequence-point: YES |Compiler for C supports arguments -Werror=trigraphs: YES |Compiler for C supports arguments -Werror=undef: YES (cached) |Compiler for C supports arguments -Werror=vla: YES |Compiler for C supports arguments -Werror=write-strings: YES (cached) |Has header "sys/ioctl.h" : YES |Has header "sys/types.h" : YES |Has header "unistd.h" : YES |Has header "fcntl.h" : YES |Has header "mach/mach_time.h" : NO |Checking for function "isatty" : YES |Checking for function "clock_gettime" : YES |Checking for function "gettimeofday" : YES |Checking for function "_dupenv_s" : NO |Checking for function "stpcpy" : YES |Configuring config.h using configuration |Library m found: YES |Build targets in project: 7 |Subproject mutest finished. Dependency mutest-1 from subproject subprojects/mutest found: YES 2019.1 Build targets in project: 43 WARNING: Deprecated features used: * 0.48.0: {'python3 module'} graphene 1.10.2 Subprojects mutest: YES Option buildtype is: plain [default: debugoptimized] Found ninja-1.9 at /usr/bin/ninja ninja: entering directory 'output' [1/75] Compiling C object tests/vec4.p/vec4.c.o [2/75] Compiling C object tests/vec3.p/vec3.c.o [3/75] Compiling C object tests/vec2.p/vec2.c.o [4/75] Compiling C object tests/triangle.p/triangle.c.o [5/75] Compiling C object tests/sphere.p/sphere.c.o [6/75] Compiling C object tests/size.p/size.c.o [7/75] Compiling C object tests/simd.p/simd.c.o [8/75] Compiling C object tests/rect.p/rect.c.o [9/75] Compiling C object tests/ray.p/ray.c.o [10/75] Compiling C object tests/quaternion.p/quaternion.c.o [11/75] Compiling C object tests/quad.p/quad.c.o [12/75] Compiling C object tests/point3d.p/point3d.c.o [13/75] Compiling C object tests/point.p/point.c.o [14/75] Compiling C object tests/plane.p/plane.c.o [15/75] Compiling C object tests/matrix.p/matrix.c.o [16/75] Compiling C object tests/frustum.p/frustum.c.o [17/75] Compiling C object tests/euler.p/euler.c.o [18/75] Compiling C object tests/box.p/box.c.o [19/75] Compiling C object subprojects/mutest/tests/types.p/types.c.o [20/75] Compiling C object subprojects/mutest/tests/hooks.p/hooks.c.o [21/75] Compiling C object subprojects/mutest/tests/general.p/general.c.o [22/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-wrappers.c.o [23/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-utils.c.o [24/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-suite.c.o [25/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-spec.c.o [26/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-matchers.c.o [27/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-main.c.o [28/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-format-tap.c.o [29/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-format-mocha.c.o [30/75] Compiling C object subprojects/mutest/src/libmutest-1.a.p/mutest-expect.c.o [31/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-simd4x4f.c.o [32/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-simd4f.c.o [33/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-gobject.c.o [34/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-vectors.c.o [35/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-triangle.c.o [36/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-sphere.c.o [37/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-size.c.o [38/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-rect.c.o [39/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-ray.c.o [40/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-quaternion.c.o [41/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-quad.c.o [42/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-point3d.c.o [43/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-point.c.o [44/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-plane.c.o [45/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-matrix.c.o [46/75] Linking static target subprojects/mutest/src/libmutest-1.a [47/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-frustum.c.o [48/75] Linking target subprojects/mutest/tests/types [49/75] Linking target subprojects/mutest/tests/hooks [50/75] Linking target subprojects/mutest/tests/general [51/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-euler.c.o [52/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-box.c.o [53/75] Compiling C object src/libgraphene-1.0.so.0.1000.2.p/graphene-alloc.c.o [54/75] Linking target src/libgraphene-1.0.so.0.1000.2 [55/75] Generating Graphene-1.0.gir with a custom command [56/75] Generating symbol file src/libgraphene-1.0.so.0.1000.2.p/libgraphene-1.0.so.0.1000.2.symbols [57/75] Linking target tests/vec4 [58/75] Linking target tests/vec3 [59/75] Linking target tests/vec2 [60/75] Linking target tests/triangle [61/75] Linking target tests/sphere [62/75] Linking target tests/size [63/75] Linking target tests/simd [64/75] Linking target tests/rect [65/75] Linking target tests/ray [66/75] Linking target tests/quaternion [67/75] Linking target tests/quad [68/75] Linking target tests/point3d [69/75] Linking target tests/point [70/75] Linking target tests/plane [71/75] Linking target tests/matrix [72/75] Linking target tests/frustum [73/75] Linking target tests/euler [74/75] Linking target tests/box /usr/include/bits/alltypes.h:51: syntax error, unexpected identifier in '# 51 "/usr/include/bits/alltypes.h" 3 4' at '_Alignas' /usr/include/bits/alltypes.h:51: syntax error, unexpected '}' in '# 51 "/usr/include/bits/alltypes.h" 3 4' at '}' [75/75] Generating Graphene-1.0.typelib with a custom command Found runner: ['/usr/bin/ninja'] A suite contains at least a spec with an expectation ✓ a to be true ✓ a to not be false 2 passing (36.00 µs) 0 skipped 0 failing can contain multiple specs ✓ 'str' to contain a greeting ✓ 'str' to contain who we are greeting ✓ 'str' to contain all parts of a greeting 3 passing (56.00 µs) 0 skipped 0 failing can contain expectations that can be skipped Θ to be able to skip an expectation 0 passing (15.00 µs) 1 skipped 0 failing Total 5 passing (345.00 µs) 1 skipped 0 failing Suite Hooks calls before_each hook ✓ before_each_counter to have been called at least once 1 passing (21.00 µs) 0 skipped 0 failing calls after_each hook ✓ before_each_counter to have been called at least once 1 passing (11.00 µs) 0 skipped 0 failing Spec Hooks calls before hook before the spec ✓ before_called to have been called yet 1 passing (20.00 µs) 0 skipped 0 failing didn't call after hook yet ✓ after_called to not have been called 1 passing (16.00 µs) 0 skipped 0 failing Total 4 passing (436.00 µs) 0 skipped 0 failing Values allows checking scalars ✓ booleans to have two states ✓ integer values to respond to multiple matchers ✓ float values to require tolerance ✓ pointers to be like integer values 4 passing (97.00 µs) 0 skipped 0 failing allows ordering of numbers ✓ integers to support 'greater' and 'greater or equal' ordering ✓ integers to support 'less' and 'less or equal' ordering 2 passing (38.00 µs) 0 skipped 0 failing allows checking ranges ✓ integers to support ranges ✓ floats to support ranges ✓ contains() to work on integer ranges ✓ contains() to work on float ranges 4 passing (84.00 µs) 0 skipped 0 failing allows checking strings ✓ strings to support exact matching ✓ strings to support substring matching ✓ strings to support prefix matching ✓ strings to support suffix matching 4 passing (77.00 µs) 0 skipped 0 failing Total 14 passing (615.00 µs) 0 skipped 0 failing # graphene_box_t # initializes min/max points ok 1 - init() does not return null ok 2 - get_min() to be zero ok 3 - get_max() to be one ok 4 - init(null, null) to be zero-sized ok 5 - init_from_vec3(zero, one).min() maps to point3d(zero) ok 6 - init_from_vec3(zero, one).max() maps to point3d(one) ok 7 - init_from_vec3(null, null) is equal to box(zero) # initializes from points ok 8 - init_from_points() does not return null ok 9 - init_from_points().min() is (0, 0, 0) ok 10 - init_from_points().max() is (2, 2, 2) ok 11 - init_from_points() with one point sets min() to the same point ok 12 - init_from_points() with one point sets max() to the same point ok 13 - init_from_points() with no points is an empty box # initializes from vectors ok 14 - init_from_vectors().min() is (0, 0, 0) ok 15 - init_from_vectors().max() is (2, 2, 2) ok 16 - init_from_vectors() with one point sets min() to the same point ok 17 - init_from_vectors() with one point sets max() to the same point ok 18 - init_from_vectors() with no points is an empty box # has the correct sizes ok 19 - box(zero) to have a size of zero ok 20 - box(zero) to have a width of zero ok 21 - box(1) to have a width of 1 ok 22 - box(1, -1) to have a depth of 2 # has the correct center point ok 23 - box(zero).center() to be in (0, 0, 0) ok 24 - box(1).center() to be in (0.5, 0.5, 0.5) ok 25 - box(1, -1).center() to be in (0, 0, 0) ok 26 - box(-1).center() to be in (-0.5, -0.5, -0.5) ok 27 - box(empty).center() to be in (0, 0, 0) # has equality ok 28 - equal(null, null) to be true ok 29 - equal(null, box) to be false ok 30 - equal(box, null) to be false ok 31 - equal(box, box) to be true # computes unions ok 32 - union(zero, zero) to be equal to zero ok 33 - union(zero, one) to be equal to one ok 34 - union(-1, 1) to be equal to (-1, 1) # computes intersections ok 35 - intersection(empty, zero) to be empty ok 36 - intersection((-1, 1), (1, 1)) to be (1, 1) ok 37 - intersection(inf, (1, 1)) to be (1, 1) # expands by point ok 38 - initial size to be zero ok 39 - expand(zero) does not expand ok 40 - expand(1) expands to 1 ok 41 - expand(-1) expands to 2 # expands by vector ok 42 - initial size to be zero ok 43 - expand(zero) does not expand ok 44 - expand(1) expands to 1 ok 45 - expand(-1) expands to 2 # expands by scalar ok 46 - initial size to be zero ok 47 - expand(zero) does not expand ok 48 - expand(1) expands to 2 # contains point ok 49 - box to contain its center ok 50 - box to contain its vertices [0] ok 51 - box to contain its vertices [1] ok 52 - box to contain its vertices [2] ok 53 - box to contain its vertices [3] ok 54 - box to contain its vertices [4] ok 55 - box to contain its vertices [5] ok 56 - box to contain its vertices [6] ok 57 - box to contain its vertices [7] ok 58 - box to not contain a point outside its volume # contains box ok 59 - box(1) to not contain box(-1) ok 60 - box(-1, 1) to contain box(1) ok 61 - infinite box to contain any box ok 62 - empty box to not contain any box 1..62 # graphene_euler_t # initializes all components ok 1 - graphene_euler_init() to set the x component ok 2 - graphene_euler_init() to set the y component ok 3 - graphene_euler_init() to set the z component ok 4 - graphene_euler_to_vec3() to return a zero vector # roundtrips between euler angles and quaternions ok 5 - roundtrip: quaternion → euler → quaternion ok 6 - roundtrip: quaternion → euler → quaternion ok 7 - roundtrip: quaternion → euler → quaternion # roundtrips between euler angles and matrices ok 8 - roundtrip: matrix → euler → matrix ok 9 - roundtrip: matrix → euler → matrix ok 10 - roundtrip: matrix → euler → matrix 1..10 # graphene_frustum_t # initializes frustums from planes ok 1 - init to use the given planes # contains points in an orthographic frustum ok 2 - (0, 0, 0) to be outside the frustum ok 3 - (0, 0, -50) to be inside the frustum ok 4 - (0, 0, -1.001) to be inside the frustum ok 5 - (-1, -1, -1.001) to be inside the frustum ok 6 - (-1.1, -1.1, -1.001) to be outside the frustum ok 7 - (1, 1, -1.001) to be inside the frustum ok 8 - (1.1, 1.1, -1.001) to be outside the frustum ok 9 - (0, 0, -100) to be inside the frustum ok 10 - (-1, -1, -100) to be inside the frustum ok 11 - (-1.1, -1.1, -100) to be outside the frustum ok 12 - (1, 1, -100) to be inside the frustum ok 13 - (1.1, 1.1, -100) to be outside the frustum ok 14 - (0, 0, -101) to be outside the frustum # contains points in a frustum matrix ok 15 - (0, 0, 0) is to be outside the frustum ok 16 - (0, 0, -50) to be inside the frustum ok 17 - (0, 0, -1.001) to be inside the frustum ok 18 - (-1, -1, -1.001) to be inside the frustum ok 19 - (-1.1, -1.1, -1.001) to be outside the frustum ok 20 - (1, 1, -1.001) to be inside the frustum ok 21 - (1.1, 1.1, -1.001) to be outside the frustum 1..21 # graphene_plane_t # initializes with a normal and a constant ok 1 - init to set normal field ok 2 - init to set constant field ok 3 - init with null normal defaults to X axis # initializes with a normal and a point ok 4 - plane normal is set ok 5 - plane constant is set # normalizes ok 6 - plane normal to be the X axis ok 7 - length of plane normal to be 1 ok 8 - plane constant to be 1 # handles positive distances ok 9 - distance(4, 0, 0) to be 3 ok 10 - distance(1, 0, 0) to be 0 ok 11 - distance(4, 0, 0) to be -3 after negating ok 12 - distance(1, 0, 0) to be 0 after negating # handles negative distances ok 13 - distance(4, 0, 0) to be 5 1..13 # graphene_rect_t # initializes origin and size ok 1 - init to initialize the origin ok 2 - init to initialize the size ok 3 - initializing from a rectangle creates an equivalent rectangle ok 4 - GRAPHENE_RECT_INIT_ZERO initializes a degenerate rectangle # normalizes origin and size ok 5 - normalizing(10, 10, -10, -10) will put the origin in (0, 0) ok 6 - normalizing(10, 10, -10, -10) will make the width positive ok 7 - normalizing(10, 10, -10, -10) will make the height positive ok 8 - equality to operate on normalized rectangles # can check for equality ok 9 - a rectangle to be equal it itself ok 10 - a rectangle to not be equal to null ok 11 - null to not be equal to a rectangle ok 12 - two rectangles with different values to not be equal # can check for contained points ok 13 - a rectangle to contain its top left corner ok 14 - a rectangle to contain its top right corner ok 15 - a rectangle to contain its bottom right corner ok 16 - a rectangle to contain its bottom left corner ok 17 - a rectangle to contain its center ok 18 - a rectangle to not contain a point outside its boundaries # can check for contained rectangles ok 19 - a rectangle to contain itself ok 20 - the smaller rectangle to not contain the larger one ok 21 - the larger rectangle to contain the smaller one # can compute intersections ok 22 - intersection between (0, 0, 10, 10) and (5, 5, 15, 15) not be empty ok 23 - origin of intersection to be at (5, 5) ok 24 - size of intersection to be (5, 5) ok 25 - intersection between (5, 5, 5, 5) and (11, 11, 2, 2) to be empty ok 26 - empty intersection to be a degenerate rectangle # can compute unions ok 27 - union to take the minimum normalize origin ok 28 - union to take the maximum normalized size ok 29 - union rectangle to contain original rectangle A ok 30 - union rectangle to contain original rectangle B # can compute the area ok 31 - area to be width × height # can offset origin and size ok 32 - offset to move the origin ok 33 - offset to keep the size # can inset origin and size ok 34 - inset(2, 2) to move the origin ok 35 - inset(2, 2) to shrink the size ok 36 - inset(2, -2) to move back the origin ok 37 - inset(2, -2) to shrink the width ok 38 - inset(2, -2) to expand the height # can round to the nearest integer ok 39 - round() area is larger than or equal to the original rectangle's area ok 40 - round() may not contain the original rectangle ok 41 - round_to_pixel() may not contain the original rectangle ok 42 - rounding is stable # can round the extents of a rectangle to the nearest integer ok 43 - round_extents()'s result to contain top-left corner of the original rectangle ok 44 - round_extents()'s result to contain top-right corner of the original rectangle ok 45 - round_extents()'s result to contain bottom-left corner of the original rectangle ok 46 - round_extents()'s result to contain bottom-right corner of the original rectangle ok 47 - round_extents()'s result to contain the original rectangle ok 48 - round_extents()'s rounding to be stable # can expand ok 49 - expanding behind the origin changes the origin ok 50 - expanding behind the origin does not change the size ok 51 - expanded rectangle contains original rectangle ok 52 - expanding after the anti-origin does not change the origin ok 53 - expanding after the anti-origin changes the size ok 54 - expanded rectangle contains original rectangle ok 55 - expanding half in/half out does not change the origin ok 56 - expanding horizontally inside the rectangle to not change width ok 57 - expanding vertically outside the rectangle to change the height ok 58 - expanded rectangle contains original rectangle # can interpolate ok 59 - lerp(0) to produce the initial rectangle ok 60 - lerp(1) to produce the final rectangle ok 61 - lerp(0.25) to produce the expect rectangle # can scale ok 62 - Scaling by 1 does not change the rectangle ok 63 - Scaling by (2, 5) preserves the origin sign but changes the size sign ok 64 - Scaling by a fraction moves the origin and reduces the size ok 65 - Scaling by (0, -10) moves the origin in (0, 0) and flips the negative sign of the size 1..65 # graphene_point3d_t # allocates and initializes data ok 1 - allocation to not fail ok 2 - init_from_point to copy the source ok 3 - init to set the X coordinate ok 4 - init to set the Y coordinate ok 5 - init to set the Z coordinate ok 6 - init from vec3 to set the X coordinate ok 7 - init from vec3 to set the Y coordinate ok 8 - init from vec3 to set the Z coordinate # provides a zero point ok 9 - graphene_point3d_zero() to not return null ok 10 - graphene_point3d_zero() to return the same pointer ok 11 - graphene_point3d_zero() to return (0, 0, 0) # has exact equality ok 12 - a point to be equal to itself ok 13 - a point to not be equal to null ok 14 - null to not be equal to a point ok 15 - two points initialized to the same coordinates to be equal ok 16 - two points initialized to different coordinates not to be equal # has near equality ok 17 - a point to be near itself ok 18 - (0.1, 0.1, 0.1) to be within 0.2 units from (0, 0, 0) ok 19 - (0.1, 0.1, 0.1) to not be within 0.001 from (0, 0, 0) # interpolates between values ok 20 - lerp(0, 1, 0.0) = 0 ok 21 - lerp(0, 1, 0.5) = 0.5 ok 22 - lerp(0, 1, 1.0) = 1 # scales coordinates ok 23 - scale(2) scales the X coordinate ok 24 - scale(2) scales the Y coordinate ok 25 - scale(2) scales the Z coordinate ok 26 - scale(0.5) scales the X coordinate ok 27 - scale(0.5) scales the Y coordinate ok 28 - scale(0.5) scales the Z coordinate # implements cross product ok 29 - cross(a, b) matches both point3d and vec3 # implements dot product ok 30 - dot(a, b) matches both point3d and vec3 # implements length ok 31 - length is the square root of the sum components squared # implements normalization ok 32 - normalization to change the point # allows normalizing within a viewport ok 33 - original point and normalized point not to match ok 34 - normalized X coordinate to be [-1, 1) ok 35 - normalized Y coordinate to be [-1, 1) ok 36 - normalized Z coordinate to be [-1, 1) 1..36 # graphene_ray_t # can be initialized ok 1 - initializing origin to null sets it to (0, 0, 0) ok 2 - initializing direction to null uses a zero vector # can compute the position of a point on the ray ok 3 - querying a distance of 0 to return the origin ok 4 - querying a negative distance to return a point behind the origin ok 5 - querying a positive distance to return a point on the ray # can compute the closest approach of a point from the ray ok 6 - closest approach from (0, 0, 0) to be sqrt(3) ok 7 - closest approach on the origin of the ray to be zero ok 8 - closest approach from (0, 0, 50) to be sqrt(2) # can compute the closest point to a point on the ray ok 9 - closest point behind the origin is the origin ok 10 - closest point in front of the ray to be on the ray ok 11 - closest point on the ray to be the same point # can be transformed ok 12 - transforming a ray with an identity matrix does not change the ray ok 13 - transforming a ray on the Z axis with a rotation on the Z axis does not change the ray # can intersect triangles ok 14 - no intersection if ray's direction is zero ok 15 - intersection with backside faces ok 16 - intersection without backside faces ok 17 - intersection distance to be valid 1..17 # graphene_point_t # allocates and initializes data ok 1 - allocation to not fail ok 2 - init_from_point to copy the source ok 3 - init to set the X coordinate ok 4 - init to set the Y coordinate ok 5 - init from vec2 to set the X coordinate ok 6 - init from vec2 to set the Y coordinate # provides a zero point ok 7 - graphene_point_zero() to not return null ok 8 - graphene_point_zero() to return the same pointer ok 9 - graphene_point_zero() to return (0, 0) # has exact equality ok 10 - a point to be equal to itself ok 11 - a point to not be equal to null ok 12 - null to not be equal to a point ok 13 - two points initialized to the same coordinates to be equal ok 14 - two points initialized to different coordinates not to be equal # has near equality ok 15 - a point to be near itself ok 16 - (0.1, 0.1) to be within 0.2 units from (0, 0) ok 17 - (0.1, 0.1) to not be within 0.001 from (0, 0) # computes distances ok 18 - the distance of a point from itself to be zero ok 19 - the distance between (0, 0) and (1, 1) to be sqrt(2) ok 20 - the distance between (0, 0) and (1, 1) to be 1 on the X axis ok 21 - the distance between (0, 0) and (1, 1) to be 1 on the Y axis # interpolates between values ok 22 - lerp(0, 1, 0.0) = 0 ok 23 - lerp(0, 1, 0.5) = 0.5 ok 24 - lerp(0, 1, 1.0) = 1 1..24 # graphene_quad_t # has bounds ok 1 - converting rect corners into a quad yields the same bounds ok 2 - converting a rect into a quad yields the same bounds ok 3 - point[0] to be top left ok 4 - point[1] to be top right ok 5 - point[2] to be bottom right ok 6 - point[3] to be bottom left # can contain points ok 7 - quad to contain p[0] ok 8 - quad to contain p[1] ok 9 - quad to contain p[2] ok 10 - quad to contain p[3] ok 11 - quad to contain (0.5, 0.5) ok 12 - quad to not contain (10, 10) 1..12 1/21 mutest / general OK 0.01s 2/21 mutest / hooks OK 0.01s 3/21 mutest / types OK 0.00s 4/21 graphene / box OK 0.02s 5/21 graphene / euler OK 0.03s 6/21 graphene / frustum OK 0.02s # graphene_vec2_t # has constant vectors ok 1 - zero() vec2 to not be null ok 2 - zero() to return the same pointer ok 3 - zero().x to be 0 ok 4 - zero().y to be 0 ok 5 - length(zero()) to be 0 ok 6 - one() to not return null ok 7 - one() to return the same pointer ok 8 - one().x to be 1 ok 9 - one().y to be 1 ok 10 - x_axis() to not return null ok 11 - x_axis() to return the same pointer ok 12 - x_axis().x to be 1 ok 13 - y_axis() to not return null ok 14 - y_axis() to return the same pointer ok 15 - y_axis().y to be 1 # initializes channels ok 16 - init() to initialize x component ok 17 - init() to initialize y component ok 18 - init_from_vec2() to initialize x component ok 19 - init_from_vec2() to initialize y component ok 20 - init_from_float() to initialize x component ok 21 - init_from_float() to initialize y component ok 22 - roundtrip between init_from_float() and to_float() # can add ok 23 - add() to subtract each component # can subtract ok 24 - sub() to subtract each component # can multiply ok 25 - mul() to multiply each component # can divide ok 26 - divide() to divide each component # can compute the dot product ok 27 - dot() to compute the dot product of all component # can scale ok 28 - scale() to scale every component # can negate ok 29 - negate() to flip the sign on every component # can compute the length ok 30 - length() to be the square distance on all components # can normalize ok 31 - normalize() to scale components with the inverse of the length # can compare ok 32 - min() to return the minimum value in each channel ok 33 - max() to return the maximum value in each channel # can check for equality ok 34 - a vector to be equal to itself ok 35 - a vector not to be equal to null ok 36 - null not to be equal to a vector ok 37 - two different vectors to not be equal 1..37 # graphene_quaternion_t # initialize ok 1 - identity to set (0, 0, 0, 1) ok 2 - initialization sets all fields ok 3 - initialization from quaternion makes a copy # invert ok 4 - inverting identity gives back an identity ok 5 - inverting a quaternion flips the sign of the first three fields # dot ok 6 - dot(q, inv(q)) with q = (1, 1, 1, 1) to be -2 # equal ok 7 - a quaternion to be equal to itself ok 8 - a quaternion not to be equal to null ok 9 - null not to be equal to a quaternion ok 10 - two different quaternions not to be equal ok 11 - a quaternion to be equal to its invert # normalize ok 12 - normalizing a quaternion is the same as normalizing the equivalent vec4 # converts to and from angles ok 13 - roundtrip between init_from_angles and to_angles to yield the same yaw ok 14 - roundtrip between init_from_angles and to_angles to yield the same pitch ok 15 - roundtrip between init_from_angles and to_angles to yield the same roll # converts to and from vec4 ok 16 - roundtrip between init_from_vec4 and to_vec4 to yield the same vector # converts to and from matrix ok 17 - initializing from an identity matrix yields an identity quaternion ok 18 - initializing from a rotation matrix does not yield an identity quaternion ok 19 - rotating a matrix with a quaternion yields the same quaternion # converts to and from angle/axis ok 20 - roundtrip init_from_angle_vec3 and to_angle_vec3 yields the same angle ok 21 - roundtrip init_from_angle_vec3 and to_angle_vec3 yields the same axis # slerp ok 22 - initial and final states are different ok 23 - interpolated result is different from the initial state ok 24 - interpolated result is different from the final state 1..24 # graphene_matrix_t # can set and check identity ok 1 - init_identity() to set an identity matrix ok 2 - init_from_float() with an identity matrix to preserve the identity ok 3 - init_from_vec4() with an identity matrix to preserve the identity ok 4 - m.xx to be 1 on an identity matrix ok 5 - m.yy to be 1 on an identity matrix ok 6 - m.zz to be 1 on an identity matrix ok 7 - m.ww to be 1 on an identity matrix ok 8 - identity matrix to be all zeros except on the diagonal ok 9 - transforming an identity matrix stops it from being an identity # can check for equality and near equality ok 10 - a matrix to be equal to itself ok 11 - a matrix not to be equal to NULL ok 12 - NULL not to be equal to a matrix ok 13 - two identity matrices to be equal (fast version) ok 14 - two identity matrices to be equal (full version) ok 15 - scale(0.001) not to be equal to scale(0.002) ok 16 - scale(0.001) to be within 0.01 of scale(0.002) # can scale ok 17 - scaling an identity and initializing a scale to result in the same matrix ok 18 - scale factor on the X axis to be the same ok 19 - scale factor on the Y axis to be the same ok 20 - scale factor on the Z axis to be the same # can rotate using an axis and an angle ok 21 - rotating an identity and initializing a rotation to result in the same matrix ok 22 - rotations to be cumulative # can rotate using eulers and quaternions ok 23 - rotating with an euler angle to be equal to angle/axis ok 24 - rotating with a quaternion to be equal to angle/axis # can translate ok 25 - translating an identity and initializing a translation to result in the same matrix # has a neutral element ok 26 - scale factors of 1 to be neutral ok 27 - rotation angle of 0 to be neutral ok 28 - translation by the null vector to be neutral # implements look_at ok 29 - eye: (0, 0, 0), center: (0, 0, -1), up: (0, 1, 0) to be an identity ok 30 - eye: (0, 0, 1), center: (0, 0, 0), up: (0, 1, 0) to be a translation ok 31 - eye: (0, 0, 0), center: (1, 0, -1), up: (0, 1, 0) to be a rotation ok 32 - eye: (0, 0, 0), center: (0, 1, -1), up: (0, 1, 0) to be a rotation # can invert ok 33 - inverting an identity to return an identity ok 34 - inverting a scale to return an identity ok 35 - inverting a rotation to return an identity ok 36 - inverting a translation to return an identity # can interpolate ok 37 - translate(100, 100, 100) is not a 2D transform ok 38 - lerp(identity, translate(100, 100, 100), 0.0) = identity ok 39 - lerp(identity, translate(100, 100, 100), 1.0) = translate(100, 100, 100) ok 40 - lerp(identity, translate(100, 100, 100), 0.5) = translate(50, 50, 50) # can interpolate a perspective transformation ok 41 - lerp(perspective(200), perspective(800), 0.0) = perspective(200) ok 42 - lerp(perspective(200), perspective(800), 1.0) = perspective(800) ok 43 - lerp(perspective(200), perspective(800), 0.5) = perspective(400) # can multiply itself ok 44 - using the first operand as the result to be valid ok 45 - using the second operand as the result to be valid ok 46 - using the same operands as the result to be valid # can be converted to an affine matrix ok 47 - 2D matrices only change specific fields # can set and check 2D identity ok 48 - a 2D identity matrix to be a 2D matrix ok 49 - a 2D identity matrix to be an identity matrix ok 50 - A matrix initialized by init_from_2d() to be a 2D matrix ok 51 - Not all 2D matrices to be identity matrices # supports 2D transformations ok 52 - scale(2, 2) translate(0.5, 0.5) to be a 2D transformation ok 53 - scale(2, 2) translate(0.5, 0.5) to be [ 2 0 | 0 2 | .5 .5 ] ok 54 - xx to be scale.x ok 55 - yy to be scale.y ok 56 - x0 to be translate.x ok 57 - y0 to be translate.y ok 58 - translate(50, 50), rotate(45deg), translate(-50,-50) to be a 2D transformation ok 59 - perspective(500), rotateY(50deg) to not be a 2D transformation # supports round-trips with affine matrices ok 60 - roundtrip between init_from_2d and to_2d to result in the same matrix # can interpolate 2D transformations ok 61 - translating on the X and Y axis is a 2D transform ok 62 - lerp(identity, translate(100, 100), 0.0) = identity ok 63 - lerp(identity, translate(100, 100), 1.0) = translate(100, 100) ok 64 - lerp(identity, translate(100, 100), 0.5) = translate(50, 50) # can transform 2D bounds ok 65 - identity to not transform the bounds ok 66 - translate(100, 100, 0) to transform the origin of the bounds ok 67 - translate(100, 100, 0) to not transform the size of the bounds # can transform 3D points ok 68 - mat(translation) × point(zero) = point(translation) ok 69 - mat(translation) × point3d(zero) = point3d(translation) ok 70 - mat(translation) × vec3(zero) = vec3(zero) 1..70 7/21 graphene / matrix OK 0.05s 8/21 graphene / plane OK 0.03s 9/21 graphene / point OK 0.03s 10/21 graphene / point3d OK 0.03s 11/21 graphene / quad OK 0.05s # graphene_triangle_t # initializes from points ok 1 - triangle.a to match first point ok 2 - triangle.b to match second point ok 3 - triangle.c to match third point ok 4 - a unit triangle to have an area of 2 ok 5 - triangle.a to be 0 when initialized to NULL ok 6 - triangle.b to be 0 when initialized to NULL ok 7 - triangle.c to be 0 when initialized to NULL ok 8 - degenerate triangle to have an area of zero # initializes from vectors ok 9 - triangle.a to match first vector ok 10 - triangle.b to match second vector ok 11 - triangle.c to match third vector ok 12 - a unit triangle to have an area of 2 ok 13 - triangle.a to be 0 when initialized to NULL ok 14 - triangle.b to be 0 when initialized to NULL ok 15 - triangle.c to be 0 when initialized to NULL ok 16 - degenerate triangle to have an area of zero # initialized from float arrays ok 17 - triangle.a to match first vector ok 18 - triangle.b to match second vector ok 19 - triangle.c to match third vector ok 20 - a unit triangle to have an area of 2 # contains points ok 21 - triangle contains (0, 0, 0) ok 22 - triangle does not contain (1, 1, 1) ok 23 - triangle contains its midpoint # defines planes ok 24 - degenerate triangle point A sits on the triangle's plane ok 25 - degenerate triangle point B sits on the triangle's plane ok 26 - degenerate triangle point C sits on the triangle's plane ok 27 - degenerate triangle normal is zero vector ok 28 - degenerate triangle normal is equal to the plane normal ok 29 - unit triangle point A sits on the triangle's plane ok 30 - unit triangle point B sits on the triangle's plane ok 31 - unit triangle point C sits on the triangle's plane ok 32 - unit triangle normal is equal to the plane normal ok 33 - triangle point A sits on the triangle's plane ok 34 - triangle point B sits on the triangle's plane ok 35 - triangle point C sits on the triangle's plane ok 36 - triangle normal is equal to the plane normal # defines barycoords ok 37 - barycoords for unit triangle point A to exist ok 38 - barycoords for unit triangle point A to be (0, 0) ok 39 - barycoords for unit triangle point B to exist ok 40 - barycoords for unit triangle point B to be (0, 1) ok 41 - barycoords for unit triangle point C to exist ok 42 - barycoords for unit triangle point C to be (1, 0) ok 43 - barycoords for inside point (0.5, 0, 0) to exists ok 44 - barycoords for inside point (0.5, 0, 0) to be (0, 0.5) ok 45 - barycoords for inside point (0.5, 0.5, 0) to exists ok 46 - barycoords for inside point (0.5, 0.5, 0) to be (0.5, 0) ok 47 - barycoords for inside point (1, 0.5, 0) to exists ok 48 - barycoords for inside point (1, 0.5, 0) to be (0.5, 0.5) ok 49 - barycoords for outside point (2, 1, 0) to exists ok 50 - barycoords for outside point (2, 1, 0) to be (1, 1) ok 51 - barycoords for outside point (-1, 0, 0) to exists ok 52 - barycoords for outside point (-1, 0, 0) to be (0, -1) ok 53 - barycoords for point outside triangle plane to exist ok 54 - barycoords for point outside triangle plane to be (0, 0) # defines areas ok 55 - area of unit triangle constructed counterclockwise to be 0.5 ok 56 - area of unit triangle constructed clockwise to be 0.5 1..56 # graphene_sphere_t # initialize ok 1 - alloc to not return null ok 2 - unit sphere not to be empty ok 3 - init to set the center ok 4 - init to set the radius ok 5 - null center to be the origin # contains point ok 6 - unit sphere to contain origin ok 7 - unit sphere to contain x=1 ok 8 - unit sphere to contain y=-1 ok 9 - unit sphere to contain z=1 ok 10 - unit sphere to not contain (1, 1, 1) # bounding box ok 11 - bounding box for a unit sphere centered in (1, 1, 1) is (0, 2) ok 12 - bounding box for degenerate sphere is degenerate box # distance ok 13 - distance of unit sphere from (0, 0, 0) is 0.7320 ok 14 - distance of unit sphere from (1, 1, 1) is -1 # translate ok 15 - translating a unit sphere from (1, 1, 1) by -1 puts it at (0, 0, 0) # empty ok 16 - sphere with a radius of zero is empty ok 17 - unit sphere is not empty 1..17 12/21 graphene / quaternion OK 0.04s 13/21 graphene / ray OK 0.02s 14/21 graphene / rect OK 0.02s # graphene_simd4f_t # can copy 4 components ok 1 - dup_4f() to work with an array ok 2 - dup_4f() to work with a structure # can copy 3 components ok 3 - dup_3f() to work with an array ok 4 - dup_3f() to work with a structure # can copy 2 components ok 5 - dup_2f() to work with an array ok 6 - dup_2f() to work with a structure # can compare for equality ok 7 - to be equal to itself ok 8 - two vectors with the same values to be equal ok 9 - two different vectors to be different ok 10 - two different vectors to not be equal # has less than ordering ok 11 - a < b to be true if all components satisfy the order relation ok 12 - a < b to be false if any component does not satify the order relation # has less than or equal ordering ok 13 - a ≤ b to be true if all components satisfy the order relation ok 14 - a ≤ b to be false if any component does not satify the order relation # has greater than or equal ordering ok 15 - a ≤ b to be true if all components satisfy the order relation ok 16 - a ≤ b to be false if any component does not satify the order relation # has greater than ordering ok 17 - a ≤ b to be true if all components satisfy the order relation ok 18 - a ≤ b to be false if any component does not satify the order relation # can compute the dot product ok 19 - dot2() to compute the dot product of the first 2 components ok 20 - dot3() to compute the dot product of the first 3 components ok 21 - dot4() to compute the dot product of all four components # can compute the minimum vector and scalar ok 22 - min() to return the minimum of each component ok 23 - min_val() to put the minimum value in the X component # can compute the maximum vector and scalar ok 24 - max() to return the maximum of each component ok 25 - max_val() to put the maximum value in the X component 1..25 15/21 graphene / simd OK 0.04s # graphene_vec3_t # has constant vectors ok 1 - zero() vec3 to not be null ok 2 - zero() to return the same pointer ok 3 - zero().x to be 0 ok 4 - zero().y to be 0 ok 5 - zero().z to be 0 ok 6 - length(zero()) to be 0 ok 7 - one() to not return null ok 8 - one() to return the same pointer ok 9 - one().x to be 1 ok 10 - one().y to be 1 ok 11 - one().z to be 1 ok 12 - x_axis() to not return null ok 13 - x_axis() to return the same pointer ok 14 - x_axis().x to be 1 ok 15 - y_axis() to not return null ok 16 - y_axis() to return the same pointer ok 17 - y_axis().y to be 1 ok 18 - z_axis() to not return null ok 19 - z_axis() to return the same pointer ok 20 - z_axis().z to be 1 # initializes channels ok 21 - init() to initialize x component ok 22 - init() to initialize y component ok 23 - init() to initialize z component ok 24 - init_from_vec3() to initialize x component ok 25 - init_from_vec3() to initialize y component ok 26 - init_from_vec3() to initialize z component ok 27 - init_from_float() to initialize x component ok 28 - init_from_float() to initialize y component ok 29 - init_from_float() to initialize z component ok 30 - roundtrip between init_from_float() and to_float() # can add ok 31 - add() to subtract each component # can subtract ok 32 - sub() to subtract each component # can multiply ok 33 - mul() to multiply each component # can divide ok 34 - divide() to divide each component # can compute the dot product ok 35 - dot() to compute the dot product of all component # can compute the cross product ok 36 - cross() to compute the cross product of all component # can scale ok 37 - scale() to scale every component # can negate ok 38 - negate() to flip the sign on every component # can compute the length ok 39 - length() to be the square distance on all components # can normalize ok 40 - normalize() to scale components with the inverse of the length # can compare ok 41 - min() to return the minimum value in each channel ok 42 - max() to return the maximum value in each channel # can convert to other vector types ok 43 - get_xy() to use the first two components ok 44 - get_xy0() to use the first two components, and set the third to 0 ok 45 - get_xyz0() to use all three components, and set the fourth to 0 ok 46 - get_xyz1() to use all three components, and set the fourth to 1 ok 47 - get_xyzw() to use all three components, and set the fourth to the w argument # can check for equality ok 48 - a vector to be equal to itself ok 49 - a vector not to be equal to null ok 50 - null not to be equal to a vector ok 51 - two different vectors to not be equal 1..51 # graphene_vec4_t # has constant vectors ok 1 - zero() vec4 to not be null ok 2 - zero() to return the same pointer ok 3 - zero().x to be 0 ok 4 - zero().y to be 0 ok 5 - zero().z to be 0 ok 6 - zero().w to be 0 ok 7 - length(zero()) to be 0 ok 8 - one() to not return null ok 9 - one() to return the same pointer ok 10 - one().x to be 1 ok 11 - one().y to be 1 ok 12 - one().z to be 1 ok 13 - one().w to be 1 ok 14 - x_axis() to not return null ok 15 - x_axis() to return the same pointer ok 16 - x_axis().x to be 1 ok 17 - y_axis() to not return null ok 18 - y_axis() to return the same pointer ok 19 - y_axis().y to be 1 ok 20 - z_axis() to not return null ok 21 - z_axis() to return the same pointer ok 22 - z_axis().z to be 1 ok 23 - w_axis() to not return null ok 24 - w_axis() to return the same pointer ok 25 - w_axis().w to be 1 # initializes channels ok 26 - init() to initialize x component ok 27 - init() to initialize y component ok 28 - init() to initialize z component ok 29 - init() to initialize w component ok 30 - init_from_vec4() to initialize x component ok 31 - init_from_vec4() to initialize y component ok 32 - init_from_vec4() to initialize z component ok 33 - init_from_vec4() to initialize w component ok 34 - init_from_vec3() to initialize x component ok 35 - init_from_vec3() to initialize y component ok 36 - init_from_vec3() to initialize z component ok 37 - init_from_vec3() to initialize w component ok 38 - init_from_vec2() to initialize x component ok 39 - init_from_vec2() to initialize y component ok 40 - init_from_vec2() to initialize z component ok 41 - init_from_vec4() to initialize w component ok 42 - init_from_float() to initialize x component ok 43 - init_from_float() to initialize y component ok 44 - init_from_float() to initialize z component ok 45 - init_from_float() to initialize w component ok 46 - roundtrip between init_from_float() and to_float() # can add ok 47 - add() to subtract each component # can subtract ok 48 - sub() to subtract each component # can multiply ok 49 - mul() to multiply each component # can divide ok 50 - divide() to divide each component # can compute the dot product ok 51 - dot() to compute the dot product of all component # can scale ok 52 - scale() to scale every component # can negate ok 53 - negate() to flip the sign on every component # can compute the length ok 54 - length() to be the square distance on all components # can normalize ok 55 - normalize() to scale components with the inverse of the length # can compare ok 56 - min() to return the minimum value in each channel ok 57 - max() to return the maximum value in each channel # can convert to other vector types ok 58 - get_xy() to return the first two channels of a vec4 ok 59 - get_xyz() to return the first three channels of a vec4 # can check for equality ok 60 - a vector to be equal to itself ok 61 - a vector not to be equal to null ok 62 - null not to be equal to a vector ok 63 - two different vectors to not be equal 1..63 # graphene_size_t # initializes components ok 1 - graphene_size_init() does not return null ok 2 - graphene_size_init() sets the width ok 3 - graphene_size_init() sets the height # has a valid zero size constant ok 4 - graphene_size_zero() to not be null ok 5 - graphene_size_zero().width is zero ok 6 - graphene_size_zero().height is zero ok 7 - graphene_size_zero() to return the same pointer ok 8 - graphene_size_zero() to return its own pointer ok 9 - graphene_size_zero() to match a zero size # checks for null pointers in equal() ok 10 - graphene_size_equal() works on the same pointer ok 11 - graphene_size_equal() works when b is null ok 12 - graphene_size_equal() works when a is null # scales the size components ok 13 - graphene_size_scale() changes the width ok 14 - graphene_size_scale() changes the height # interpolates size components ok 15 - lerp(a, b, 0.0) = a ok 16 - lerp(a, b, 0.5) = half ok 17 - lerp(a, b, 1.0) = b 1..17 16/21 graphene / size OK 0.06s 17/21 graphene / sphere OK 0.04s 18/21 graphene / triangle OK 0.04s 19/21 graphene / vec2 OK 0.01s 20/21 graphene / vec3 OK 0.02s 21/21 graphene / vec4 OK 0.03s Ok: 21 Expected Fail: 0 Fail: 0 Unexpected Pass: 0 Skipped: 0 Timeout: 0 >>> graphene: Entering fakeroot... Installing src/libgraphene-1.0.so.0.1000.2 to /home/buildozer/aports/community/graphene/pkg/graphene/usr/lib Installing src/Graphene-1.0.gir to /home/buildozer/aports/community/graphene/pkg/graphene/usr/share/gir-1.0 Installing src/Graphene-1.0.typelib to /home/buildozer/aports/community/graphene/pkg/graphene/usr/lib/girepository-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-box.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-euler.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-frustum.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-macros.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-matrix.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-plane.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-point.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-point3d.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-quad.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-quaternion.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-ray.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-rect.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-size.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-sphere.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-triangle.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-types.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-vec2.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-vec3.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-vec4.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-version-macros.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-gobject.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-simd4f.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene-simd4x4f.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/include/graphene.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/output/include/graphene-config.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/lib/graphene-1.0/include Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/output/include/graphene-version.h to /home/buildozer/aports/community/graphene/pkg/graphene/usr/include/graphene-1.0 Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/output/meson-private/graphene-1.0.pc to /home/buildozer/aports/community/graphene/pkg/graphene/usr/lib/pkgconfig Installing /home/buildozer/aports/community/graphene/src/graphene-1.10.2/output/meson-private/graphene-gobject-1.0.pc to /home/buildozer/aports/community/graphene/pkg/graphene/usr/lib/pkgconfig >>> graphene-dev*: Running split function dev... >>> graphene-dev*: Preparing subpackage graphene-dev... >>> graphene-dev*: Stripping binaries >>> graphene-dev*: Running postcheck for graphene-dev >>> graphene*: Running postcheck for graphene >>> graphene*: Preparing package graphene... >>> graphene*: Stripping binaries >>> graphene-dev*: Scanning shared objects >>> graphene*: Scanning shared objects >>> graphene-dev*: Tracing dependencies... graphene=1.10.2-r0 pc:gobject-2.0 pc:gobject-2.0>=2.30.0 pkgconfig >>> graphene-dev*: Package size: 948.0 KB >>> graphene-dev*: Compressing data... >>> graphene-dev*: Create checksum... >>> graphene-dev*: Create graphene-dev-1.10.2-r0.apk >>> graphene*: Tracing dependencies... so:libc.musl-x86.so.1 so:libglib-2.0.so.0 so:libgobject-2.0.so.0 >>> graphene*: Package size: 164.0 KB >>> graphene*: Compressing data... >>> graphene*: Create checksum... >>> graphene*: Create graphene-1.10.2-r0.apk >>> graphene: Build complete at Sat, 19 Dec 2020 17:34:47 +0000 elapsed time 0h 0m 20s >>> graphene: Cleaning up srcdir >>> graphene: Cleaning up pkgdir >>> graphene: Uninstalling dependencies... (1/97) Purging .makedepends-graphene (20201219.173429) (2/97) Purging meson (0.56.0-r0) (3/97) Purging samurai (1.2-r0) (4/97) Purging py3-setuptools (51.0.0-r0) (5/97) Purging py3-ordered-set (4.0.2-r0) (6/97) Purging py3-appdirs (1.4.4-r1) (7/97) Purging py3-packaging (20.8-r0) (8/97) Purging py3-parsing (2.4.7-r1) (9/97) Purging py3-six (1.15.0-r0) (10/97) Purging gobject-introspection-dev (1.66.1-r0) (11/97) Purging cairo-dev (1.16.0-r2) (12/97) Purging xcb-util-dev (0.4.0-r3) (13/97) Purging util-macros (1.19.2-r1) (14/97) Purging xcb-util (0.4.0-r3) (15/97) Purging cairo-tools (1.16.0-r2) (16/97) Purging cairo-gobject (1.16.0-r2) (17/97) Purging cairo (1.16.0-r2) (18/97) Purging libtool (2.4.6-r7) (19/97) Purging bash (5.0.18-r0) Executing bash-5.0.18-r0.pre-deinstall (20/97) Purging libltdl (2.4.6-r7) (21/97) Purging util-linux-openrc (2.36.1-r0) (22/97) Purging glib-dev (2.66.3-r0) (23/97) Purging python3 (3.8.6-r0) (24/97) Purging gettext-dev (0.20.2-r0) (25/97) Purging gettext-asprintf (0.20.2-r0) (26/97) Purging gettext (0.20.2-r0) (27/97) Purging docbook-xsl (1.79.2-r2) Executing docbook-xsl-1.79.2-r2.post-deinstall (28/97) Purging libxslt (1.1.34-r0) (29/97) Purging docbook-xml (4.5-r6) Executing docbook-xml-4.5-r6.post-deinstall (30/97) Purging libxml2-utils (2.9.10-r5) (31/97) Purging bzip2-dev (1.0.8-r1) (32/97) Purging fontconfig-dev (2.13.1-r3) (33/97) Purging fontconfig (2.13.1-r3) (34/97) Purging freetype-dev (2.10.4-r0) (35/97) Purging freetype (2.10.4-r0) (36/97) Purging libbz2 (1.0.8-r1) (37/97) Purging libffi-dev (3.3-r2) (38/97) Purging linux-headers (5.7.8-r0) (39/97) Purging gobject-introspection (1.66.1-r0) (40/97) Purging glib (2.66.3-r0) (41/97) Purging libffi (3.3-r2) (42/97) Purging gdbm (1.18.1-r0) (43/97) Purging libxml2 (2.9.10-r5) (44/97) Purging xz-libs (5.2.5-r0) (45/97) Purging readline (8.0.4-r0) (46/97) Purging sqlite-libs (3.34.0-r0) (47/97) Purging gettext-libs (0.20.2-r0) (48/97) Purging libintl (0.20.2-r0) (49/97) Purging libunistring (0.9.10-r0) (50/97) Purging libgcrypt (1.8.7-r0) (51/97) Purging libgpg-error (1.39-r0) (52/97) Purging util-linux-dev (2.36.1-r0) (53/97) Purging util-linux (2.36.1-r0) (54/97) Purging blkid (2.36.1-r0) (55/97) Purging setpriv (2.36.1-r0) (56/97) Purging findmnt (2.36.1-r0) (57/97) Purging mcookie (2.36.1-r0) (58/97) Purging hexdump (2.36.1-r0) (59/97) Purging lsblk (2.36.1-r0) (60/97) Purging sfdisk (2.36.1-r0) (61/97) Purging cfdisk (2.36.1-r0) (62/97) Purging partx (2.36.1-r0) (63/97) Purging libfdisk (2.36.1-r0) (64/97) Purging libmount (2.36.1-r0) (65/97) Purging libsmartcols (2.36.1-r0) (66/97) Purging libuuid (2.36.1-r0) (67/97) Purging libblkid (2.36.1-r0) (68/97) Purging pcre-dev (8.44-r0) (69/97) Purging libpcre16 (8.44-r0) (70/97) Purging libpcre32 (8.44-r0) (71/97) Purging libpcrecpp (8.44-r0) (72/97) Purging pcre (8.44-r0) (73/97) Purging libcap-ng (0.8.2-r0) (74/97) Purging libeconf (0.3.8-r0) (75/97) Purging libpng-dev (1.6.37-r1) (76/97) Purging libpng (1.6.37-r1) (77/97) Purging zlib-dev (1.2.11-r3) (78/97) Purging expat-dev (2.2.10-r0) (79/97) Purging brotli-dev (1.0.9-r2) (80/97) Purging libxrender-dev (0.9.10-r3) (81/97) Purging libxrender (0.9.10-r3) (82/97) Purging libxext-dev (1.3.4-r0) (83/97) Purging libxext (1.3.4-r0) (84/97) Purging libx11-dev (1.7.0-r0) (85/97) Purging xtrans (1.4.0-r1) (86/97) Purging libx11 (1.7.0-r0) (87/97) Purging libxcb-dev (1.14-r1) (88/97) Purging xcb-proto (1.14.1-r0) (89/97) Purging libxcb (1.14-r1) (90/97) Purging libxau-dev (1.0.9-r0) (91/97) Purging libxau (1.0.9-r0) (92/97) Purging libxdmcp-dev (1.1.3-r0) (93/97) Purging libxdmcp (1.1.3-r0) (94/97) Purging libbsd (0.10.0-r0) (95/97) Purging xorgproto (2020.1-r0) (96/97) Purging pixman-dev (0.40.0-r2) (97/97) Purging pixman (0.40.0-r2) Executing busybox-1.32.0-r8.trigger OK: 310 MiB in 86 packages >>> graphene: Updating the community/x86 repository index... >>> graphene: Signing the index...