shadertest

A Python library for unit testing GLSL functions


Keywords
glsl, unit, test
License
MIT
Install
pip install shadertest==0.2.1

Documentation

shadertest

A Python library for unit testing GLSL functions

Example

Below we have a very simple fragment shader called add.frag.

#version 330

out vec4 outColor;

float add(float a, float b) {
    return a + b;
}
void main() {
	outColor = vec4(add(0.5, 0.5));
}

To test using shadertest, we just need to create a ShaderContext, and start calling functions from the shader.

import pytest

import shadertest


@pytest.fixture(scope='module')
def basic_shader():
    with shadertest.ShaderContext.from_file('add.frag') as funcs:
        yield funcs


def test_add(basic_shader):
    assert basic_shader.add(4, 2) == 6

Supported data types

The following data types are supported for return values and function arguments:

  • bool
  • int
  • uint
  • float
  • bvecn
  • ivecn
  • vecn

For more information about GLSL data types, checkout the Khronos wiki page on them.