Files
oak-editor/tests/gtest/shader_resources_test.cpp
T
Mike-Solar 748c53ac5c Expand Google Test coverage across core subsystems
Add and extend unit tests for:
- Task manager (failed tasks, progress signals, multiple tasks)
- Undo stack (multiple undo/redo, push-after-undo, clear, multi-command)
- Config defaults and graphics backend string conversion
- Node keyframe serialization and default state
- Node value string round-trips and table operations
- Node globals and project settings/serialization
- Timeline coordinate, workarea, and marker commands
- Color LUT processor and OCIO transform handling
- Common utilities (range, file functions, Qt helpers, XML utils)
- Render enums (loop mode, alpha association)
- Shader resource availability
- Module smoke tests for Tool and HumanStrings

All tests pass including RenderWorkerFootage GPU worker tests after
rebuilding the stale olive-render-worker binary.
2026-07-13 10:19:30 +08:00

63 lines
2.4 KiB
C++

#include <gtest/gtest.h>
#include <QFile>
TEST(Shaders, ResourcesAvailable)
{
const QStringList shader_paths = {
QStringLiteral(":/shaders/default.frag"),
QStringLiteral(":/shaders/default.vert"),
QStringLiteral(":/shaders/yuv2rgb.frag"),
QStringLiteral(":/shaders/deinterlace2.frag"),
QStringLiteral(":/shaders/rgbhistogram.frag"),
QStringLiteral(":/shaders/rgbhistogram.vert"),
QStringLiteral(":/shaders/rgbhistogram_secondary.frag"),
QStringLiteral(":/shaders/rgbvectorscope.frag"),
QStringLiteral(":/shaders/rgbvectorscope.vert"),
QStringLiteral(":/shaders/rgbwaveform.frag"),
QStringLiteral(":/shaders/rgbwaveform.vert"),
QStringLiteral(":/shaders/threewaycolor.frag"),
QStringLiteral(":/shaders/alphaover.frag"),
QStringLiteral(":/shaders/blur.frag"),
QStringLiteral(":/shaders/chromakey.frag"),
QStringLiteral(":/shaders/colordifferencekey.frag"),
QStringLiteral(":/shaders/colormanage.frag"),
QStringLiteral(":/shaders/cornerpin.frag"),
QStringLiteral(":/shaders/cornerpin.vert"),
QStringLiteral(":/shaders/crop.frag"),
QStringLiteral(":/shaders/crossdissolve.frag"),
QStringLiteral(":/shaders/deinterlace.frag"),
QStringLiteral(":/shaders/despill.frag"),
QStringLiteral(":/shaders/diptoblack.frag"),
QStringLiteral(":/shaders/dropshadow.frag"),
QStringLiteral(":/shaders/flip.frag"),
QStringLiteral(":/shaders/interlace.frag"),
QStringLiteral(":/shaders/invertrgb.frag"),
QStringLiteral(":/shaders/invertrgba.frag"),
QStringLiteral(":/shaders/mosaic.frag"),
QStringLiteral(":/shaders/multiply.frag"),
QStringLiteral(":/shaders/noise.frag"),
QStringLiteral(":/shaders/opacity.frag"),
QStringLiteral(":/shaders/opacity_rgb.frag"),
QStringLiteral(":/shaders/rgb.frag"),
QStringLiteral(":/shaders/ripple.frag"),
QStringLiteral(":/shaders/shape.frag"),
QStringLiteral(":/shaders/solid.frag"),
QStringLiteral(":/shaders/stroke.frag"),
QStringLiteral(":/shaders/swirl.frag"),
QStringLiteral(":/shaders/tile.frag"),
QStringLiteral(":/shaders/wave.frag"),
};
for (const QString &path : shader_paths) {
QFile file(path);
ASSERT_TRUE(file.exists()) << "Missing shader resource: "
<< path.toStdString();
ASSERT_TRUE(file.open(QIODevice::ReadOnly))
<< "Failed to open shader resource: " << path.toStdString();
const QByteArray contents = file.readAll();
EXPECT_FALSE(contents.isEmpty())
<< "Shader resource is empty: " << path.toStdString();
}
}