Skip to content

tests: add a few "base" tests #39

tests: add a few "base" tests

tests: add a few "base" tests #39

Workflow file for this run

name: "Compilation test"
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
container: debian:bookworm
steps:
- uses: actions/checkout@v4
- name: install prerequisites
timeout-minutes: 10
run: |
apt-get -qq update
apt-get -qq install -y build-essential perl
- name: attempt compilation w/o asan
timeout-minutes: 2
run: |
NO_ASAN=1 make -B ansi2html
- name: attempt compilation with asan
timeout-minutes: 2
run: |
make clean
make -B ansi2html
- name: test minimal conversion
timeout-minutes: 1
run: |
printf '\e[0;31mred\e[0;1;31mbold red\e[0m' | ./ansi2html -p vga
echo
printf '\e[0;31mred\e[0;1;31mbright red\e[0m' | ./ansi2html -b -p vga
echo
- name: run tests
timeout-minutes: 1
run: |
make run-tests
build-static:
runs-on: ubuntu-latest
container: alpine:latest
steps:
- uses: actions/checkout@v4
- name: install prerequisites
timeout-minutes: 10
run: |
apk add --no-cache clang musl-dev binutils xz nodejs bash perl perl-utils mingw-w64-gcc
- name: static compilation [no iTerm2 palettes] with clang/musl
timeout-minutes: 2
run: |
clang -O2 -o ansi2html-noi2 -flto -static -Wl,-strip-all -Wl,-static src/ansi2html.c src/main.c src/structs/ansi_color_palette.c src/structs/ansi_color_type.c src/structs/ansi_fg_or_bg.c
- name: static compilation [with iTerm2 palettes] with clang/musl
timeout-minutes: 2
run: |
clang -O2 -DITERM2_COLOR_SCHEMES -o ansi2html -flto -static -Wl,-strip-all -Wl,-static src/ansi2html.c src/main.c src/structs/ansi_color_palette.c src/structs/ansi_color_type.c src/structs/ansi_fg_or_bg.c src/iterm2_color_schemes/ansi_color_palette.c
- name: test minimal conversion [no iTerm2 palettes]
timeout-minutes: 1
run: |
printf '\e[0;31mred\e[0;1;31mbold red\e[0m' | ./ansi2html-noi2 -p vga
echo
printf '\e[0;31mred\e[0;1;31mbright red\e[0m' | ./ansi2html-noi2 -b -p vga
echo
- name: test minimal conversion [with iTerm2 palettes]
timeout-minutes: 1
run: |
printf '\e[0;31mred\e[0;1;31mbold red\e[0m' | ./ansi2html -p i2_laser
echo
printf '\e[0;31mred\e[0;1;31mbright red\e[0m' | ./ansi2html -b -p i2_laser
echo
- name: run tests [with iTerm2 palettes]
timeout-minutes: 1
run: |
prove -v tests/*.sh
- name: static compilation [no iTerm2 palettes] with mingw32-w64
timeout-minutes: 2
run: |
x86_64-w64-mingw32-cc -O2 -flto -o ansi2html-noi2.exe -static -Wl,-strip-all -Wl,-static src/ansi2html.c src/main.c src/structs/ansi_color_palette.c src/structs/ansi_color_type.c src/structs/ansi_fg_or_bg.c
- name: static compilation [with iTerm2 palettes] with mingw32-w64
timeout-minutes: 2
run: |
x86_64-w64-mingw32-cc -O2 -DITERM2_COLOR_SCHEMES -flto -o ansi2html.exe -static -Wl,-strip-all -Wl,-static src/ansi2html.c src/main.c src/structs/ansi_color_palette.c src/structs/ansi_color_type.c src/structs/ansi_fg_or_bg.c src/iterm2_color_schemes/ansi_color_palette.c
- name: compress binaries
timeout-minutes: 1
run: |
xz --compress --stdout ansi2html > ansi2html-Linux-x86_64-musl.xz
xz --compress --stdout ansi2html-noi2 > ansi2html-noi2-Linux-x86_64-musl.xz
xz --compress --stdout ansi2html-noi2.exe > ansi2html-noi2-Windows-x86_64-mingw32.xz
xz --compress --stdout ansi2html.exe > ansi2html-Windows-x86_64-mingw32.xz
- name: show sizes
timeout-minutes: 1
run: |
ls -laS ansi2html*