Skip to content

Instantly share code, notes, and snippets.

@hosackm
Last active November 28, 2018 07:18
Show Gist options
  • Save hosackm/0f20417f2c43d47487ff4649a65312a2 to your computer and use it in GitHub Desktop.
Save hosackm/0f20417f2c43d47487ff4649a65312a2 to your computer and use it in GitHub Desktop.
Introduction to googletest for C
#include "adder.h"
int add(int a, int b)
{
return a + b;
}
#pragma once
int add(int a, int b);
#include "adder.h"
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 1, b = 2;
fprintf(stdout, "%d + %d = %d\n", a, b, add(a, b));
return 0;
}
CC=clang
CCX=clang++
SOURCES=adder.c
TESTSOURCES=test_add_two_numbers.cxx run_all_tests.cxx
INCLUDES=-I.
EXE=adder
$(EXE): $(SOURCES) main.c
$(CC) $(INCLUDES) $^ -o $@
adder.o: adder.c
$(CC) $(INCLUDES) -c $^ -o $@
runtests: adder.o $(TESTSOURCES)
$(CCX) -std=c++11 -lgtest $(INCLUDES) $^ -o $@
./$@
clean:
rm -rf adder.o runtests $(EXE)
#include <gtest/gtest.h>
int main(int argc, char *argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
#include <gtest/gtest.h>
extern "C"
{
#include "adder.h"
}
TEST(SimpleAdds, OnePlusOneIsTwo)
{
EXPECT_EQ(2, add(1, 1));
}
TEST(SimpleAdds, NegativePlusPostiveDoesntOverflow)
{
EXPECT_EQ(0, add(-1, 1));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment