Skip to content

moved implementation to new file, full bitrange of hugeint can be com… #7

moved implementation to new file, full bitrange of hugeint can be com…

moved implementation to new file, full bitrange of hugeint can be com… #7

Workflow file for this run

name: NightlyTests
on:
workflow_dispatch:
repository_dispatch:
push:
branches:
- '**'
- '!master'
- '!feature'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/master' || github.sha }}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
DUCKDB_WASM_VERSION: 7bf2a73
CCACHE_SAVE: ${{ github.repository != 'duckdb/duckdb' }}
jobs:
linux-memory-leaks:
name: Linux Memory Leaks
runs-on: ubuntu-20.04
env:
GEN: ninja
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: '3.7'
- name: Install Ninja
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: make
- name: Test
shell: bash
run: |
python3 test/memoryleak/test_memory_leaks.py
release-assert:
name: Release Assertions
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: gcc-10
CXX: g++-10
GEN: ninja
BUILD_ICU: 1
BUILD_INET: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_FTS: 1
BUILD_EXCEL: 1
BUILD_VISUALIZER: 1
BUILD_JSON: 1
BUILD_JEMALLOC: 1
DISABLE_SANITIZER: 1
CRASH_ON_ASSERT: 1
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: make relassert
- name: Test
shell: bash
run: |
python3 scripts/run_tests_one_by_one.py build/relassert/test/unittest "*"
linux-clang:
name: Clang 14
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: /home/runner/work/llvm/bin/clang
CPP: /home/runner/work/llvm/bin/clang-cpp
CXX: /home/runner/work/llvm/bin/clang++
LD: /home/runner/work/llvm/bin/ld.lld
EXTENSION_STATIC_BUILD: 1
BUILD_JSON: 1
TREAT_WARNINGS_AS_ERRORS: 1
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v1
with:
version: "14.0"
directory: '/home/runner/work/llvm'
- uses: actions/setup-python@v4
with:
python-version: '3.7'
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: make release
- name: Test
shell: bash
run: make allunit
old-gcc:
name: GCC 4.8
runs-on: ubuntu-20.04
needs: linux-memory-leaks
container: ubuntu:16.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/ubuntu_16_setup
- uses: actions/setup-python@v4
with:
python-version: '3.7'
- name: Install
shell: bash
run: apt-get update -y -qq && apt-get install -y -qq g++-4.8 binutils
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Test
shell: bash
run: make unit
env:
CC: gcc-4.8
CXX: g++-4.8
linux-tarball:
name: Python 3 Tarball
runs-on: ubuntu-20.04
needs: linux-memory-leaks
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: '3.7'
- name: Install
shell: bash
working-directory: tools/pythonpkg
run: pip install -r requirements-dev.txt
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: |
python --version
git archive --format zip --output test-tarball.zip HEAD
mkdir duckdb-test-tarball
mv test-tarball.zip duckdb-test-tarball
cd duckdb-test-tarball
unzip test-tarball.zip
cd tools/pythonpkg
export SETUPTOOLS_SCM_PRETEND_VERSION=0.2.2
export DISTUTILS_C_COMPILER_LAUNCHER=ccache
pip install . --user
(cd tests/ && python -m pytest)
python-address-sanitizer:
name: Python Address Sanitizer (Linux)
runs-on: ubuntu-latest
needs: linux-memory-leaks
container: ubuntu:16.04
env:
GEN: ninja
DUCKDEBUG: 1
ASAN_OPTIONS: detect_leaks=0
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/ubuntu_16_setup
with:
openssl: 0
python: 0
- name: Install OpenSSL
shell: bash
run: |
apt-get install -y -qq libbz2-dev
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
./config shared --prefix=/usr/local/
make
make install
mkdir lib
cp ./*.{so,so.1.0.0,a,pc} ./lib
- name: Install Python 3 With Sanitizers
shell: bash
run: |
wget https://github.com/python/cpython/archive/refs/tags/v3.9.12.zip
unzip v3.9.12.zip
rm v3.9.12.zip
cd cpython-3.9.12
mkdir debug-build
export LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/openssl-1.0.2o/lib
./configure --with-ensurepip=install --with-address-sanitizer --with-undefined-behavior-sanitizer --with-openssl=${GITHUB_WORKSPACE}/openssl-1.0.2o --prefix=${GITHUB_WORKSPACE}/debug-build
make -j
make install
- name: Install Python Test Dependencies
shell: bash
run: |
cd tools/pythonpkg
${GITHUB_WORKSPACE}/debug-build/bin/python3 -m pip install -r requirements-dev.txt
- name: Install DuckDB Python
shell: bash
run: |
cd tools/pythonpkg
${GITHUB_WORKSPACE}/debug-build/bin/python3 -m pip install .
# explicitly skip the TestMemoryLeaks tests, as the address sanitizer will increase the memory usage, causing the test to fail
- name: Run Python Tests
shell: bash
run: |
cd tools/pythonpkg
${GITHUB_WORKSPACE}/debug-build/bin/python3 -m pytest tests/fast --skiplist TestMemoryLeaks
sqllogic:
name: Sqllogic tests
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: gcc-10
CXX: g++-10
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
# Build is implied by 'make sqlite' that will invoke implicitly 'make release' (we make it explicit)
- name: Build
shell: bash
run: make release
- name: Test
shell: bash
run: make sqlite
storage-initialization:
name: Storage Initialization Verification
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: gcc-10
CXX: g++-10
GEN: ninja
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: make debug
- name: Test
shell: bash
run: python3 scripts/test_zero_initialize.py
no-string-inline:
name: No String Inline / Destroy Unpinned Blocks
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: gcc-10
CXX: g++-10
GEN: ninja
BUILD_ICU: 1
BUILD_INET: 1
BUILD_PARQUET: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_FTS: 1
BUILD_VISUALIZER: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
DISABLE_STRING_INLINE: 1
DESTROY_UNPINNED_BLOCKS: 1
ALTERNATIVE_VERIFY: 1
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: make debug
- name: Test
shell: bash
run: build/debug/test/unittest
force-blocking-sink-source:
name: Forcing async Sinks/Sources
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: gcc-10
CXX: g++-10
GEN: ninja
BUILD_ICU: 1
BUILD_INET: 1
BUILD_PARQUET: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_FTS: 1
BUILD_VISUALIZER: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
FORCE_ASYNC_SINK_SOURCE: 1
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: make relassert
- name: Test
shell: bash
run: build/relassert/test/unittest
regression-test-memory-safety:
name: Regression Tests between safe and unsafe builds
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: gcc-10
CXX: g++-10
GEN: ninja
BUILD_BENCHMARK: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_HTTPFS: 1
BUILD_JEMALLOC: 1
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Checkout tools repo
uses: actions/checkout@v3
with:
fetch-depth: 0
path: unsafe
- uses: actions/setup-python@v4
with:
python-version: '3.7'
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build && pip install requests
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: |
make
cd unsafe
DISABLE_MEMORY_SAFETY=1 make
- name: Set up benchmarks
shell: bash
run: |
cp -r benchmark unsafe/
- name: Regression Test Micro
if: always()
shell: bash
run: |
python scripts/regression_test_runner.py --old=unsafe/build/release/benchmark/benchmark_runner --new=build/release/benchmark/benchmark_runner --benchmarks=.github/regression/micro.csv --verbose --threads=2
- name: Regression Test TPCH
if: always()
shell: bash
run: |
python scripts/regression_test_runner.py --old=unsafe/build/release/benchmark/benchmark_runner --new=build/release/benchmark/benchmark_runner --benchmarks=.github/regression/tpch.csv --verbose --threads=2
- name: Regression Test TPCDS
if: always()
shell: bash
run: |
python scripts/regression_test_runner.py --old=unsafe/build/release/benchmark/benchmark_runner --new=build/release/benchmark/benchmark_runner --benchmarks=.github/regression/tpcds.csv --verbose --threads=2
- name: Regression Test H2OAI
if: always()
shell: bash
run: |
python scripts/regression_test_runner.py --old=unsafe/build/release/benchmark/benchmark_runner --new=build/release/benchmark/benchmark_runner --benchmarks=.github/regression/h2oai.csv --verbose --threads=2
- name: Regression Test IMDB
if: always()
shell: bash
run: |
python scripts/regression_test_runner.py --old=unsafe/build/release/benchmark/benchmark_runner --new=build/release/benchmark/benchmark_runner --benchmarks=.github/regression/imdb.csv --verbose --threads=2
rstats-windows-warnings:
name: R Package Windows (Warnings)
needs: linux-memory-leaks
runs-on: windows-latest
env:
TREAT_WARNINGS_AS_ERRORS: true
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: '3.7'
- uses: r-lib/actions/setup-r@v2
with:
r-version: 'devel'
update-rtools: true
- uses: r-lib/actions/setup-pandoc@v2
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Install
shell: bash
run: |
R -f tools/rpkg/dependencies.R
- name: Build
shell: bash
run: |
cd tools/rpkg
./configure
R CMD build .
R CMD INSTALL duckdb_*.tar.gz
rubsan:
name: R UBSAN
runs-on: ubuntu-latest
needs: linux-memory-leaks
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Run
shell: bash
run: |
(cd tools/rpkg && ./configure && R CMD build .)
docker run -v `pwd`:/duckdb --cap-add SYS_PTRACE wch1/r-debug:latest bash -c /duckdb/scripts/r_ubsan.sh
threadsan:
name: Thread Sanitizer
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: gcc-10
CXX: g++-10
GEN: ninja
BUILD_ICU: 1
BUILD_INET: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_FTS: 1
BUILD_VISUALIZER: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
BUILD_JEMALLOC: 1
TSAN_OPTIONS: suppressions=.sanitizer-thread-suppressions.txt
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Build
shell: bash
run: THREADSAN=1 make reldebug
- name: Test
shell: bash
run: |
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[intraquery]"
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[interquery]"
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[detailed_profiler]"
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest test/sql/tpch/tpch_sf01.test_slow
vector-sizes:
name: Vector Sizes
runs-on: ubuntu-20.04
needs: linux-memory-leaks
env:
CC: gcc-10
CXX: g++-10
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: '3.7'
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Test
shell: bash
run: python scripts/test_vector_sizes.py
linux-wasm-experimental:
name: WebAssembly duckdb-wasm builds
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: mymindstorm/setup-emsdk@v12
with:
version: 3.1.41
- name: Setup
shell: bash
run: |
git clone --recurse-submodules https://github.com/duckdb/duckdb-wasm
cd duckdb-wasm
git checkout ${{ env.DUCKDB_WASM_VERSION }}
shopt -s nullglob
for filename in ../.github/patches/duckdb-wasm/*.patch; do
git apply $filename
done
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ env.CCACHE_SAVE }}
- name: Print version
shell: bash
run: |
emcc --version
- name: Build WebAssembly MVP
shell: bash
run: |
cd duckdb-wasm
bash scripts/wasm_build_lib.sh relsize mvp $(pwd)/..
- name: Build WebAssembly EH
shell: bash
run: |
cd duckdb-wasm
bash scripts/wasm_build_lib.sh relsize eh $(pwd)/..
- name: Build WebAssembly COI
shell: bash
run: |
cd duckdb-wasm
bash scripts/wasm_build_lib.sh relsize coi $(pwd)/..
- name: Package
shell: bash
run: |
zip -r duckdb-wasm32.zip duckdb-wasm/packages/duckdb-wasm/src/bindings
- uses: actions/upload-artifact@v3
with:
name: duckdb-wasm32
path: |
duckdb-wasm32.zip