https://github.com/hengxin/smt-transactional-consistency-artifact
Artifact for the "smt-transactional-consistency" project
https://github.com/hengxin/smt-transactional-consistency-artifact
Last synced: 3 months ago
JSON representation
Artifact for the "smt-transactional-consistency" project
- Host: GitHub
- URL: https://github.com/hengxin/smt-transactional-consistency-artifact
- Owner: hengxin
- License: mit
- Created: 2023-01-17T07:35:37.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-27T14:21:36.000Z (4 months ago)
- Last Synced: 2025-05-27T15:36:04.065Z (4 months ago)
- Language: C++
- Size: 1.51 GB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: history/10_45_15_1000/hist-00000/history.bincode
- License: LICENSE
Awesome Lists containing this project
README
# smt-transactional-consistency-artifact
Artifact for the "smt-transactional-consistency" project## Build (Ubuntu)
- Install required packages
```sh
sudo apt update && sudo apt install g++-12 git pkg-config cmake meson ninja-build libboost-log-dev libboost-test-dev libboost-graph-dev
```- Clone this repo
```sh
git clone --recurse-submodules https://github.com/hengxin/smt-transactional-consistency-artifact
```- Build with Meson
```sh
# debug build
# gcc 12 is required
CC=gcc-12 CXX=g++-12 meson setup builddir && meson compile -C builddir# optimized debug build
CC=gcc-12 CXX=g++-12 meson setup builddir-debugoptimized --buildtype=debugoptimized && meson compile -C builddir-debugoptimized# release build
CC=gcc-12 CXX=g++-12 meson setup builddir-release --buildtype=release && meson compile -C builddir-release
```## Tests
Test files are located in `src/tests`. To run tests:
```sh
# build first
CC=gcc-12 CXX=g++-12 meson setup builddir && meson compile -C builddirmeson test -C builddir
```## Histories
Some histories are included in `history`, to check a history:
```sh
./builddir/checker history/15_15_15_1000/hist-00000/history.bincode
# 'accept: true' means no violations are found
```Dbcop is used to generate histories. For example:
```sh
# clone dbcop from https://github.com/amnore/dbcop
docker-compose up -d -f docker/postgres/docker-compose.yml# build dbcop...
# generated histories are stored in /tmp/hist
# see 'dbcop genrate --help' and 'dbcop run --help'
dbcop/target/release/dbcop generate -d /tmp/gen -e 2 -n 10 -t 3 -v 2
dbcop/target/release/dbcop run -d /tmp/gen/ --db postgres-ser -o /tmp/hist 127.0.0.1:5432
```