From ceff6146f5e57b38dd4bd3e66b4798721f57179c Mon Sep 17 00:00:00 2001
From: Isuru Fernando <isuruf@gmail.com>
Date: Fri, 19 Jan 2024 19:14:50 -0600
Subject: [PATCH 6/9] Fix getting env variables on windows

---
 src/google/protobuf/compiler/mock_code_generator.cc | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/google/protobuf/compiler/mock_code_generator.cc b/src/google/protobuf/compiler/mock_code_generator.cc
index d7057a1e6..736e895bf 100644
--- a/src/google/protobuf/compiler/mock_code_generator.cc
+++ b/src/google/protobuf/compiler/mock_code_generator.cc
@@ -73,7 +73,13 @@ static constexpr absl::string_view kSecondInsertionPoint =
     "  # @@protoc_insertion_point(second_mock_insertion_point) is here\n";
 
 MockCodeGenerator::MockCodeGenerator(absl::string_view name) : name_(name) {
-  absl::string_view key = getenv("TEST_CASE");
+  const char* c_key = getenv("TEST_CASE");
+  if (c_key == NULL) {
+    // In Windows, setting 'TEST_CASE=' is equivalent to unsetting
+    // and therefore c_key can be NULL
+    c_key = "";
+  }
+  absl::string_view key(c_key);
   if (key == "no_editions") {
     suppressed_features_ |= CodeGenerator::FEATURE_SUPPORTS_EDITIONS;
   } else if (key == "invalid_features") {
