Browse Source

Merge branch '#1/enhancement/Build_with_CI' into 'master'

closes #1

#1/enhancement/build with ci

This fixes some problems with the tests as well as it integrates a first CI control file.

See merge request !1
1.0.2
Georg GH. Hopp 10 years ago
parent
commit
25c16bd45b
  1. 46
      .gitlab-ci.yml
  2. 9
      configure.ac
  3. 6
      m4/chkamd.m4
  4. 2
      m4/gcov.m4
  5. 11
      tests/Makefile.am
  6. 2
      tests/mock/mock_class.c
  7. 1
      tests/mock/mock_class.h
  8. 2
      tests/runtest.c

46
.gitlab-ci.yml

@ -0,0 +1,46 @@
stages:
- build
- test
- deploy
before_script:
- ./bootstrap
- ./configure --enable-gcov
build:
stage: build
script:
- make
coverage:dev:
stage: test
except:
- tags
script:
- make coverage-html
- ssh ci_upload@192.168.20.60 install -d trbase
- >
rsync -vaurl --delete tests/coverage/*/
ci_upload@192.168.20.60:~/trbase/coverage_${CI_BUILD_ID}
- >
ssh ci_upload@192.168.20.60
ln -sf trbase/coverage_${CI_BUILD_ID} trbase/coverage_latest
coverage:tag:
stage: test
only:
- tags
script:
- make coverage-html
- ssh ci_upload@192.168.20.60 install -d trbase
- rsync -vaurl --delete tests/coverage ci_upload@192.168.20.60:~/trbase/
- ssh ci_upload@192.168.20.60 ln -sf trbase/coverage trbase/coverage_latest
dist:
stage: deploy
only:
- tags
script:
- make dist
- ssh ci_upload@192.168.20.60 install -d trbase/artifacts
- scp libtrbase-*.tar.gz ci_upload@192.168.20.60:~/trbase/artifacts

9
configure.ac

@ -3,14 +3,14 @@
AC_PREREQ([2.68])
AC_INIT([libtrbase],
[1.0.1],
[1.0.2],
[Georg Hopp <georg@steffers.org>])
LT_INIT
AM_INIT_AUTOMAKE
#AM_INIT_AUTOMAKE([subdir-objects])
AM_SILENT_RULES([yes])
AC_COPYRIGHT([Copyright © 2013 Georg Hopp])
AC_REVISION([1.0.1])
AC_COPYRIGHT([Copyright © 2016 Georg Hopp])
AC_REVISION([1.0.2])
AC_CONFIG_SRCDIR([src/interface.c])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
@ -21,6 +21,9 @@ AC_TDD_GCOV
m4_include([m4/memopt.m4])
AC_MEM_OPT
m4_include([m4/chkamd.m4])
AC_CHK_AMD
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC

6
m4/chkamd.m4

@ -0,0 +1,6 @@
AC_DEFUN([AC_CHK_AMD],
[
AM_CONDITIONAL(IS_AMD, test "AuthenticAMD" = "$(uname -i)")
])
# vim: set ft=m4 ts=2 sw=2:

2
m4/gcov.m4

@ -31,7 +31,7 @@ AC_DEFUN([AC_TDD_GCOV],
AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
fi
lcov_version_list="1.6 1.7 1.8 1.9 1.10"
lcov_version_list="1.6 1.7 1.8 1.9 1.10 1.11"
AC_CHECK_PROG(LCOV, lcov, lcov)
AC_CHECK_PROG(GENHTML, genhtml, genhtml)

11
tests/Makefile.am

@ -1,11 +1,14 @@
ACLOCAL_AMFLAGS = -I m4
AUTOMAKE_OPTIONS = subdir-objects
if IS_AMD
else
TESTS_ENVIRONMENT = valgrind \
--error-exitcode=123 \
--leak-check=full \
--suppressions=./suppress/external.supp \
--quiet
endif
TESTS = classTest
check_PROGRAMS = classTest
@ -43,7 +46,7 @@ coverage-html: clean clean-coverage check
$(LCOV) -d $(top_srcdir) \
-a ./coverage.base -a ./coverage.run \
-o coverage.info
LANG=C $(GENHTML) --prefix $(top_srcdir) \
LANG=C $(GENHTML) --prefix $(PWD) \
--output-directory $(cov_dir) \
--title "$(PACKAGE_NAME) $(PACKAGE_VERSION)" \
--legend --branch-coverage --show-details coverage.run
@ -51,15 +54,15 @@ coverage-html: clean clean-coverage check
clean-coverage: clean-gcda clean-gcno
$(LCOV) -d $(top_srcdir) -z
-rm -rf coverage.info coverage.base coverage.run $(cov_dir)
clean-gcda:
@echo Removing old coverage results
-find $(top_srcdir) -name '*.gcda' -print | xargs -r rm
clean-gcno:
@echo Removing old coverage results
-find $(top_srcdir) -name '*.gcno' -print | xargs -r rm
clean-local: clean-coverage
endif # HAVE_GCOV

2
tests/mock/mock_class.c

@ -67,6 +67,6 @@ mockClone(void * _this, void * _base)
}
TR_INIT_IFACE(TR_Class, mockCtor, mockDtor, mockClone);
TR_CREATE_CLASS(MockClass, NULL, TR_IF(TR_Class));
TR_CREATE_CLASS(MockClass, NULL, NULL, TR_IF(TR_Class));
// vim: set et ts=4 sw=4:

1
tests/mock/mock_class.h

@ -36,6 +36,7 @@ void _reset();
TR_CLASS(MockClass) {
int value;
};
TR_CLASSVARS_DECL(MockClass) {};
/**
* ~~~ method declarations ~~~~~~~~

2
tests/runtest.c

@ -89,7 +89,7 @@ main(int argc, char * argv[])
if (_setUp && NULL != tearDown) {
int _tearDown = tearDown();
if ((! TEST_OK == _tearDown) && TEST_OK == result) {
if ((!(TEST_OK == _tearDown)) && TEST_OK == result) {
result = _tearDown;
}
}

Loading…
Cancel
Save