about summary refs log tree commit diff
path: root/absl/flags/internal
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2019-09-09T15·20-0700
committerShaindel Schwartz <shaindel@google.com>2019-09-09T16·41-0400
commit97c1664b4bbab5f78fac2b151ab02656268fb34b (patch)
tree738a650a90ee00d11eb7b0a76a8631748319ac96 /absl/flags/internal
parent325fd7b042ff4ec34f7dd32e602cd81ad0e24b22 (diff)
Export of internal Abseil changes
--
167cd2647144583746311129b0cc98a89a9897e1 by Andy Soffer <asoffer@google.com>:

Internal Changes

PiperOrigin-RevId: 268000987

--
ab44fea7dfdaf763c69609a08ddfac22480ce520 by Derek Mauro <dmauro@google.com>:

Fix flags Cmake tests on Windows

PiperOrigin-RevId: 267859442

--
d7ec9f7611370b01bc9a5aed7e18460df2a15429 by Abseil Team <absl-team@google.com>:

Fix undefined behavior in symbolize_elf.inc

PiperOrigin-RevId: 267684904

--
e7c5f8e472a91ed99bdf4876942f2bda5751aa6c by Abseil Team <absl-team@google.com>:

Turn off ABSL_HAS_ALARM on Fuchsia.

PiperOrigin-RevId: 267666090

--
b7d25d5c71a49e697a8bf6440ed30f2e3f036420 by Chris Kennelly <ckennelly@google.com>:

Mark once initialization function as no inline.

We expect this code to run infrequently.

PiperOrigin-RevId: 267649713

--
dc2a5e5f1e39a03fff837d34a319033fde55d9ba by Derek Mauro <dmauro@google.com>:

Fix the MSVC CMake random build

PiperOrigin-RevId: 267624074

--
ba2751b67fa17d1b6c53e5ba79f81a5371e4a03a by Abseil Team <absl-team@google.com>:

Move "internal/flag.*" files to the "internal" build target.

PiperOrigin-RevId: 267588996

--
05b985a33eec4f8acff1809ad9218a1e22220f34 by Abseil Team <absl-team@google.com>:

Move "internal/flag.*" files to the "internal" build target.

PiperOrigin-RevId: 267580412
GitOrigin-RevId: 167cd2647144583746311129b0cc98a89a9897e1
Change-Id: Ibd334f46a5671c7c1d3fcf5354029e2fbb7ba91f
Diffstat (limited to 'absl/flags/internal')
-rw-r--r--absl/flags/internal/commandlineflag_test.cc34
-rw-r--r--absl/flags/internal/usage_test.cc4
2 files changed, 30 insertions, 8 deletions
diff --git a/absl/flags/internal/commandlineflag_test.cc b/absl/flags/internal/commandlineflag_test.cc
index f0d57adbd260..5a0c271e853d 100644
--- a/absl/flags/internal/commandlineflag_test.cc
+++ b/absl/flags/internal/commandlineflag_test.cc
@@ -15,9 +15,13 @@
 
 #include "absl/flags/internal/commandlineflag.h"
 
+#include <algorithm>
+#include <string>
+
 #include "gtest/gtest.h"
 #include "absl/flags/flag.h"
 #include "absl/flags/internal/registry.h"
+#include "absl/flags/usage_config.h"
 #include "absl/memory/memory.h"
 #include "absl/strings/match.h"
 #include "absl/strings/str_cat.h"
@@ -33,10 +37,26 @@ namespace flags = absl::flags_internal;
 
 class CommandLineFlagTest : public testing::Test {
  protected:
+  static void SetUpTestSuite() {
+    // Install a function to normalize filenames before this test is run.
+    absl::FlagsUsageConfig default_config;
+    default_config.normalize_filename = &CommandLineFlagTest::NormalizeFileName;
+    absl::SetFlagsUsageConfig(default_config);
+  }
+
   void SetUp() override { flag_saver_ = absl::make_unique<flags::FlagSaver>(); }
   void TearDown() override { flag_saver_.reset(); }
 
  private:
+  static std::string NormalizeFileName(absl::string_view fname) {
+#ifdef _WIN32
+    std::string normalized(fname);
+    std::replace(normalized.begin(), normalized.end(), '\\', '/');
+    fname = normalized;
+#endif
+    return std::string(fname);
+  }
+
   std::unique_ptr<flags::FlagSaver> flag_saver_;
 };
 
@@ -49,9 +69,10 @@ TEST_F(CommandLineFlagTest, TestAttributesAccessMethods) {
   EXPECT_EQ(flag_01->Typename(), "");
   EXPECT_TRUE(!flag_01->IsRetired());
   EXPECT_TRUE(flag_01->IsOfType<int>());
-  EXPECT_TRUE(absl::EndsWith(
-      flag_01->Filename(),
-      "absl/flags/internal/commandlineflag_test.cc"));
+  EXPECT_TRUE(
+      absl::EndsWith(flag_01->Filename(),
+                     "absl/flags/internal/commandlineflag_test.cc"))
+      << flag_01->Filename();
 
   auto* flag_02 = flags::FindCommandLineFlag("string_flag");
 
@@ -61,9 +82,10 @@ TEST_F(CommandLineFlagTest, TestAttributesAccessMethods) {
   EXPECT_EQ(flag_02->Typename(), "");
   EXPECT_TRUE(!flag_02->IsRetired());
   EXPECT_TRUE(flag_02->IsOfType<std::string>());
-  EXPECT_TRUE(absl::EndsWith(
-      flag_02->Filename(),
-      "absl/flags/internal/commandlineflag_test.cc"));
+  EXPECT_TRUE(
+      absl::EndsWith(flag_02->Filename(),
+                     "absl/flags/internal/commandlineflag_test.cc"))
+      << flag_02->Filename();
 
   auto* flag_03 = flags::FindRetiredFlag("bool_retired_flag");
 
diff --git a/absl/flags/internal/usage_test.cc b/absl/flags/internal/usage_test.cc
index 8538b2b60884..d15e44847ffb 100644
--- a/absl/flags/internal/usage_test.cc
+++ b/absl/flags/internal/usage_test.cc
@@ -67,9 +67,9 @@ static std::string NormalizeFileName(absl::string_view fname) {
   fname = normalized;
 #endif
 
-  auto absl_pos = fname.find("/absl/");
+  auto absl_pos = fname.rfind("absl/");
   if (absl_pos != absl::string_view::npos) {
-    fname = fname.substr(absl_pos + 1);
+    fname = fname.substr(absl_pos);
   }
   return std::string(fname);
 }