aboutsummaryrefslogtreecommitdiff
path: root/src/script_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/script_test.cc')
-rw-r--r--src/script_test.cc51
1 files changed, 28 insertions, 23 deletions
diff --git a/src/script_test.cc b/src/script_test.cc
index 0450051..c3d602e 100644
--- a/src/script_test.cc
+++ b/src/script_test.cc
@@ -21,41 +21,46 @@
#include "src/shader.h"
namespace amber {
-namespace {
-
-class ScriptProxy : public Script {
- public:
- ScriptProxy() = default;
- ~ScriptProxy() override = default;
-};
-
-} // namespace
using ScriptTest = testing::Test;
TEST_F(ScriptTest, GetShaderInfo) {
- ScriptProxy sp;
+ Script s;
+
+ auto p = MakeUnique<Pipeline>(PipelineType::kGraphics);
+ p->SetName("my_pipeline");
+ auto pipeline = p.get();
+
+ Result r = s.AddPipeline(std::move(p));
+ ASSERT_TRUE(r.IsSuccess()) << r.Error();
auto shader = MakeUnique<Shader>(kShaderTypeVertex);
+ r = pipeline->AddShader(shader.get(), ShaderType::kShaderTypeVertex);
+ ASSERT_TRUE(r.IsSuccess()) << r.Error();
+
+ pipeline->SetShaderOptimizations(shader.get(), {"opt1", "opt2"});
+
shader->SetName("Shader1");
shader->SetFormat(kShaderFormatGlsl);
shader->SetData("This is my shader data");
- sp.AddShader(std::move(shader));
+ s.AddShader(std::move(shader));
shader = MakeUnique<Shader>(kShaderTypeFragment);
shader->SetName("Shader2");
shader->SetFormat(kShaderFormatSpirvAsm);
shader->SetData("More shader data");
- sp.AddShader(std::move(shader));
+ s.AddShader(std::move(shader));
- auto info = sp.GetShaderInfo();
+ auto info = s.GetShaderInfo();
ASSERT_EQ(2U, info.size());
- EXPECT_EQ("Shader1", info[0].shader_name);
+ EXPECT_EQ("my_pipeline-Shader1", info[0].shader_name);
EXPECT_EQ(kShaderFormatGlsl, info[0].format);
EXPECT_EQ(kShaderTypeVertex, info[0].type);
EXPECT_EQ("This is my shader data", info[0].shader_source);
- EXPECT_TRUE(info[0].optimizations.empty());
+ ASSERT_EQ(2u, info[0].optimizations.size());
+ EXPECT_EQ("opt1", info[0].optimizations[0]);
+ EXPECT_EQ("opt2", info[0].optimizations[1]);
EXPECT_EQ("Shader2", info[1].shader_name);
EXPECT_EQ(kShaderFormatSpirvAsm, info[1].format);
@@ -65,8 +70,8 @@ TEST_F(ScriptTest, GetShaderInfo) {
}
TEST_F(ScriptTest, GetShaderInfoNoShaders) {
- ScriptProxy sp;
- auto info = sp.GetShaderInfo();
+ Script s;
+ auto info = s.GetShaderInfo();
EXPECT_TRUE(info.empty());
}
@@ -216,7 +221,7 @@ TEST_F(ScriptTest, GetPipelines) {
}
TEST_F(ScriptTest, AddBuffer) {
- auto buffer = MakeUnique<Buffer>(BufferType::kStorage);
+ auto buffer = MakeUnique<Buffer>();
buffer->SetName("my_buffer");
Script s;
@@ -225,14 +230,14 @@ TEST_F(ScriptTest, AddBuffer) {
}
TEST_F(ScriptTest, AddDuplicateBuffer) {
- auto buffer1 = MakeUnique<Buffer>(BufferType::kStorage);
+ auto buffer1 = MakeUnique<Buffer>();
buffer1->SetName("my_buffer");
Script s;
Result r = s.AddBuffer(std::move(buffer1));
ASSERT_TRUE(r.IsSuccess()) << r.Error();
- auto buffer2 = MakeUnique<Buffer>(BufferType::kUniform);
+ auto buffer2 = MakeUnique<Buffer>();
buffer2->SetName("my_buffer");
r = s.AddBuffer(std::move(buffer2));
@@ -241,7 +246,7 @@ TEST_F(ScriptTest, AddDuplicateBuffer) {
}
TEST_F(ScriptTest, GetBuffer) {
- auto buffer = MakeUnique<Buffer>(BufferType::kStorage);
+ auto buffer = MakeUnique<Buffer>();
buffer->SetName("my_buffer");
const auto* ptr = buffer.get();
@@ -265,7 +270,7 @@ TEST_F(ScriptTest, GetBuffersEmpty) {
}
TEST_F(ScriptTest, GetBuffers) {
- auto buffer1 = MakeUnique<Buffer>(BufferType::kStorage);
+ auto buffer1 = MakeUnique<Buffer>();
buffer1->SetName("my_buffer1");
const auto* ptr1 = buffer1.get();
@@ -274,7 +279,7 @@ TEST_F(ScriptTest, GetBuffers) {
Result r = s.AddBuffer(std::move(buffer1));
ASSERT_TRUE(r.IsSuccess()) << r.Error();
- auto buffer2 = MakeUnique<Buffer>(BufferType::kUniform);
+ auto buffer2 = MakeUnique<Buffer>();
buffer2->SetName("my_buffer2");
const auto* ptr2 = buffer2.get();