Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/shaderc
Path: blob/main/glslc/src/file_test.cc
1560 views
1
// Copyright 2015 The Shaderc Authors. All rights reserved.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#include "file.h"
16
17
#include <gmock/gmock.h>
18
19
namespace {
20
21
using glslc::GetFileExtension;
22
using glslc::IsStageFile;
23
using glslc::GetGlslOrHlslExtension;
24
using shaderc_util::string_piece;
25
using testing::Eq;
26
27
class FileExtensionTest : public testing::Test {
28
protected:
29
string_piece empty = "";
30
string_piece dot = ".";
31
string_piece no_ext = "shader";
32
string_piece trailing_dot = "shader.";
33
string_piece vert_ext = "shader.vert";
34
string_piece frag_ext = "shader.frag";
35
string_piece tesc_ext = "shader.tesc";
36
string_piece tese_ext = "shader.tese";
37
string_piece geom_ext = "shader.geom";
38
string_piece comp_ext = "shader.comp";
39
string_piece glsl_ext = "shader.glsl";
40
string_piece hlsl_ext = "shader.hlsl";
41
string_piece multi_dot = "shader.some..ext";
42
string_piece both_hg_ext = "shader.hlsl.glsl";
43
string_piece both_gh_ext = "shader.glsl.hlsl";
44
};
45
46
TEST_F(FileExtensionTest, GetFileExtension) {
47
EXPECT_EQ("", GetFileExtension(empty));
48
EXPECT_EQ("", GetFileExtension(dot));
49
EXPECT_EQ("", GetFileExtension(no_ext));
50
EXPECT_EQ("", GetFileExtension(trailing_dot));
51
EXPECT_EQ("vert", GetFileExtension(vert_ext));
52
EXPECT_EQ("frag", GetFileExtension(frag_ext));
53
EXPECT_EQ("tesc", GetFileExtension(tesc_ext));
54
EXPECT_EQ("tese", GetFileExtension(tese_ext));
55
EXPECT_EQ("geom", GetFileExtension(geom_ext));
56
EXPECT_EQ("comp", GetFileExtension(comp_ext));
57
EXPECT_EQ("glsl", GetFileExtension(glsl_ext));
58
EXPECT_EQ("ext", GetFileExtension(multi_dot));
59
EXPECT_EQ("glsl", GetFileExtension(both_hg_ext));
60
EXPECT_EQ("hlsl", GetFileExtension(both_gh_ext));
61
}
62
63
TEST_F(FileExtensionTest, GetGlslOrHlslExtension) {
64
EXPECT_THAT(GetGlslOrHlslExtension(empty), Eq(""));
65
EXPECT_THAT(GetGlslOrHlslExtension(dot), Eq(""));
66
EXPECT_THAT(GetGlslOrHlslExtension(no_ext), Eq(""));
67
EXPECT_THAT(GetGlslOrHlslExtension(trailing_dot), Eq(""));
68
EXPECT_THAT(GetGlslOrHlslExtension(vert_ext), Eq(""));
69
EXPECT_THAT(GetGlslOrHlslExtension(frag_ext), Eq(""));
70
EXPECT_THAT(GetGlslOrHlslExtension(tesc_ext), Eq(""));
71
EXPECT_THAT(GetGlslOrHlslExtension(tese_ext), Eq(""));
72
EXPECT_THAT(GetGlslOrHlslExtension(geom_ext), Eq(""));
73
EXPECT_THAT(GetGlslOrHlslExtension(comp_ext), Eq(""));
74
EXPECT_THAT(GetGlslOrHlslExtension(glsl_ext), Eq("glsl"));
75
EXPECT_THAT(GetGlslOrHlslExtension(hlsl_ext), Eq("hlsl"));
76
EXPECT_THAT(GetGlslOrHlslExtension(multi_dot), Eq(""));
77
EXPECT_THAT(GetGlslOrHlslExtension(both_hg_ext), Eq("glsl"));
78
EXPECT_THAT(GetGlslOrHlslExtension(both_gh_ext), Eq("hlsl"));
79
}
80
81
TEST_F(FileExtensionTest, IsStageFile) {
82
EXPECT_FALSE(IsStageFile(empty));
83
EXPECT_FALSE(IsStageFile(dot));
84
EXPECT_FALSE(IsStageFile(no_ext));
85
EXPECT_FALSE(IsStageFile(trailing_dot));
86
EXPECT_TRUE(IsStageFile(vert_ext));
87
EXPECT_TRUE(IsStageFile(frag_ext));
88
EXPECT_TRUE(IsStageFile(tesc_ext));
89
EXPECT_TRUE(IsStageFile(tese_ext));
90
EXPECT_TRUE(IsStageFile(geom_ext));
91
EXPECT_TRUE(IsStageFile(comp_ext));
92
EXPECT_FALSE(IsStageFile(glsl_ext));
93
EXPECT_FALSE(IsStageFile(multi_dot));
94
}
95
96
} // anonymous namespace
97
98