diff --git a/.github/workflows/linux_ci.yml b/.github/workflows/linux_ci.yml index b2ce4756..83e7da07 100644 --- a/.github/workflows/linux_ci.yml +++ b/.github/workflows/linux_ci.yml @@ -156,8 +156,12 @@ jobs: run: | lscpu cat /proc/cpuinfo - - name: configure - run: CXX=g++ CC=gcc ./scripts/bootstrap-cmake-linux.sh + - name: install gdb + run: sudo apt-get update && sudo apt-get install -y gdb + - name: configure with debug + run: | + mkdir -p build + cd build && CXX=g++ CC=gcc cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_VERBOSE_MAKEFILE=1 .. - name: make run: cd build && make @@ -168,40 +172,24 @@ jobs: path: build/tusdcat retention-days: 7 - # Dedicated USDC tests for files that have shown issues on ARM64 - - name: test usdc timesamples files + # Dedicated USDC tests for files that have shown issues on ARM64 - run under gdb to catch segfault + - name: test usdc timesamples files with gdb run: | - echo "Testing USDC timesamples files with tusdcat..." - ./build/tusdcat tests/usdc/timesamples-array-vec2f-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-float-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-int-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-dedup-002.usdc - ./build/tusdcat tests/usdc/timesamples-array-dedup-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-double-001.usdc - echo "All USDC timesamples tests passed." + echo "Testing USDC timesamples files with tusdcat under gdb..." + for f in tests/usdc/timesamples-array-vec2f-001.usdc \ + tests/usdc/timesamples-array-float-001.usdc \ + tests/usdc/timesamples-array-int-001.usdc \ + tests/usdc/timesamples-array-dedup-002.usdc \ + tests/usdc/timesamples-array-dedup-001.usdc \ + tests/usdc/timesamples-array-double-001.usdc; do + echo "=== Testing $f ===" + gdb -batch -ex "run" -ex "bt full" -ex "quit" --args ./build/tusdcat "$f" + done + echo "All USDC timesamples tests completed." - name: tests run: cd build && ctest --output-on-failure - # Dedicated USDC tests for files that have shown issues on ARM64 - - name: test usdc timesamples files - run: | - echo "Testing USDC timesamples files with tusdcat..." - ./build/tusdcat tests/usdc/timesamples-array-vec2f-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-float-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-int-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-dedup-002.usdc - ./build/tusdcat tests/usdc/timesamples-array-dedup-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-double-001.usdc - echo "All USDC timesamples tests passed." - - - name: Upload ARM64 tusdcat binary - uses: actions/upload-artifact@v4 - with: - name: tusdcat-linux-arm64-gcc - path: build/tusdcat - retention-days: 7 - build-arm64-clang: runs-on: ubuntu-24.04-arm @@ -214,14 +202,16 @@ jobs: lscpu cat /proc/cpuinfo # Install recent Clang from LLVM apt repository - - name: install clang-21 + - name: install clang-21 and lldb run: | wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc sudo add-apt-repository -y "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" sudo apt-get update - sudo apt-get install -y clang-21 - - name: configure - run: CXX=clang++-21 CC=clang-21 ./scripts/bootstrap-cmake-linux.sh + sudo apt-get install -y clang-21 lldb-21 + - name: configure with debug + run: | + mkdir -p build + cd build && CXX=clang++-21 CC=clang-21 cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_VERBOSE_MAKEFILE=1 .. - name: make run: cd build && make @@ -232,36 +222,20 @@ jobs: path: build/tusdcat retention-days: 7 - # Dedicated USDC tests for files that have shown issues on ARM64 - - name: test usdc timesamples files + # Dedicated USDC tests for files that have shown issues on ARM64 - run under lldb to catch segfault + - name: test usdc timesamples files with lldb run: | - echo "Testing USDC timesamples files with tusdcat..." - ./build/tusdcat tests/usdc/timesamples-array-vec2f-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-float-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-int-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-dedup-002.usdc - ./build/tusdcat tests/usdc/timesamples-array-dedup-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-double-001.usdc - echo "All USDC timesamples tests passed." + echo "Testing USDC timesamples files with tusdcat under lldb..." + for f in tests/usdc/timesamples-array-vec2f-001.usdc \ + tests/usdc/timesamples-array-float-001.usdc \ + tests/usdc/timesamples-array-int-001.usdc \ + tests/usdc/timesamples-array-dedup-002.usdc \ + tests/usdc/timesamples-array-dedup-001.usdc \ + tests/usdc/timesamples-array-double-001.usdc; do + echo "=== Testing $f ===" + lldb-21 -b -o "run" -o "bt all" -o "quit" -- ./build/tusdcat "$f" + done + echo "All USDC timesamples tests completed." - name: tests run: cd build && ctest --output-on-failure - - # Dedicated USDC tests for files that have shown issues on ARM64 - - name: test usdc timesamples files - run: | - echo "Testing USDC timesamples files with tusdcat..." - ./build/tusdcat tests/usdc/timesamples-array-vec2f-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-float-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-int-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-dedup-002.usdc - ./build/tusdcat tests/usdc/timesamples-array-dedup-001.usdc - ./build/tusdcat tests/usdc/timesamples-array-double-001.usdc - echo "All USDC timesamples tests passed." - - - name: Upload ARM64 tusdcat binary - uses: actions/upload-artifact@v4 - with: - name: tusdcat-linux-arm64-clang - path: build/tusdcat - retention-days: 7