1*9e3b08aeSAndroid Build Coastguard Worker // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 2*9e3b08aeSAndroid Build Coastguard Worker // -*- mode: C++ -*- 3*9e3b08aeSAndroid Build Coastguard Worker // 4*9e3b08aeSAndroid Build Coastguard Worker // Copyright 2024 Google LLC 5*9e3b08aeSAndroid Build Coastguard Worker // 6*9e3b08aeSAndroid Build Coastguard Worker // Licensed under the Apache License v2.0 with LLVM Exceptions (the 7*9e3b08aeSAndroid Build Coastguard Worker // "License"); you may not use this file except in compliance with the 8*9e3b08aeSAndroid Build Coastguard Worker // License. You may obtain a copy of the License at 9*9e3b08aeSAndroid Build Coastguard Worker // 10*9e3b08aeSAndroid Build Coastguard Worker // https://llvm.org/LICENSE.txt 11*9e3b08aeSAndroid Build Coastguard Worker // 12*9e3b08aeSAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software 13*9e3b08aeSAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS, 14*9e3b08aeSAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15*9e3b08aeSAndroid Build Coastguard Worker // See the License for the specific language governing permissions and 16*9e3b08aeSAndroid Build Coastguard Worker // limitations under the License. 17*9e3b08aeSAndroid Build Coastguard Worker // 18*9e3b08aeSAndroid Build Coastguard Worker // Author: Giuliano Procida 19*9e3b08aeSAndroid Build Coastguard Worker 20*9e3b08aeSAndroid Build Coastguard Worker #include "scope.h" 21*9e3b08aeSAndroid Build Coastguard Worker 22*9e3b08aeSAndroid Build Coastguard Worker #include <string> 23*9e3b08aeSAndroid Build Coastguard Worker 24*9e3b08aeSAndroid Build Coastguard Worker #include <catch2/catch.hpp> 25*9e3b08aeSAndroid Build Coastguard Worker 26*9e3b08aeSAndroid Build Coastguard Worker namespace Test { 27*9e3b08aeSAndroid Build Coastguard Worker 28*9e3b08aeSAndroid Build Coastguard Worker using stg::Scope; 29*9e3b08aeSAndroid Build Coastguard Worker using stg::PushScopeName; 30*9e3b08aeSAndroid Build Coastguard Worker 31*9e3b08aeSAndroid Build Coastguard Worker TEST_CASE("scope") { 32*9e3b08aeSAndroid Build Coastguard Worker Scope scope; 33*9e3b08aeSAndroid Build Coastguard Worker CHECK(scope.name.empty()); 34*9e3b08aeSAndroid Build Coastguard Worker CHECK(scope.named); 35*9e3b08aeSAndroid Build Coastguard Worker { 36*9e3b08aeSAndroid Build Coastguard Worker const PushScopeName p1(scope, "1", "A"); 37*9e3b08aeSAndroid Build Coastguard Worker CHECK(!scope.name.empty()); 38*9e3b08aeSAndroid Build Coastguard Worker CHECK(scope.named); 39*9e3b08aeSAndroid Build Coastguard Worker { 40*9e3b08aeSAndroid Build Coastguard Worker const PushScopeName p2 (scope, "2", std::string()); 41*9e3b08aeSAndroid Build Coastguard Worker CHECK(!scope.name.empty()); 42*9e3b08aeSAndroid Build Coastguard Worker CHECK(!scope.named); 43*9e3b08aeSAndroid Build Coastguard Worker { 44*9e3b08aeSAndroid Build Coastguard Worker const PushScopeName p3(scope, "3", "B"); 45*9e3b08aeSAndroid Build Coastguard Worker CHECK(!scope.name.empty()); 46*9e3b08aeSAndroid Build Coastguard Worker CHECK(!scope.named); 47*9e3b08aeSAndroid Build Coastguard Worker } 48*9e3b08aeSAndroid Build Coastguard Worker CHECK(!scope.name.empty()); 49*9e3b08aeSAndroid Build Coastguard Worker CHECK(!scope.named); 50*9e3b08aeSAndroid Build Coastguard Worker } 51*9e3b08aeSAndroid Build Coastguard Worker CHECK(!scope.name.empty()); 52*9e3b08aeSAndroid Build Coastguard Worker CHECK(scope.named); 53*9e3b08aeSAndroid Build Coastguard Worker } 54*9e3b08aeSAndroid Build Coastguard Worker CHECK(scope.name.empty()); 55*9e3b08aeSAndroid Build Coastguard Worker CHECK(scope.named); 56*9e3b08aeSAndroid Build Coastguard Worker } 57*9e3b08aeSAndroid Build Coastguard Worker 58*9e3b08aeSAndroid Build Coastguard Worker } // namespace Test 59