test_engine_ctor.c revision a74702c6
1/* Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc.  See LICENSE. */
2#include <assert.h>
3#include <stdlib.h>
4#include <string.h>
5
6#include "lsquic.h"
7
8
9int
10main (void)
11{
12    struct lsquic_engine_settings settings;
13    lsquic_engine_t *engine;
14    unsigned versions;
15    const unsigned flags = LSENG_SERVER;
16
17    lsquic_engine_init_settings(&settings, flags);
18
19    struct lsquic_engine_api api;
20    memset(&api, 0, sizeof(api));
21    api.ea_settings = &settings;
22    api.ea_packets_out = (void *) (uintptr_t) 1;
23    api.ea_stream_if = (void *) (uintptr_t) 2;
24
25    engine = lsquic_engine_new(flags, &api);
26    assert(engine);
27    versions = lsquic_engine_quic_versions(engine);
28    assert(versions == settings.es_versions);
29    lsquic_engine_destroy(engine);
30
31    settings.es_versions |= (1 << N_LSQVER /* Invalid value by definition */);
32    engine = lsquic_engine_new(flags, &api);
33    assert(!engine);
34
35    return 0;
36}
37