diff options
author | Abseil Team <absl-team@google.com> | 2020-01-06T19·41-0800 |
---|---|---|
committer | Derek Mauro <dmauro@google.com> | 2020-01-06T19·52-0500 |
commit | a048203a881f11f4b7b8df5fb563aec85522f8db (patch) | |
tree | 6f04d7cc25d16959512fddf7e74ac5f7bef7eaeb /absl/random/internal | |
parent | 1de0166368e2ae67347f92099d6dca3ab3a4a496 (diff) |
Export of internal Abseil changes
-- d3a10a071226497cd34be0f41cb55449193b7172 by Andy Soffer <asoffer@google.com>: Removing formatting traits that were only used internally. ON_CALL/EXPECT_CALL do a sufficient job here. PiperOrigin-RevId: 288342973 -- df8180038ea36a0876a84fdc163d1319a611f9db by Greg Falcon <gfalcon@google.com>: Add CI testing for alternate options.h settings. PiperOrigin-RevId: 288323951 GitOrigin-RevId: d3a10a071226497cd34be0f41cb55449193b7172 Change-Id: I26c75a1ededd52dd2c5a4c50e220d0b8a52d5c7c
Diffstat (limited to 'absl/random/internal')
-rw-r--r-- | absl/random/internal/BUILD.bazel | 1 | ||||
-rw-r--r-- | absl/random/internal/distribution_caller.h | 18 | ||||
-rw-r--r-- | absl/random/internal/mocking_bit_gen_base.h | 42 |
3 files changed, 4 insertions, 57 deletions
diff --git a/absl/random/internal/BUILD.bazel b/absl/random/internal/BUILD.bazel index d7ad4efec989..8839078f5f9e 100644 --- a/absl/random/internal/BUILD.bazel +++ b/absl/random/internal/BUILD.bazel @@ -509,7 +509,6 @@ cc_library( linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ "//absl/random", - "//absl/strings", ], ) diff --git a/absl/random/internal/distribution_caller.h b/absl/random/internal/distribution_caller.h index 02603cf84355..ae2680ddd40a 100644 --- a/absl/random/internal/distribution_caller.h +++ b/absl/random/internal/distribution_caller.h @@ -31,22 +31,8 @@ namespace random_internal { template <typename URBG> struct DistributionCaller { // Call the provided distribution type. The parameters are expected - // to be explicitly specified. - // DistrT is the distribution type. - // FormatT is the formatter type: - // - // struct FormatT { - // using result_type = distribution_t::result_type; - // static std::string FormatCall( - // const distribution_t& distr, - // absl::Span<const result_type>); - // - // static std::string FormatExpectation( - // absl::string_view match_args, - // absl::Span<const result_t> results); - // } - // - template <typename DistrT, typename FormatT, typename... Args> + // to be explicitly specified. DistrT is the distribution type. + template <typename DistrT, typename... Args> static typename DistrT::result_type Call(URBG* urbg, Args&&... args) { DistrT dist(std::forward<Args>(args)...); return dist(*urbg); diff --git a/absl/random/internal/mocking_bit_gen_base.h b/absl/random/internal/mocking_bit_gen_base.h index eeeae9d295b2..acd6387204aa 100644 --- a/absl/random/internal/mocking_bit_gen_base.h +++ b/absl/random/internal/mocking_bit_gen_base.h @@ -16,39 +16,14 @@ #ifndef ABSL_RANDOM_INTERNAL_MOCKING_BIT_GEN_BASE_H_ #define ABSL_RANDOM_INTERNAL_MOCKING_BIT_GEN_BASE_H_ -#include <atomic> -#include <deque> -#include <string> #include <typeinfo> #include "absl/random/random.h" -#include "absl/strings/str_cat.h" namespace absl { ABSL_NAMESPACE_BEGIN namespace random_internal { -// MockingBitGenExpectationFormatter is invoked to format unsatisfied mocks -// and remaining results into a description string. -template <typename DistrT, typename FormatT> -struct MockingBitGenExpectationFormatter { - std::string operator()(absl::string_view args) { - return absl::StrCat(FormatT::FunctionName(), "(", args, ")"); - } -}; - -// MockingBitGenCallFormatter is invoked to format each distribution call -// into a description string for the mock log. -template <typename DistrT, typename FormatT> -struct MockingBitGenCallFormatter { - std::string operator()(const DistrT& dist, - const typename DistrT::result_type& result) { - return absl::StrCat( - FormatT::FunctionName(), "(", FormatT::FormatArgs(dist), ") => {", - FormatT::FormatResults(absl::MakeSpan(&result, 1)), "}"); - } -}; - class MockingBitGenBase { template <typename> friend struct DistributionCaller; @@ -61,14 +36,9 @@ class MockingBitGenBase { static constexpr result_type(max)() { return (generator_type::max)(); } result_type operator()() { return gen_(); } - MockingBitGenBase() : gen_(), observed_call_log_() {} virtual ~MockingBitGenBase() = default; protected: - const std::deque<std::string>& observed_call_log() { - return observed_call_log_; - } - // CallImpl is the type-erased virtual dispatch. // The type of dist is always distribution<T>, // The type of result is always distribution<T>::result_type. @@ -81,10 +51,9 @@ class MockingBitGenBase { } // Call the generating distribution function. - // Invoked by DistributionCaller<>::Call<DistT, FormatT>. + // Invoked by DistributionCaller<>::Call<DistT>. // DistT is the distribution type. - // FormatT is the distribution formatter traits type. - template <typename DistrT, typename FormatT, typename... Args> + template <typename DistrT, typename... Args> typename DistrT::result_type Call(Args&&... args) { using distr_result_type = typename DistrT::result_type; using ArgTupleT = std::tuple<absl::decay_t<Args>...>; @@ -99,18 +68,11 @@ class MockingBitGenBase { if (!found_match) { result = dist(gen_); } - - // TODO(asoffer): Forwarding the args through means we no longer need to - // extract them from the from the distribution in formatter traits. We can - // just StrJoin them. - observed_call_log_.push_back( - MockingBitGenCallFormatter<DistrT, FormatT>{}(dist, result)); return result; } private: generator_type gen_; - std::deque<std::string> observed_call_log_; }; // namespace random_internal } // namespace random_internal |