From 0f849f152b675078f6a3e2410178ddde04247438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Wed, 20 Dec 2023 00:22:25 +0100 Subject: [PATCH 01/56] ci: Use pre-built DJGPP image in GitHub Actions Workflows, so DJGPP doesn't have to be downloaded and installed in each pipeline --- .github/workflows/01-build-and-release.yml | 13 ++++--------- .github/workflows/02-pr-checks.yml | 9 +-------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/.github/workflows/01-build-and-release.yml b/.github/workflows/01-build-and-release.yml index 01c6d832..9184c463 100644 --- a/.github/workflows/01-build-and-release.yml +++ b/.github/workflows/01-build-and-release.yml @@ -3,6 +3,9 @@ name: build-and-release on: push: + # TODO: remove branches block below after testing + branches: + - set-up-cicd tags: - '**' @@ -10,7 +13,7 @@ permissions: contents: write jobs: release-job: - runs-on: ubuntu-latest + runs-on: ghcr.io/volkertb/debian-djgpp:v0.2 steps: - name: Checkout repository uses: actions/checkout@v4 @@ -18,13 +21,6 @@ jobs: path: src # We need this in order to generate a changelog from the commits between the latest and previous tags fetch-depth: 0 - - - name: Install DJGPP - run: | - wget -P /tmp https://github.com/andrewwutw/build-djgpp/releases/download/v3.4/djgpp-linux64-gcc1220.tar.bz2 - echo "8464f17017d6ab1b2bb2df4ed82357b5bf692e6e2b7fee37e315638f3d505f00 /tmp/djgpp-linux64-gcc1220.tar.bz2" | shasum -a 256 --check - tar -xf /tmp/djgpp-linux64-gcc1220.tar.bz2 -C /opt - rm /tmp/djgpp-linux64-gcc1220.tar.bz2 - name: "âœï¸ Generate release changelog" id: changelog uses: requarks/changelog-action@v1 @@ -37,7 +33,6 @@ jobs: run: | cd $GITHUB_WORKSPACE/src test -f main.c - . /opt/djgpp/setenv make test -f output/sbemu.exe - name: Combine changelog and user instructions into release notes diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index f33c1a52..dd53caaf 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -5,20 +5,13 @@ on: - main jobs: build: - runs-on: ubuntu-latest + runs-on: ghcr.io/volkertb/debian-djgpp:v0.2 steps: - name: Checkout repository uses: actions/checkout@v3 - name: Enforce Conventional Commits uses: webiny/action-conventional-commits@v1.3.0 - - name: Install DJGPP - run: | - wget -P /tmp https://github.com/andrewwutw/build-djgpp/releases/download/v3.4/djgpp-linux64-gcc1220.tar.bz2 - echo "8464f17017d6ab1b2bb2df4ed82357b5bf692e6e2b7fee37e315638f3d505f00 /tmp/djgpp-linux64-gcc1220.tar.bz2" | shasum -a 256 --check - tar -xf /tmp/djgpp-linux64-gcc1220.tar.bz2 -C /opt - rm /tmp/djgpp-linux64-gcc1220.tar.bz2 - name: Build project run: | - . /opt/djgpp/setenv make i586-pc-msdosdjgpp-objdump -x output/sbemu.exe From 7bbae203d3f70987b8b8769fe315a78ca801e9e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Wed, 20 Dec 2023 00:23:35 +0100 Subject: [PATCH 02/56] ci: Update temporarily allowlisted branch, to test the build-and-release workflow (best to remove `branches` block before merging, to have this workflow triggered only on pushed tags) --- .github/workflows/01-build-and-release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/01-build-and-release.yml b/.github/workflows/01-build-and-release.yml index 9184c463..81ab75d8 100644 --- a/.github/workflows/01-build-and-release.yml +++ b/.github/workflows/01-build-and-release.yml @@ -5,7 +5,8 @@ on: push: # TODO: remove branches block below after testing branches: - - set-up-cicd + - use-preinstalled-djgpp-image-in-workflows + - run-tests-in-qemu-in-github-action tags: - '**' From 301d8e4f9bd213d208013dd7bd5155791f9f6e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Wed, 20 Dec 2023 20:12:24 +0100 Subject: [PATCH 03/56] ci: Update .github/workflows/02-pr-checks.yml Co-authored-by: Thomas Perl --- .github/workflows/02-pr-checks.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index dd53caaf..2c574181 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -5,7 +5,9 @@ on: - main jobs: build: - runs-on: ghcr.io/volkertb/debian-djgpp:v0.2 + runs-on: ubuntu-latest + container: + image: ghcr.io/volkertb/debian-djgpp:v0.2 steps: - name: Checkout repository uses: actions/checkout@v3 From 7700faecdad1422d60e65bdf6175aa3ccf730f39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Wed, 20 Dec 2023 20:12:45 +0100 Subject: [PATCH 04/56] ci: Update .github/workflows/01-build-and-release.yml Co-authored-by: Thomas Perl --- .github/workflows/01-build-and-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/01-build-and-release.yml b/.github/workflows/01-build-and-release.yml index 81ab75d8..839802e3 100644 --- a/.github/workflows/01-build-and-release.yml +++ b/.github/workflows/01-build-and-release.yml @@ -14,7 +14,9 @@ permissions: contents: write jobs: release-job: - runs-on: ghcr.io/volkertb/debian-djgpp:v0.2 + runs-on: ubuntu-latest + container: + image: ghcr.io/volkertb/debian-djgpp:v0.2 steps: - name: Checkout repository uses: actions/checkout@v4 From d4eea95ad27a2a516eff676abb92405ca89142d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Wed, 20 Dec 2023 20:43:54 +0100 Subject: [PATCH 05/56] ci: Update workflows to work with `debian-djgpp` container image --- .github/workflows/01-build-and-release.yml | 2 +- .github/workflows/02-pr-checks.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/01-build-and-release.yml b/.github/workflows/01-build-and-release.yml index 839802e3..50ac5ad4 100644 --- a/.github/workflows/01-build-and-release.yml +++ b/.github/workflows/01-build-and-release.yml @@ -36,7 +36,7 @@ jobs: run: | cd $GITHUB_WORKSPACE/src test -f main.c - make + make CC=gcc CXX=g++ test -f output/sbemu.exe - name: Combine changelog and user instructions into release notes run: | diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 2c574181..15627151 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -15,5 +15,5 @@ jobs: uses: webiny/action-conventional-commits@v1.3.0 - name: Build project run: | - make - i586-pc-msdosdjgpp-objdump -x output/sbemu.exe + make CC=gcc CXX=g++ + objdump -x output/sbemu.exe From 5a786c17d8c38dfa8e6c394417ae2365230978bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Wed, 20 Dec 2023 21:14:06 +0100 Subject: [PATCH 06/56] ci: Move shellcheck of artifacts build script to separate `lint` job in PR Checks workflow, so the build container image does not have to include it --- .github/workflows/01-build-and-release.yml | 1 - .github/workflows/02-pr-checks.yml | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/01-build-and-release.yml b/.github/workflows/01-build-and-release.yml index 50ac5ad4..f736ae22 100644 --- a/.github/workflows/01-build-and-release.yml +++ b/.github/workflows/01-build-and-release.yml @@ -43,7 +43,6 @@ jobs: cat $GITHUB_WORKSPACE/CHANGELOG.md $GITHUB_WORKSPACE/src/user_instructions.md > $GITHUB_WORKSPACE/RELEASE_NOTES.md - name: Build FreeDOS SBEMU USB image and ZIP file run: | - shellcheck $GITHUB_WORKSPACE/src/scripts/build-release-artifacts.sh $GITHUB_WORKSPACE/src/scripts/build-release-artifacts.sh $GITHUB_WORKSPACE/src/output/sbemu.exe $GITHUB_WORKSPACE/RELEASE_NOTES.md $GITHUB_WORKSPACE/ - name: Generate release tag id: tag diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 15627151..7c024632 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -4,6 +4,12 @@ on: branches: - main jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: shellcheck build-release-artifacts.sh + run: | + shellcheck scripts/build-release-artifacts.sh build: runs-on: ubuntu-latest container: From 3b06b6d846e82926cd2b0b4efeab0d4cc00bb4dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 20:38:38 +0100 Subject: [PATCH 07/56] test: Add initial KVM test in GitHub Actions Workflow --- .github/workflows/03-test-in-vm.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/workflows/03-test-in-vm.yml diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml new file mode 100644 index 00000000..15f11e3f --- /dev/null +++ b/.github/workflows/03-test-in-vm.yml @@ -0,0 +1,16 @@ +on: push +jobs: + test: + runs-on: ubuntu-latest + container: + image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 + steps: + - name: Test KVM + # With thanks to https://github.com/actions/runner-images/discussions/7191#discussioncomment-8184408 + run: | + sudo useradd test1 + sudo usermod -a -G libvirt test1 + sudo -E bash -c 'exec su -l 'test1 + id + sudo apt install -y cpu-checker + kvm-ok From 9db52b422389eea0c6758a6e828224ae082822d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 20:42:09 +0100 Subject: [PATCH 08/56] test: Try KVM test assuming root already, `sudo` isn't even present in `ubuntu-latest` by default, apparently --- .github/workflows/03-test-in-vm.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml index 15f11e3f..ec1ed750 100644 --- a/.github/workflows/03-test-in-vm.yml +++ b/.github/workflows/03-test-in-vm.yml @@ -8,9 +8,6 @@ jobs: - name: Test KVM # With thanks to https://github.com/actions/runner-images/discussions/7191#discussioncomment-8184408 run: | - sudo useradd test1 - sudo usermod -a -G libvirt test1 - sudo -E bash -c 'exec su -l 'test1 id - sudo apt install -y cpu-checker + apt install -y cpu-checker kvm-ok From 7da81ec8f696ba3d9a7842fb0fa73e820b7bdfaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 20:44:00 +0100 Subject: [PATCH 09/56] ci: Temporarily disable container, run under `ubuntu-latest` in GitHub Actions directly --- .github/workflows/03-test-in-vm.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml index ec1ed750..fdd97598 100644 --- a/.github/workflows/03-test-in-vm.yml +++ b/.github/workflows/03-test-in-vm.yml @@ -2,12 +2,15 @@ on: push jobs: test: runs-on: ubuntu-latest - container: - image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 +# container: +# image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 steps: - name: Test KVM # With thanks to https://github.com/actions/runner-images/discussions/7191#discussioncomment-8184408 run: | + sudo useradd test1 + sudo usermod -a -G libvirt test1 + sudo -E bash -c 'exec su -l 'test1 id apt install -y cpu-checker kvm-ok From 9b146044851155ae4e172b3d742c091f538a6d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 20:52:28 +0100 Subject: [PATCH 10/56] ci: Use Docker image again in GitHub Actions Workflow, and provide access to /dev/kvm for KVM support --- .github/workflows/03-test-in-vm.yml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml index fdd97598..00f2b2c4 100644 --- a/.github/workflows/03-test-in-vm.yml +++ b/.github/workflows/03-test-in-vm.yml @@ -2,15 +2,6 @@ on: push jobs: test: runs-on: ubuntu-latest -# container: -# image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 - steps: - - name: Test KVM - # With thanks to https://github.com/actions/runner-images/discussions/7191#discussioncomment-8184408 - run: | - sudo useradd test1 - sudo usermod -a -G libvirt test1 - sudo -E bash -c 'exec su -l 'test1 - id - apt install -y cpu-checker - kvm-ok + container: + image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 + options: --device=/dev/kvm From 743931daaaaec938ff164eb23b0ef4ab7ab1f95d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 20:55:54 +0100 Subject: [PATCH 11/56] ci: At least one mandatory step required in job, so let's just add one --- .github/workflows/03-test-in-vm.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml index 00f2b2c4..85a7d3bb 100644 --- a/.github/workflows/03-test-in-vm.yml +++ b/.github/workflows/03-test-in-vm.yml @@ -5,3 +5,8 @@ jobs: container: image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 options: --device=/dev/kvm + steps: + - name: Test KVM + # With thanks to https://github.com/actions/runner-images/discussions/7191#discussioncomment-8184408 + run: | + ls -lh From 5a79db8b650e975cfc383859c324713d64bd6a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 20:59:45 +0100 Subject: [PATCH 12/56] ci: Run container based on Docker image with default entrypoint as a step --- .github/workflows/03-test-in-vm.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml index 85a7d3bb..0b3cb1e5 100644 --- a/.github/workflows/03-test-in-vm.yml +++ b/.github/workflows/03-test-in-vm.yml @@ -2,11 +2,9 @@ on: push jobs: test: runs-on: ubuntu-latest - container: - image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 - options: --device=/dev/kvm steps: - name: Test KVM - # With thanks to https://github.com/actions/runner-images/discussions/7191#discussioncomment-8184408 - run: | - ls -lh + # With thanks to https://stackoverflow.com/a/66358721 + uses: docker://ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 + with: + args: --device=/dev/kvm From 547403af2bcbc41e7b84cf18452e4a647cff4b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 21:13:07 +0100 Subject: [PATCH 13/56] test: Trying something that should deliberately fail, to troubleshoot (verify that args are actually being passed on when running docker) --- .github/workflows/03-test-in-vm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml index 0b3cb1e5..df877d41 100644 --- a/.github/workflows/03-test-in-vm.yml +++ b/.github/workflows/03-test-in-vm.yml @@ -7,4 +7,4 @@ jobs: # With thanks to https://stackoverflow.com/a/66358721 uses: docker://ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 with: - args: --device=/dev/kvm + args: --device=/dev/whatever From 1405361ce1bd4fe12809af1470fb210cad92c87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 21:28:41 +0100 Subject: [PATCH 14/56] ci: Try passing on Docker options in another way (although this way, I can't prevent the entrypoint from being overridden by the steps, apparently) --- .github/workflows/03-test-in-vm.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml index df877d41..9fefb986 100644 --- a/.github/workflows/03-test-in-vm.yml +++ b/.github/workflows/03-test-in-vm.yml @@ -2,9 +2,10 @@ on: push jobs: test: runs-on: ubuntu-latest + container: + image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 + options: --device=/dev/kvm --cpus 1 steps: - name: Test KVM - # With thanks to https://stackoverflow.com/a/66358721 - uses: docker://ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 - with: - args: --device=/dev/whatever + run: | + ls -lh /dev/kvm From ea902c8b0ce1a2e963e1e47e11ec34b5456a08d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 22:21:52 +0100 Subject: [PATCH 15/56] ci: In the step, run the same QEMU launch script that the default entrypoint of the Docker image would run --- .github/workflows/03-test-in-vm.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml index 9fefb986..f4af7cbc 100644 --- a/.github/workflows/03-test-in-vm.yml +++ b/.github/workflows/03-test-in-vm.yml @@ -3,9 +3,10 @@ jobs: test: runs-on: ubuntu-latest container: - image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.6 + image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.7 options: --device=/dev/kvm --cpus 1 steps: - name: Test KVM run: | ls -lh /dev/kvm + /usr/local/bin/run_cicd_dos.sh From 6353642ae48e3afcf27672514ac73e93800415e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 22:35:18 +0100 Subject: [PATCH 16/56] test: Try running SBEMU in a DOS VM under KVM-accelerated QEMU in GitHub Actions Workflow, as a sanity test (will extend this test further later) --- .github/workflows/02-pr-checks.yml | 22 ++++++++++++++++++++++ .github/workflows/03-test-in-vm.yml | 12 ------------ 2 files changed, 22 insertions(+), 12 deletions(-) delete mode 100644 .github/workflows/03-test-in-vm.yml diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 7c024632..43143059 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -23,3 +23,25 @@ jobs: run: | make CC=gcc CXX=g++ objdump -x output/sbemu.exe + - name: 'Upload built EXE' + uses: actions/upload-artifact@v4 + with: + name: compiled-sbemu-executable + path: | + output/sbemu.exe + retention-days: 1 + test: + runs-on: ubuntu-latest + container: + image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.7 + options: --device=/dev/kvm --cpus 1 + steps: + - name: 'Download built EXE' + uses: actions/download-artifact@v4 + with: + name: compiled-sbemu-executable + - name: Test executable + run: | + ls -lh /dev/kvm + echo "sbemu /?" > CICD_DOS.BAT + /usr/local/bin/run_cicd_dos.sh diff --git a/.github/workflows/03-test-in-vm.yml b/.github/workflows/03-test-in-vm.yml deleted file mode 100644 index f4af7cbc..00000000 --- a/.github/workflows/03-test-in-vm.yml +++ /dev/null @@ -1,12 +0,0 @@ -on: push -jobs: - test: - runs-on: ubuntu-latest - container: - image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.7 - options: --device=/dev/kvm --cpus 1 - steps: - - name: Test KVM - run: | - ls -lh /dev/kvm - /usr/local/bin/run_cicd_dos.sh From 179d6044bfecfc928258e6c487472c02e2401fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 22:45:58 +0100 Subject: [PATCH 17/56] ci: Check out repository before running shellcheck on build script, make test job dependent on build job, since build job needs to complete and upload SBEMU.EXE as artifact before test job can download and run it --- .github/workflows/02-pr-checks.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 43143059..5b901bf0 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -7,6 +7,8 @@ jobs: lint: runs-on: ubuntu-latest steps: + - name: Checkout repository + uses: actions/checkout@v3 - name: shellcheck build-release-artifacts.sh run: | shellcheck scripts/build-release-artifacts.sh @@ -31,6 +33,7 @@ jobs: output/sbemu.exe retention-days: 1 test: + needs: build runs-on: ubuntu-latest container: image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.7 From b90a5a6bfbcad5852dff24058edec35a4302b386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sat, 20 Jan 2024 22:55:47 +0100 Subject: [PATCH 18/56] test: Download and HDPMI32i as part of test, since SBEMU won't run without it --- .github/workflows/02-pr-checks.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 5b901bf0..e4463b35 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -43,8 +43,14 @@ jobs: uses: actions/download-artifact@v4 with: name: compiled-sbemu-executable + - name: 'Download dependencies' + run: | + wget https://github.com/crazii/HX/releases/download/v0.1-beta3/HDPMI32i.zip + echo "4b7fc576d6c5dfd3fe7290fd1d0c0229118d01a55c8325d487452c2d6e0c3bbd HDPMI32i.zip" | sha256sum -c + unzip HDPMI32i.zip - name: Test executable run: | ls -lh /dev/kvm - echo "sbemu /?" > CICD_DOS.BAT + echo "HDPMI32i.EXE" > CICD_DOS.BAT + echo "sbemu /?" >> CICD_DOS.BAT /usr/local/bin/run_cicd_dos.sh From e7dd2b525c8b72fe654ef394d1af97199ff39921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 00:10:14 +0100 Subject: [PATCH 19/56] test: Add AIL/32 files from http://www.thegleam.com/ke5fx/misc/AIL2.ZIP, DOS/32A DOS extender and DTMF tone test WAV file to test directory for testing actual sound output --- .github/workflows/02-pr-checks.yml | 4 +- test/A32SBDG.DLL | Bin 0 -> 8464 bytes test/A32SBPDG.DLL | Bin 0 -> 8738 bytes test/READ.ME | 224 +++++++++++++++++++++++++++++ test/STP32.EXE | Bin 0 -> 36822 bytes test/dos32a.exe | Bin 0 -> 27504 bytes test/dtmf_src.wav | Bin 0 -> 88278 bytes 7 files changed, 227 insertions(+), 1 deletion(-) create mode 100644 test/A32SBDG.DLL create mode 100644 test/A32SBPDG.DLL create mode 100644 test/READ.ME create mode 100644 test/STP32.EXE create mode 100644 test/dos32a.exe create mode 100644 test/dtmf_src.wav diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index e4463b35..113a73eb 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -52,5 +52,7 @@ jobs: run: | ls -lh /dev/kvm echo "HDPMI32i.EXE" > CICD_DOS.BAT - echo "sbemu /?" >> CICD_DOS.BAT + echo "sbemu" >> CICD_DOS.BAT + echo "cd test" >> CICD_DOS.BAT + echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT /usr/local/bin/run_cicd_dos.sh diff --git a/test/A32SBDG.DLL b/test/A32SBDG.DLL new file mode 100644 index 0000000000000000000000000000000000000000..ea758704590464fe1cfbc48c5bc8be001edc2b56 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/test/A32SBPDG.DLL b/test/A32SBPDG.DLL new file mode 100644 index 0000000000000000000000000000000000000000..3a421faf018f59652ec5f912084b4d52f8ffdc5c GIT binary patch literal 8738 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 literal 0 HcmV?d00001 diff --git a/test/dos32a.exe b/test/dos32a.exe new file mode 100644 index 0000000000000000000000000000000000000000..4dbfa2bd34a43ee2db7c776cdca3f202487c9da5 GIT binary patch literal 27504 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 xP-Ki5IXR)+?Kx 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�Ak53#W!A%1>7 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

77S9--n=-;6?q4jve2XZKtXKhK_#=tYtQ z_vq&4_V(Hu<3lQ8wY88F5D{CVEiDZXH#Oztgoishp&z6E!Yq(C22nUOGd_-nhN?)N zGx{|d8E2yH??XG0O#vxH^)+cGuwhgmLqm3Tp->eULrT`vbaqZmNY|1(kwJp~&$z*H z;H_xVT|YOsqM}J8#xcTi8iHBL&Mqr!YlC^gt3-PL%W*?ai>s@P3oa!JMP42=spNK) zO1K34c_40##?8&^>+j$H{olWTzq(pqCtoQu6AvS@!;+F@-8Bjl`ch0xV4%0Rk8oUo z_vz_bS~@>}O!LCqg%N`HS6Z5hHbCFQ=_)7)?!w;Q!y_^>Cr9QkefS`A6SlV}Cb+}# z%4bEE3OKxIbu~UOK0bIRync;a2;-)|U*?ouU!R<;t)U{aCP`|HytUEMkr9}aqN0QZ zZ*SZ-;0MScD=0vNM7!tiCj0C0zVGcF8(UadU0q(DoFp}fgcGTulKc@ItWwp~FgGlT zHZx;1%A5$a&#o>qYT#gGMg!v}EX>jIIbwzk?@$vreSq9AW? zpP#>fe{*vz96J~{2?@Vvnm|p|3O1A-Onp7n6C`6{VNDHAM+XP=;+HRQhUAqnOS-w) z+dDXTdWMBj@s3`{D22EpA&@jFSgGmh-;=NA<~lkw8j?at0SgHsy$a5eN^@wKxHy=V z;NZBpoScS+(b1iq4`MJN&@N^t!l^eh2UYIDO>j%WNjRfADRIjy5HFxVlC}9^`v9aaljg9qnQi!;J*z1 z%9@%629}nNk3W3){Q2X@(^FES7&p+c*4A(fWW*E~!@9yU!VIO0R5n&}Mls~Yy`V!) zSzUE?P>DW1cr(bf5a?;i>8Vr+36a7dC^{O(xU-X#AGyo;^y%mb;z6Uq_bpUpKE}sq zWE2)M3v*Snvf|_Mc=PZezau-FakIONL(R{Bx+?Yda)+~j#Y?QDgdU}5HJbGF@Nf?g zJ3DLZ-%}DKAQ!Q+vab)HlRc44va~ch+TCrs z_R`^KZEbxW8Uo5LD(d%L2KiNZ#LUb{ot?D|N}XNp;Gm=cNMphit-L%rnQ`;{`Lk!1 zmhSGXuC=u=bVEaM@62#8(ACvA^pI->S&KUnxmHJ)LfN*u?$Z-=CeyaRXNeAL;HM6ohLX_mbS}Wo1deGC4UnmsN9Z?ebqam0Mdz zBVJ|@68`=nAu!2Y`)a}R!$l`1hKBn4!||k~l$3OJEiA~~G`Y*bokpf6;YtPP18o2+ zUQnP=goSx}IyyQycz8hhk+`(GO9H2Kh?$uo?TmR4R|_0Kc*etjqo5!u304zE5XLYu zk@*IXk@xREe2~0GPY-(u1r$_lfh?--Hu`q|JG7A%)0g|Jc-|*AESik55jr+vZMS{=~~qR*y&$ z1TKA9!NaT3~G$dRKPj5V{=8A?B6z@nfD)b{~ z3JndcXIy)Et^iTS@A8-NJd@OkJjg^#esC~pk znv?Bb;jrH={JLf451)YdEfax6{LVxE4rlJv_2OrrAhOu01A9DwTUuHZZAthT;6ost zjS~}NVxpoT2snS|l#o+nco{w!9F6=-CK_gNa71|BkBkfqz&w9>dejC)e zNks#FJ1woK2q$wK=<#4T)%{aJjl+qlVx5GE=x98vdwM1&mX@fa#4SSB5AzAQ?sawK z4x!iRg$uJx7m1Ax2*7p2(b3&KI2hk}lT-hXAOHUEKYpOOPfw$waCYtDf)|OC(__9u zXQ#m+D@QrOlvf0uq(kHwjg8IDE7Yd{tF=?(a|X>j1_tM%PA?RxOsUwIk~w71?A;rlT1vI(D3fv`T5BS zxf-3Fqyms-fwunVLw$8b1S*fwxUxcZGaL~-4^{oR?%=ebR7yX8cnR)Qs>nGX> z?(VLr$jp=~E9pUGalnY-N)GWMPxABfxI?&4P3a;>NAKR9p6=}}Ee#DdG?<+FVVuyf zWaV#X=k)Z>&iVO`Xy{)uUx7P>yf04L^YUPqxFRN|41fJ7(cFuI%9^daIZ`A|#`P@~G4G_8N_&A`?Z{2D6$nws3Fi?UhMzvx18p7-(%RD^n^_dTneV zJV>&E4{2;19o^cxy87}3jT%=C($1=?va(`hamDZzSv@3Qz^9lJ$hacXyNkq>sw&A* zuCBsmNd3-eY;MNC$IA;QggeB_%F7Ftmhr|N@uDPtV}s#6+&C>>+$dNP9UsSy<@lDKD44VAj@_mNqu7 zuG~$$x6V$ySjNU!xk)@g^J4AAX@WF7{4}PfMjo>8&`<*dO_lesTBM=j?t@Rt58*LF ziW|H_OAE?>c(}j6x3{lva4@SWtP!uP)3GmN>`JdUH0AboW@_jg=@>IJ)6-K~iL(q` zpUG<=I9REyu7=e(I)bA7@BunvdYT+37#4*><|4=%clJS2bIi`B20tz?J|4#vv~JvK zNX+{r8id)*3@%uBBiPtHfBvUX_^qsDmPtdyz`)$x=H{Mgn<6u9Y^EJMfZqtWDkfyWnKMFvAn zO-@c+T#!h{@$&NZH92UI#>5`cbVW3pq9WYX&{ieAa&T~XxGS8iMn+)&;7I5p>Fnm= zL9$j$%lP=#*7^DE?cE)u((3BSh$*E8;wvRZsWc@^vG0X!E(-k2V3@Y`z< z&H)t_CZ`5(Zx0V|Z|;!1Jlu&MGu%wRIF*$+Q@FTTS-pAl_N~luQmd=0J30mjQJLXD zP?=dpc&fm|P_G{pzIF27^!kQ|q9TQYBpVwW3kyq2_!N?CIyz=%4i0Wb(jV7fCh*|Y zmzEYD?(6H};pyq`PnHQ}T%E|EYZZ;Zf;)pogPIMGz`l27WoPH$U~g|@V`hdd9P;91 z(i?6Z?0ck7-QuFmY5Mr_@)D;gg8}XqPpkydaB;vBgLR$f6VtN+S4$yCaGci$2Il8+ zv-tS&?hd!SxjDVQtSlwPw5!9}&)q#Lid4b=en}57QXs0~rJ<1JXfj<9o<#71$jQO) zB_M#2=UTyl6kJ>A{CyaGky zTY7py0e*Ajcs^c{Vv!YyZ%kL0(KtK1wzj*w|F7i1k`kGQ#j1`E9ZaxVjqjhNIHfxY z9!4hmJ|Q74jw=EuA=h=eim(GyD3XQa4k@3Nl^q>pV{2<9<}vTR6Nz~vBTY^0>P&7d ztm-8F!7p=%keMd^SVl+ndN_2bQiuJ|Q#Y z&CTKA;-bM&U7eK`73Je2vrs)nx)`h|eq{#3@bK8!=qN;zq$zkZXFt@|24_M3OkW=! zVED!*C54LwBk7$&FUu#xxw);a!^4x4Ly^<-_++S1n0A{fDR3Xq=8cVbdpx?2@MO(e z-`3XC!*l4EXw06}3Q(nxloS;O)r`YpYN}dYQNa#CCcVzivbu3!!=vI`B}otZ$&@+^ znZ*jsc!oh{mVpQF?8K*SSTy;$@hBvLDI+6Qc*gLgE)#m>vvXG$&l=qixw<4Q$}<4T zoWOx>CGb(-gpHCN9-ymKzqDf~Ho;6v&1=#t}c#7s#xzpw8 zi2OV9zpN~LpEC~{U;loF^845PEbZ|ptk7pfx^`B2e{_F4ZiA|?0eEoR7Vmf0now|^Jf*MUjL6S}< zoL*B~#JRkzOOj_#@-&EK9DY)s@yOaEh!xI#pg!a&QCC-|s0!x9Rn}`kJSdga`r#nV z=@m+APmf;T)y2=r^C(V$sPMyWh3b5iGfsz5A5pu~(z1jb1qvE!-Q?u-^wbo-&eG?C z)3Y4W)FOSGGcw*0XJ^!3QPY)`m6O8>o;*99p2lNgd3ko0s#z-Z($ZpM!^35@sC1S< zsqO6S5_!}xCr}#n5+{A~@6U*ggVE8xK73G=%BU!mFgG`pFmfYM-XXfI}3b4xyTdX zT5zf?^U)g{sjVZQ=y$(%6wc}C!^68fso!2+uB}n)kGH(9ue-a4hrfShWNIq)*Nh8Z z1#cPY;Q>QLRs;zp)KOks?Ci*dfT$=}S3JJa2{;8uCy+JrD=P~NuoxY`AiKAdsFedz_Ia{ZFWCgw;0`+RAstQn<7Qfe55g;YFKmpebd zyGsheyLa2d-J7cTxHwV>p8U%T9c`hnZ+3QLV`pc3du3&63KfF8NG4x&boBKNiKjB zO%8v9{r#I8s4SVR(a}*@h?kC)a1X){!pA2zmda$RanS>YhDe5DHf4<99W*|U=l$j; zS4pq0tdzuxRBlMEijOA)WOjCM@BIAw`urU2-)L-WtEyt2qZU-^*)lOo`WXZTxeGr7 z7Z>S)0;}+Q-jht7QLDKFy+wnIBfo?Bm?~0yKTK>|etu;oJ~Zp=r>7r2+zD3$9D};M zr3VD0)3ayPu%l;HR^l@;JG-zjJ3BUp?jimAnI}zt?sIcw57Ea_QSR<|k316@LvC)- z(Kzi)PfPEF-xGogg@05=hD!Lgo9M5)I_dU7;sfekKmg7&c9nx4#0Dl04`OL)cULkei;DvTH8tcp$fUF@#Qq9U#WB&_s? zqMAG*At=br&B4Lm-c2OhrKgkkU>b9hlZ0_9E`~XQ$_fr983$)0v@kr)U<~oOAh$=l z9pDs0Uc|?bBvK6wR8^&>1_apIy?pun`I|RRPB>VVmNM^8OiWKtP7Vu4r?$4oJIf$4 zmgeV|MgEs`l0vPP{1CJPJXcm$Ljy@9q=3jB1gd>QgG^&#FNA+mgUC`Obdr_oW8wIU*%onJlpdNJlqsZ`{lz*a3S zjgQN89u!!pS$L-*(fayuFv!d_W$Rd2NET45H5gV_&d={f{@<4`P&|{9?d@e{DpjIj zrAZn?sYkd-eBEPD+lN3=?*}CYso^8pvHQ z9N3j$i66;TvVhcTd|%|+EM2iQnv9H?7~IL6o!vyzTS5YfGmpF8FJI2jS66W=QmJ@` z@bdEZ4ho8if&Uw@~y~S%~cNbnIFE27u?s^~7dD!(%Oe~0$ z(b-v^R7`gk#3Ov&%*@=}%*^m`XJ=;^fvAj)hrS(96!w($^(EK3lkjnNp!l zYcnY;Cf~aK{qu9_kHfAP?>W=1SI%=P6}#S<853#Eoh2O;S({s0^!kB;5z$B|lDl3w z+qZ8mE$!`neG?KSA%#aIYzs`^NVTMondjcU zyAnQ;WF;AmO-%&_$;qLizP{exetuzLxK@!qDd|aO5LPUzGMGEbC>kGU2eq&;H8nU$ zA4`uSo(JLO5)&c3p|Hlsr$rkdH;r0&4N3UpC@P;PWsaI$S)-%l;$Y~RkM;VI5j=kw z4eZq5q)JM7QsdcJ`it;%&+{MNAsS6VL0(?INSwu^4=1Dken=b1x4_d#4__))4jaIE3k95S?nW!+Y<$n_{MSF4rEl$7M;)KrygK!)zQ&p>pXpmV?NI3 z)zzk49;u7tBbxTt{MJNr_&+ynKHC_3N)+G6%(ItglzAsSJ#YijP++^F`7MV;ycro}&AS1RNLw zJjVC-Zg1gZK7T$vB}b#UnAi9B$NhmU3`r_fR8UKqloTC}&YF>-)yf1F>P&z9c>jKT z8^uSd#Fg8{#oawHFfNXIbgBMxl8eg^pGBi-Y8oEi*tod({Q3KL)aJRl_V)bz=xEel zYip7}$Xmb#n-ga$o$M9WW0DmrMa~=Sx{9~ z{rxzc@9%GKW_9-ILZjHLr-cA)K3|nojS{)PP=?OyuokfxmdOCfHGI4skwl*?iO0ObqfqS&Gv!kP_ z2^~->hHu~6+QRZ^Gntt78<5VEmX?tr9b6hklbHq)5#HX;&W?`c zGvI4KJ}y(2(BMdH>gXsfC6y~CCO#hO3_XAfane`dG05h?^`yMKw|8ab;sP4u`}dn0 z5`SuHNNx!Z4h%#G$rNc|%*`lT+1bg-(a~XHIA)+0jgOPU@Z-lXQ5Ai9%9txGq<-36 zG(W%SXtZYZ0r{6RGgCy)5Ts6JWls+-5I6~$@~P0%af`6Eb#RdG22y`PccAJxH#bY9 zK$Vs@H4P1|uD*Ns@#ANa-*9+1Gt=6dn@i=tr6pXH|%gYlJxcsxW%2{3NepJfW)!}mBuP%a}tiyt(=CPhwH8$7`yf00jv;qf6vV$@CoDZtU%G zpKx*t3CYZCY@C?b+k5~1%a{9mTs+3d+uCp#fdNvh@!mqwA(<*GD=yAom zlccb^%9w-ZlBqA;ODQSw@%V?yoG9FoN=l@skGD6T2eGl##!pTj9NgWBLi}HksUf(U z1P7Bor&Jb*EIsxvrKP#KP%NRM!4u(L_4koJI7r$;_}{XvnAO<{Xf#<_3Ppk-$dpR7 zczl-Lzn9ra$H$C0wK^)w)6+pT+_<3W@WIgO8XNiT9FfFE{dsjYF~#l_@6zyQJS$mA-mmIS!P#e;*Zs}I6UW_NdDqPaOc8ye%)Lw=Qu z3;rF<-&B>GMypi+Wk$o!>npkqcrJTY6~ zBnH_#HMPAh`DfDmdV5PtWpdez7q4E~+e78y-OwvMHwFjgKAu&T`=+mNdU|UMzU%aK zV`Fr*p+Ti02ZdD`Y9K5uGZV)=xo(e)NGC8pJ^KjBx$Fs_6WrwBY~9^ozcyv`L1yA{ zu`E)TRz(ix&=5%|+~<%p!^5+)P+82IH8nDw@%cl>n;diX^~1xfs|N>1N4vt;hSVNX zR3y8`E}VT01hqzkACR@RBqcpO;^Rw7pfO-huC9)c$rtPFBsWw#w7@wS486VW?NwE{ z?Rk1yTa()Y36`DBJh#99UN{axNUg3KjWF8q@{CrFMk$@ca(Hth0}leJn> z6yb)x3y;2&6EcBJ*+{7mK8|D+@$^+xl%5X1;wGA}NCnKxYi*sGk(o>~TSq4NF^fVa zJu@mhKCm)9NO@uoSyFNWJUM$b8xV-f|(|nlY0rDlaZ0Z zL0DoELHP_kD@{!;F0!Y^VG_nRCdOCfU^+TVaxE{9dx?={@(^OQvU6pI8x*N@Hpa)8opgsRiwzq#f69CbHchw1wwbX(Ks=| za~!J)<4e*i{B0Ny$u7fJlNp&HT5@tm2Cg^E`$I#cq8W`ix3Jgd?0{VeYYNxSR-mkQ!BhmI8QhI z6tBx);rlWRnX@EnjG#;&oo_i;mDNaXZKx?Gw-THgwAx~kcn>j>ot>M@d9}%Bn!Eze zvfJ9wZcv@5QPK*JV9B${cfmOrt}3MXocHEO{))$8r0mW$KK>}<}$P$6VBm2~5kRao)_jVdW>)*t_tQRsPiB@`E{ zRCpi+1_lHK1w}BSTim^ICo~Bn0IFy-KH})=m_$4v`&X z${^vKvaU`h2hcZdZD?ABg&7$M3FvG=K`3o1l_@*Ils|EFw7iTj11=fv?$*|?Ut3t% z+2O39RyQ;Z4lXS0>>M2(AMfq0u5$8;3Qo!p+Jh;}Mb^`EwQ!NatAoS@ji#=yyL)_m zWrf@rbk2>9i3uvWA3gZdZy#$QPfnyK#_jFV(ZWJsABi@xv1lh=!bKbkgA{wt9#J^E zy4u@i{tDOJXt*xLS zHrC6_)|UEr8yl*0RjP`L&d$-%g@v`Xb&>WnGlRkn9 zLLwrlMbv6LJ0~Xa&HwljS8$n|QdO0n9vCQrk_9IPEZ@DObrkB6iM<94z8|n0Gz>d2XLpraG6}cxvx=Sq)P!Oz^Fpi)ddAI zTgT1K#l^!TC`jg1jEy}ec}N{jr$dExbF;L3CYptXt7}*o)up|?v$LC zPR9tQZj!o1J|!cK8K|tRu#j5+Cg0UBbsa2D|Q4+@g$A|)lv7N`*T2cZQp$1q#9 zh!h~BacT-`V16F|hQ`Li!sO(jAQu;FYh37ET|+~q3;o*K#l@E|fBj{u?w20>0RfJV zRL4>g9v+^aj`A=#XnMuT$-zM=2(B`x;*WXst*t0oC^^#4op&1*g=ao0AU*_lcVE7I z`h*t|yaPI*BoEMX@e;|*l-1*hhnJVv*Elnn@=i!%N)*{)$;ppt4$S#5cGO%m53AL( zW_WNA2OKyct`=VRcovYD^;+Zsy?9}5O}2_ggV&8r4*4Onb#P%A9E696i9y4HkO~NZ zIbpWI*yuAI8z#<)dWR>n?C9dQPx#rCGtPOE-tPP~jl$D`F zG1gG|p;A^?NsP+O3=RFgufxN$vl|;nMohT?Cb|f!L#aeh4hca~Mx!$&+2HVivd$Wb zgB8qGPtVB6?Ci?Q+S;Av?&hxFQblt=M&s1eZ z7>a;^prG{Li69U_LWh7L0)hkxErc3+M=7Bw2q;Am)PdP&{+{#Rd1f8l`?}6PpZB@4 zJ~$5JD85;1z2&)|``04&mv7%LFE13gL4Lx^m(n9nN}bm6Us6(6*V00+9^`@ai9?@I zZzEq|V8CXRS{(CTMFkbn;9v|eUS5HL)Cp^9dU_TX_VyTSII8`9xFpGpqZUa`*vE&2 zGQ1l+E5enE6$=Iv=2db(sE0SIlrQR}VtYzWjf;zpj*U%D&d!Ds92mfYaC|I|vGsLH zmf;y}s{yuHK2v$M&~5lh(V>GARV_ix_VZ0+qvBLrAtVq9E8f{;4m6JR|ivk1hm z7_fw&omV6)90^R5*-S=HOiVxkDP}isl42(B(5b1nZ?E%i*49XbDlC+$sJFL|5BFMz zBY%kMDfLh2ENbW6;j9g*Pnt~B5vi%u>5jWBStZy62L}XTB}+)i%fmY$_2SFRtE=<# z_wVQDySuBZGBQF!JUnjPfLX+{rln%Me!acDtFi}$AnZ`p`|@(BUb0?e4ag_WI+U*b zJcsozBZCA)<~xf8=hgf7A3uKh@b2Bx(%>LDS2!P_aOA#*Q-$9WAIi6HuvF{om_nqs z8x|H4^6+6~q>xQDHKdEsjW78ktV&@iA*8WGOis?u&dl(}hsDB9LE4X-o4dP@4_s?` zIb`Fzcb^^hHrSBW)uAEYHhe0~Hg0ZE1gWXG!FqaZwz;`Q#YW7`K=$HKlFBTE6(bG_ zj>`v23pT!}sIai`a8_5?^hkOm6XZf&CnvbcAYsWB6RsG3EhGeo2t?4v23*hK;qLCr z%J?|^kGPg#!pJ)jQk%E9jCXPI)2Gl7PzBA+-QDmVc*wT4R#zqEF+V>p4tLd!8^8X_ z`#L%r!wxI9qoY6mfQ^yln6|dEGUi)xaRmo+uaQ&2%xtv|4qC0+dWFxLbs80G%il?H za8pplkU9JgettngQBfohb#{uI4L*{jE6Ccqy6o)maAr2BCJ&GM_mh*c%?%99&8@9% zZIK!^I}5Ga*oZd|&RIMUJlnEXD=Q;2EImD0UFqp?6?|4ORr~vr%(u2SHrCcwQj(k; z6a;(qgGwm#@CXgf%rqK%dc+WNadCc*iDYUDn;D!PF13gV)|*1n;dN+jWmhEb3%UR_ z+8alS(*Gzjest7qW_3+EmA4~ViZ!p~*gy!9(gR!i>C@)s*cdrhNlE-lclY0a_w@}8 zO-d>#c=oKloi)&mx+W&r9l^x&IbY8r>_lEEav91>r;Cpd4=241<~lF0rp9c(HoSfQ zytk*lLmxi$RH>3bs&pMUH+)%eRanw?c0PQ-{sS@8-3?I=7p~+Xf7?S?k+V9Ll`%A5 zP7Zq%Sdy+Tb|R7nx3#sjG&I!GA~q-JpPzo>9rEZA1hV7?U0hsUL7?*ln9bGI5If{J z-Ma^a%T9z`%=Y%~Zml;$-fHYbUaAz(o*t_sEful?Zoa4}Gc!gdK|$F*cn}?(naRvB zJWSrtkxBwQJY**}FwoRwFkr$8R34kVcjdk=D#CGhJ=U5*lG(DNf~+D|h|m%2uvx7Y z7w41&8*~^!`%2YWsGp{Z& zn85nUt~XCzvKE&dBefAx7b|ihIAqt$-hi$Vd9QbNLi)?D5rh;$)#3ks!XSMtB>9x9?hg6?={o38rcrjs zEiF*#-*>#oIPzwOe1S88+?G=d{v-$!?cy$DC&EAf`Qoec_3NL>ul?7r%71tM=o|s( z2slT;IRefRaE^d;1e_z_90BJDI7h%a0?rX|j(~Fn{{jbpe zwhoNs?;o_Y7g!T$lWXS*zbF4LU+0vUlN_rhx##5JKLwoF!@QTh8P;38EiU zOX;am>B`#aj$}g1SrXmo^t-}zP^Y9HlCCK-F-lA6#?+|`@`02RdK}x^g=gUml=`uJ zx129Q4UoMfcHZJ*y*}GvLC#XCGNq;U^(Iq)|Jc~nOzZE9Y69vR~KcEtUawai&JcVP0NpYIHQ!?T83EtEGlHuT1HjU%z=XHD$3hH&<5b z^>lP6C#R)R5z)-keD6jhom?d)R8X*`KpQMCudd=P85zOSk)5qo8euIG6NMm|pQrzR zXUA^8uKkfZk&~03k6%G*`bL$@ouB{sG4=ykhwB88qoeb492Zjc$jPC@lx&=vH@&^X z!l=d3!@9go#Y#(KArYynii!v4{+#(y2dSvY%}q*r^e8Zpx^s9q6(gxnpPy65ySUid znVvS8gaz^Pa(DOiq%V+O@8)K$%ek+wqeHk8YB*x}o^-fs1_wzf@Rn-@bP*DT#A<7z?`{KgYtt=%^&Z$Qd*ps;$aAO+B@? z)?k1J2@U1M91B2UAvp=8^ITryXQ9KnzrUtNrz67yLxH!qmgmyhIXGyujg1WtbN5o2 zmb<#6!(tg38CMsb?+p!4pK94UuC5qQsFd{eVJUzCxV$_$!A#%W%&!Xz3l0tn3RS63 zI$co_H94t+i35lPcD|-1gk#Jlh@~w{KG^N=T4Vc=t|wa^Alu zw*oIqM8v&&{wlYE-qze)d>~Xm+uNxF(GOZ#$=eZMfjqT#J8vJJ2&uB&yh-krrzd8X z`uf2^3^}AueEK9*SbaSm`$+BJk@Q>gwR&^XIv_PziqO3JQvh#ASj1O0!c*FE90&rY4>z zjX=Nw)!ZzODK|F=ES_ylHfA%K5D*<-zTgHK9c^tbE5mOP<8WsQr9yo~YD@-$UjO7t zP7WDPO-eaL;pOG$hcSsXsJS^Ujph7Yn-6%;`1*Qz`TD{dLB=tvTDBHX zq5S?-pJ8xih(UFqY@~b+ra^Zf{;g&G4!i4Ajo{co3OWcejdi_@NiFMnel{CF)b*N znHSR~;qHF_ zeo6{1lA)owxi@cCRu&g0C#_Z(4k$TETY(~iu)+5s`94x>zki>sIGkHzBKj|t2qT^i zA!z*kxcBeg4GSaHjm~|Z533bMgxP@gSz{wJ@8~GjlG$0CO?vWiXTf^8xOjLlD^^$c z^$CA>b@lZtcye-dw6n9kj6Vvijz+?2GcU#vX5RGl#6;d+kiRcp^!GDwpQ_Be z^YeoPn5~)`Nyhs1*Pnm>?Kj*Kcr^O@Anxq;HI-`vaR{3wZ&PiRLxLi_7JdPIPX7K- z4KP?eJ($s;5H&{xZ^GEvfB+Ab7>9EqE-ohr4?$laTr^edf1Y{!`)#(Vsp)AlxiI7D zbm8H?zK~At?ty_a3R6>1Dp%_I{F!?O!veW*GBd@*;5mU*W$nx7$SQ~VjIVWcU}sog zf2S_YV!ge!wOLt@9zg;?Ldbjob;CO4R3)-t*O{8??yj#l7@j=I$iPyi&Ajm7%)B`{ z%*iP!nVERhIy%UD#F=(}jy(c5k2W9tsLV{lB3D-8R(tbib8~BJO}TW2hb3DFParEO z__$Xpx076s!orM<=;#o|1q26&hm-Tz+KL0@^i=o}=7X*--h>YxczFq_1JhGnj16#j zn6=FHDuPb-z8dU+A2rx_pYwSM$Ja}`|oaUtVUTIFe~ouefh$Z zBbGK8ozzs>MZh^rwhrVV9SN-tM#dm?GB_I=;HdG2G1l-S?1Z)X0N$0vIG7N4*9Dbp zhyQ77YjF{JrmT!4HmFdNh{(?qUL5XaXb4vjJqX&KR5}x|erTNuya#dA#5>%K@KCJ2 zg|=T>B5$p&jeP{qcB*oE>2$fd1_REhrY83H?3A=UwNR_h3n1+uO08)YQ@(DOZX>y zfBAQQ_WjTQ-B;zmIe&DHfO7<#Bj6kX=Lk4Qz&QfW5pa%xa|E0t;2Z(x2slT;IRgKw zBcPpv{NJY|^{T2R7k^jIPasRU_&L81Uy(B$EC8I<(6{@2R}ytAqmh&iQtKrjM>+uM zlHw$c-+?op7cVfElfDeQK{uw+SgJCb>3Yh`D=aKk3D2BQnoO83=vTs%OP>|rkNmlu z58?WyiF4yhDQ zOi-mHXQQKoe$K3{A*2 zFDk-uLI>iaN~;+k@9)Qj0#iblJM|p8yEy43?Se`eU8$G>s;fIYag^`v;Td0B!xnBd z=H;cN#Km1_`e?N*`Yh@DgO8yqIXk<#d2sOYBZl(f;l{?iJn^Dyx#T4!FJF@PJuxvh zM$!qN1*eIxUiJ3cY%??T(c;7}D@#oc4wj0ko7;m2I$d4e;Na@&hYzQxCnw}mkljPo zk`6gJr^KIJS0~Bzj~)f7i;5Obgt@u>eX226SEP54-SYS`b@RJ-spZm%3ymOE5~==S z5N8Cno?EIPB)8<}i{+orWMAKy7|zrO2DFrwkrAq&{Efs}A%1FDg6it5Ea_>zdDGoJ zI5;h>y4qq{SvfrX^5yGSPN63zOs1-;JV*Y=V~dyqcJx(IXN~qE>7#0FMH7 z7;vO?V5aA3B0U4!{ldc98mH{sspaL#%4<)(5Z-|M=Gil=b$OXy*1bKuov!ER=IZKF zbyZf1Bc3WkT^&A>@bG{DZ`DhW*Sxf}vvYo)d?Pw@g`au$EGH)}j{Z%})~+SDP}3zd ziLT&=28)Fb`qR^k3rSyTZ7nF!GAYPxijRlS>FXOCn^HyyYUZ46%UyGwF=exLc1qtp ztP0+Rd-qaPxo?)2_xC@kYj2N~m9{pcv8YI|E`xzjnLf(r&!x9NEG#JK-aR^q$)=ie znCqn~Nj)E`0Sk@rBPl6#+0wI4wUEy0LUqB%L42*P(K&s1xVDX9b-n{AVR2{OD+%T50Q~1EKtWGMe6Dbug=@I{PN+{VUxbz!bCo6E|QlKlN$T;NpP-9tijIU-3E=%#OIuv*2aa_PvYnx203ih8M^-))uJgCz>G1* z4uc^s&d(1z=G$6_4 zfx!FpX@4JDfa)!CvtD0RR9VR!2L)PHg?Au4JSZqIFeF4sh_SKjd>r04&CPfa?%((K z4^(~}Nf4tp%>OUX0UmywM>gBa%HH0|$?@^d&is5=S9y72BKHmTY!44Iwa9InoLpMs zIk4H_2KXDn!kEni%5*{nx~uE?b1k{$#tlY-?6~&!xjAwgzJ5JD-PxI&(=sVCGNjV3 z4GbRM`>yM1ZNX6x!A0mi7jOw?d|6q#$Wn9VO< z&_^%nNAPaZ(FFyqt=u=~=R5}=Kd!7mQWh4brNzgS<;LoU`aaJA30^!0@$vM;KYIpS zNy^vdC5+end}n8IG5!^IcUM;rkKo|M#DW6I9E-(j?d!uR$NPcrh}tujh|SIQb#m}X z%nA*4cZZ6S6e+TGW@bn(6DA7359u&G2jnPHSB74NR^r`w=Z?2`KmcA0(wyYJ`SZ`S zv#l+gjY@t>N<;)!sDy;9EQ7≪;5Q2gVqxx26Vn2L`N*i_f2N*K~K6mnS6!1h~3t zl#(RC;Ru?Tz&9Yg8h1@s*YNPn%+eAT0gHuNGc$?QvweJGV+{tAiKh&!!G{la`@{rZ z5E!rge0(6x+pJunC(_d+BXPY12gk%P(+>^V?VmpV=}6(*-JPCpYcm*5czz z4uA!}MY|L&yI>L6t8==47Xe8xLK7D+7I$c$j z$uu}PK8`7?uTSU^?m?j{@u|R6;y#Lv_49LafnN3UiinUrpv}!gM-tfP=Ja$=PeTLy z6P|-|l?T+=NCyB(mLyQ!zaJ35>Yq1ufB(wL@$uEwUw?i3Chr^eACDg0yGKSJbPrAs z92F1<7_*=caCfj)*0SN?MCDlxcJR2YriH&*N9zledvl-%q zH6l(No|dXAgR*<-^#uju8)fGYwaosRHyD(vm_dhzaNqD}S}eS=SvzH_ti+6r>}=_r z;Pb`B!`n{w?vTVSj=m5weX!iI9uR6-r(+b^IkH#l=umPpMVXjX0urB(*5v{p0wD_p z$?m!2JGUt-jMmonb|@QoYwiwyRaI4`x*$w6`sDg7gIS8VpyoWmdeYb^PM3ejoUmTx zu935n?|=U9zAFFC`J;0LoFm{I0p|!fN5DA(&Jl2qfO7<#Bj6kX=Lk4Qz&QfW5%~W< G0{;yI(+7 Date: Sun, 21 Jan 2024 00:19:27 +0100 Subject: [PATCH 20/56] test: Copy test dependencies along with built EXE as test artifacts, so the test job has access to all the necessary files for running the tests in the DOS VM --- .github/workflows/02-pr-checks.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 113a73eb..c7d898e5 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -25,12 +25,13 @@ jobs: run: | make CC=gcc CXX=g++ objdump -x output/sbemu.exe - - name: 'Upload built EXE' + - name: 'Upload test files' uses: actions/upload-artifact@v4 with: name: compiled-sbemu-executable path: | output/sbemu.exe + test/* retention-days: 1 test: needs: build @@ -39,7 +40,7 @@ jobs: image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.7 options: --device=/dev/kvm --cpus 1 steps: - - name: 'Download built EXE' + - name: 'Download test files' uses: actions/download-artifact@v4 with: name: compiled-sbemu-executable @@ -53,6 +54,5 @@ jobs: ls -lh /dev/kvm echo "HDPMI32i.EXE" > CICD_DOS.BAT echo "sbemu" >> CICD_DOS.BAT - echo "cd test" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT /usr/local/bin/run_cicd_dos.sh From 863cf9bf61ee170d7c1d220c30481326d123cd54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 00:24:18 +0100 Subject: [PATCH 21/56] test: Debug why downoaded test dependencies are not where they are expected to be --- .github/workflows/02-pr-checks.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index c7d898e5..34b366be 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -28,7 +28,7 @@ jobs: - name: 'Upload test files' uses: actions/upload-artifact@v4 with: - name: compiled-sbemu-executable + name: sbemu-test-files path: | output/sbemu.exe test/* @@ -43,7 +43,7 @@ jobs: - name: 'Download test files' uses: actions/download-artifact@v4 with: - name: compiled-sbemu-executable + name: sbemu-test-files - name: 'Download dependencies' run: | wget https://github.com/crazii/HX/releases/download/v0.1-beta3/HDPMI32i.zip @@ -52,6 +52,7 @@ jobs: - name: Test executable run: | ls -lh /dev/kvm + ls -lh . echo "HDPMI32i.EXE" > CICD_DOS.BAT echo "sbemu" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT From 56ab0939440316e6114195cc378cfca82f46fbef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 00:27:33 +0100 Subject: [PATCH 22/56] ci: Apparently, actions/upload-artifact@v4 and actions/download-artifact@v4 don't strip directory prefixes when files from multiple directories are uploaded. --- .github/workflows/02-pr-checks.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 34b366be..83de386d 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -54,6 +54,7 @@ jobs: ls -lh /dev/kvm ls -lh . echo "HDPMI32i.EXE" > CICD_DOS.BAT - echo "sbemu" >> CICD_DOS.BAT + echo "output/sbemu" >> CICD_DOS.BAT + echo "cd test" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT /usr/local/bin/run_cicd_dos.sh From d0c2e26d726b090e75b44373fa903e0c6201bbc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 00:30:32 +0100 Subject: [PATCH 23/56] fix: Replace forward slash with backslash in DOS path :) --- .github/workflows/02-pr-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 83de386d..decc34d9 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -54,7 +54,7 @@ jobs: ls -lh /dev/kvm ls -lh . echo "HDPMI32i.EXE" > CICD_DOS.BAT - echo "output/sbemu" >> CICD_DOS.BAT + echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT /usr/local/bin/run_cicd_dos.sh From 2703fc2cfe35da6a98c52f13513d3d079565d6fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 00:32:30 +0100 Subject: [PATCH 24/56] test: In CICD_DOS.BAT, rename dos32a.exe to dos4gw.exe before running stp32.exe --- .github/workflows/02-pr-checks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index decc34d9..ecc1fe08 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -56,5 +56,6 @@ jobs: echo "HDPMI32i.EXE" > CICD_DOS.BAT echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT + echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT /usr/local/bin/run_cicd_dos.sh From 532e6f5af804e0d7c2049cc43f5f709bdfe91c38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 01:11:50 +0100 Subject: [PATCH 25/56] ci: Update to newer version of `cicd-qemu-dos-docker` image, to fix `CICD_DOS.BAT not found` error and shut down DOS VM faster (without unnecessary disk spindown) at end of test --- .github/workflows/02-pr-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index ecc1fe08..7c672181 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -37,7 +37,7 @@ jobs: needs: build runs-on: ubuntu-latest container: - image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.7 + image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.8 options: --device=/dev/kvm --cpus 1 steps: - name: 'Download test files' From 161243290c5e9219c8f00958659986565564944d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 01:45:52 +0100 Subject: [PATCH 26/56] test: Replace default QEMU launch script of `cicd-qemu-dos-docker` image with a project-specific one (with different emulated sound devices configured) --- .github/workflows/02-pr-checks.yml | 5 ++++- test/run_cicd_dos.sh | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 test/run_cicd_dos.sh diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 7c672181..3c2836fd 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -9,9 +9,10 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 - - name: shellcheck build-release-artifacts.sh + - name: shellcheck shell scripts run: | shellcheck scripts/build-release-artifacts.sh + shellcheck test/run_cicd_dos.sh build: runs-on: ubuntu-latest container: @@ -58,4 +59,6 @@ jobs: echo "cd test" >> CICD_DOS.BAT echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT + cp -f test/run_cicd_dos.sh /usr/local/bin/ + chmod +x /usr/local/bin/run_cicd_dos.sh /usr/local/bin/run_cicd_dos.sh diff --git a/test/run_cicd_dos.sh b/test/run_cicd_dos.sh new file mode 100644 index 00000000..21ad48de --- /dev/null +++ b/test/run_cicd_dos.sh @@ -0,0 +1,15 @@ +#!/bin/sh +(qemu-system-i386 \ +-machine pc,accel=kvm:tcg,hpet=off \ +-smp cpus=1,cores=1 \ +-m 256M \ +-rtc base=localtime \ +-nographic \ +-blockdev driver=file,node-name=fd0,filename=/media/x86BOOT.img -device floppy,drive=fd0 \ +-drive if=virtio,format=raw,file=fat:rw:"$(pwd)" \ +-boot order=a \ +-device ich9-intel-hda \ +-audiodev wav,id=snd0,path="$(pwd)"/hda_out.wav -device hda-output,audiodev=snd0 \ +-audiodev wav,id=snd1,path="$(pwd)"/virtio_out.wav -device virtio-sound-pci,audiodev=snd1 \ +-audiodev wav,id=snd2,path="$(pwd)"/pcspk_out.wav -machine pcspk-audiodev=snd2 \ +| tee "$(pwd)"/qemu_stdout.log) 3>&1 1>&2 2>&3 | tee "$(pwd)"/qemu_stderr.log From ca8d0873c960b7179827b21fbc8fdd7a6fc561c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 02:16:29 +0100 Subject: [PATCH 27/56] test: Disable any network adapters in QEMU to prevent iPXE boot delay, with thanks to https://askubuntu.com/a/375203 --- test/run_cicd_dos.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/test/run_cicd_dos.sh b/test/run_cicd_dos.sh index 21ad48de..0dfbd80f 100644 --- a/test/run_cicd_dos.sh +++ b/test/run_cicd_dos.sh @@ -5,6 +5,7 @@ -m 256M \ -rtc base=localtime \ -nographic \ +-net none \ -blockdev driver=file,node-name=fd0,filename=/media/x86BOOT.img -device floppy,drive=fd0 \ -drive if=virtio,format=raw,file=fat:rw:"$(pwd)" \ -boot order=a \ From 9a4123a47cbc36dbd22a25e02a968d1e981a9730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 02:19:59 +0100 Subject: [PATCH 28/56] test: Show BLASTER environment variable (after having loaded SBEMU.EXE), for troubleshooting, since Sound Blaster Pro AIL/32 driver is not detecting SBEMU's emulated Sound Blaster Pro --- .github/workflows/02-pr-checks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 3c2836fd..b4c08b27 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -58,6 +58,7 @@ jobs: echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT + echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT cp -f test/run_cicd_dos.sh /usr/local/bin/ chmod +x /usr/local/bin/run_cicd_dos.sh From 0c4fc598e2f61368727bc5d7a52ab7d553f9cb61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 02:27:14 +0100 Subject: [PATCH 29/56] test: Override BLASTER setting to troubleshoot Sound Blaster Pro detection problem in AIL/32 Sound Blaster Pro driver --- .github/workflows/02-pr-checks.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index b4c08b27..99204aed 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -58,6 +58,8 @@ jobs: echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT + # TODO : remove line below when done debugging/troubleshooting Sound Blaster Pro AIL/32 compatibility + echo "SET BLASTER=A220 I7 D1 T4" >> CICD_DOS.BAT echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT cp -f test/run_cicd_dos.sh /usr/local/bin/ From 33f7ec8dfdab408d1565983634ac02dff427cf5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 02:31:11 +0100 Subject: [PATCH 30/56] test: Remove temporary BLASTER environment variable override, since that didn't resolve Sound Blaster Pro detection problem in AIL/32 Sound Blaster Pro driver --- .github/workflows/02-pr-checks.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 99204aed..b4c08b27 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -58,8 +58,6 @@ jobs: echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT - # TODO : remove line below when done debugging/troubleshooting Sound Blaster Pro AIL/32 compatibility - echo "SET BLASTER=A220 I7 D1 T4" >> CICD_DOS.BAT echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT cp -f test/run_cicd_dos.sh /usr/local/bin/ From ba3f9daf311cfdfd52605cfb11997f886b04735e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 02:32:01 +0100 Subject: [PATCH 31/56] test: Try the AIL/32 regular Sound Blster drivers instead of the AIL/32 Sound Blaster Pro driver, which isn't detected the emulated Sound Blaster Pro of SBEMU for some reason --- .github/workflows/02-pr-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index b4c08b27..03ddc953 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -59,7 +59,7 @@ jobs: echo "cd test" >> CICD_DOS.BAT echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT - echo "stp32 dtmf_src.wav a32sbpdg.dll" >> CICD_DOS.BAT + echo "stp32 dtmf_src.wav a32sbdg.dll" >> CICD_DOS.BAT cp -f test/run_cicd_dos.sh /usr/local/bin/ chmod +x /usr/local/bin/run_cicd_dos.sh /usr/local/bin/run_cicd_dos.sh From 451c06bb659cdb7f2c9b403729c4893e64442744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 02:38:35 +0100 Subject: [PATCH 32/56] test: Emulate older intel-hda (ich6) variant instead of ich9-intel-hda, to see if that makes any difference, and list directory contents after completing DOS VM session --- .github/workflows/02-pr-checks.yml | 1 + test/run_cicd_dos.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 03ddc953..ae6cc65f 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -63,3 +63,4 @@ jobs: cp -f test/run_cicd_dos.sh /usr/local/bin/ chmod +x /usr/local/bin/run_cicd_dos.sh /usr/local/bin/run_cicd_dos.sh + ls -lh diff --git a/test/run_cicd_dos.sh b/test/run_cicd_dos.sh index 0dfbd80f..8a3f1714 100644 --- a/test/run_cicd_dos.sh +++ b/test/run_cicd_dos.sh @@ -9,7 +9,7 @@ -blockdev driver=file,node-name=fd0,filename=/media/x86BOOT.img -device floppy,drive=fd0 \ -drive if=virtio,format=raw,file=fat:rw:"$(pwd)" \ -boot order=a \ --device ich9-intel-hda \ +-device intel-hda \ -audiodev wav,id=snd0,path="$(pwd)"/hda_out.wav -device hda-output,audiodev=snd0 \ -audiodev wav,id=snd1,path="$(pwd)"/virtio_out.wav -device virtio-sound-pci,audiodev=snd1 \ -audiodev wav,id=snd2,path="$(pwd)"/pcspk_out.wav -machine pcspk-audiodev=snd2 \ From ba4a911f5d7f26680120faef8d9f6d44693eb3d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 02:43:27 +0100 Subject: [PATCH 33/56] test: Try emulating ICHx AC'97 instead of Intel HDA, to see if that makes it work --- test/run_cicd_dos.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/run_cicd_dos.sh b/test/run_cicd_dos.sh index 8a3f1714..a2dc23db 100644 --- a/test/run_cicd_dos.sh +++ b/test/run_cicd_dos.sh @@ -9,8 +9,7 @@ -blockdev driver=file,node-name=fd0,filename=/media/x86BOOT.img -device floppy,drive=fd0 \ -drive if=virtio,format=raw,file=fat:rw:"$(pwd)" \ -boot order=a \ --device intel-hda \ --audiodev wav,id=snd0,path="$(pwd)"/hda_out.wav -device hda-output,audiodev=snd0 \ +-audiodev wav,id=snd0,path="$(pwd)"/ac97_out.wav -device AC97,audiodev=snd0 \ -audiodev wav,id=snd1,path="$(pwd)"/virtio_out.wav -device virtio-sound-pci,audiodev=snd1 \ -audiodev wav,id=snd2,path="$(pwd)"/pcspk_out.wav -machine pcspk-audiodev=snd2 \ | tee "$(pwd)"/qemu_stdout.log) 3>&1 1>&2 2>&3 | tee "$(pwd)"/qemu_stderr.log From 39d0e9f0b9a8f3196602236b944dca35c7095f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 13:54:11 +0100 Subject: [PATCH 34/56] ci: Use newer version of debian-djgpp container image, which has `wget` included --- .github/workflows/01-build-and-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/01-build-and-release.yml b/.github/workflows/01-build-and-release.yml index f736ae22..93deea6a 100644 --- a/.github/workflows/01-build-and-release.yml +++ b/.github/workflows/01-build-and-release.yml @@ -16,7 +16,7 @@ jobs: release-job: runs-on: ubuntu-latest container: - image: ghcr.io/volkertb/debian-djgpp:v0.2 + image: ghcr.io/volkertb/debian-djgpp:v0.3 steps: - name: Checkout repository uses: actions/checkout@v4 From b18882d4f8571b8e8ef10d86c6e1319f04bdd223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 21 Jan 2024 14:03:15 +0100 Subject: [PATCH 35/56] ci: Run only the `Build project` (compile) step in a `debian-djgpp` container --- .github/workflows/01-build-and-release.yml | 10 +++------- .github/workflows/02-pr-checks.yml | 1 + scripts/build-in-container.sh | 5 +++++ 3 files changed, 9 insertions(+), 7 deletions(-) create mode 100755 scripts/build-in-container.sh diff --git a/.github/workflows/01-build-and-release.yml b/.github/workflows/01-build-and-release.yml index 93deea6a..45d96a61 100644 --- a/.github/workflows/01-build-and-release.yml +++ b/.github/workflows/01-build-and-release.yml @@ -15,8 +15,6 @@ permissions: jobs: release-job: runs-on: ubuntu-latest - container: - image: ghcr.io/volkertb/debian-djgpp:v0.3 steps: - name: Checkout repository uses: actions/checkout@v4 @@ -33,11 +31,9 @@ jobs: includeInvalidCommits: true excludeTypes: "" - name: Build project - run: | - cd $GITHUB_WORKSPACE/src - test -f main.c - make CC=gcc CXX=g++ - test -f output/sbemu.exe + uses: docker://ghcr.io/volkertb/debian-djgpp:v0.2 + with: + entrypoint: src/scripts/build-in-container.sh - name: Combine changelog and user instructions into release notes run: | cat $GITHUB_WORKSPACE/CHANGELOG.md $GITHUB_WORKSPACE/src/user_instructions.md > $GITHUB_WORKSPACE/RELEASE_NOTES.md diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index ae6cc65f..7c69cfbb 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -11,6 +11,7 @@ jobs: uses: actions/checkout@v3 - name: shellcheck shell scripts run: | + shellcheck scripts/build-in-container.sh shellcheck scripts/build-release-artifacts.sh shellcheck test/run_cicd_dos.sh build: diff --git a/scripts/build-in-container.sh b/scripts/build-in-container.sh new file mode 100755 index 00000000..bf2b69c5 --- /dev/null +++ b/scripts/build-in-container.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cd src || exit 1 +test -f main.c +make CC=gcc CXX=g++ +test -f output/sbemu.exe From 9aa3703a54ce6a53095b92e9da459846685459b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 18 Aug 2024 16:48:11 +0200 Subject: [PATCH 36/56] test: try capturing exit code of test command (`stp32 dtmf_src.wav a32sbdg.dll`) in file and print it to console --- .github/workflows/02-pr-checks.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 7c69cfbb..8d0a52e9 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -61,6 +61,9 @@ jobs: echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbdg.dll" >> CICD_DOS.BAT + echo "ECHO %ERRORLEVEL% > EXITCODE.TXT" >> CICD_DOS.BAT + echo "ECHO Result exit code of test command:" >> CICD_DOS.BAT + echo "type EXITCODE.TXT" >> CICD_DOS.BAT cp -f test/run_cicd_dos.sh /usr/local/bin/ chmod +x /usr/local/bin/run_cicd_dos.sh /usr/local/bin/run_cicd_dos.sh From ca3c0be4db3e96f1f761225aa7dcc0b9d9f456e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 18 Aug 2024 16:59:33 +0200 Subject: [PATCH 37/56] ci: Propagate errorlevel/exitcode from test in DOS VM to step script --- .github/workflows/02-pr-checks.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 8d0a52e9..3e2b4d72 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -61,10 +61,11 @@ jobs: echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbdg.dll" >> CICD_DOS.BAT - echo "ECHO %ERRORLEVEL% > EXITCODE.TXT" >> CICD_DOS.BAT + echo "ECHO %ERRORLEVEL% > exitcode.txt" >> CICD_DOS.BAT echo "ECHO Result exit code of test command:" >> CICD_DOS.BAT - echo "type EXITCODE.TXT" >> CICD_DOS.BAT + echo "type exitcode.txt" >> CICD_DOS.BAT cp -f test/run_cicd_dos.sh /usr/local/bin/ chmod +x /usr/local/bin/run_cicd_dos.sh /usr/local/bin/run_cicd_dos.sh - ls -lh + # Propagate error code from DOS test or exit with error code 254 if the exit code file is missing + exit $(cat test/exitcode.txt || echo 254) From 5384490f132315bb047cd450aeb0727c61692d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 18 Aug 2024 17:34:04 +0200 Subject: [PATCH 38/56] test: Load Jemm with QPIEMU module to allow SBEMU to be tested in Real Mode as well as in Protected Mode --- .github/workflows/02-pr-checks.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 3e2b4d72..f3d9eed6 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -48,14 +48,22 @@ jobs: name: sbemu-test-files - name: 'Download dependencies' run: | + # HDPMI32i is needed for emulation to work with Protected Mode games wget https://github.com/crazii/HX/releases/download/v0.1-beta3/HDPMI32i.zip echo "4b7fc576d6c5dfd3fe7290fd1d0c0229118d01a55c8325d487452c2d6e0c3bbd HDPMI32i.zip" | sha256sum -c unzip HDPMI32i.zip + # Jemm is needed for emulation to work with Real Mode games + wget https://github.com/Baron-von-Riedesel/Jemm/releases/download/v5.85pre1/JemmB_v585.zip + echo "8edc9653e58ae172584f5065b0d6111f1df75998008e46170d2767bfda8236b3 JemmB_v585.zip" | sha256sum -c + unzip JemmB_v585.zip - name: Test executable run: | ls -lh /dev/kvm ls -lh . - echo "HDPMI32i.EXE" > CICD_DOS.BAT + touch CICD_DOS.BAT + echo "JEMM386.EXE LOAD" >> CICD_DOS.BAT + echo "JLOAD QPIEMU.DLL" >> CICD_DOS.BAT + echo "HDPMI32i.EXE" >> CICD_DOS.BAT echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT From 726fbd2d9fc037c326790fa384db160422645513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 18 Aug 2024 17:39:21 +0200 Subject: [PATCH 39/56] ci: Resolve Node.js deprecation warning by using v4 of the Checkout GitHub Action --- .github/workflows/02-pr-checks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index f3d9eed6..2c7b1c7e 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: shellcheck shell scripts run: | shellcheck scripts/build-in-container.sh @@ -20,7 +20,7 @@ jobs: image: ghcr.io/volkertb/debian-djgpp:v0.2 steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Enforce Conventional Commits uses: webiny/action-conventional-commits@v1.3.0 - name: Build project From 0e0000cf57e3d23577b494fc5a4931ac32c30ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 18 Aug 2024 18:26:29 +0200 Subject: [PATCH 40/56] ci: try Intel HD Audio (HDA) instead of AC'97/ICHx, since the latter is apparently not working with SBEMU in the QEMU VM, at least not for the stp32 Protected Mode audio player --- test/run_cicd_dos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/run_cicd_dos.sh b/test/run_cicd_dos.sh index a2dc23db..2e64d371 100644 --- a/test/run_cicd_dos.sh +++ b/test/run_cicd_dos.sh @@ -9,7 +9,7 @@ -blockdev driver=file,node-name=fd0,filename=/media/x86BOOT.img -device floppy,drive=fd0 \ -drive if=virtio,format=raw,file=fat:rw:"$(pwd)" \ -boot order=a \ --audiodev wav,id=snd0,path="$(pwd)"/ac97_out.wav -device AC97,audiodev=snd0 \ +-audiodev wav,id=snd0,path="$(pwd)"/hda_out.wav -device intel-hda -device hda-output,audiodev=snd0 \ -audiodev wav,id=snd1,path="$(pwd)"/virtio_out.wav -device virtio-sound-pci,audiodev=snd1 \ -audiodev wav,id=snd2,path="$(pwd)"/pcspk_out.wav -machine pcspk-audiodev=snd2 \ | tee "$(pwd)"/qemu_stdout.log) 3>&1 1>&2 2>&3 | tee "$(pwd)"/qemu_stderr.log From 4abdad9596f8ea66fd3f5cc12e2585e4b7894b90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 18 Aug 2024 18:55:47 +0200 Subject: [PATCH 41/56] test: Add workarounds for possible issue with DOS/32A DOS extender, see https://github.com/crazii/SBEMU/issues/88 --- .github/workflows/02-pr-checks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 2c7b1c7e..d84e3168 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -61,9 +61,9 @@ jobs: ls -lh /dev/kvm ls -lh . touch CICD_DOS.BAT - echo "JEMM386.EXE LOAD" >> CICD_DOS.BAT + echo "JEMM386.EXE LOAD NOVCPI" >> CICD_DOS.BAT echo "JLOAD QPIEMU.DLL" >> CICD_DOS.BAT - echo "HDPMI32i.EXE" >> CICD_DOS.BAT + echo "HDPMI32i.EXE -x" >> CICD_DOS.BAT echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT From 92bd29991ea7e05265188e0ebc1c9199eb3c7e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 18 Aug 2024 19:14:40 +0200 Subject: [PATCH 42/56] Revert "test: Add workarounds for possible issue with DOS/32A DOS extender, see https://github.com/crazii/SBEMU/issues/88" This reverts commit 4abdad9596f8ea66fd3f5cc12e2585e4b7894b90. --- .github/workflows/02-pr-checks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index d84e3168..2c7b1c7e 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -61,9 +61,9 @@ jobs: ls -lh /dev/kvm ls -lh . touch CICD_DOS.BAT - echo "JEMM386.EXE LOAD NOVCPI" >> CICD_DOS.BAT + echo "JEMM386.EXE LOAD" >> CICD_DOS.BAT echo "JLOAD QPIEMU.DLL" >> CICD_DOS.BAT - echo "HDPMI32i.EXE -x" >> CICD_DOS.BAT + echo "HDPMI32i.EXE" >> CICD_DOS.BAT echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT From f074ba25f75375a159d96146d6d11b9d008f110d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Sun, 18 Aug 2024 19:15:20 +0200 Subject: [PATCH 43/56] test: Try original DOS/4GW DOS extender version 1.97 instead of DOS/32A --- .github/workflows/02-pr-checks.yml | 2 +- test/DOS4GW.EXE | Bin 0 -> 265420 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 test/DOS4GW.EXE diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 2c7b1c7e..d3513d17 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -66,7 +66,7 @@ jobs: echo "HDPMI32i.EXE" >> CICD_DOS.BAT echo "output\\sbemu" >> CICD_DOS.BAT echo "cd test" >> CICD_DOS.BAT - echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT + #echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT echo "stp32 dtmf_src.wav a32sbdg.dll" >> CICD_DOS.BAT echo "ECHO %ERRORLEVEL% > exitcode.txt" >> CICD_DOS.BAT diff --git a/test/DOS4GW.EXE b/test/DOS4GW.EXE new file mode 100644 index 0000000000000000000000000000000000000000..375bdb4e459bd24557642141062de5c04e1083d2 GIT binary patch literal 265420 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 z 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ⅅ3`ur z?#W`ZyHvcB+ln5g2KA&CGi{jl{fO+!xXf9IDl{T5m+kZHf3mU8W=1et2G?!O)E{?e^f-Q#ln!_ytM? zTjBU76|NRL%idPgBBtx4llKc#;P?TIRDjiStA{usuC{=wr4O4#XyUA4@GTevkGXE! z6<#0yXW39+(Pe<B=-P=M#b9d;Bay)LtSvlQ`ia7;`#PM15S6jugws!*x7TKB46u8UorE%K z^X`60^pfTToZmvC&IekKgUpjb0s=sy|H};*)Kdr!Ei=*f9FAKVE^u6quU)eW|;CLUaTKRJP9h}5I8fu?>Mydeh# z+ofRM+k#GlcamSpE+3rBd`-iU0GtGFU>?LMJ4QB%ABx$qaA?O>=LbX2;RrGM4~PWY z1j%NW`ra@S*#d+u%i z`+bx_)tkM^dWrD5fv~ZJ7XWVH*Ee(T%~Z)tp!Ue7UgTsykaV?N1z7yw@V+T!$7Rb< zWm&I_HV@$(GogZcex-hEKyt-F=LYh6s+z!@%kR(^_ImzT#o12k&12 z4kB|{WTBe_{lgM3sL~HnZKyN?d>Uppr;(7nShcfPdJ;d5s)h z8mJI%owr$P27;>%pd!I_5L}+9du&OV4+^Bj3%SO74@t4Sk#OzOL6V}^%_nf5l04P& z38rQUscWp^!eBq4h^?(g*QJ?Bi?WCxNM&Gqj7A=p#=4m;%?b*d6`rILDLJ2gJg5bq zeXesF?)@jVD-NH6dFc71ffqg*kZ0bPD3<0T;u`-$7|whELzw$0$cThmjxJzIr70l2 z732!W9b+DSyH%ozGybTF`Evm0sL`5C~6#=qRRgVXt;NEni@ ziyuIf=p0Gpg)=RXW3Cd^bxG zw-ZkWw{RGj1vXjt!!o6w#Nk^}GAon#$2eGvV$OwK&x)LVE)kfI0A?w`TmqQOW`Fp%fVuP_n417|gTPz?7!$zU z0GONRZF0CQEP10IX0U&QfEh@mBQ@Q&b^vQ7U|#~*xvs+PSXV@~oBiSBQU&wVx7q)< z61d19aB54aMri@K4uE?G;FPd^QCqgj;RFr`u7TROK~!1*v5(xb;JeL&+wv^r*<&Sa z>cPM1$D6u&vurxW)GTj{i-*$R4Qwm_r(==Kgzx@r1RKMiU@KWF^Z9b{EB)+0yO*qS zcEh};(FYrZgv^3WQ+Y{^sj6BqEw2wG z5Obh9KKPkhY(7%gd1nXKBBvDDoqf+!?yCxJ&m4a?&U#~j4a%gOsFU-LlH7!r(S^bAN5gW1pa+D(p$B}ep_2)aHt0dsrGi}Cq=xo6zfL=+=?Hb7d7|ajPN&J zhT}D5@HQT?Cj|FAu^c_lQ-L2a&sKDVb=U6WJd+y7nG9u^hL)Cz+Oq9W04Tj?;Uv^y zb=mfb_%3q~Nx>sxZ^%gg7-Hm)Ff)Jj8^#}x_2G|6;dr=y+{q%I>4$<|_6@m=g1Lk4 zh<9ROpR8W=LD|b?z9AnX*!zXCtWl*Z+rI%=UO13PmETVoA9|m_;7EeDY)hHg?A4Sd zo-IpkiY}AJfa3d~@1y|e$bS?}#ll!P#y{30$e~hb6k&>Rg+KoL=l2x&o&w)f;Cl*u zPl4|#@I3{-r@+G~fW(0SJaF$O|L3VFpZrsVa#a!8PC|Pk~R3G zknyIm<0mFgm^k(c#>OU0c>I3_OUj#(I4;A!*tv9Cb@g)kNG~s`sG43S*c}e%N`XT1 z?1Ht#St+0{rSdo8{a@)NRi*aI9totNpfq`cedUtsRaLCi=@3e4csaTD8oMwzFNYu^ z>A11eN~)Gr+8r4z0PEl$gxUp#YmS_aE50m(+B$FYnO!Om=UM-9luK;!XQ#aWqi zGqY{oAH``oIXP)_rxDzl)vMBKODZbm*o^6Uh)G9O=Jf38bEVK(Y16Z*kjz|LW_nQA ztl1g!W@b)H%g!K3+0M$!9Kn%ZZZGB77thGd&CZ<37Kd(SyFy*88qaHZK8B8{vUs+|NH;Pr#z6Pw#sLvB~=!|R9RiR++<%Z*sGS<9j4`WN0q(O zR8eJGVP8@0SfiH`!zG5@vADX%&dMrQCyr;Oj*^=4m8`@mR8xNT!xDzGX?B6d)|gCk zpEAYPFw=dA76 z`J`K+!uil&fgvmDSWFIk6?*UzQ?r`4 zr5%(q3Dszc62S7eO34zmik~us>xvSAqwLR77+bky5y~#e;R8D}m*wV7pO!f@hvny` z&C03C`pwFH~x~-*-k`*YD<3&J` ziql+%hQ?W10j}$)naI-fSVkVp%wu_Zyah}vt2seUpxP2P%2ZNXYQkf2NsZmaR+cQa zv&Cz`kVcv2SQArWf-*E+c zmW?@LqDd$R@-n_A>OAEowRTBEx7b-xDG^dAx0`axOB|+|B`X6XAVJTh>aq-5K`}9A zsPl?vl~e&k2g}RMLbvqOd*<})pfB63S>v;a2hF(8TJRgx3YBn&cSane(m^`evoq9*y7TX z%F5!gNi?L!Cgse?VlwvN`PP|fb8|DZ^87&(3um^xc{!Q6xtV#>7i2Q2c2bZvH`5=$ zdA}6L3ri1kvFZ4|QRHGti(E1WL60TQ6)V=5Os2BZ#ZoA7>giQA0?;EejZGR&qqkg| zz<7s`EilCvOvGP5yD^p0{7(TGK*$LO7K^5ju~s`ugJ3Mh1jhk@0H)Y6)H^Vng5_Z_ zmD)`_T3EBPXPTjUHa9QVROYNIB{_nRfEwq@mDLUi9zlYPLP2hc0@@@7jS>H$5H-TF zkB6TShEq!nn!{c^CDZE_OcBahA46DpL}Xyb=#4}G*!Pis(EUZRM=2{3Nss@X{`UV4 zWWr(K=l@YEi8`pc^f!VL?25+E7TQ#)-c{Qw}suuGQX2F#-7LdCZ+(ly7B&5-7%9d0+@i3K< zyvYGLoK=C0bHSEt>`PbJF*bUXi;vNE$F5&B=`fk-o; zRC7SA3M>>bcK|(U`mp9PaHff4O>E*A6HCt>GtuO%D)CnmLz+TZP8Q3Yi;>GRXR%p1 zEGLthOzFAfFacK<;3bj2=-F&eF7OOccEv=-xdQrT9`TTgnDoYs2csE-*~Da`$ngb; zoLN#Mn8s6s)}SD8om9?_Dhqyq$aE5fOeIT}fP6Kk5zZ=y9Rd*;&yqOPB%Y3-=~<2g zEd+tVG&j#WQR+VU>#SN{MWTG5**QYxTxv35x+k_r`EjNZ^IlCEW@)K?{N2HXCIMp7 z`a;g!BVXhASe%eLGc=WnAMw8*<9IBSB=*2eCCyjeGZ*p8#IfaoEQ>pQNoC@FJBS5R zHTb$glGPy0<>b!xi*4hxy5I8ruVa%6@S4M<2_{i~j%T^^vJ)U-Fyv34m6k0%F<0eK z@=V6&_AlJZCDUR1gp0RSVikO!z{iPsAGu5oL9G0HO z*Ch;-9fi+Ln>sVo|B;nUa}?-Sz5hf1w;Z`*_KGX)ih!;z- zjVcJm*7T{t{4M}wv9pZWfu9jD_SV4n2A&-F$-tI@T>}RVG7U-`lrd=jAp4+|gIt5Q z4B9s6kAsd53UruxRrb{@xh{pR0-b>sBT~{6{FvqvJUNwV@g~!f1aJ~Y(-uP*f>@qw z7aVJ#URhdI?XZtBSy9a?EVdL}5kJy&7%1?6{zVUtnFvOX397bOs3}VvhqVA$cAhDA zLV+nmdSprutMtg?53Ezt3SuXKmuF6upXu^5gFlfVZ@QEqLw-)pk-qcz6YM>2;`AJp zCr=8~GdPbmrO(db>8vxe=!ptTBCyX#ElO=n)6QuAcPdsjHF$T}1xakB73)Km78I6M zS-rTVvN+Gav^cG%rnwq+pKsCcbAC^O?lC3{e5dqit{AVTpy72qai}WcgfavvGe-uo2XKrM-5^p_R-n}Tfz5CWY6j7XB zY@I$c6G~+3>`C91@)7p*(@*=`?tz5={m_DiJQ-<|X`k*F}e@4)c z|D*dkEwbm&Gl3sD97u3HNDtQYM@sM${-b=z55=1vK>YvvPqOU&FcFQ8p9@>)AH8j$ zKS4hx*aw?fN=o*uysXJ^GL@S&X3Ur{{pbhuF=2Y>fhjJL;%KReT?1?~`Bi<$!g}!p z6DR?#E9E^YY(qhTM=ac4Ra@bxt|HAGQg<@^@iD0G_-3~}rqEZZlyL+EYC)_ftCo)D znnIJTtmd$3N6Ef~0FXC(7yASI_mF)dQ?xH@7xt=_4V4av^QzHb|s zpPzqhVd|pSi@q)zS)9FW$+B0MDVGmgK6klm`A5qmD`!+LtGrqny&`!<{)!bV>Q}tE z;?#=IS7@u^s%BKJtlCobPSvN??v4wQfh<&AP<3KU{lYt;Ut@TJ3ttba%9jNk75?We!Z-Em^a?H#%|lipnY=KeST z`Q{rtZ|ofRyPy2-`tOq7y75;3-#_{Lw|=kQHEGx1cm3k+18icaT@E-%V4tRM$ zM{HND(yTG-&Ee)KbBuYSd6*@}Vz!L1jI@lhBv{5+##>S>sTP;z8OuK`qvBHHCdZ}5 Z1q}gtUko}A?3Y4uQj2}!gc7!z{Xe)?bIbq$ literal 0 HcmV?d00001 From 64d0274749c7c26737c3bc4061701469c087504f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Mon, 19 Aug 2024 00:25:30 +0200 Subject: [PATCH 44/56] test: decode DTMF tones from audio output stream file from test in QEMU VM --- .github/workflows/02-pr-checks.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index d3513d17..3d6c55d8 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -76,4 +76,7 @@ jobs: chmod +x /usr/local/bin/run_cicd_dos.sh /usr/local/bin/run_cicd_dos.sh # Propagate error code from DOS test or exit with error code 254 if the exit code file is missing - exit $(cat test/exitcode.txt || echo 254) + dos_exit_code=$(cat test/exitcode.txt || echo 254) + if [ $dos_exit_code -ne 0 ]; then exit $dos_exit_code; fi + apt install -y dtmf2num + dtmf2num hda_out.wav From b2731803f16a033e753a6745fa72f7110a5df458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Mon, 19 Aug 2024 00:36:24 +0200 Subject: [PATCH 45/56] test: Download dtmf2num source and compile and install it before using it, since we are testing on an Alpine image, not an Ubuntu or Debian image --- .github/workflows/02-pr-checks.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 3d6c55d8..d2431796 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -76,7 +76,19 @@ jobs: chmod +x /usr/local/bin/run_cicd_dos.sh /usr/local/bin/run_cicd_dos.sh # Propagate error code from DOS test or exit with error code 254 if the exit code file is missing + echo step1 dos_exit_code=$(cat test/exitcode.txt || echo 254) - if [ $dos_exit_code -ne 0 ]; then exit $dos_exit_code; fi - apt install -y dtmf2num + echo DOS exit code was $dos_exit_code + echo step2 + #if [ $dos_exit_code -ne 0 ]; then + # exit $dos_exit_code + #fi + echo step3 + wget -P /tmp https://aluigi.altervista.org/mytoolz/dtmf2num.zip + echo "187d43e4d57535da3386eee3accdbcd09526378e3258db7f1bd5afccd0c64360 /tmp/dtmf2num.zip" | sha256sum -c + mkdir /tmp/dtmf2num + unzip /tmp/dtmf2num.zip -d /tmp/dtmf2num + apk --no-cache add build-base + make -C /tmp/dtmf2num + install /tmp/dtmf2num/dtmf2num /usr/local/bin dtmf2num hda_out.wav From 618b05a0a785626e04a1547633053f6c941c2b67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Mon, 19 Aug 2024 22:31:17 +0200 Subject: [PATCH 46/56] test: Try decoding both the source WAV file and the output dump WAV file, since the output file isn't yielding any DTMF tones, according to the dtmf2num tool --- .github/workflows/02-pr-checks.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index d2431796..12154873 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -91,4 +91,7 @@ jobs: apk --no-cache add build-base make -C /tmp/dtmf2num install /tmp/dtmf2num/dtmf2num /usr/local/bin + # First decode DTMF tones from the source file that was played back, for verification: + dtmf2num test/dtmf_src.wav + # Now decode DTMF tones from the output dump file from the emulated sound device in QEMU VM: dtmf2num hda_out.wav From b46cca476bdaeabd96086516b7ee669fe4c826ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Mon, 19 Aug 2024 22:36:37 +0200 Subject: [PATCH 47/56] Revert "ci: try Intel HD Audio (HDA) instead of AC'97/ICHx, since the latter is apparently not working with SBEMU in the QEMU VM, at least not for the stp32 Protected Mode audio player" This reverts commit 0e0000cf57e3d23577b494fc5a4931ac32c30ba1. --- test/run_cicd_dos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/run_cicd_dos.sh b/test/run_cicd_dos.sh index 2e64d371..a2dc23db 100644 --- a/test/run_cicd_dos.sh +++ b/test/run_cicd_dos.sh @@ -9,7 +9,7 @@ -blockdev driver=file,node-name=fd0,filename=/media/x86BOOT.img -device floppy,drive=fd0 \ -drive if=virtio,format=raw,file=fat:rw:"$(pwd)" \ -boot order=a \ --audiodev wav,id=snd0,path="$(pwd)"/hda_out.wav -device intel-hda -device hda-output,audiodev=snd0 \ +-audiodev wav,id=snd0,path="$(pwd)"/ac97_out.wav -device AC97,audiodev=snd0 \ -audiodev wav,id=snd1,path="$(pwd)"/virtio_out.wav -device virtio-sound-pci,audiodev=snd1 \ -audiodev wav,id=snd2,path="$(pwd)"/pcspk_out.wav -machine pcspk-audiodev=snd2 \ | tee "$(pwd)"/qemu_stdout.log) 3>&1 1>&2 2>&3 | tee "$(pwd)"/qemu_stderr.log From 6b70a0b3f894fb696f9930298041d2b8ee3ed989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Mon, 19 Aug 2024 22:43:05 +0200 Subject: [PATCH 48/56] test: fix audio output dump file name, after the revert from HD Audio to AC'97/ICHx in the previous commit --- .github/workflows/02-pr-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 12154873..c2ac2e4a 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -94,4 +94,4 @@ jobs: # First decode DTMF tones from the source file that was played back, for verification: dtmf2num test/dtmf_src.wav # Now decode DTMF tones from the output dump file from the emulated sound device in QEMU VM: - dtmf2num hda_out.wav + dtmf2num ac97_out.wav From f805995a6d3795119da69719661aac81f4171677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Mon, 19 Aug 2024 22:50:07 +0200 Subject: [PATCH 49/56] ci: upload WAV output dumps from emulated QEMU sound devices as artifacts, for manual analysis --- .github/workflows/02-pr-checks.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index c2ac2e4a..f4a8b215 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -95,3 +95,10 @@ jobs: dtmf2num test/dtmf_src.wav # Now decode DTMF tones from the output dump file from the emulated sound device in QEMU VM: dtmf2num ac97_out.wav + - name: Upload WAV dumps from QEMU as artifacts + uses: actions/upload-artifact@v4 + with: + name: wav-dump-artifacts + path: ./*_out.wav + if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` + retention-days: 3 From 1420eb9505ed04f3d83660092ef6e93ed08f6836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Mon, 19 Aug 2024 23:40:35 +0200 Subject: [PATCH 50/56] test: Add VOCPLAY.EXE and Sound Blaster AILv2 Real Mode driver to test emulation in Real Mode (or rather V8086 mode) and temporarily comment out Protected Mode playback with STP32.EXE --- .github/workflows/02-pr-checks.yml | 3 ++- test/SBDIG.ADV | Bin 0 -> 4667 bytes test/VOCPLAY.EXE | Bin 0 -> 25216 bytes test/dtmf_src.voc | Bin 0 -> 176527 bytes 4 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 test/SBDIG.ADV create mode 100644 test/VOCPLAY.EXE create mode 100644 test/dtmf_src.voc diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index f4a8b215..5b0b5488 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -68,7 +68,8 @@ jobs: echo "cd test" >> CICD_DOS.BAT #echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT - echo "stp32 dtmf_src.wav a32sbdg.dll" >> CICD_DOS.BAT + #echo "stp32 dtmf_src.wav a32sbdg.dll" >> CICD_DOS.BAT + echo "vocplay dtmf_src.voc sbdig.adv" >> CICD_DOS.BAT echo "ECHO %ERRORLEVEL% > exitcode.txt" >> CICD_DOS.BAT echo "ECHO Result exit code of test command:" >> CICD_DOS.BAT echo "type exitcode.txt" >> CICD_DOS.BAT diff --git a/test/SBDIG.ADV b/test/SBDIG.ADV new file mode 100644 index 0000000000000000000000000000000000000000..e86936618b3786c402d9a09d5b8fc69ae0ec6e65 GIT binary patch literal 4667 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 G1^K@X1w!cn literal 0 HcmV?d00001 diff --git a/test/VOCPLAY.EXE b/test/VOCPLAY.EXE new file mode 100644 index 0000000000000000000000000000000000000000..7938af1781568a47d195c2f91727d32205f308d2 GIT binary patch literal 25216 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

    )hshaq&xLeBlgns4-aK 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 Date: Tue, 20 Aug 2024 00:15:42 +0200 Subject: [PATCH 51/56] ci: restore DOS test error code propagation after having successfully tested it in a Docker container manually --- .github/workflows/02-pr-checks.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 5b0b5488..422b72b3 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -81,9 +81,7 @@ jobs: dos_exit_code=$(cat test/exitcode.txt || echo 254) echo DOS exit code was $dos_exit_code echo step2 - #if [ $dos_exit_code -ne 0 ]; then - # exit $dos_exit_code - #fi + if [ $dos_exit_code -ne 0 ]; then exit $dos_exit_code; fi echo step3 wget -P /tmp https://aluigi.altervista.org/mytoolz/dtmf2num.zip echo "187d43e4d57535da3386eee3accdbcd09526378e3258db7f1bd5afccd0c64360 /tmp/dtmf2num.zip" | sha256sum -c From b4d6c42b6c4926220c11b7c2a564fe3499654518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Tue, 20 Aug 2024 00:19:38 +0200 Subject: [PATCH 52/56] ci: fix DOS error code propagation bug by exporting environment variable, so the if-statement further below has it in its context --- .github/workflows/02-pr-checks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 422b72b3..4d9a6550 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -78,10 +78,10 @@ jobs: /usr/local/bin/run_cicd_dos.sh # Propagate error code from DOS test or exit with error code 254 if the exit code file is missing echo step1 - dos_exit_code=$(cat test/exitcode.txt || echo 254) + export dos_exit_code=$(cat test/exitcode.txt || echo 254) echo DOS exit code was $dos_exit_code echo step2 - if [ $dos_exit_code -ne 0 ]; then exit $dos_exit_code; fi + sh -c 'if [ $dos_exit_code -ne 0 ]; then exit $dos_exit_code; fi' echo step3 wget -P /tmp https://aluigi.altervista.org/mytoolz/dtmf2num.zip echo "187d43e4d57535da3386eee3accdbcd09526378e3258db7f1bd5afccd0c64360 /tmp/dtmf2num.zip" | sha256sum -c From e278310706edfa98f8f465258b10349d320ab141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Tue, 20 Aug 2024 00:46:03 +0200 Subject: [PATCH 53/56] ci: fix DOS error code propagation bug by escaping brackets, since those are reserved characters in YAML --- .github/workflows/02-pr-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 4d9a6550..6e7c1f8e 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -81,7 +81,7 @@ jobs: export dos_exit_code=$(cat test/exitcode.txt || echo 254) echo DOS exit code was $dos_exit_code echo step2 - sh -c 'if [ $dos_exit_code -ne 0 ]; then exit $dos_exit_code; fi' + if \[ $dos_exit_code -ne 0 \]; then exit $dos_exit_code; fi echo step3 wget -P /tmp https://aluigi.altervista.org/mytoolz/dtmf2num.zip echo "187d43e4d57535da3386eee3accdbcd09526378e3258db7f1bd5afccd0c64360 /tmp/dtmf2num.zip" | sha256sum -c From 8fc28280714927270cb7cd2df5e0448de31d7b4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Tue, 20 Aug 2024 00:48:49 +0200 Subject: [PATCH 54/56] ci: debug command parsing error by adding `history` command to see how the previous if-statement was interpeted --- .github/workflows/02-pr-checks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 6e7c1f8e..341047c3 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -82,6 +82,7 @@ jobs: echo DOS exit code was $dos_exit_code echo step2 if \[ $dos_exit_code -ne 0 \]; then exit $dos_exit_code; fi + history echo step3 wget -P /tmp https://aluigi.altervista.org/mytoolz/dtmf2num.zip echo "187d43e4d57535da3386eee3accdbcd09526378e3258db7f1bd5afccd0c64360 /tmp/dtmf2num.zip" | sha256sum -c From b22309d3f1d2019a6654d795c9654bf8dcdbf46f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Tue, 20 Aug 2024 01:04:17 +0200 Subject: [PATCH 55/56] ci: try double quotes for the operands in the `if` statements, as suggested at https://stackoverflow.com/a/71396370 --- .github/workflows/02-pr-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 341047c3..36b281f3 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -81,7 +81,7 @@ jobs: export dos_exit_code=$(cat test/exitcode.txt || echo 254) echo DOS exit code was $dos_exit_code echo step2 - if \[ $dos_exit_code -ne 0 \]; then exit $dos_exit_code; fi + if [ "$dos_exit_code" -ne "0" ]; then exit $dos_exit_code; fi history echo step3 wget -P /tmp https://aluigi.altervista.org/mytoolz/dtmf2num.zip From d40a95898a9552c621bb30b0e78080afbd9695e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkert=20de=20Buisonj=C3=A9?= Date: Tue, 20 Aug 2024 01:12:59 +0200 Subject: [PATCH 56/56] ci: Clean up script after previous commit finally fixed the DOS error code propagation (i.e. the line with the if-statement) --- .github/workflows/02-pr-checks.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/02-pr-checks.yml b/.github/workflows/02-pr-checks.yml index 36b281f3..ccf3a00e 100644 --- a/.github/workflows/02-pr-checks.yml +++ b/.github/workflows/02-pr-checks.yml @@ -77,13 +77,8 @@ jobs: chmod +x /usr/local/bin/run_cicd_dos.sh /usr/local/bin/run_cicd_dos.sh # Propagate error code from DOS test or exit with error code 254 if the exit code file is missing - echo step1 - export dos_exit_code=$(cat test/exitcode.txt || echo 254) - echo DOS exit code was $dos_exit_code - echo step2 + dos_exit_code=$(cat test/exitcode.txt || echo 254) if [ "$dos_exit_code" -ne "0" ]; then exit $dos_exit_code; fi - history - echo step3 wget -P /tmp https://aluigi.altervista.org/mytoolz/dtmf2num.zip echo "187d43e4d57535da3386eee3accdbcd09526378e3258db7f1bd5afccd0c64360 /tmp/dtmf2num.zip" | sha256sum -c mkdir /tmp/dtmf2num