aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Stiles <johnstiles@google.com>2022-03-21 19:05:42 -0400
committerSkCQ <skcq-be@skia-corp.google.com.iam.gserviceaccount.com>2022-03-24 02:09:39 +0000
commitf88e45cae8d344bc6bbe8f4d398a457a5155c228 (patch)
treecfe6caeffee87c2c76a35091fe903832dfa6134d
parent9f7ddf9a8f6709091a215f71b20ac3e793322eb8 (diff)
downloadskia-f88e45cae8d344bc6bbe8f4d398a457a5155c228.tar.gz
Include the errors/ folder when SkQP searches for SkSL error tests.
Bug: skia:13042 Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com> Change-Id: I3cf979160bd8c6ef4d60bc7097ab482b1671b271 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/524015 Reviewed-by: Derek Sollenberger <djsollen@google.com>
-rw-r--r--tools/skqp/src/skqp.cpp33
1 files changed, 19 insertions, 14 deletions
diff --git a/tools/skqp/src/skqp.cpp b/tools/skqp/src/skqp.cpp
index 559aec20a2..2f0ec2ee59 100644
--- a/tools/skqp/src/skqp.cpp
+++ b/tools/skqp/src/skqp.cpp
@@ -114,23 +114,28 @@ static std::vector<SkQP::SkSLErrorTest> get_sksl_error_tests(SkQPAssetManager* a
const ExclusionList& exclusionList) {
std::vector<SkQP::SkSLErrorTest> skslErrorTests;
- // Android only supports runtime shaders, not color filters or blenders.
- std::vector<std::string> paths = assetManager->iterateDir("sksl/runtime_errors/", ".rts");
- for (const std::string& path : paths) {
- SkString name = SkOSPath::Basename(path.c_str());
- if (exclusionList.isExcluded(name.c_str())) {
- continue;
- }
- sk_sp<SkData> shaderText = GetResourceAsData(path.c_str());
- if (!shaderText) {
- continue;
+ auto iterateFn = [&](const char* directory, const char* extension) {
+ std::vector<std::string> paths = assetManager->iterateDir(directory, extension);
+ for (const std::string& path : paths) {
+ SkString name = SkOSPath::Basename(path.c_str());
+ if (exclusionList.isExcluded(name.c_str())) {
+ continue;
+ }
+ sk_sp<SkData> shaderText = GetResourceAsData(path.c_str());
+ if (!shaderText) {
+ continue;
+ }
+ skslErrorTests.push_back({
+ name.c_str(),
+ std::string(static_cast<const char*>(shaderText->data()), shaderText->size())
+ });
}
- skslErrorTests.push_back({
- name.c_str(),
- std::string(static_cast<const char*>(shaderText->data()), shaderText->size())
- });
};
+ // Android only supports runtime shaders, not fragment shaders, color filters or blenders.
+ iterateFn("sksl/errors/", ".rts");
+ iterateFn("sksl/runtime_errors/", ".rts");
+
auto lt = [](const SkQP::SkSLErrorTest& a, const SkQP::SkSLErrorTest& b) {
return a.name < b.name;
};