1 : // Copyright 2012 Google Inc. 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 : // Defines some unittest helper functions.
16 :
17 : #include "syzygy/common/unittest_util.h"
18 : #include "gtest/gtest.h"
19 :
20 : namespace testing {
21 :
22 E : TEST(CommonUnitTestUtil, ScopedLogLevelSaver) {
23 E : int old_level = logging::GetMinLogLevel();
24 E : int new_level = old_level - 1;
25 :
26 : {
27 E : ScopedLogLevelSaver log_level_saver;
28 E : logging::SetMinLogLevel(new_level);
29 E : ASSERT_EQ(new_level, logging::GetMinLogLevel());
30 E : }
31 :
32 E : ASSERT_EQ(old_level, logging::GetMinLogLevel());
33 E : }
34 :
35 : namespace {
36 :
37 E : void ScopedEnvironmentVariableTestImpl(bool is_variable_set) {
38 E : const char kVariableName[] = "ScopedEnvironmentVariableTestVarName";
39 E : const char kVariableValue[] = "initial";
40 E : const char kVariableOverrideValue[] = "override";
41 :
42 E : std::unique_ptr<base::Environment> env(base::Environment::Create());
43 :
44 : // Ensure the variable isn't set.
45 E : std::string initial_value;
46 E : ASSERT_FALSE(env->GetVar(kVariableName, &initial_value));
47 :
48 : // Set it if necessary.
49 E : if (is_variable_set)
50 E : ASSERT_TRUE(env->SetVar(kVariableName, kVariableValue));
51 :
52 : // Override the variable.
53 E : std::unique_ptr<ScopedEnvironmentVariable> override(
54 : new ScopedEnvironmentVariable(kVariableName, kVariableOverrideValue));
55 E : std::string retrieved_value;
56 E : ASSERT_TRUE(env->GetVar(kVariableName, &retrieved_value));
57 E : ASSERT_EQ(kVariableOverrideValue, retrieved_value);
58 :
59 : // Delete the override.
60 E : override.reset();
61 E : if (is_variable_set) {
62 E : ASSERT_TRUE(env->GetVar(kVariableName, &retrieved_value));
63 E : ASSERT_EQ(kVariableValue, retrieved_value);
64 E : } else {
65 E : ASSERT_FALSE(env->GetVar(kVariableName, &retrieved_value));
66 : }
67 E : }
68 :
69 : } // namespace
70 :
71 E : TEST(CommonUnitTestUtil, ScopedEnvironmentVariableNotSetCase) {
72 E : ScopedEnvironmentVariableTestImpl(false);
73 E : }
74 :
75 E : TEST(CommonUnitTestUtil, ScopedEnvironmentVariableSetCase) {
76 E : ScopedEnvironmentVariableTestImpl(true);
77 E : }
78 :
79 : } // namespace testing
|