LCOV - code coverage report
Current view: top level - datadog - environment.cpp (source / functions) Hit Total Coverage
Test: filtered.info Lines: 13 14 92.9 %
Date: 2024-01-03 20:30:12 Functions: 3 3 100.0 %

          Line data    Source code
       1             : #include "environment.h"
       2             : 
       3             : #include <cstdlib>
       4             : 
       5             : #include "json.hpp"
       6             : 
       7             : namespace datadog {
       8             : namespace tracing {
       9             : namespace environment {
      10             : 
      11          75 : StringView name(Variable variable) { return variable_names[variable]; }
      12             : 
      13       20446 : Optional<StringView> lookup(Variable variable) {
      14       20446 :   const char *name = variable_names[variable];
      15       20446 :   const char *value = std::getenv(name);
      16       20446 :   if (!value) {
      17       20238 :     return nullopt;
      18             :   }
      19         208 :   return StringView{value};
      20             : }
      21             : 
      22         503 : nlohmann::json to_json() {
      23         503 :   auto result = nlohmann::json::object({});
      24             : 
      25       13078 :   for (const char *name : variable_names) {
      26       12575 :     if (const char *value = std::getenv(name)) {
      27           5 :       result[name] = value;
      28             :     }
      29             :   }
      30             : 
      31         503 :   return result;
      32           0 : }
      33             : 
      34             : }  // namespace environment
      35             : }  // namespace tracing
      36             : }  // namespace datadog

Generated by: LCOV version 1.16