From bf678113923194303320be9297872737a038fb6d Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Sat, 25 Apr 2020 16:59:47 +0300 Subject: [PATCH] Sanity test against a few test ROMs --- .github/actions/LICENSE | 25 +++++++++++++++ .github/actions/cgb-acid2.gbc | Bin 0 -> 32768 bytes .github/actions/cgb_sound.gb | Bin 0 -> 65536 bytes .github/actions/dmg-acid2.gb | Bin 0 -> 32768 bytes .github/actions/dmg_sound-2.gb | Bin 0 -> 65536 bytes .github/actions/oam_bug-2.gb | Bin 0 -> 65536 bytes .github/actions/sanity_tests.sh | 29 ++++++++++++++++++ .../{buildability.yml => sanity.yml} | 8 +++-- 8 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 .github/actions/LICENSE create mode 100644 .github/actions/cgb-acid2.gbc create mode 100644 .github/actions/cgb_sound.gb create mode 100644 .github/actions/dmg-acid2.gb create mode 100755 .github/actions/dmg_sound-2.gb create mode 100755 .github/actions/oam_bug-2.gb create mode 100755 .github/actions/sanity_tests.sh rename .github/workflows/{buildability.yml => sanity.yml} (70%) diff --git a/.github/actions/LICENSE b/.github/actions/LICENSE new file mode 100644 index 00000000..8c295a2b --- /dev/null +++ b/.github/actions/LICENSE @@ -0,0 +1,25 @@ +Blargg's Test ROMs by Shay Green + +Acid2 tests by Matt Currie under MIT: + +MIT License + +Copyright (c) 2020 Matt Currie + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/.github/actions/cgb-acid2.gbc b/.github/actions/cgb-acid2.gbc new file mode 100644 index 0000000000000000000000000000000000000000..5f71bd36060b46eefcf7785f81ce16a5a6c5fc67 GIT binary patch literal 32768 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 awh*uoun@2iun@2iun@2iun_nZ1pYrO(txG_ literal 0 HcmV?d00001 diff --git a/.github/actions/oam_bug-2.gb b/.github/actions/oam_bug-2.gb new file mode 100755 index 0000000000000000000000000000000000000000..a3f55af1049fff765424216fed8c6553c2262ecd GIT binary patch literal 65536 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 Gf&T}g$kes~ literal 0 HcmV?d00001 diff --git a/.github/actions/sanity_tests.sh b/.github/actions/sanity_tests.sh new file mode 100755 index 00000000..26fb398f --- /dev/null +++ b/.github/actions/sanity_tests.sh @@ -0,0 +1,29 @@ +./build/bin/tester/sameboy_tester --jobs 5 \ + --length 40 .github/actions/cgb_sound.gb \ + --length 10 .github/actions/cgb-acid2.gbc \ + --length 10 .github/actions/dmg-acid2.gb \ +--dmg --length 40 .github/actions/dmg_sound-2.gb \ +--dmg --length 20 .github/actions/oam_bug-2.gb + +mv .github/actions/dmg{,-mode}-acid2.bmp + +./build/bin/tester/sameboy_tester \ +--dmg --length 10 .github/actions/dmg-acid2.gb + +FAILED_TESTS=` +shasum .github/actions/*.bmp | grep -E -v \(\ +44ce0c7d49254df0637849c9155080ac7dc3ef3d\ \ .github/actions/cgb-acid2.bmp\|\ +dbcc438dcea13b5d1b80c5cd06bda2592cc5d9e0\ \ .github/actions/cgb_sound.bmp\|\ +0caadf9634e40247ae9c15ff71992e8f77bbf89e\ \ .github/actions/dmg-acid2.bmp\|\ +c50daed36c57a8170ff362042694786676350997\ \ .github/actions/dmg-mode-acid2.bmp\|\ +c9e944b7e01078bdeba1819bc2fa9372b111f52d\ \ .github/actions/dmg_sound-2.bmp\|\ +f0172cc91867d3343fbd113a2bb98100074be0de\ \ .github/actions/oam_bug-2.bmp\ +\)` + +if [ -n "$FAILED_TESTS" ] ; then + echo "Failed the following tests:" + echo $FAILED_TESTS | tr " " "\n" | grep -o -E "[^/]+\.bmp" | sed s/.bmp// | sort + exit 1 +fi + +echo Passed all tests \ No newline at end of file diff --git a/.github/workflows/buildability.yml b/.github/workflows/sanity.yml similarity index 70% rename from .github/workflows/buildability.yml rename to .github/workflows/sanity.yml index 7cd52980..e0ac132d 100644 --- a/.github/workflows/buildability.yml +++ b/.github/workflows/sanity.yml @@ -1,4 +1,4 @@ -name: "Bulidability" +name: "Bulidability and Sanity" on: push jobs: @@ -23,7 +23,11 @@ jobs: ./.github/actions/install_deps.sh ${{ matrix.os }} - name: Build run: | - ${{ matrix.cc }} -v; make sdl libretro ${{ matrix.extra_target }} -j CONF=release CC=${{ matrix.cc }} + ${{ matrix.cc }} -v; make sdl tester libretro ${{ matrix.extra_target }} -j CONF=release CC=${{ matrix.cc }} + - name: Sanity tests + shell: bash + run: | + ./.github/actions/sanity_tests.sh - name: Upload binaries uses: actions/upload-artifact@v1 with: