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