mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-07-17 02:26:07 +00:00
Refactors support for toggle control flags, --enable-toggles= & --disable-toggles, from the end2end tests into a utility class to make them available elsewhere. The unittests now uses this utility class to parse toggle control flags. For some toggles, like 'use_tint_generator', the unittests are known to be broken with them turned on. They will be fixed in subsequent CLs. BUG=dawn:756 Change-Id: Ic283e8a82bedcbf255258cca3e62f58c79d3857b Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47740 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Auto-Submit: Ryan Harrison <rharrison@chromium.org>
58 lines
1.9 KiB
C++
58 lines
1.9 KiB
C++
// Copyright 2021 The Dawn Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#include "tests/ToggleParser.h"
|
|
|
|
#include <cstring>
|
|
#include <sstream>
|
|
|
|
ToggleParser::ToggleParser() = default;
|
|
ToggleParser::~ToggleParser() = default;
|
|
|
|
bool ToggleParser::ParseEnabledToggles(char* arg) {
|
|
constexpr const char kEnableTogglesSwitch[] = "--enable-toggles=";
|
|
size_t argLen = sizeof(kEnableTogglesSwitch) - 1;
|
|
if (strncmp(arg, kEnableTogglesSwitch, argLen) == 0) {
|
|
std::string toggle;
|
|
std::stringstream toggles(arg + argLen);
|
|
while (getline(toggles, toggle, ',')) {
|
|
mEnabledToggles.push_back(toggle);
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool ToggleParser::ParseDisabledToggles(char* arg) {
|
|
constexpr const char kDisableTogglesSwitch[] = "--disable-toggles=";
|
|
size_t argLDis = sizeof(kDisableTogglesSwitch) - 1;
|
|
if (strncmp(arg, kDisableTogglesSwitch, argLDis) == 0) {
|
|
std::string toggle;
|
|
std::stringstream toggles(arg + argLDis);
|
|
while (getline(toggles, toggle, ',')) {
|
|
mDisabledToggles.push_back(toggle);
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
const std::vector<std::string>& ToggleParser::GetEnabledToggles() const {
|
|
return mEnabledToggles;
|
|
}
|
|
|
|
const std::vector<std::string>& ToggleParser::GetDisabledToggles() const {
|
|
return mDisabledToggles;
|
|
}
|