Reverted for now while Joseph and I figure out a solution for this.
Thanks Jie!
Joris

On Wed, Sep 16, 2015 at 6:21 PM, Jie Yu <[email protected]> wrote:

> A different error on Ubuntu:
>
> In file included from ../../3rdparty/libprocess/include/process/http.hpp:39:0,
>                  from ../../3rdparty/libprocess/include/process/event.hpp:21,
>                  from 
> ../../3rdparty/libprocess/include/process/process.hpp:26,
>                  from ../../src/docker/executor.cpp:26:
> ../../3rdparty/libprocess/3rdparty/stout/include/stout/json.hpp: In function 
> 'std::ostream& JSON::operator<<(std::ostream&, const JSON::Number&)':
> ../../3rdparty/libprocess/3rdparty/stout/include/stout/json.hpp:638:1: error: 
> control reaches end of non-void function [-Werror=return-type]
>  }
>  ^
> cc1plus: all warnings being treated as errors
>
>
> On Wed, Sep 16, 2015 at 3:16 PM, Jie Yu <[email protected]> wrote:
>
>> It breaks the CI as well:
>>
>> https://builds.apache.org/job/Mesos/COMPILER=gcc,CONFIGURATION=--verbose,OS=centos:7,label_exp=docker%7C%7CHadoop/807/console
>>
>> On Wed, Sep 16, 2015 at 3:15 PM, Jie Yu <[email protected]> wrote:
>>
>>> Joris, I am using CentOS6 with devtoolset-2
>>>
>>> gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC)
>>>
>>> I did a clean build (rebootstrap, reconfigure).
>>>
>>> - Jie
>>>
>>>
>>> On Wed, Sep 16, 2015 at 3:14 PM, Joris Van Remoortere <
>>> [email protected]> wrote:
>>>
>>>> Hi Jie,
>>>> Can you share your build info?
>>>> Did you rebootstrap?
>>>>
>>>> We've been building this for over a week so we must have a different
>>>> configuration.
>>>>
>>>> Thanks for letting us know! We will resolve this quickly :-)
>>>>
>>>> Joris
>>>>
>>>> On Wed, Sep 16, 2015 at 6:05 PM, Jie Yu <[email protected]> wrote:
>>>>
>>>>> Joris,
>>>>>
>>>>> It breaks the build:
>>>>>
>>>>> picojson-1.3.0/picojson.h: In member function ‘std::string
>>>>> picojson::value::to_str() const’:
>>>>> picojson-1.3.0/picojson.h:370:38: error: expected ‘)’ before ‘PRId64’
>>>>>        SNPRINTF(buf, sizeof(buf), "%" PRId64, u_.int64_);
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Sep 16, 2015 at 2:56 PM, <[email protected]> wrote:
>>>>>
>>>>> > Integer Precision for JSON <-> Protobuf conversions.
>>>>> >
>>>>> > * Add TODO's for refactoring some JSON parsing in the docker code
>>>>> >   (See MESOS-3409).  Update how the JSON::Number is used.
>>>>> > * Tweak some tests to match changes to JSON::Number.
>>>>> > * Address a TODO on one test, which used a workaround for
>>>>> >   double-precision comparison.
>>>>> >
>>>>> > Review: https://reviews.apache.org/r/38077
>>>>> >
>>>>> >
>>>>> > Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
>>>>> > Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/2c277f1c
>>>>> > Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/2c277f1c
>>>>> > Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/2c277f1c
>>>>> >
>>>>> > Branch: refs/heads/master
>>>>> > Commit: 2c277f1c0e0dc0a6618ba930bb5f8d9dd753d4be
>>>>> > Parents: df9eacb
>>>>> > Author: Joseph Wu <[email protected]>
>>>>> > Authored: Wed Sep 16 13:44:47 2015 -0400
>>>>> > Committer: Joris Van Remoortere <[email protected]>
>>>>> > Committed: Wed Sep 16 17:48:43 2015 -0400
>>>>> >
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> >  src/docker/docker.cpp                           |   3 +-
>>>>> >  .../provisioners/docker/token_manager.cpp       |   3 +-
>>>>> >  src/tests/fault_tolerance_tests.cpp             |   2 +-
>>>>> >  src/tests/master_tests.cpp                      |   2 +-
>>>>> >  src/tests/monitor_tests.cpp                     |  50 +++------
>>>>> >  src/tests/rate_limiting_tests.cpp               | 106
>>>>> +++++++++++++------
>>>>> >  src/tests/slave_tests.cpp                       |   2 +-
>>>>> >  7 files changed, 93 insertions(+), 75 deletions(-)
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/2c277f1c/src/docker/docker.cpp
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> > diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp
>>>>> > index c4c37cb..afcedf1 100755
>>>>> > --- a/src/docker/docker.cpp
>>>>> > +++ b/src/docker/docker.cpp
>>>>> > @@ -236,6 +236,7 @@ Try<Nothing> Docker::validateVersion(const
>>>>> Version&
>>>>> > minVersion) const
>>>>> >  }
>>>>> >
>>>>> >
>>>>> > +// TODO(josephw): Parse this string with a protobuf.
>>>>> >  Try<Docker::Container> Docker::Container::create(const string&
>>>>> output)
>>>>> >  {
>>>>> >    Try<JSON::Array> parse = JSON::parse<JSON::Array>(output);
>>>>> > @@ -286,7 +287,7 @@ Try<Docker::Container>
>>>>> Docker::Container::create(const
>>>>> > string& output)
>>>>> >      return Error("Error finding Pid in State: " + pidValue.error());
>>>>> >    }
>>>>> >
>>>>> > -  pid_t pid = pid_t(pidValue.get().value);
>>>>> > +  pid_t pid = pid_t(pidValue.get().as<int64_t>());
>>>>> >
>>>>> >    Option<pid_t> optionalPid;
>>>>> >    if (pid != 0) {
>>>>> >
>>>>> >
>>>>> >
>>>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/2c277f1c/src/slave/containerizer/provisioners/docker/token_manager.cpp
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> > diff --git
>>>>> a/src/slave/containerizer/provisioners/docker/token_manager.cpp
>>>>> > b/src/slave/containerizer/provisioners/docker/token_manager.cpp
>>>>> > index aec915f..95f459d 100644
>>>>> > --- a/src/slave/containerizer/provisioners/docker/token_manager.cpp
>>>>> > +++ b/src/slave/containerizer/provisioners/docker/token_manager.cpp
>>>>> > @@ -122,6 +122,7 @@ Token::Token(
>>>>> >      notBefore(_notBefore) {}
>>>>> >
>>>>> >
>>>>> > +// TODO(josephw): Parse this string with some protobufs.
>>>>> >  Try<Token> Token::create(const string& raw)
>>>>> >  {
>>>>> >    auto decode = [](
>>>>> > @@ -196,7 +197,7 @@ Result<Time> Token::getTimeValue(const
>>>>> JSON::Object&
>>>>> > object, const string& key)
>>>>> >
>>>>> >    // If expiration is provided, we will process it for future
>>>>> validations.
>>>>> >    if (jsonValue.isSome()) {
>>>>> > -    Try<Time> time = Time::create(jsonValue.get().value);
>>>>> > +    Try<Time> time = Time::create(jsonValue.get().as<double>());
>>>>> >      if (time.isError()) {
>>>>> >        return Error("Failed to decode time: " + time.error());
>>>>> >      }
>>>>> >
>>>>> >
>>>>> >
>>>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/2c277f1c/src/tests/fault_tolerance_tests.cpp
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> > diff --git a/src/tests/fault_tolerance_tests.cpp
>>>>> > b/src/tests/fault_tolerance_tests.cpp
>>>>> > index 061e099..c97bc46 100644
>>>>> > --- a/src/tests/fault_tolerance_tests.cpp
>>>>> > +++ b/src/tests/fault_tolerance_tests.cpp
>>>>> > @@ -1918,7 +1918,7 @@ TEST_F(FaultToleranceTest,
>>>>> > UpdateFrameworkInfoOnSchedulerFailover)
>>>>> >    EXPECT_EQ(1u, framework.values.count("failover_timeout"));
>>>>> >    JSON::Number failoverTimeout =
>>>>> >      framework.values["failover_timeout"].as<JSON::Number>();
>>>>> > -  EXPECT_EQ(finfo2.failover_timeout(), failoverTimeout.value);
>>>>> > +  EXPECT_EQ(finfo2.failover_timeout(),
>>>>> failoverTimeout.as<double>());
>>>>> >
>>>>> >    EXPECT_EQ(1u, framework.values.count("hostname"));
>>>>> >    JSON::String hostname =
>>>>> framework.values["hostname"].as<JSON::String>();
>>>>> >
>>>>> >
>>>>> >
>>>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/2c277f1c/src/tests/master_tests.cpp
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> > diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
>>>>> > index dd65fcc..e4c89ab 100644
>>>>> > --- a/src/tests/master_tests.cpp
>>>>> > +++ b/src/tests/master_tests.cpp
>>>>> > @@ -2826,7 +2826,7 @@ TEST_F(MasterTest, StateEndpoint)
>>>>> >    ASSERT_TRUE(state.values["start_time"].is<JSON::Number>());
>>>>> >    EXPECT_EQ(
>>>>> >        static_cast<int>(Clock::now().secs()),
>>>>> > -
>>>>> >
>>>>> static_cast<int>(state.values["start_time"].as<JSON::Number>().value));
>>>>> > +      state.values["start_time"].as<JSON::Number>().as<int>());
>>>>> >
>>>>> >    ASSERT_TRUE(state.values["id"].is<JSON::String>());
>>>>> >    EXPECT_NE("", state.values["id"].as<JSON::String>().value);
>>>>> >
>>>>> >
>>>>> >
>>>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/2c277f1c/src/tests/monitor_tests.cpp
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> > diff --git a/src/tests/monitor_tests.cpp
>>>>> b/src/tests/monitor_tests.cpp
>>>>> > index f404955..583e711 100644
>>>>> > --- a/src/tests/monitor_tests.cpp
>>>>> > +++ b/src/tests/monitor_tests.cpp
>>>>> > @@ -106,44 +106,18 @@ TEST(MonitorTest, Statistics)
>>>>> >        "Content-Type",
>>>>> >        response);
>>>>> >
>>>>> > -  // TODO(bmahler): Use JSON equality instead to avoid having to use
>>>>> > -  // numeric limits for double precision.
>>>>> > -  AWAIT_EXPECT_RESPONSE_BODY_EQ(
>>>>> > -      strings::format(
>>>>> > -          "[{"
>>>>> > -              "\"executor_id\":\"executor\","
>>>>> > -              "\"executor_name\":\"name\","
>>>>> > -              "\"framework_id\":\"framework\","
>>>>> > -              "\"source\":\"source\","
>>>>> > -              "\"statistics\":{"
>>>>> > -                  "\"cpus_limit\":%g,"
>>>>> > -                  "\"cpus_nr_periods\":%d,"
>>>>> > -                  "\"cpus_nr_throttled\":%d,"
>>>>> > -                  "\"cpus_system_time_secs\":%g,"
>>>>> > -                  "\"cpus_throttled_time_secs\":%g,"
>>>>> > -                  "\"cpus_user_time_secs\":%g,"
>>>>> > -                  "\"mem_anon_bytes\":%lu,"
>>>>> > -                  "\"mem_file_bytes\":%lu,"
>>>>> > -                  "\"mem_limit_bytes\":%lu,"
>>>>> > -                  "\"mem_mapped_file_bytes\":%lu,"
>>>>> > -                  "\"mem_rss_bytes\":%lu,"
>>>>> > -                  "\"timestamp\":"
>>>>> > -                      "%." +
>>>>> stringify(numeric_limits<double>::digits10)
>>>>> > + "g"
>>>>> > -              "}"
>>>>> > -          "}]",
>>>>> > -          statistics.cpus_limit(),
>>>>> > -          statistics.cpus_nr_periods(),
>>>>> > -          statistics.cpus_nr_throttled(),
>>>>> > -          statistics.cpus_system_time_secs(),
>>>>> > -          statistics.cpus_throttled_time_secs(),
>>>>> > -          statistics.cpus_user_time_secs(),
>>>>> > -          statistics.mem_anon_bytes(),
>>>>> > -          statistics.mem_file_bytes(),
>>>>> > -          statistics.mem_limit_bytes(),
>>>>> > -          statistics.mem_mapped_file_bytes(),
>>>>> > -          statistics.mem_rss_bytes(),
>>>>> > -          statistics.timestamp()).get(),
>>>>> > -      response);
>>>>> > +  JSON::Array expected;
>>>>> > +  JSON::Object usage;
>>>>> > +  usage.values["executor_id"] = "executor";
>>>>> > +  usage.values["executor_name"] = "name";
>>>>> > +  usage.values["framework_id"] = "framework";
>>>>> > +  usage.values["source"] = "source";
>>>>> > +  usage.values["statistics"] = JSON::Protobuf(statistics);
>>>>> > +  expected.values.push_back(usage);
>>>>> > +
>>>>> > +  Try<JSON::Array> result =
>>>>> JSON::parse<JSON::Array>(response.get().body);
>>>>> > +  ASSERT_SOME(result);
>>>>> > +  ASSERT_EQ(expected, result.get());
>>>>> >  }
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/2c277f1c/src/tests/rate_limiting_tests.cpp
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> > diff --git a/src/tests/rate_limiting_tests.cpp
>>>>> > b/src/tests/rate_limiting_tests.cpp
>>>>> > index f3aedde..e512aa6 100644
>>>>> > --- a/src/tests/rate_limiting_tests.cpp
>>>>> > +++ b/src/tests/rate_limiting_tests.cpp
>>>>> > @@ -166,12 +166,16 @@ TEST_F(RateLimitingTest, NoRateLimiting)
>>>>> >      const string& messages_received =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_received";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >      const string& messages_processed =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    Future<Nothing> removeFramework =
>>>>> > @@ -270,12 +274,16 @@ TEST_F(RateLimitingTest, RateLimitingEnabled)
>>>>> >      const string& messages_received =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_received";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >      const string& messages_processed =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    // The 2nd message is throttled for a second.
>>>>> > @@ -305,8 +313,12 @@ TEST_F(RateLimitingTest, RateLimitingEnabled)
>>>>> >
>>>>> >      // The 2nd message is received and but not processed after half
>>>>> >      // a second because of throttling.
>>>>> > -    EXPECT_EQ(2,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        2,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >      EXPECT_TRUE(duplicateFrameworkRegisteredMessage.isPending());
>>>>> >    }
>>>>> >
>>>>> > @@ -324,8 +336,10 @@ TEST_F(RateLimitingTest, RateLimitingEnabled)
>>>>> >      "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >    EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> >
>>>>> > -  EXPECT_EQ(2,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > -  EXPECT_EQ(2,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +  EXPECT_EQ(
>>>>> > +      2,
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> > +  EXPECT_EQ(
>>>>> > +      2,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >    EXPECT_EQ(DRIVER_STOPPED, driver.stop());
>>>>> >    EXPECT_EQ(DRIVER_STOPPED, driver.join());
>>>>> > @@ -481,19 +495,19 @@ TEST_F(RateLimitingTest,
>>>>> > DifferentPrincipalFrameworks)
>>>>> >        EXPECT_EQ(
>>>>> >            2,
>>>>> >            metrics.values["frameworks/framework1/messages_received"]
>>>>> > -            .as<JSON::Number>().value);
>>>>> > +            .as<JSON::Number>().as<int64_t>());
>>>>> >        EXPECT_EQ(
>>>>> >            2,
>>>>> >            metrics.values["frameworks/framework2/messages_received"]
>>>>> > -            .as<JSON::Number>().value);
>>>>> > +            .as<JSON::Number>().as<int64_t>());
>>>>> >        EXPECT_EQ(
>>>>> >            1,
>>>>> >            metrics.values["frameworks/framework1/messages_processed"]
>>>>> > -            .as<JSON::Number>().value);
>>>>> > +            .as<JSON::Number>().as<int64_t>());
>>>>> >        EXPECT_EQ(
>>>>> >            1,
>>>>> >            metrics.values["frameworks/framework2/messages_processed"]
>>>>> > -            .as<JSON::Number>().value);
>>>>> > +            .as<JSON::Number>().as<int64_t>());
>>>>> >      }
>>>>> >
>>>>> >      // Advance for a second so the message from framework1 (1qps)
>>>>> > @@ -508,11 +522,11 @@ TEST_F(RateLimitingTest,
>>>>> > DifferentPrincipalFrameworks)
>>>>> >      EXPECT_EQ(
>>>>> >          2,
>>>>> >          metrics.values["frameworks/framework1/messages_processed"]
>>>>> > -          .as<JSON::Number>().value);
>>>>> > +          .as<JSON::Number>().as<int64_t>());
>>>>> >      EXPECT_EQ(
>>>>> >          1,
>>>>> >          metrics.values["frameworks/framework2/messages_processed"]
>>>>> > -          .as<JSON::Number>().value);
>>>>> > +          .as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >      // After another half a second framework2 (0.2qps)'s message is
>>>>> >      // processed as well.
>>>>> > @@ -535,19 +549,19 @@ TEST_F(RateLimitingTest,
>>>>> > DifferentPrincipalFrameworks)
>>>>> >      EXPECT_EQ(
>>>>> >          2,
>>>>> >          metrics.values["frameworks/framework1/messages_received"]
>>>>> > -          .as<JSON::Number>().value);
>>>>> > +          .as<JSON::Number>().as<int64_t>());
>>>>> >      EXPECT_EQ(
>>>>> >          2,
>>>>> >          metrics.values["frameworks/framework2/messages_received"]
>>>>> > -          .as<JSON::Number>().value);
>>>>> > +          .as<JSON::Number>().as<int64_t>());
>>>>> >      EXPECT_EQ(
>>>>> >          2,
>>>>> >          metrics.values["frameworks/framework1/messages_processed"]
>>>>> > -          .as<JSON::Number>().value);
>>>>> > +          .as<JSON::Number>().as<int64_t>());
>>>>> >      EXPECT_EQ(
>>>>> >          2,
>>>>> >          metrics.values["frameworks/framework2/messages_processed"]
>>>>> > -          .as<JSON::Number>().value);
>>>>> > +          .as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    // 3. Remove a framework and its message counters are deleted
>>>>> while
>>>>> > @@ -705,12 +719,16 @@ TEST_F(RateLimitingTest,
>>>>> SamePrincipalFrameworks)
>>>>> >      const string& messages_received =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_received";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -    EXPECT_EQ(2,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        2,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >      const string& messages_processed =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    // Advance for another half a second to make sure throttled
>>>>> > @@ -828,12 +846,16 @@ TEST_F(RateLimitingTest, SchedulerFailover)
>>>>> >      const string& messages_received =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_received";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >      const string& messages_processed =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    // 2. Now launch the second (i.e., failover) scheduler using the
>>>>> > @@ -898,12 +920,16 @@ TEST_F(RateLimitingTest, SchedulerFailover)
>>>>> >      const string& messages_received =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_received";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -    EXPECT_EQ(2,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        2,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >      const string& messages_processed =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    // Need another half a second to have it processed.
>>>>> > @@ -922,12 +948,16 @@ TEST_F(RateLimitingTest, SchedulerFailover)
>>>>> >      const string& messages_received =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_received";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -    EXPECT_EQ(2,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        2,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >      const string& messages_processed =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> > -    EXPECT_EQ(2,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        2,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    EXPECT_EQ(DRIVER_STOPPED, driver2.stop());
>>>>> > @@ -1012,12 +1042,16 @@ TEST_F(RateLimitingTest, CapacityReached)
>>>>> >      const string& messages_received =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_received";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >      const string& messages_processed =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    // The subsequent messages are going to be throttled.
>>>>> > @@ -1064,12 +1098,16 @@ TEST_F(RateLimitingTest, CapacityReached)
>>>>> >      const string& messages_received =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_received";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -    EXPECT_EQ(5,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        5,
>>>>> > +
>>>>> > metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >      const string& messages_processed =
>>>>> >        "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >      EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> >      // Four messages not processed, two in the queue and two
>>>>> dropped.
>>>>> > -    EXPECT_EQ(1,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +    EXPECT_EQ(
>>>>> > +        1,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >    }
>>>>> >
>>>>> >    // Advance three times for the two pending messages and the exited
>>>>> > @@ -1086,12 +1124,16 @@ TEST_F(RateLimitingTest, CapacityReached)
>>>>> >    const string& messages_received =
>>>>> >      "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> "/messages_received";
>>>>> >    EXPECT_EQ(1u, metrics.values.count(messages_received));
>>>>> > -  EXPECT_EQ(5,
>>>>> > metrics.values[messages_received].as<JSON::Number>().value);
>>>>> > +  EXPECT_EQ(
>>>>> > +      5,
>>>>> > +
>>>>> metrics.values[messages_received].as<JSON::Number>().as<int64_t>());
>>>>> >    const string& messages_processed =
>>>>> >      "frameworks/" + DEFAULT_CREDENTIAL.principal() +
>>>>> > "/messages_processed";
>>>>> >    EXPECT_EQ(1u, metrics.values.count(messages_processed));
>>>>> >    // Two messages are dropped.
>>>>> > -  EXPECT_EQ(3,
>>>>> > metrics.values[messages_processed].as<JSON::Number>().value);
>>>>> > +  EXPECT_EQ(
>>>>> > +      3,
>>>>> > +
>>>>> > metrics.values[messages_processed].as<JSON::Number>().as<int64_t>());
>>>>> >
>>>>> >    Shutdown();
>>>>> >  }
>>>>> >
>>>>> >
>>>>> >
>>>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/2c277f1c/src/tests/slave_tests.cpp
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> > diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp
>>>>> > index 447c43c..dbe9b1d 100644
>>>>> > --- a/src/tests/slave_tests.cpp
>>>>> > +++ b/src/tests/slave_tests.cpp
>>>>> > @@ -1080,7 +1080,7 @@ TEST_F(SlaveTest, StateEndpoint)
>>>>> >    ASSERT_TRUE(state.values["start_time"].is<JSON::Number>());
>>>>> >    EXPECT_EQ(
>>>>> >        static_cast<int>(Clock::now().secs()),
>>>>> > -
>>>>> >
>>>>> static_cast<int>(state.values["start_time"].as<JSON::Number>().value));
>>>>> > +      state.values["start_time"].as<JSON::Number>().as<int>());
>>>>> >
>>>>> >    // TODO(bmahler): The slave must register for the 'id'
>>>>> >    // to be non-empty.
>>>>> >
>>>>> >
>>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to