summaryrefslogtreecommitdiff
path: root/tests/python_build/test_glsl_builder.py
blob: b9dcef48ac11d6198a35c6e26e3e6e1c0862014e (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
import json

import pytest

from glsl_builders import build_raw_header, RAWHeaderStruct, build_rd_header, RDHeaderStruct


@pytest.mark.parametrize(
    [
        "shader_files",
        "builder",
        "header_struct",
    ],
    [
        ("glsl/vertex_fragment", build_raw_header, RAWHeaderStruct),
        ("glsl/compute", build_raw_header, RAWHeaderStruct),
        ("rd_glsl/vertex_fragment", build_rd_header, RDHeaderStruct),
        ("rd_glsl/compute", build_rd_header, RDHeaderStruct),
    ],
    indirect=["shader_files"],
)
def test_glsl_builder(shader_files, builder, header_struct):
    header = header_struct()
    builder(shader_files["path_input"], header_data=header)

    with open(shader_files["path_expected_parts"], "r") as f:
        expected_parts = json.load(f)
        assert expected_parts == header.__dict__

    with open(shader_files["path_output"], "r") as f:
        actual_output = f.read()
        assert actual_output

    with open(shader_files["path_expected_full"], "r") as f:
        expected_output = f.read()

    assert actual_output == expected_output