Skip to content

Navigation seperation fixes #1764

Navigation seperation fixes

Navigation seperation fixes #1764

This check has been archived and is scheduled for deletion. Learn more about checks retention
GitHub Actions / test-results-windows-clang succeeded Jul 11, 2023 in 1s

test-results-windows-clang ✅

Tests failed

Report Passed Failed Skipped Time
build/libs/ai/logs/test_lib_ai_20230711T210227.mocha 35✅ 2ms
build/libs/asset/logs/test_lib_asset_20230711T210227.mocha 57✅ 162ms
build/libs/check/logs/test_lib_check_20230711T210228.mocha 7✅ 1ms
build/libs/cli/logs/test_lib_cli_20230711T210227.mocha 56✅ 2ms
build/libs/core/logs/test_lib_core_20230711T210228.mocha 271✅ 136ms
build/libs/data/logs/test_lib_data_20230711T210228.mocha 68✅ 6ms
build/libs/ecs/logs/test_lib_ecs_20230711T210228.mocha 82✅ 32ms
build/libs/geo/logs/test_lib_geo_20230711T210229.mocha 137✅ 116ms
build/libs/scene/logs/test_lib_scene_20230711T210229.mocha 3✅ 1❌ 141ms

✅ build/libs/ai/logs/test_lib_ai_20230711T210227.mocha

35 tests were completed in 2ms with 35 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_node_condition.c 2✅ 0ms
test_node_execute.c 1✅ 0ms
test_node_failure.c 1✅ 0ms
test_node_invert.c 4✅ 0ms
test_node_parallel.c 5✅ 0ms
test_node_repeat.c 4✅ 0ms
test_node_running.c 1✅ 0ms
test_node_selector.c 4✅ 0ms
test_node_sequence.c 4✅ 0ms
test_node_success.c 1✅ 0ms
test_node_try.c 4✅ 0ms
test_tracer_record.c 4✅ 0ms

✅ test_node_condition.c

node_condition
  ✅ evaluates to failure when the condition is falsy
  ✅ evaluates to success when the condition is truthy

✅ test_node_execute.c

node_execute
  ✅ evaluates to success and updates memory

✅ test_node_failure.c

node_failure
  ✅ evaluates to failure

✅ test_node_invert.c

node_invert
  ✅ always evaluates the child node
  ✅ evaluates to failure when child evaluates to success
  ✅ evaluates to running when child evaluates to running
  ✅ evaluates to success when child evaluates to failure

✅ test_node_parallel.c

node_parallel
  ✅ evaluates all the child nodes
  ✅ evaluates to failure when all children evaluate to failure
  ✅ evaluates to failure when it doesn't have any children
  ✅ evaluates to running when any child evaluates to running
  ✅ evaluates to success when any child evaluates to success

✅ test_node_repeat.c

node_repeat
  ✅ always evaluates the child node
  ✅ evaluates to failure when child evaluates to failure
  ✅ evaluates to running when child evaluates to running
  ✅ evaluates to running when child evaluates to success

✅ test_node_running.c

node_running
  ✅ evaluates to running

✅ test_node_selector.c

node_selector
  ✅ evaluates to failure when all children evaluate to failure
  ✅ evaluates to failure when it doesn't have any children
  ✅ evaluates to running when any child evaluates to running
  ✅ evaluates to success when any child evaluates to success

✅ test_node_sequence.c

node_sequence
  ✅ evaluates to failure when any child evaluates to failure
  ✅ evaluates to running when any child evaluates to running
  ✅ evaluates to success when all children evaluate to success
  ✅ evaluates to success when it doesn't have any children

✅ test_node_success.c

node_success
  ✅ evaluates to success

✅ test_node_try.c

node_try
  ✅ always evaluates the child node
  ✅ evaluates to running when child evaluates to failure
  ✅ evaluates to running when child evaluates to running
  ✅ evaluates to success when child evaluates to success

✅ test_tracer_record.c

tracer_record
  ✅ can record information for a named node
  ✅ can record information for a node with child nodes
  ✅ can record information for a single node
  ✅ has no registered nodes before evaluating

✅ build/libs/asset/logs/test_lib_asset_20230711T210227.mocha

57 tests were completed in 162ms with 57 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_loader_behavior.c 3✅ 18ms
test_loader_font_ttf.c 3✅ 44ms
test_loader_ftx.c 3✅ 70ms
test_loader_graphic.c 3✅ 97ms
test_loader_inputmap.c 3✅ 124ms
test_loader_level.c 3✅ 148ms
test_loader_mesh_gltf.c 3✅ 173ms
test_loader_mesh_obj.c 3✅ 199ms
test_loader_prefab.c 3✅ 225ms
test_loader_raw.c 2✅ 164ms
test_loader_shader_spv.c 3✅ 268ms
test_loader_texture_atlas.c 3✅ 293ms
test_loader_texture_ppm.c 3✅ 320ms
test_loader_texture_tga.c 3✅ 348ms
test_loader_weapon.c 3✅ 375ms
test_manager.c 13✅ 1s

✅ test_loader_behavior.c

loader_behavior
  ✅ can load behavior assets
  ✅ can unload behavior assets
  ✅ fails when loading invalid behavior assets

✅ test_loader_font_ttf.c

loader_font_ttf
  ✅ can load TrueType fonts
  ✅ can unload TrueType font assets
  ✅ fails when loading invalid TrueType font files

✅ test_loader_ftx.c

loader_ftx
  ✅ can load ftx assets
  ✅ can unload ftx assets
  ✅ fails when loading invalid ftx files

✅ test_loader_graphic.c

loader_graphic
  ✅ can load graphic assets
  ✅ can unload graphic assets
  ✅ fails when loading invalid graphic files

✅ test_loader_inputmap.c

loader_inputmap
  ✅ can load inputmaps
  ✅ can unload inputmap assets
  ✅ fails when loading invalid inputmap files

✅ test_loader_level.c

loader_level
  ✅ can load levels
  ✅ can unload level assets
  ✅ fails when loading invalid level files

✅ test_loader_mesh_gltf.c

loader_mesh_gltf
  ✅ can load gltf meshes
  ✅ can unload gltf mesh assets
  ✅ fails when loading invalid gltf files

✅ test_loader_mesh_obj.c

loader_mesh_obj
  ✅ can load obj meshes
  ✅ can unload obj mesh assets
  ✅ fails when loading invalid obj files

✅ test_loader_prefab.c

loader_prefab
  ✅ can load prefab maps
  ✅ can unload prefab-map assets
  ✅ fails when loading invalid prefab map files

✅ test_loader_raw.c

loader_raw
  ✅ can load raw assets
  ✅ can unload raw assets

✅ test_loader_shader_spv.c

loader_shader_spv
  ✅ can load SpirV shaders
  ✅ can unload SpirV shader assets
  ✅ fails when loading invalid SpirV shader files

✅ test_loader_texture_atlas.c

loader_texture_atlas
  ✅ can load atlas assets
  ✅ can unload atlas assets
  ✅ fails when loading invalid atlas files

✅ test_loader_texture_ppm.c

loader_texture_ppm
  ✅ can load ppm images
  ✅ can unload ppm texture assets
  ✅ fails when loading invalid ppm files

✅ test_loader_texture_tga.c

loader_texture_tga
  ✅ can load tga images
  ✅ can unload tga texture assets
  ✅ fails when loading invalid tga files

✅ test_loader_weapon.c

loader_weapon
  ✅ can load weapon maps
  ✅ can unload weapon-map assets
  ✅ fails when loading invalid weapon map files

✅ test_manager.c

manager
  ✅ can lookup assets by name
  ✅ can retrieve the identifier of loaded assets
  ✅ clears the dirty state after loading
  ✅ delays load-after-unload by one frame
  ✅ fails loads for non-existing assets
  ✅ fails to find any assets with an empty pattern
  ✅ finds one assets when searching for a specific asset
  ✅ ignores acquires immediately followed by releases
  ✅ keeps assets loaded as long as any acquire is still active
  ✅ loads assets when they are acquired
  ✅ supports multiple simultaneous loads
  ✅ supports querying all assets with a wildcard
  ✅ unloads assets when they are released

✅ build/libs/check/logs/test_lib_check_20230711T210228.mocha

7 tests were completed in 1ms with 7 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_dynarray.c 3✅ 0ms
test_fizzbuzz.c 4✅ 0ms

✅ test_dynarray.c

dynarray
  ✅ can be sorted
  ✅ increases in size when new elements are pushed
  ✅ is empty when created

✅ test_fizzbuzz.c

fizzbuzz
  ✅ otherwise returns the given integer
  ✅ returns Buzz for multiples of 5
  ✅ returns Fizz for multiples of 3
  ✅ returns FizzBuzz for multiples of 3 and 5

✅ build/libs/cli/logs/test_lib_cli_20230711T210227.mocha

56 tests were completed in 2ms with 56 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_app.c 7✅ 0ms
test_failure.c 1✅ 0ms
test_help.c 5✅ 0ms
test_parse.c 29✅ 0ms
test_read.c 11✅ 0ms
test_validate.c 3✅ 0ms

✅ test_app.c

app
  ✅ assigns unique ids to args
  ✅ assigns unique ids to flags
  ✅ assigns unique ids to flags and args
  ✅ supports descriptions with preset choices
  ✅ supports registering a batch of exclusions in a single call
  ✅ supports registering descriptions for options
  ✅ supports registering exclusions

✅ test_failure.c

failure
  ✅ can write a failure page

✅ test_help.c

help
  ✅ can write a help page for an app with a description
  ✅ can write a help page for an app with an descriptions, arguments and flags
  ✅ can write a help page for an app with arguments
  ✅ can write a help page for an app with flags
  ✅ can write a help page for an empty app

✅ test_parse.c

parse
  ✅ fails when omitting required options
  ✅ fails when omitting the value for a value flag
  ✅ fails when passing an unknown flag in a flag block
  ✅ fails when passing an unknown flag in long form
  ✅ fails when passing an unknown flag in short form
  ✅ fails when passing the same flag in both short and long form
  ✅ fails when passing the same flag twice in a flag block
  ✅ fails when passing the same flag twice in long form
  ✅ fails when passing the same flag twice in short form
  ✅ fails when providing a value that is incompatible with the validator
  ✅ fails when providing more arguments then expected
  ✅ fails when trying to pass a flag with a value in a flag block
  ✅ fails when violating an exclusion
  ✅ ignores empty values
  ✅ succeeds when passing the required options
  ✅ succeeds when providing an alternative instead of a required option
  ✅ supports arguments with multiple values as a mix of single and multiple strings
  ✅ supports arguments with multiple values as a single string
  ✅ supports arguments with multiple values as separate strings
  ✅ supports both short and long forms for flags
  ✅ supports double dash to stop accepting flags
  ✅ supports long form flags with a value
  ✅ supports passing multiple short flags in a single block
  ✅ supports retrieving argument values
  ✅ supports short form flags with a value
  ✅ supports single dash for terminating a list of values
  ✅ supports value flags with multiple values as a mix of single and multiple strings
  ✅ supports value flags with multiple values as a single string
  ✅ supports value flags with multiple values as separate strings

✅ test_read.c

read
  ✅ returns the default when not providing a choice string
  ✅ returns the default when not providing a f64
  ✅ returns the default when not providing a i64
  ✅ returns the default when not providing a string
  ✅ returns the default when not providing a u64
  ✅ returns the default when provided input doesn't match any choice string
  ✅ returns the index of the provided choice string
  ✅ returns the provided f64
  ✅ returns the provided i64
  ✅ returns the provided string
  ✅ returns the provided u64

✅ test_validate.c

validate
  ✅ supports validating f64's
  ✅ supports validating signed integers
  ✅ supports validating unsigned integers

✅ build/libs/core/logs/test_lib_core_20230711T210228.mocha

271 tests were completed in 136ms with 271 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_alloc_block.c 6✅ 0ms
test_alloc_bump.c 3✅ 0ms
test_alloc_chunked.c 7✅ 0ms
test_alloc_page.c 2✅ 0ms
test_alloc_scratch.c 1✅ 0ms
test_array.c 2✅ 0ms
test_ascii.c 14✅ 0ms
test_base64.c 5✅ 0ms
test_bits.c 16✅ 0ms
test_bitset.c 18✅ 0ms
test_compare.c 1✅ 0ms
test_complex.c 2✅ 0ms
test_dynarray.c 16✅ 0ms
test_dynbitset.c 8✅ 0ms
test_dynstring.c 7✅ 0ms
test_env.c 2✅ 0ms
test_file_iterator.c 6✅ 5ms
test_file_monitor.c 8✅ 16ms
test_file.c 12✅ 14ms
test_float.c 8✅ 0ms
test_format.c 20✅ 0ms
test_macro.c 2✅ 0ms
test_math.c 12✅ 0ms
test_memory.c 16✅ 0ms
test_path.c 17✅ 0ms
test_rng.c 4✅ 88ms
test_search.c 3✅ 0ms
test_shuffle.c 1✅ 0ms
test_sort.c 2✅ 0ms
test_string.c 22✅ 0ms
test_stringtable.c 2✅ 0ms
test_thread.c 12✅ 1ms
test_time.c 6✅ 0ms
test_unicode.c 1✅ 0ms
test_utf8.c 6✅ 0ms
test_winutils.c 1✅ 0ms

✅ test_alloc_block.c

alloc_block
  ✅ allocates new chunks when space runs out
  ✅ can be reset
  ✅ fails allocations bigger then the block-size
  ✅ returns the block-size as the max size
  ✅ reuses freed blocks immediately
  ✅ store blocks sequentially in memory

✅ test_alloc_bump.c

alloc_bump
  ✅ can be reset
  ✅ respects the requested alignment
  ✅ tracks the maximum remaining size

✅ test_alloc_chunked.c

alloc_chunked
  ✅ allocates sequential allocations from the same chunk
  ✅ can be reset
  ✅ can create up to 64 chunks
  ✅ can free allocated memory
  ✅ can return the maximum allocatable size in any chunk
  ✅ can use os memory pages as chunks
  ✅ fails allocations bigger then the chunk-size

✅ test_alloc_page.c

alloc_page
  ✅ can allocate memory smaller then the page-size
  ✅ ensures alignment of allocation matches page-size

✅ test_alloc_scratch.c

alloc_scratch
  ✅ respects the requested alignment

✅ test_array.c

array
  ✅ can iterate over a static array
  ✅ can iterate over an array defined by a pointer and a count

✅ test_ascii.c

ascii
  ✅ can check if a character is a control character
  ✅ can check if a character is a digit
  ✅ can check if a character is a hex digit
  ✅ can check if a character is a letter
  ✅ can check if a character is a lower-case letter
  ✅ can check if a character is a newline character
  ✅ can check if a character is a upper-case letter
  ✅ can check if a character is a whitespace character
  ✅ can check if a character is printable
  ✅ can convert a character to an integer
  ✅ can convert a character to lower-case
  ✅ can convert a character to upper-case
  ✅ can toggle the casing of a character
  ✅ can verify validity

✅ test_base64.c

base64
  ✅ can decode content with 2 padding characters
  ✅ can decode helloworld
  ✅ can decode the wikipedia base64 example
  ✅ returns an empty string when decoding an empty string
  ✅ stops decoding with an invalid character is encountered

✅ test_bits.c

bits
  ✅ can alias unsigned integers and floats
  ✅ can align a 32 bit integer
  ✅ can align a pointer
  ✅ can check if a 32 bit integer is a power-of-two
  ✅ can check if a 64 bit integer is a power-of-two
  ✅ can check if a value satisfies given alignment
  ✅ can compute population count of a 64 bit mask
  ✅ can compute the amount of leading zeroes in a 32 bit mask
  ✅ can compute the amount of leading zeroes in a 64 bit mask
  ✅ can compute the amount of padding required to align a 32 bit integer
  ✅ can compute the amount of trailing zeroes in a 32 bit mask
  ✅ can compute the amount of trailing zeroes in a 64 bit mask
  ✅ can compute the next power-of-two for a 32 bit integer
  ✅ can compute the next power-of-two for a 64 bit integer
  ✅ can compute the population count of a 32 bit mask
  ✅ can create a mask with a range of set bits

✅ test_bitset.c

bitset
  ✅ can bitwise 'and' two bitsets
  ✅ can bitwise 'or' two bitsets
  ✅ can bitwise 'xor' two bitsets
  ✅ can check if a bitset contains all bits of another bitset
  ✅ can check if a bitset contains any bits of another bitset
  ✅ can check if any bit is set
  ✅ can compute the index of a set bit
  ✅ can count set bits
  ✅ can find set bits
  ✅ can flip bits
  ✅ can iterate all set bits
  ✅ can set all bits up to a certain index
  ✅ can test for non-set bits
  ✅ can test for set bits
  ✅ computes the same index as the iterations number while walking the set bits
  ✅ returns an invalid next-bit if there are no set bits
  ✅ returns each bit for a mask with all bits set
  ✅ treats out-of-bounds bits as unset

✅ test_compare.c

compare
  ✅ can compare primitive types

✅ test_complex.c

complex
  ✅ can be multiplied
  ✅ lists both components when formatted

✅ test_dynarray.c

dynarray
  ✅ can be resized
  ✅ can be searched using a binary scan
  ✅ can be searched using a linear scan
  ✅ can be sorted
  ✅ can create a Dynamic-Array with 0 capacity
  ✅ can create a new empty Dynamic-Array
  ✅ can find or insert a sorted entry
  ✅ can get a pointer to the begin
  ✅ can get a pointer to the end
  ✅ can insert elements sorted
  ✅ decreases size while popping items
  ✅ increases size while pushing new items
  ✅ moves the last element into the removed slot when using remove_unordered
  ✅ preserves content while resizing
  ✅ updates the size when inserting elements
  ✅ updates the size while removing elements

✅ test_dynbitset.c

dynbitset
  ✅ always has a size that is a multiple of 64
  ✅ automatically allocates space when performing a bitwise 'or'
  ✅ automatically allocates space when performing a set_all
  ✅ can count set bits
  ✅ can create an empty Dynamic-BitSet
  ✅ can test for set bits
  ✅ returns an invalid next-bit if there are no set bits
  ✅ returns each bit for a mask with all bits set

✅ test_dynstring.c

dynstring
  ✅ can append characters
  ✅ can append sequences of characters
  ✅ can append strings
  ✅ can create an empty Dynamic-String
  ✅ can insert character sequences at specific indices
  ✅ can insert substrings at specific indices
  ✅ can push space to the end

✅ test_env.c

env
  ✅ can check if an environment variable exists
  ✅ can read the value of an environment variable

✅ test_file_iterator.c

file_iterator
  ✅ can find multiple files in a directory
  ✅ fails when iterating a directory that does not exist
  ✅ fails when iterating a regular file
  ✅ finds a single entry in a directory with one file
  ✅ finds a single entry in a directory with one sub-directory
  ✅ finds zero entries in an empty directory

✅ test_file_monitor.c

file_monitor
  ✅ can watch a file
  ✅ can watch multiple files
  ✅ fails when watching a file that does not exist
  ✅ fails when watching a file twice
  ✅ returns a single event when a file is modified
  ✅ returns false when polling when no modifications have happened
  ✅ returns false when polling without watching a file
  ✅ watching fails when the root directory cannot be opened

✅ test_file.c

file
  ✅ can check if a file exists
  ✅ can check the file-type of directories
  ✅ can check the file-type of regular files
  ✅ can create a new directory
  ✅ can create a new file by opening a file-handle with 'Create' mode
  ✅ can read a file to the end
  ✅ can read file contents through a memory map
  ✅ can read its own executable
  ✅ can read-back content that was written
  ✅ can retrieve the file size
  ✅ can retrieve the last access and last modification times
  ✅ can write file contents through a memory map

✅ test_float.c

float
  ✅ can convert between 32 and 16 bit floats
  ✅ can detect a NaN float
  ✅ can detect an infinity float
  ✅ can quantize 32 bit floats to use a limited amount of mantissa bits
  ✅ has float max literals
  ✅ has float min literals
  ✅ has infinity literals
  ✅ has NaN literals

✅ test_format.c

format
  ✅ can read characters
  ✅ can read f64 floating point numbers
  ✅ can read i64 integers
  ✅ can read lines
  ✅ can read u64 integers
  ✅ can read whitespace
  ✅ can write bitsets
  ✅ can write booleans
  ✅ can write byte-sizes in pretty format
  ✅ can write f64 floats
  ✅ can write FormatArg's
  ✅ can write formatted strings
  ✅ can write i64 integers
  ✅ can write memory as hex
  ✅ can write text
  ✅ can write time durations in pretty format
  ✅ can write time in iso8601 format
  ✅ can write time in iso8601 format without seperators
  ✅ can write u64 integers
  ✅ can write wrapped text

✅ test_macro.c

macro
  ✅ can count the number of VA_ARGs
  ✅ can skip the first VA_ARG argument

✅ test_math.c

math
  ✅ can clamp 32 bit floats
  ✅ can compute the absolute of the argument
  ✅ can compute the max argument
  ✅ can compute the min argument
  ✅ can compute the sign of the argument
  ✅ can linearly interpolate values
  ✅ can linearly un-interpolate values
  ✅ can move towards a value
  ✅ can round floats down (floor)
  ✅ can round floats to nearest
  ✅ can round floats up (ceil)
  ✅ can truncate the fractional part of floats

✅ test_memory.c

memory
  ✅ can check if all bytes are equal to specific byte
  ✅ can check if it contains a specific byte
  ✅ can create a dynamicly sized allocation on the stack
  ✅ can create a memory view from two pointers
  ✅ can create a memory view over a stack allocated struct
  ✅ can create a memory view over a variable
  ✅ can read a 8bit unsigned integer
  ✅ can read a big-endian encoded 16bit unsigned integer
  ✅ can read a big-endian encoded 32bit unsigned integer
  ✅ can read a big-endian encoded 64bit unsigned integer
  ✅ can read a little-endian encoded 16bit unsigned integer
  ✅ can read a little-endian encoded 32bit unsigned integer
  ✅ can read a little-endian encoded 64bit unsigned integer
  ✅ can splat a value over a memory range
  ✅ can swap the contents of two memory locations
  ✅ respects struct alignment

✅ test_path.c

path
  ✅ can append paths together
  ✅ can canonize paths
  ✅ can check if a path is a root
  ✅ can check if a path is absolute
  ✅ can generate a random file-name
  ✅ can generate a timestampped file-name
  ✅ can retrieve the executable path
  ✅ can retrieve the extension of a path
  ✅ can retrieve the file-name of a path
  ✅ can retrieve the parent of a path
  ✅ can retrieve the stem of a path
  ✅ can retrieve the system temp path
  ✅ can retrieve the working-directory path
  ✅ doesn't prepend the working-dir when building a path starting from an absolute segment
  ✅ prepends the working-dir when building a path starting from a relative segment
  ✅ returns the working-dir when building a path from 0 segments
  ✅ supports building paths from a collection of segments

✅ test_rng.c

rng
  ✅ can sample floats with a gaussian distribution
  ✅ can sample floats with a uniform distribution
  ✅ can sample random values in a specific range
  ✅ returns consistent sample results using xorwow with a fixed seed

✅ test_search.c

search
  ✅ can find elements in ordered data
  ✅ can find elements in unordered data
  ✅ can find greater elements in ordered data

✅ test_shuffle.c

shuffle
  ✅ can shuffle values using the fisheryates algorithm

✅ test_sort.c

sort
  ✅ can sort i32 integers
  ✅ can sort strings

✅ test_string.c

string
  ✅ can be added to a Dynamic-Array
  ✅ can be sorted
  ✅ can be trimmed
  ✅ can be trimmed of whitespace
  ✅ can check if a string ends with a sub-string
  ✅ can check if a string is empty
  ✅ can check if a string starts with a sub-string
  ✅ can check if strings are equal
  ✅ can combine strings
  ✅ can compare strings
  ✅ can consume characters from a string
  ✅ can create a string from a null-terminated character array
  ✅ can find the first occurrence of a single character
  ✅ can find the first occurrence of a sub-string
  ✅ can find the first occurrence of any of the specified characters
  ✅ can find the last occurrence of a sub-string
  ✅ can find the last occurrence of any of the specified characters
  ✅ can hash a string
  ✅ can match glob patterns
  ✅ can retrieve the last character
  ✅ can retrieve the length of a string
  ✅ can slice a string

✅ test_stringtable.c

stringtable
  ✅ can lookup strings from hashes
  ✅ can store many strings

✅ test_thread.c

thread
  ✅ assigns names to threads
  ✅ can add integers atomically
  ✅ can compare and exchange integers atomically
  ✅ can exchange integers atomically
  ✅ can lock a mutex when its currently unlocked
  ✅ can lock and unlock a spinlock
  ✅ can store and load integers atomically
  ✅ can substract integers atomically
  ✅ can trylock a mutex when its currently unlocked
  ✅ fails to trylock when a mutex is currently locked
  ✅ unblocks all waiters when broadcasting a condition
  ✅ unlocks atleast one waiter when signaling a condition

✅ test_time.c

time
  ✅ can compute the date from a real-time
  ✅ can compute the day-of-the-week from a real-time
  ✅ can compute the real-time for a date
  ✅ can compute the time-duration between two dates
  ✅ can compute the time-duration for dates below year 0
  ✅ can retrieve the current real-time from the real-clock

✅ test_unicode.c

unicode
  ✅ can check if a codepoint is ascii

✅ test_utf8.c

utf8
  ✅ can compute the required utf8 bytes
  ✅ can compute the total utf8 bytes from the starting character
  ✅ can count codepoints in a utf8 string
  ✅ can decode codecpoints from utf8
  ✅ can encode codepoints as utf8
  ✅ can validate utf8 strings

✅ test_winutils.c

winutils
  ✅ can convert a widestr to utf8

✅ build/libs/data/logs/test_lib_data_20230711T210228.mocha

68 tests were completed in 6ms with 68 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_jsonschema.c 11✅ 0ms
test_read_json.c 15✅ 0ms
test_registry.c 13✅ 0ms
test_treeschema.c 1✅ 0ms
test_utils_clone.c 9✅ 0ms
test_utils_destroy.c 8✅ 0ms
test_write_json.c 11✅ 0ms

✅ test_jsonschema.c

jsonschema
  ✅ supports a boolean type
  ✅ supports a non-empty string
  ✅ supports a string
  ✅ supports arrays
  ✅ supports enums
  ✅ supports float types
  ✅ supports integer type
  ✅ supports non-empty arrays
  ✅ supports optional pointer
  ✅ supports required pointer
  ✅ supports structures

✅ test_read_json.c

read_json
  ✅ can read a boolean
  ✅ can read a number
  ✅ can read a pointer
  ✅ can read a string
  ✅ can read a structure
  ✅ can read a union of primitive types
  ✅ can read a union of struct types
  ✅ can read a union with a name
  ✅ can read an array
  ✅ can read an enum
  ✅ fails when a number is out of bounds
  ✅ fails when a number value cannot be empty
  ✅ fails when a pointer value cannot be empty
  ✅ fails when a string value cannot be empty
  ✅ fails when an array value cannot be empty

✅ test_registry.c

registry
  ✅ can forward declare types
  ✅ can lookup a primitive type's alignment requirement
  ✅ can lookup a primitive type's name
  ✅ can lookup a primitive type's size
  ✅ can lookup the size of a array value
  ✅ can lookup the size of a plain value
  ✅ can lookup the size of a pointer value
  ✅ can register comments to types
  ✅ can register custom enums
  ✅ can register custom structs
  ✅ can register custom unions
  ✅ can register custom unions with names
  ✅ can register structs with nested types

✅ test_treeschema.c

treeschema
  ✅ can write a treeschema file

✅ test_utils_clone.c

utils_clone
  ✅ can clone a primitive pointer
  ✅ can clone a string
  ✅ can clone a structure
  ✅ can clone a union
  ✅ can clone a union with a name
  ✅ can clone an array of primitives
  ✅ can clone an empty array
  ✅ can clone an empty string
  ✅ can clone nested structures

✅ test_utils_destroy.c

utils_destroy
  ✅ can destroy a primitive pointer
  ✅ can destroy a string
  ✅ can destroy a structure
  ✅ can destroy a union
  ✅ can destroy a union with a name
  ✅ can destroy an array of primitives
  ✅ can destroy an empty string
  ✅ can destroy nested structures

✅ test_write_json.c

write_json
  ✅ can write a boolean
  ✅ can write a number
  ✅ can write a pointer
  ✅ can write a string
  ✅ can write a structure
  ✅ can write a union of primitive types
  ✅ can write a union of struct types
  ✅ can write a union with a name
  ✅ can write an array
  ✅ can write an enum
  ✅ can write numbers with a configurable amount of digits after the decimal point

✅ build/libs/ecs/logs/test_lib_ecs_20230711T210228.mocha

82 tests were completed in 32ms with 82 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_affinity.c 1✅ 0ms
test_combinator.c 4✅ 3ms
test_def.c 16✅ 0ms
test_destruct.c 6✅ 1ms
test_entity.c 3✅ 0ms
test_graph.c 3✅ 0ms
test_runner.c 1✅ 8ms
test_storage.c 11✅ 2ms
test_utils.c 9✅ 0ms
test_view.c 13✅ 11ms
test_world.c 15✅ 2ms

✅ test_affinity.c

affinity
  ✅ executes systems with thread affinity always on the same thread

✅ test_combinator.c

combinator
  ✅ supports combining a pending component with an existing component
  ✅ supports combining components with destructors
  ✅ supports combining many pending components
  ✅ supports combining pending components

✅ test_def.c

def
  ✅ can check if a system has access to a view
  ✅ can retrieve module name of a component
  ✅ can retrieve module name of a system
  ✅ can retrieve module name of a view
  ✅ can retrieve the alignment requirement of registered components
  ✅ can retrieve the amount of registered components
  ✅ can retrieve the amount of registered views
  ✅ can retrieve the default order of a system
  ✅ can retrieve the default parallel count of a system
  ✅ can retrieve the name of registered components
  ✅ can retrieve the name of registered systems
  ✅ can retrieve the name of registered views
  ✅ can retrieve the overriden order of a system
  ✅ can retrieve the overriden parallel count of a system
  ✅ can retrieve the size of registered components
  ✅ can retrieve the views of a registered system

✅ test_destruct.c

destruct
  ✅ destroys components that are still in the world buffer waiting to be flushed
  ✅ destroys components when destroying entities
  ✅ destroys components when removing them from entities
  ✅ destroys pending component additions for a destroyed entity
  ✅ destroys stored components from all chunks when the world is destroyed
  ✅ destroys stored components when the world is destroyed

✅ test_entity.c

entity
  ✅ returns -1 when comparing to an older entity
  ✅ returns 0 when comparing the same entity
  ✅ returns 1 when comparing to an newer entity

✅ test_graph.c

graph
  ✅ creates multiple tasks for parallel systems
  ✅ creates task dependencies based on the system views
  ✅ inserts job-graph tasks for all systems

✅ test_runner.c

runner
  ✅ executes every system once in specified order

✅ test_storage.c

storage
  ✅ can move entities out of an archetype
  ✅ can move new entities into an existing archetype
  ✅ can store entities with only empty components
  ✅ copies added components into the entities archetype
  ✅ fills the hole in an archetype when destroying the non-last entity
  ✅ fills the hole in an archetype when moving the non-last entity out
  ✅ keeps component data consistent when destroying many entities in the same archetype
  ✅ keeps component data consistent when splitting an archetype in two
  ✅ moves component data when moving entities between archetypes
  ✅ moves entity metadata when moving entities between archetypes
  ✅ respects component alignment

✅ test_utils.c

utils
  ✅ can optionally add a component
  ✅ can optionally remove a component
  ✅ can read a component on an entity
  ✅ can read or add a component from a maybe-read iterator
  ✅ can read the first component from a view
  ✅ can test if a view contains any entities
  ✅ can write a component on an entity
  ✅ can write or add a component from a maybe-write iterator
  ✅ can write the first component from a view

✅ test_view.c

view
  ✅ can check if an entity is contained in the view
  ✅ can iterate over all entities in a single archetype using a stepped iterator
  ✅ can iterate over entities from multiple archetypes using a stepped iterator
  ✅ can iterate over entities from multiple chunks in an archetype
  ✅ can iterate over entities which are missing a component using a maybe-read
  ✅ can iterate over entities with required components from different archetypes
  ✅ can optionally jump to entities that exist in the view
  ✅ can optionally read component values on entities using maybe-read
  ✅ can read component values on entities
  ✅ can return the count of components it can read
  ✅ can write component values on entities
  ✅ matches all entities that are in an archetype when defining only maybe-reads
  ✅ skips empty archetypes

✅ test_world.c

world
  ✅ can add components for many entities
  ✅ can add empty components
  ✅ can add multiple components for the same entity
  ✅ can check for component existence
  ✅ can override component fields for new components
  ✅ reports created entities as existing
  ✅ reports destroyed entities as existing until the next flush
  ✅ reports the global entity as existing
  ✅ respects the alignment for added components
  ✅ stores the definition
  ✅ supports cancelling empty component removal
  ✅ supports duplicate additions for empty components
  ✅ supports duplicate component removals
  ✅ zero initializes new components
  ✅ zero initializes new components when providing empty initial mem

✅ build/libs/geo/logs/test_lib_geo_20230711T210229.mocha

137 tests were completed in 116ms with 137 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_box_rotated.c 1✅ 0ms
test_box.c 16✅ 0ms
test_capsule.c 1✅ 0ms
test_color.c 6✅ 0ms
test_line.c 5✅ 0ms
test_matrix.c 26✅ 0ms
test_nav.c 11✅ 0ms
test_plane.c 3✅ 0ms
test_quat.c 22✅ 0ms
test_sphere.c 3✅ 0ms
test_vector.c 43✅ 110ms

✅ test_box_rotated.c

box_rotated
  ✅ can test overlaps with spheres

✅ test_box.c

box
  ✅ can be created from a center and a size
  ✅ can check if a box is inverted
  ✅ can compute a dilated box
  ✅ can compute the bounding box of a cone
  ✅ can compute the bounding box of a cylinder
  ✅ can compute the bounding box of a line
  ✅ can compute the bounding box of a sphere
  ✅ can construct an infinitely small box
  ✅ can retrieve the corners of a 3d box
  ✅ can test for approximate overlap with 4 frustum planes
  ✅ can test if two boxes overlap
  ✅ can test overlaps with spheres
  ✅ can transform a box
  ✅ creates a zero-sized box around a point when encapsulating it in inverted box
  ✅ expands to fit the given points when encapsulating points
  ✅ is formed by a minimum and maximum point

✅ test_capsule.c

capsule
  ✅ can test overlaps with spheres

✅ test_color.c

color
  ✅ can bilinearly interpolate colors
  ✅ can linearly interpolate colors
  ✅ divides each component by the scalar when dividing
  ✅ lists all components when formatted
  ✅ multiplies each component by the scalar when multiplying
  ✅ sums all components when adding

✅ test_line.c

line
  ✅ can compute its direction
  ✅ can compute its length
  ✅ can compute the distance squared to a given point
  ✅ can find the time closest to the given point
  ✅ can find the time closest to the given ray

✅ test_matrix.c

matrix
  ✅ applies scale as a multiplier to position and direction vectors
  ✅ applies translation as an offset to position vectors
  ✅ can be converted to a quaternion
  ✅ can be decomposed and recomposed
  ✅ can convert a quaternion to a rotation matrix
  ✅ can extract 4 frustum planes from a orthographic projection matrix
  ✅ can extract the scale vector
  ✅ can extract the translation vector
  ✅ can invert orthogonal projection matrices
  ✅ can invert perspective projection matrices
  ✅ exchanges the rows and columns when transposing
  ✅ flips the axis when transforming a vector with a 180 degrees rotation matrix
  ✅ ignores translation for direction vectors
  ✅ produces the same matrix for ortho and ortho_box
  ✅ returns a vector 45 degrees rotated when transforming by a rotate by 45 matrix
  ✅ returns an identity matrix when multiplying two identity matrices
  ✅ returns the dot products of the rows and columns when multiplying two matrices
  ✅ returns the dot products with the rows when transforming a vector
  ✅ returns the same matrix when multiplying with the identity matrix
  ✅ returns the same rotation then a quaternion when rotating over a dimensional axis
  ✅ returns the same vector when transforming with the identity matrix
  ✅ roundtrips when inverting
  ✅ scales vectors to clip-space when transforming by an orthogonal box projection matrix
  ✅ scales vectors to clip-space when transforming by an orthogonal projection matrix
  ✅ scales vectors to clip-space when transforming by an perspective projection matrix
  ✅ takes the 4th column into account for transform3 point

✅ test_nav.c

nav
  ✅ blocks cells if the y position is too hight
  ✅ can block a single cell
  ✅ can convert between coordinates and cells
  ✅ can create a region around a cell
  ✅ can find the closest unblocked cell
  ✅ can retrieve the bounding region
  ✅ can retrieve the cell size
  ✅ clamps coordinates to the grid edges
  ✅ ignores blockers above the cell height
  ✅ ignores blockers below the grid
  ✅ unblocks cells if the y position is lowered again

✅ test_plane.c

plane
  ✅ can be constructed from a normal and a point
  ✅ can find the closest point
  ✅ can lookup a position on the surface

✅ test_quat.c

quat
  ✅ can be converted to an angle-axis representation
  ✅ can be converted to euler angles
  ✅ can be created from euler angles
  ✅ can clamp rotations
  ✅ can combine quaternions
  ✅ can create a quaternion to rotate to the given axis system
  ✅ can normalize a quaternion
  ✅ can normalize a quaternion (even if zero length)
  ✅ can rotate towards a target rotation
  ✅ can rotate vectors 180 degrees over y
  ✅ can rotate vectors 90 degrees over y
  ✅ can rotate vectors by arbitrary degrees
  ✅ can rotate vectors by the inverse of 90 degrees over y
  ✅ can spherically interpolate between two values
  ✅ has preset quaternions for common rotations
  ✅ lists all components when formatted
  ✅ returns an identity quaternion when computing the inverse of a identity quaternion
  ✅ returns an identity quaternion when multiplying two identity quaternions
  ✅ returns the difference quaternion when computing a from-to rotation
  ✅ returns the same vector when rotating by an identity quaternion
  ✅ round-trips the angle-axis conversion
  ✅ round-trips the euler conversion

✅ test_sphere.c

sphere
  ✅ can compute the intersection time with a ray
  ✅ can test overlaps with other spheres
  ✅ can test the intersection with a ray

✅ test_vector.c

vector
  ✅ can bilinearly interpolate vectors
  ✅ can clamp its magnitude
  ✅ can clear components
  ✅ can compute the absolute value of each component
  ✅ can compute the maximum value of each component
  ✅ can compute the minimum value of each component
  ✅ can compute the square root of components
  ✅ can generate points inside a 3d cone
  ✅ can generate points inside a 3d unit sphere
  ✅ can generate points on the surface of a 3d unit sphere
  ✅ can linearly interpolate vectors
  ✅ can round down
  ✅ can round to nearest
  ✅ can round up
  ✅ compares the magnitude of the difference vector to a threshold when equated
  ✅ computes the square-root of the squared components when calculating magnitude
  ✅ divides each component by the scalar when dividing
  ✅ divides each component by w when performing a perspective divide
  ✅ initializes non specified components to 0
  ✅ lists all components when formatted
  ✅ multiplies each component by the scalar when multiplying
  ✅ multiplies each component when dividing component-wise
  ✅ multiplies each component when multiplying component-wise
  ✅ returns -1 as the dot product of opposite unit vectors
  ✅ returns 0 as the dot product of perpendicular unit vectors
  ✅ returns 0 radians as the angle between parallel vectors
  ✅ returns 1 as the dot product of equal unit vectors
  ✅ returns a reverse vector when reflecting a vector onto an opposite normal
  ✅ returns a unit-vector when normalizing
  ✅ returns a zero vector when projecting a vector onto a zero vector
  ✅ returns a zero vector when projecting a zero vector
  ✅ returns a zero vector when reflecting a zero vector
  ✅ returns backward as the cross product of up and right
  ✅ returns forward as the cross product of right and up
  ✅ returns half pi radians as the angle between perpendicular vectors
  ✅ returns pi radians as the angle between opposite vectors
  ✅ returns the cosine of the angle between unit-vectors when calculating the dot product
  ✅ returns the overlap when projecting a vector onto another
  ✅ returns the same vector when projecting a vector onto itself
  ✅ returns the same vector when reflecting a vector onto a zero vector
  ✅ subtracts all components when subtracting
  ✅ sums all components when adding
  ✅ sums all the squared components when calculating the squared magnitude

❌ build/libs/scene/logs/test_lib_scene_20230711T210229.mocha

4 tests were completed in 141ms with 3 passed, 1 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test_brain.c 2✅ 99ms
test_nav.c 1✅ 1❌ 241ms

✅ test_brain.c

brain
  ✅ can get/set memory values
  ✅ updates its memory through its behavior

❌ test_nav.c

nav
  ✅ can compute a path around an obstacle
  ❌ sets the locomotion target to the destination
	5 == 0

Annotations

Check failure on line 0 in build/libs/scene/logs/test_lib_scene_20230711T210229.mocha

See this annotation in the file changed.

@github-actions github-actions / test-results-windows-clang

test_nav.c ► nav ► sets the locomotion target to the destination

Failed test found in:
  build/libs/scene/logs/test_lib_scene_20230711T210229.mocha
Error:
  5 == 0
Raw output
5 == 0
at nav (test_nav.c:90:0)