Coverage for /Syzygy/agent/memprof/parameters_unittest.cc

CoverageLines executed / instrumented / missingexe / inst / missLanguageGroup
100.0%71710.C++test

Line-by-line coverage:

   1    :  // Copyright 2014 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    :  #include "syzygy/agent/memprof/parameters.h"
  16    :  
  17    :  #include "base/environment.h"
  18    :  #include "gtest/gtest.h"
  19    :  
  20    :  namespace agent {
  21    :  namespace memprof {
  22    :  
  23  E :  TEST(ParametersTest, SetDefaults) {
  24  E :    Parameters p = {};
  25  E :    SetDefaultParameters(&p);
  26  E :    EXPECT_EQ(kDefaultStackTraceTracking, p.stack_trace_tracking);
  27  E :    EXPECT_EQ(kDefaultSerializeTimestamps, p.serialize_timestamps);
  28  E :    EXPECT_EQ(kDefaultHashContentsAtFree, p.hash_contents_at_free);
  29  E :  }
  30    :  
  31  E :  TEST(ParametersTest, ParseInvalidStackTraceTracking) {
  32  E :    Parameters p = {};
  33  E :    SetDefaultParameters(&p);
  34  E :    std::string str("--stack-trace-tracking=foo");
  35  E :    EXPECT_FALSE(ParseParameters(str, &p));
  36  E :  }
  37    :  
  38  E :  TEST(ParametersTest, ParseMinimalCommandLine) {
  39  E :    Parameters p = {};
  40  E :    SetDefaultParameters(&p);
  41  E :    std::string str("");
  42  E :    EXPECT_TRUE(ParseParameters(str, &p));
  43  E :    EXPECT_EQ(kDefaultStackTraceTracking, p.stack_trace_tracking);
  44  E :    EXPECT_EQ(kDefaultSerializeTimestamps, p.serialize_timestamps);
  45  E :    EXPECT_EQ(kDefaultHashContentsAtFree, p.hash_contents_at_free);
  46  E :  }
  47    :  
  48  E :  TEST(ParametersTest, ParseMaximalCommandLine) {
  49  E :    Parameters p = {};
  50  E :    SetDefaultParameters(&p);
  51    :    std::string str("--stack-trace-tracking=emit "
  52    :                    "--serialize-timestamps "
  53  E :                    "--hash-contents-at-free");
  54  E :    EXPECT_TRUE(ParseParameters(str, &p));
  55  E :    EXPECT_EQ(kTrackingEmit, p.stack_trace_tracking);
  56  E :    EXPECT_TRUE(p.serialize_timestamps);
  57  E :    EXPECT_TRUE(p.hash_contents_at_free);
  58  E :  }
  59    :  
  60  E :  TEST(ParametersTest, ParseNoEnvironment) {
  61  E :    scoped_ptr<base::Environment> env(base::Environment::Create());
  62  E :    ASSERT_NE(nullptr, env.get());
  63  E :    env->UnSetVar(kParametersEnvVar);
  64    :  
  65  E :    Parameters p = {};
  66  E :    SetDefaultParameters(&p);
  67  E :    EXPECT_TRUE(ParseParametersFromEnv(&p));
  68  E :    EXPECT_EQ(kDefaultStackTraceTracking, p.stack_trace_tracking);
  69  E :    EXPECT_EQ(kDefaultSerializeTimestamps, p.serialize_timestamps);
  70  E :    EXPECT_EQ(kDefaultHashContentsAtFree, p.hash_contents_at_free);
  71  E :  }
  72    :  
  73  E :  TEST(ParametersTest, ParseEmptyEnvironment) {
  74  E :    scoped_ptr<base::Environment> env(base::Environment::Create());
  75  E :    ASSERT_NE(nullptr, env.get());
  76  E :    env->SetVar(kParametersEnvVar, "");
  77    :  
  78  E :    Parameters p = {};
  79  E :    SetDefaultParameters(&p);
  80  E :    EXPECT_TRUE(ParseParametersFromEnv(&p));
  81  E :    EXPECT_EQ(kDefaultStackTraceTracking, p.stack_trace_tracking);
  82  E :    EXPECT_EQ(kDefaultSerializeTimestamps, p.serialize_timestamps);
  83  E :    EXPECT_EQ(kDefaultHashContentsAtFree, p.hash_contents_at_free);
  84  E :  }
  85    :  
  86  E :  TEST(ParametersTest, ParseInvalidEnvironment) {
  87  E :    scoped_ptr<base::Environment> env(base::Environment::Create());
  88  E :    ASSERT_NE(nullptr, env.get());
  89  E :    env->SetVar(kParametersEnvVar, "--stack-trace-tracking=foo");
  90    :  
  91  E :    Parameters p = {};
  92  E :    SetDefaultParameters(&p);
  93  E :    EXPECT_FALSE(ParseParametersFromEnv(&p));
  94  E :  }
  95    :  
  96  E :  TEST(ParametersTest, ParseValidEnvironment) {
  97  E :    scoped_ptr<base::Environment> env(base::Environment::Create());
  98  E :    ASSERT_NE(nullptr, env.get());
  99    :    env->SetVar(kParametersEnvVar,
 100  E :                "--stack-trace-tracking=emit --serialize-timestamps");
 101    :  
 102  E :    Parameters p = {};
 103  E :    SetDefaultParameters(&p);
 104  E :    EXPECT_TRUE(ParseParametersFromEnv(&p));
 105  E :    EXPECT_EQ(kTrackingEmit, p.stack_trace_tracking);
 106  E :    EXPECT_TRUE(p.serialize_timestamps);
 107  E :  }
 108    :  
 109    :  }  // namespace memprof
 110    :  }  // namespace agent

Coverage information generated Thu Jan 14 17:40:38 2016.