Files
dcu/test/approve
Filip Gołaś ac6ec86efb Add CI build & tests
test: Prepare for using in GH CI
test/approvals: Add approvals for CI
.github/workflows/tests.yml: Add CI workflow for testing dcuc

Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
2024-10-15 09:42:59 +02:00

155 lines
7.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Run this from the root directory
cd ./test || exit
source approvals.bash
source test-data.sh
cli=../dcuc
echo "Setting up test data..."
if [[ ! -v CI ]]; then
download_test_data
fi
refresh_test_data
export ESCAPED_PWD="${PWD//\//\\/}"
describe "help message"
approve "$cli --help"
describe "Try to replace logo in binary supporting that"
allow_diff $ESCAPED_PWD
approve "$cli logo ${DATA_WORK_DIR}/protectli_vault_cml_v1.2.0-rc1_vp46xx.rom -l ${DATA_WORK_DIR}/bootsplash.bmp"
describe "Try to replace logo in binary NOT supporting that"
allow_diff $ESCAPED_PWD
approve "$cli logo ${DATA_WORK_DIR}/protectli_vault_kbl_v1.0.14.rom -l ${DATA_WORK_DIR}/bootsplash.bmp"
describe "Try to replace serial in binary supporting that"
allow_diff $ESCAPED_PWD
approve "$cli smbios ${DATA_WORK_DIR}/protectli_vault_cml_v1.2.0-rc1_vp46xx.rom -s D07229051"
describe "Try to replace serial in binary NOT supporting that"
allow_diff $ESCAPED_PWD
approve "$cli smbios ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom -s D07229051"
describe "Try to replace UUID in binary supporting that"
allow_diff $ESCAPED_PWD
approve "$cli smbios ${DATA_WORK_DIR}/protectli_vault_cml_v1.2.0-rc1_vp46xx.rom -u 96bcfa1a-42b4-6717-a44c-d8bbc18cbea4"
describe "Try to replace UUID in binary NOT supporting that"
allow_diff $ESCAPED_PWD
approve "$cli smbios ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom -u 96bcfa1a-42b4-6717-a44c-d8bbc18cbea4"
describe "Try to replace both serial and UUID in binary supporting that"
allow_diff $ESCAPED_PWD
approve "$cli smbios ${DATA_WORK_DIR}/protectli_vault_cml_v1.2.0-rc1_vp46xx.rom -s D07229051 -u 96bcfa1a-42b4-6717-a44c-d8bbc18cbea4"
describe "Try to replace both serial and UUID in binary NOT supporting that"
allow_diff $ESCAPED_PWD
approve "$cli smbios ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom -s D07229051 -u 96bcfa1a-42b4-6717-a44c-d8bbc18cbea4"
describe "Try to replace logo using unsupported format (PDF)"
approve "$cli logo ${DATA_WORK_DIR}/protectli_vault_cml_v1.2.0-rc1_vp46xx.rom -l ${DATA_WORK_DIR}/dummy.pdf"
describe "Try to replace UUID using incorrect format"
allow_diff $ESCAPED_PWD
approve "$cli smbios ${DATA_WORK_DIR}/protectli_vault_cml_v1.2.0-rc1_vp46xx.rom -u dead-beef"
refresh_test_data
describe "Get variable from uninitialized store"
allow_diff $ESCAPED_PWD
approve "$cli variable ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom --get SerialRedirection"
describe "Initialize variable store in a release binary"
allow_diff $ESCAPED_PWD
approve "$cli variable ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom --set SerialRedirection --value Enabled"
cp ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom ${DATA_WORK_DIR}/SerialRedirectionDisabled_novacustom_nv4x_adl_v1.6.0.rom
describe "Set supported bool variable to Disabled"
approve "$cli variable ${DATA_WORK_DIR}/SerialRedirectionDisabled_novacustom_nv4x_adl_v1.6.0.rom --set SerialRedirection --value Disabled"
describe "Get supported bool variable (expecting Disabled)"
approve "$cli variable ${DATA_WORK_DIR}/SerialRedirectionDisabled_novacustom_nv4x_adl_v1.6.0.rom --get SerialRedirection"
cp ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom ${DATA_WORK_DIR}/SerialRedirectionEnabled_novacustom_nv4x_adl_v1.6.0.rom
describe "Set supported bool variable to Enabled"
approve "$cli variable ${DATA_WORK_DIR}/SerialRedirectionEnabled_novacustom_nv4x_adl_v1.6.0.rom --set SerialRedirection --value Enabled"
describe "Get supported bool variable (expecting Enabled)"
approve "$cli variable ${DATA_WORK_DIR}/SerialRedirectionEnabled_novacustom_nv4x_adl_v1.6.0.rom --get SerialRedirection"
describe "Set supported bool variable to invalid value"
approve "$cli variable ${DATA_WORK_DIR}/SerialRedirectionEnabled_novacustom_nv4x_adl_v1.6.0.rom --set SerialRedirection --value EnabledInvalid"
cp ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom ${DATA_WORK_DIR}/MeModeEnabled_novacustom_nv4x_adl_v1.6.0.rom
describe "Set MeMode to Enabled"
approve "$cli variable ${DATA_WORK_DIR}/MeModeEnabled_novacustom_nv4x_adl_v1.6.0.rom --set MeMode --value Enabled"
describe "Get MeMode (expecting Enabled)"
approve "$cli variable ${DATA_WORK_DIR}/MeModeEnabled_novacustom_nv4x_adl_v1.6.0.rom --get MeMode"
cp ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom ${DATA_WORK_DIR}/MeModeDisabledSoft_novacustom_nv4x_adl_v1.6.0.rom
describe "Set MeMode to Disabled (Soft)"
approve "$cli variable ${DATA_WORK_DIR}/MeModeDisabledSoft_novacustom_nv4x_adl_v1.6.0.rom --set MeMode --value \"Disabled (Soft)\""
describe "Get MeMode (expecting Disabled (Soft))"
approve "$cli variable ${DATA_WORK_DIR}/MeModeDisabledSoft_novacustom_nv4x_adl_v1.6.0.rom --get MeMode"
cp ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom ${DATA_WORK_DIR}/MeModeDisabledHAP_novacustom_nv4x_adl_v1.6.0.rom
describe "Set MeMode to Disabled (HAP)"
approve "$cli variable ${DATA_WORK_DIR}/MeModeDisabledHAP_novacustom_nv4x_adl_v1.6.0.rom --set MeMode --value \"Disabled (HAP)\""
describe "Get MeMode (expecting Disabled (HAP))"
approve "$cli variable ${DATA_WORK_DIR}/MeModeDisabledHAP_novacustom_nv4x_adl_v1.6.0.rom --get MeMode"
describe "Set MeMode to InvalidMode"
approve "$cli variable ${DATA_WORK_DIR}/MeModeDisabledHAP_novacustom_nv4x_adl_v1.6.0.rom --set MeMode --value InvalidMode"
cp ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom ${DATA_WORK_DIR}/FanCurveSilent_novacustom_nv4x_adl_v1.6.0.rom
describe "Set FanCurveOption to Silent"
approve "$cli variable ${DATA_WORK_DIR}/FanCurveSilent_novacustom_nv4x_adl_v1.6.0.rom --set FanCurveOption --value Silent"
describe "Get FanCurveMode (expecting Silent)"
approve "$cli variable ${DATA_WORK_DIR}/FanCurveSilent_novacustom_nv4x_adl_v1.6.0.rom --get FanCurveOption"
cp ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom ${DATA_WORK_DIR}/FanCurvePerformance_novacustom_nv4x_adl_v1.6.0.rom
describe "Set FanCurveOption to Performance"
approve "$cli variable ${DATA_WORK_DIR}/FanCurvePerformance_novacustom_nv4x_adl_v1.6.0.rom --set FanCurveOption --value Performance"
describe "Get FanCurveMode (expecting Performance)"
approve "$cli variable ${DATA_WORK_DIR}/FanCurvePerformance_novacustom_nv4x_adl_v1.6.0.rom --get FanCurveOption"
describe "Set FanCurveMode to InvalidMode"
approve "$cli variable ${DATA_WORK_DIR}/FanCurvePerormance_novacustom_nv4x_adl_v1.6.0.rom --set FanCurveOption --value InvalidMode"
describe "Set unsupported variable"
approve "$cli variable ${DATA_WORK_DIR}/novacustom_nv4x_adl_v1.6.0.rom --set SerialRedirectionInvalid --value Enabled"
describe "Set valid MAC"
allow_diff $ESCAPED_PWD
approve "$cli mac ${DATA_WORK_DIR}/novacustom_v540tu_mtl_v0.9.0_gbe.rom --set 12:34:56:78:9A:BC"
describe "Set invalid MAC"
allow_diff $ESCAPED_PWD
approve "$cli mac ${DATA_WORK_DIR}/novacustom_v540tu_mtl_v0.9.0_gbe.rom --set 00:00:00:00:00:00"
describe "Get MAC (should be set by 'Set valid MAC' and not set by 'Set invalid MAC')"
allow_diff $ESCAPED_PWD
approve "$cli mac ${DATA_WORK_DIR}/novacustom_v540tu_mtl_v0.9.0_gbe.rom"
describe "Get MAC Bad checksums"
allow_diff $ESCAPED_PWD
approve "$cli mac ${DATA_WORK_DIR}/novacustom_v540tu_mtl_v0.9.0.rom"
describe "Set MAC Bad checksums"
allow_diff $ESCAPED_PWD
approve "$cli mac ${DATA_WORK_DIR}/novacustom_v540tu_mtl_v0.9.0.rom --set 12:34:56:78:9A:BC"
describe "MAC Unsupported binary"
allow_diff $ESCAPED_PWD
approve "$cli mac ${DATA_WORK_DIR}/protectli_vault_cml_v1.2.0-rc1_vp46xx.rom"