Merge branch '1.0'

This commit is contained in:
Alexey Kopytov
2017-04-08 12:07:36 +03:00
4 changed files with 306 additions and 39 deletions

View File

@ -5,6 +5,11 @@
dist: trusty
sudo: required
services:
- docker
- mysql
- postgresql
language: c
os:
@ -15,8 +20,76 @@ compiler:
- gcc
- clang
env:
matrix:
- TARGET=distcheck
- TARGET=test
- TARGET=coverage
- OS=el DIST=6
- OS=el DIST=7
- OS=fedora DIST=24
- OS=fedora DIST=25
- OS=ubuntu DIST=precise
- OS=ubuntu DIST=trusty
- OS=ubuntu DIST=xenial
- OS=ubuntu DIST=yakkety
- OS=debian DIST=wheezy
- OS=debian DIST=jessie
matrix:
exclude:
- env: OS=el DIST=6
compiler: clang
- env: OS=el DIST=7
compiler: clang
- env: OS=fedora DIST=24
compiler: clang
- env: OS=fedora DIST=25
compiler: clang
- env: OS=ubuntu DIST=precise
compiler: clang
- env: OS=ubuntu DIST=trusty
compiler: clang
- env: OS=ubuntu DIST=xenial
compiler: clang
- env: OS=ubuntu DIST=yakkety
compiler: clang
- env: OS=debian DIST=wheezy
compiler: clang
- env: OS=debian DIST=jessie
compiler: clang
- env: OS=debian DIST=stretch
compiler: clang
- env: OS=el DIST=6
os: osx
- env: OS=el DIST=7
os: osx
- env: OS=fedora DIST=24
os: osx
- env: OS=fedora DIST=25
os: osx
- env: OS=ubuntu DIST=precise
os: osx
- env: OS=ubuntu DIST=trusty
os: osx
- env: OS=ubuntu DIST=xenial
os: osx
- env: OS=ubuntu DIST=yakkety
os: osx
- env: OS=debian DIST=wheezy
os: osx
- env: OS=debian DIST=jessie
os: osx
- env: OS=debian DIST=stretch
os: osx
- env: TARGET=distcheck
compiler: clang
- env: TARGET=distcheck
os: osx
- env: TARGET=coverage
os: osx
- env: TARGET=coverage
compiler: clang
- os: osx
compiler: gcc
@ -28,41 +101,34 @@ addons:
- libaio-dev
- clang-3.6
services:
- mysql
- postgresql
before_install:
- >
case "${TRAVIS_OS_NAME:-linux}" in
osx)
# Workaround for https://github.com/Homebrew/legacy-homebrew/issues/43874
# brew uninstall libtool
# brew update --quiet
# brew install libtool mysql
brew install mysql
if [ "x$TARGET" = "xtest" ]; then
case "${TRAVIS_OS_NAME:-linux}" in
osx)
brew install mysql
# OS X requires servers to be started explicitly
brew services start mysql
# OS X requires servers to be started explicitly
brew services start mysql
# Avoid PostgreSQL upgrade woes, just reinstall the database
brew uninstall --ignore-dependencies postgresql
rm -rf /usr/local/var/postgres
brew install postgresql
# Avoid PostgreSQL upgrade woes, just reinstall the database
brew uninstall --ignore-dependencies postgresql
rm -rf /usr/local/var/postgres
brew install postgresql
echo "Starting PostgreSQL"
pg_ctl -wD /usr/local/var/postgres start
echo "Creating user postgres"
createuser -s postgres
;;
linux)
export ASAN_OPTIONS="detect_leaks=0"
if [ "${CC}" = "clang" ]
then
CC=clang-3.6
fi
;;
esac
echo "Starting PostgreSQL"
pg_ctl -wD /usr/local/var/postgres start
echo "Creating user postgres"
createuser -s postgres
;;
linux)
export ASAN_OPTIONS="detect_leaks=0"
if [ "${CC}" = "clang" ]; then
CC=clang-3.6
fi
;;
esac
fi
install:
- pip install --user urllib3[secure] cpp-coveralls
@ -79,13 +145,48 @@ before_script:
- psql -U postgres -c 'CREATE DATABASE sbtest'
script:
- ./autogen.sh && ./configure --enable-coverage --enable-asan --enable-msan --with-mysql --with-pgsql
- make
- make distcheck
- SBTEST_MYSQL_ARGS="--mysql-user=root" SBTEST_PGSQL_ARGS="--pgsql-user=postgres" make test
- >
if [ -n "$TARGET" ]; then
case "$TARGET" in
test)
./autogen.sh && ./configure --with-mysql --with-pgsql
make
SBTEST_MYSQL_ARGS="--mysql-user=root" SBTEST_PGSQL_ARGS="--pgsql-user=postgres" make test
;;
distcheck)
./autogen.sh && ./configure --without-mysql
make
make distcheck
;;
coverage)
./autogen.sh && ./configure --enable-coverage --enable-asan --enable-msan --with-mysql --with-pgsql
make -j2
SBTEST_MYSQL_ARGS="--mysql-user=root" SBTEST_PGSQL_ARGS="--pgsql-user=postgres" make test
;;
esac
else
git clone https://github.com/akopytov/packpack.git packpack
packpack/packpack
fi
deploy:
# Deploy packages to PackageCloud
- provider: packagecloud
username: "${PACKAGECLOUD_USER}"
repository: "${PACKAGECLOUD_REPO}"
token: "${PACKAGECLOUD_TOKEN}"
dist: "${OS}/${DIST}"
package_glob: build/*.{rpm,deb,dsc}
skip_cleanup: true
on:
all_branches: true
condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}"
after_success:
- coveralls --exclude third_party/ --gcov-options '\-lp'
- >
if [ "x$TARGET" = "xcoverage" ]; then
coveralls --exclude third_party/ --gcov-options '\-lp'
fi
# Local variables:
# mode: yaml

View File

@ -52,9 +52,9 @@ build and use sysbench 0.5 natively for Windows.
### RedHat/CentOS
``` shell
yum -y install make automake libtool pkg-config libaio-devel vim-common
yum -y install make automake libtool pkgconfig libaio-devel vim-common
# For MySQL support
yum -y install mysql-devel
yum -y install mariadb-devel
# For PostgreSQL support
yum -y install postgresql-devel
```

4
debian/rules vendored
View File

@ -1,7 +1,7 @@
#!/usr/bin/make -f
clean:
make clean
%:
dh $@
override_dh_auto_configure:
dh_testdir

166
rpm/sysbench.spec Normal file
View File

@ -0,0 +1,166 @@
Summary: Scriptable database and system performance benchmark
Name: sysbench
# Version will be replaced by packpack
Version: x.y.z
Release: 1%{?dist}
License: GPLv2+
Group: Applications/System
Source0: https://github.com/akopytov/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
URL: https://github.com/akopytov/sysbench/
%if 0%{?el6}
BuildRequires: mysql-devel
%else
BuildRequires: mariadb-devel
%endif
BuildRequires: postgresql-devel
BuildRequires: make
BuildRequires: automake
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: libaio-devel
BuildRequires: vim-common
# Use bundled cram for tests
BuildRequires: python
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
%description
sysbench is a modular, cross-platform and multi-threaded benchmark
tool for evaluating OS parameters that are important for a system
running a database under intensive load.
The idea of this benchmark suite is to quickly get an impression about
system performance without setting up complex database benchmarks or
even without installing a database at all. Current features allow to
test the following system parameters:
- file I/O performance
- scheduler performance
- memory allocation and transfer speed
- POSIX threads implementation performance
- database server performance (OLTP benchmark)
Primarily written for MySQL server benchmarking, sysbench will be
further extended to support multiple database backends, distributed
benchmarks and third-party plug-in modules.
%prep
%setup -q
%build
export CFLAGS="%{optflags}"
autoreconf -vif
%configure --with-mysql \
--with-pgsql \
%if 0%{?el6}
make -j2
%else
%make_build
%endif
%install
%make_install
rm -f %{buildroot}%{_docdir}/sysbench/manual.html
%check
make test
%files
%doc ChangeLog COPYING README.md
%if 0%{?el6}
%else
%license COPYING
%endif
%{_bindir}/*
%{_datadir}/%{name}
%changelog
* Thu Apr 6 2017 Alexey Kopytov <akopytov@gmail.com> - 1.0.5-1
- Reuse downstream Fedora spec with modifications (prefer bundled libraries)
* Mon Mar 13 2017 Xavier Bachelot <xavier@bachelot.org> 1.0.4-2
- Don't build aarch64 on el7.
* Mon Mar 13 2017 Xavier Bachelot <xavier@bachelot.org> 1.0.4-1
- Fix build for i686.
- Drop bundled cram.
* Wed Mar 08 2017 Xavier Bachelot <xavier@bachelot.org> 1.0.3-1
- Update to 1.0.3 (RHBZ#1424670).
- Restrict arches to the same ones as luajit.
- Add --with-gcc-arch=native to configure for %%{arm} and aarch64.
- Ignore test suite results for aarch64, it segfaults in koji.
* Sat Feb 25 2017 Xavier Bachelot <xavier@bachelot.org> 1.0.2-2
- Run test suite.
* Sat Feb 25 2017 Xavier Bachelot <xavier@bachelot.org> 1.0.2-1
- Update to 1.0.2 (RHBZ#1424670).
* Sun Feb 12 2017 Honza Horak <hhorak@redhat.com> - 1.0.0-1
- Update to the first proper release 1.0.0
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.12-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.12-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.12-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Sep 04 2014 Xavier Bachelot <xavier@bachelot.org> 0.4.12-12
- Modernize specfile.
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.12-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.12-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.12-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.12-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.12-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.12-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Sep 06 2011 Xavier Bachelot <xavier@bachelot.org> 0.4.12-5
- Add BR: libaio-devel (rhbz#735882).
* Wed Mar 23 2011 Dan Horák <dan@danny.cz> - 0.4.12-4
- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient)
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.12-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Fri Dec 24 2010 Xavier Bachelot <xavier@bachelot.org> 0.4.12-2
- Rebuild against new mysql.
* Wed Jul 07 2010 Xavier Bachelot <xavier@bachelot.org> 0.4.12-1
- Update to 0.4.12.
* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 0.4.10-5
- rebuilt with new openssl
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.10-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Mar 18 2009 Xavier Bachelot <xavier@bachelot.org> 0.4.10-3
- License is GPLv2+, not GPLv2.
* Sat Mar 14 2009 Xavier Bachelot <xavier@bachelot.org> 0.4.10-2
- Make postgres support optional, the version in rhel4 is too old.
- Drop TODO and manual.html from %%doc, they are empty.
* Thu Mar 05 2009 Xavier Bachelot <xavier@bachelot.org> 0.4.10-1
- Adapt original spec file taken from PLD.