Skip to content

nyanp/picotest

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

picotest : subset of googletest, single-header simple framework

picotest is a single header unit testing framework.

it has...

following macros

  • EXPECT_TRUE/ASSERT_TRUE
  • EXPECT_FALSE/ASSERT_FALSE
  • EXPECT_EQ/ASSERT_EQ
  • EXPECT_NE/ASSERT_NE
  • EXPECT_LT/ASSERT_LT
  • EXPECT_GT/ASSERT_GT
  • EXPECT_LE/ASSERT_LE
  • EXPECT_GE/ASSERT_GE
  • EXPECT_STREQ/ASSERT_STREQ
  • EXPECT_STRNE/ASSERT_STRNE
  • EXPECT_STRCASEEQ/ASSERT_STRCASEEQ
  • EXPECT_STRCASENE/ASSERT_STRCASENE
  • EXPECT_FLOAT_EQ/ASSERT_FLOAT_EQ
  • EXPECT_DOUBLE_EQ/ASSERT_DOUBLE_EQ
  • EXPECT_FLOAT_NE/ASSERT_FLOAT_EQ
  • EXPECT_DOUBLE_NE/ASSERT_DOUBLE_NE
  • EXPECT_NEAR

floating-point macros provides comparing in terms of ULPs (same to googletest).

auto-registered-test, test-fixture

  • TEST(test_case_name, test_name)
  • TEST_F(test_case_name, test_name)
  • RUN_ALL_TESTS()

it hasn't...

  • Windows HRESULT assertions
  • Type Assertions
  • Death Tests
  • SCOPED_TRACE
  • HasFatalFailure()
  • RecordProperty()
  • Global setup/teardown
  • Value Parameterized Tests
  • Typed Tests
  • FRIEND_TEST()
  • Failures Catching
  • Controlling Test Output

sample

#include "this/package/foo.h"
#include "picotest.h"

namespace {

// The fixture for testing class Foo.
class FooTest : public ::testing::Test {
 protected:
  // You can remove any or all of the following functions if its body
  // is empty.

  FooTest() {
    // You can do set-up work for each test here.
  }

  virtual ~FooTest() {
    // You can do clean-up work that doesn't throw exceptions here.
  }

  // If the constructor and destructor are not enough for setting up
  // and cleaning up each test, you can define the following methods:

  virtual void SetUp() {
    // Code here will be called immediately after the constructor (right
    // before each test).
  }

  virtual void TearDown() {
    // Code here will be called immediately after each test (right
    // before the destructor).
  }

  // Objects declared here can be used by all tests in the test case for Foo.
};

// Tests that the Foo::Bar() method does Abc.
TEST_F(FooTest, MethodBarDoesAbc) {
  const string input_filepath = "this/package/testdata/myinputfile.dat";
  const string output_filepath = "this/package/testdata/myoutputfile.dat";
  Foo f;
  EXPECT_EQ(0, f.Bar(input_filepath, output_filepath));
}

// Tests that Foo does Xyz.
TEST_F(FooTest, DoesXyz) {
  // Exercises the Xyz feature of Foo.
}

}  // namespace

int main(int argc, char **argv) {
  RUN_ALL_TESTS();
}

About

Single-header unit testing framework, subset of googletest

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages