summaryrefslogtreecommitdiff
path: root/tests/test_lifecycle.c
blob: 08213b0c4a77b3afabc025ea84f9f6a1df2c9f8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <yasl/yasl.h>
#include <yasl/cpu.h>
#include <yasl/gl.h>
#include <yasl/metal.h>
#include <yasl/desktop.h>
#include <assert.h>
int main(void)
{
    assert(yasl_shutdown() == 0);
    yasl_wake();
    yasl_event event = {.type = YASL_EVENT_QUIT};
    assert(yasl_wait_event(&event, 0) == -ENODEV && event.type == YASL_EVENT_NONE);
    assert(yasl_wait_event(NULL, 0) == -EINVAL);
    assert(yasl_init(&(struct yasl_options){.backend = (enum yasl_backend)999}) == -EINVAL);
    assert(!yasl_surface_create(NULL) && errno == EINVAL);
    struct yasl_surface_options options = {.width = 0, .height = 64};
    assert(!yasl_surface_create(&options) && errno == EINVAL);
    options.width = 64;
    options.flags = 16;
    assert(!yasl_surface_create(&options) && errno == EINVAL);
    options.flags = 0;
    options.type = (enum yasl_surface_type)99;
    assert(!yasl_surface_create(&options) && errno == EINVAL);
    struct yasl_cpu_buffer buffer = {.width = 9};
    assert(yasl_cpu_acquire(NULL, &buffer) == -ENODEV && !buffer.pixels && !buffer.width);
    assert(yasl_cpu_acquire(NULL, NULL) == -EINVAL);
    CAMetalLayer *layer = NULL;
    assert(yasl_metal_get_layer(NULL, &layer) == -ENODEV && !layer);
    assert(yasl_surface_destroy(NULL) == 0);
    assert(yasl_time_ns() > 0);
    int w = 9, h = 9;
    yasl_surface_get_size(NULL, &w, &h);
    assert(w == 0 && h == 0);
    assert(yasl_get_executable_path(NULL, 0) > 0);
    assert(yasl_shutdown() == 0);
    return 0;
}