// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: wan@google.com (Zhanyong Wan)
+
// This sample teaches how to reuse a test fixture in multiple test
// cases by deriving sub-fixtures from it.
#include <limits.h>
#include <time.h>
-#include "sample3-inl.h"
#include "gtest/gtest.h"
#include "sample1.h"
-
+#include "sample3-inl.h"
+namespace {
// In this sample, we want to ensure that every test finishes within
// ~5 seconds. If a test takes longer to run, we consider it a
// failure.
protected:
// Remember that SetUp() is run immediately before a test starts.
// This is a good place to record the start time.
- virtual void SetUp() {
- start_time_ = time(NULL);
- }
+ void SetUp() override { start_time_ = time(nullptr); }
// TearDown() is invoked immediately after a test finishes. Here we
// check if the test was too slow.
- virtual void TearDown() {
+ void TearDown() override {
// Gets the time when the test finishes
- const time_t end_time = time(NULL);
+ const time_t end_time = time(nullptr);
// Asserts that the test took no more than ~5 seconds. Did you
// know that you can use assertions in SetUp() and TearDown() as
// stuff inside the body of the test fixture, as usual.
class QueueTest : public QuickTest {
protected:
- virtual void SetUp() {
+ void SetUp() override {
// First, we need to set up the super fixture (QuickTest).
QuickTest::SetUp();
// Tests Dequeue().
TEST_F(QueueTest, Dequeue) {
int* n = q0_.Dequeue();
- EXPECT_TRUE(n == NULL);
+ EXPECT_TRUE(n == nullptr);
n = q1_.Dequeue();
- EXPECT_TRUE(n != NULL);
+ EXPECT_TRUE(n != nullptr);
EXPECT_EQ(1, *n);
EXPECT_EQ(0u, q1_.Size());
delete n;
n = q2_.Dequeue();
- EXPECT_TRUE(n != NULL);
+ EXPECT_TRUE(n != nullptr);
EXPECT_EQ(2, *n);
EXPECT_EQ(1u, q2_.Size());
delete n;
}
-
+} // namespace
// If necessary, you can derive further test fixtures from a derived
// fixture itself. For example, you can derive another fixture from
// QueueTest. Google Test imposes no limit on how deep the hierarchy