移动deps/common代码到src下 #456
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: test | |
on: | |
pull_request: | |
branches: [ "main" ] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
jobs: | |
basic-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v2 | |
- name: run basic test | |
shell: bash | |
run: | | |
sudo bash build.sh init | |
echo "begin test..." | |
python3 test/case/miniob_test.py --test-cases=basic | tail -1 | grep "basic is success" | |
# I found that sysbench would send more request before receiving last response | |
sysbench-test: | |
strategy: | |
matrix: | |
thread_model: ['one-thread-per-connection', 'java-thread-pool'] | |
test_case: ['miniob_insert', 'miniob_delete', 'miniob_select'] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v2 | |
- name: install sysbench and mariadb-client | |
shell: bash | |
run: | | |
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh -o script.deb.sh | |
sudo bash script.deb.sh | |
sudo apt -y install sysbench mariadb-client | |
- name: build miniob | |
shell: bash | |
run: | | |
sudo bash build.sh init | |
bash build.sh release -DCONCURRENCY=ON -DWITH_UNIT_TESTS=OFF | |
- name: start server | |
shell: bash | |
run: | | |
nohup ./build_release/bin/observer -T ${{ matrix.thread_model }} -s /tmp/miniob.sock -f etc/observer.ini -P mysql -t mvcc -d disk & | |
sleep 10 && echo "wake up" | |
mysql --version | |
mysql -S /tmp/miniob.sock -e "show tables" | |
# error number 41 is LOCKED_CONCURRENCY_CONFLICT | |
# we should change the error number if we update the code | |
- name: sysbench test | |
shell: bash | |
run: | | |
cd test/sysbench | |
sysbench --mysql-socket=/tmp/miniob.sock --mysql-ignore-errors=41 --threads=10 ${{ matrix.test_case }} prepare | |
sysbench --mysql-socket=/tmp/miniob.sock --mysql-ignore-errors=41 --threads=10 ${{ matrix.test_case }} run | |
- name: stop server | |
shell: bash | |
run: | | |
mysql -S /tmp/miniob.sock -e "create table t(id int)" | |
mysql -S /tmp/miniob.sock -e "show tables" | |
killall observer | |
- name: restart server | |
shell: bash | |
run: | | |
nohup ./build_release/bin/observer -T ${{ matrix.thread_model }} -s /tmp/miniob.sock -f etc/observer.ini -P mysql -t mvcc -d disk & | |
sleep 10 && echo "wake up" | |
mysql -S /tmp/miniob.sock -e "show tables" | |
- name: sysbench test again | |
shell: bash | |
run: | | |
cd test/sysbench | |
sysbench --mysql-socket=/tmp/miniob.sock --mysql-ignore-errors=41 --threads=10 ${{ matrix.test_case }} run | |
benchmark-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v2 | |
- name: build observer and benchmark | |
shell: bash | |
run: | | |
sudo bash build.sh init | |
bash build.sh release -DCONCURRENCY=ON -DWITH_UNIT_TESTS=OFF -DWITH_BENCHMARK=ON | |
- name: concurrency-test | |
shell: bash | |
run: | | |
cd build_release/bin/ | |
for file in `find ./ -name "*_concurrency_test" -executable`; do $file; if [ $? -ne 0 ]; then exit 1; fi; done | |
memtracer-test: | |
strategy: | |
matrix: | |
memtracer: ['LD_PRELOAD=./lib/libmemtracer.so', ''] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v2 | |
- name: build | |
shell: bash | |
run: | | |
sudo bash build.sh init | |
bash build.sh release -DWITH_BENCHMARK=ON -DENABLE_ASAN=OFF -DCONCURRENCY=ON -DWITH_MEMTRACER=ON | |
- name: memtracer-performance-test | |
shell: bash | |
run: | | |
cd build_release | |
${{matrix.memtracer}} ./bin/memtracer_performance_test | |
- name: memtracer-unittest | |
shell: bash | |
run: | | |
cd build_release | |
LD_PRELOAD=./lib/libmemtracer.so ./bin/memtracer_test | |
- name: memtracer-sysbench | |
shell: bash | |
run: | | |
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh -o script.deb.sh | |
sudo bash script.deb.sh | |
sudo apt -y install sysbench mariadb-client | |
nohup sh -c '${{matrix.memtracer}} ./build_release/bin/observer -T one-thread-per-connection -s /tmp/miniob.sock -f etc/observer.ini -P mysql -t mvcc -d disk' & | |
sleep 10 && echo "wake up" | |
mysql --version | |
mysql -S /tmp/miniob.sock -e "show tables" | |
cd test/sysbench | |
sysbench --mysql-socket=/tmp/miniob.sock --mysql-ignore-errors=41 --threads=10 miniob_insert prepare | |
sysbench --mysql-socket=/tmp/miniob.sock --mysql-ignore-errors=41 --threads=10 miniob_insert run | |
killall observer | |
cd ../.. | |
nohup ./build_release/bin/observer -T one-thread-per-connection -s /tmp/miniob.sock -f etc/observer.ini -P mysql -t mvcc -d disk & | |
sleep 10 && echo "wake up" | |
mysql -S /tmp/miniob.sock -e "show tables" | |