Commit 140c62d2 authored by Mark Isaacson's avatar Mark Isaacson Committed by facebook-github-bot-0

Make folly's T_CHECK_TIMEOUT/T_CHECK_TIME_LT use SKIP() on failure

Summary: Make these more spurious failure-aware/tolerant.

Reviewed By: yfeldblum

Differential Revision: D2689775

fb-gh-sync-id: 1a9b247b97cc3529b12f6f7b76a4af2e32822d45
parent f6f52f3e
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#pragma once #pragma once
#include <folly/io/async/test/TimeUtil.h> #include <folly/io/async/test/TimeUtil.h>
#include <folly/test/TestUtils.h>
#include <gtest/gtest.h> #include <gtest/gtest.h>
/** /**
...@@ -37,9 +38,11 @@ ...@@ -37,9 +38,11 @@
* @param tolerance The tolerance, in milliseconds. * @param tolerance The tolerance, in milliseconds.
*/ */
#define T_CHECK_TIMEOUT(start, end, expectedMS, ...) \ #define T_CHECK_TIMEOUT(start, end, expectedMS, ...) \
EXPECT_TRUE(::folly::checkTimeout((start), (end), \ if (!::folly::checkTimeout((start), (end), \
(expectedMS), false, \ (expectedMS), false, \
##__VA_ARGS__)) ##__VA_ARGS__)) { \
SKIP() << "T_CHECK_TIMEOUT lapsed"; \
}
/** /**
* Verify that an event took less than a specified amount of time. * Verify that an event took less than a specified amount of time.
...@@ -48,6 +51,8 @@ ...@@ -48,6 +51,8 @@
* than the allowed time. * than the allowed time.
*/ */
#define T_CHECK_TIME_LT(start, end, expectedMS, ...) \ #define T_CHECK_TIME_LT(start, end, expectedMS, ...) \
EXPECT_TRUE(::folly::checkTimeout((start), (end), \ if (!::folly::checkTimeout((start), (end), \
(expectedMS), true, \ (expectedMS), true, \
##__VA_ARGS__)) ##__VA_ARGS__)) { \
SKIP() << "T_CHECK_TIMEOUT_LT lapsed"; \
}
/*
* Copyright 2015 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef FOLLY_TESTUTILS_H
#define FOLLY_TESTUTILS_H
#include <gtest/gtest.h>
// We use this to indicate that tests have failed because of timing
// or dependencies that may be flakey. Internally this is used by
// our test runner to retry the test. To gtest this will look like
// a normal test failure; there is only an effect if the test framework
// interprets the message.
#define SKIP() GTEST_FATAL_FAILURE_("Test skipped by client")
#endif // FOLLY_TESTUTILS_H
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment