learn-opengl/32-text-rendering/tests/model_tests.cpp

42 lines
905 B
C++

#include <deque>
#include <string>
#include <fuc2/testing.hpp>
#include "model.hpp"
#include "shader.hpp"
using namespace fuc2;
/*
* This also tests Mesh by using Model to load them.
*/
namespace model_tests {
void test_load_textures() {
Shader shader({"shaders/14-vert.glsl", "shaders/14-frag.glsl", ""});
Model popcorn{"assets", "popcorn_model_a.glb"};
popcorn.draw(shader, true);
Model crate_glb{"assets", "crate.glb"};
crate_glb.draw(shader, true);
Model crate_obj{"assets", "crate.obj"};
crate_obj.draw(shader, true);
}
void test_failures() {
auto runner = [&]() {
Model bad_obj{"assets", "does_not_exist.obj"};
};
BLOWS_UP(runner, "should fail on missing file.");
}
fuc2::Set TESTS{
.name="models",
.options={ .fail_fast=false },
.tests={
TEST(test_load_textures),
TEST(test_failures),
}
};
}