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>
/** /**
...@@ -36,10 +37,12 @@ ...@@ -36,10 +37,12 @@
* @param expectedMS The timeout duration, in milliseconds * @param expectedMS The timeout duration, in milliseconds
* @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.
...@@ -47,7 +50,9 @@ ...@@ -47,7 +50,9 @@
* This is similar to T_CHECK_TIMEOUT, but does not fail if the event took less * This is similar to T_CHECK_TIMEOUT, but does not fail if the event took less
* 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