美文网首页
如何在autotools中实现make check

如何在autotools中实现make check

作者: louyang | 来源:发表于2020-10-14 19:25 被阅读0次

在我经历的项目中,make check是用来做unit test的。那么如何在一个新建的autotools项目中支持make check呢?下面举一个最简单的例子。

先看目录结构:

$ tree
.
├── autogen.sh
├── configure.ac
├── Makefile.am
├── src
│   └── add.cpp
└── tst
    ├── add_test.cpp
    └── Makefile.am

看一下每个文件的内容:

$ cat autogen.sh 
#!/bin/sh
autoreconf -i
$ cat configure.ac 
AC_PREREQ([2.69])
AC_INIT(example-minimal-check, 1.0) 
AC_CONFIG_HEADERS([config.h])

AC_PROG_CXX
AM_INIT_AUTOMAKE
AM_PROG_AS

AC_OUTPUT(Makefile tst/Makefile)
$ cat Makefile.am 
AUTOMAKE_OPTIONS = foreign
SUBDIRS = tst
$ cat src/add.cpp 
int add(int a, int b)
{
    return a + b;
}
$ cat tst/add_test.cpp 
#include <gtest/gtest.h>

int add(int,int);

TEST(SimpleTest, add_ok)
{
    EXPECT_EQ(3, add(1,2));
    EXPECT_EQ(300, add(100,200));
}

int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}
$ cat tst/Makefile.am 
AUTOMAKE_OPTIONS = subdir-objects
check_PROGRAMS = test1
test1_SOURCES = add_test.cpp $(top_srcdir)/src/add.cpp
test1_LDFLAGS = -lgtest
TESTS = test1 

开始运行单元测试:

$ ./autogen.sh
$ ./configure
$ make check
image.png

相关文章

网友评论

      本文标题:如何在autotools中实现make check

      本文链接:https://www.haomeiwen.com/subject/geuwpktx.html