Fixes, Optimizations and Preparations #1 (#2814) #8062
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This workflow executes the chip tool tests against matter.js (Dockerized and not dockerized ones) | |
| # This workflow is triggered by: | |
| # * A schedule | |
| # * A manual trigger | |
| # * For commits and pull requests to the main branch | |
| name: Chip Tool tests | |
| on: | |
| schedule: | |
| - cron: 0 1 * * * # Every day at 01:00 | |
| workflow_dispatch: # Manually on demand | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| merge_group: | |
| # Cancel previous PR/branch runs when a new commit is pushed | |
| concurrency: | |
| group: ${{ github.ref }}-chip-tool-tests | |
| cancel-in-progress: true | |
| jobs: | |
| head-commit-message: | |
| name: get head commit message | |
| runs-on: ubuntu-latest | |
| outputs: | |
| head-commit-message: ${{ steps.get_head_commit_message.outputs.headCommitMsg }} | |
| steps: | |
| - name: Get repo | |
| uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| - name: Print head git commit message | |
| id: get_head_commit_message | |
| run: echo "headCommitMsg=$(git show -s --format=%s)" >> $GITHUB_OUTPUT | |
| # Find out what is needed to be done by this test workflow | |
| chip-tests-needed: | |
| needs: [head-commit-message] | |
| if: github.repository == 'matter-js/matter.js' | |
| runs-on: ubuntu-latest | |
| outputs: | |
| chip-changes: ${{ steps.changes.outputs.src }} | |
| chip-tests-required: ${{ steps.check-trigger.outputs.chip-tests-required || steps.check-rebuild.outputs.chip-tests-required || steps.check-long-tests.outputs.chip-tests-required }} | |
| chip-tool-rebuild: ${{ steps.check-rebuild.outputs.chip-tool-rebuild }} | |
| chip-app-tests-required: ${{ steps.check-long-tests.outputs.chip-app-tests-required }} | |
| chip-long-tests-required: ${{ steps.check-long-tests.outputs.chip-long-tests-required }} | |
| chip-slowapp-tests-required: ${{ steps.check-long-tests.outputs.chip-slowapp-tests-required || steps.check-slowapp-tests.outputs.chip-slowapp-tests-required }} | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - uses: dorny/paths-filter@v3 | |
| id: changes | |
| with: | |
| filters: | | |
| src: | |
| - "chip-testing/**" | |
| - ".github/workflows/chip-tool-tests.yml" | |
| - "package.json" | |
| - "packages/**/package.json" | |
| - "packages/**/src/**" | |
| - "!packages/node/src/behaviors/" | |
| - "!packages/react-native/**" | |
| - "!packages/nodejs-ble/**" | |
| - "!packages/nodejs-shell/**" | |
| - "!packages/examples/**" | |
| - "!packages/tools/**" | |
| app-tests: | |
| - "packages/node/src/behaviors/" | |
| slowapp-tests: | |
| - "packages/node/src/behaviors/color-control/**" | |
| - "packages/node/src/behaviors/level-control/**" | |
| - "packages/node/src/behaviors/window-covering/**" | |
| - "packages/types/src/clusters/definitions/ColorControlCluster.ts" | |
| - "packages/types/src/clusters/definitions/LevelControlCluster.ts" | |
| - "packages/types/src/clusters/definitions/WindowCoveringCluster.ts" | |
| long-tests: | |
| - "packages/node/src/behaviors/administrator-commissioning/**" | |
| - "packages/node/src/behaviors/general-commissioning/**" | |
| - "packages/node/src/behaviors/operational-credentials/**" | |
| - "packages/protocol/src/session/pase/**" | |
| - "packages/protocol/src/session/case/**" | |
| - "packages/protocol/src/mdns/**" | |
| - "packages/protocol/src/interaction/**" | |
| - "packages/protocol/src/fabric/**" | |
| - "packages/protocol/src/securechannel/**" | |
| - if: ${{ github.event_name == 'schedule' || ((github.event_name == 'push' || github.event_name == 'pull_request') && steps.changes.outputs.src == 'true') || github.event_name == 'workflow_dispatch' || contains(needs.head-commit-message.outputs.head-commit-message, '[execute-chiptests]') == true }} | |
| name: Chip Tool tests required to run? | |
| id: check-trigger | |
| run: echo "chip-tests-required=true" >> $GITHUB_OUTPUT | |
| - if: ${{ (github.event_name != 'schedule' && (steps.changes.outputs.app-tests == 'true' || contains(needs.head-commit-message.outputs.head-commit-message, '[execute-chiptests-long]') == true)) }} | |
| name: Enable App tests if needed | |
| id: check-app-tests | |
| run: | | |
| echo "chip-tests-required=true" >> $GITHUB_OUTPUT | |
| echo "chip-app-tests-required=true" >> $GITHUB_OUTPUT | |
| - if: ${{ (github.event_name != 'schedule' && (steps.changes.outputs.slowapp-tests == 'true' || contains(needs.head-commit-message.outputs.head-commit-message, '[execute-chiptests-long]') == true)) }} | |
| name: Enable slow App tests if needed | |
| id: check-slowapp-tests | |
| run: | | |
| echo "chip-tests-required=true" >> $GITHUB_OUTPUT | |
| echo "chip-app-tests-required=true" >> $GITHUB_OUTPUT | |
| echo "chip-slowapp-tests-required=true" >> $GITHUB_OUTPUT | |
| - if: ${{ contains(github.event.head_commit.message, '[rebuild-chip]') == true }} | |
| name: Chip Tool rebuild required? | |
| id: check-rebuild | |
| run: | | |
| echo "chip-tests-required=true" >> $GITHUB_OUTPUT | |
| echo "chip-tool-rebuild=true" >> $GITHUB_OUTPUT | |
| - name: Get Day of the week | |
| run: echo "DOW=$(date +%u)" >> $GITHUB_ENV | |
| - if: ${{ (env.DOW == 6 && github.event_name == 'schedule') || (github.event_name != 'schedule' && (steps.changes.outputs.long-tests == 'true' || contains(needs.head-commit-message.outputs.head-commit-message, '[execute-chiptests-long]') == true)) }} | |
| name: Enable Long tests if needed | |
| id: check-long-tests | |
| run: | | |
| echo "chip-tests-required=true" >> $GITHUB_OUTPUT | |
| echo "chip-app-tests-required=true" >> $GITHUB_OUTPUT | |
| echo "chip-slowapp-tests-required=true" >> $GITHUB_OUTPUT | |
| echo "chip-long-tests-required=true" >> $GITHUB_OUTPUT | |
| # If we need to do anything make sure that chip binaries are build and environment can be set up | |
| prepare-chip-build: | |
| needs: [chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && (needs.chip-tests-needed.outputs.chip-tool-rebuild == 'true' || needs.chip-tests-needed.outputs.chip-tests-required == 'true' || needs.chip-tests-needed.outputs.chip-changes == 'true') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Prepare chip tests and rebuild chip-tool if needed | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: ${{ needs.chip-tests-needed.outputs.chip-tool-rebuild }} | |
| build-matter-js: "false" | |
| # Execute the core cluster tests | |
| chip-tests-core: | |
| needs: [prepare-chip-build, chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && (needs.chip-tests-needed.outputs.chip-tool-rebuild == 'true' || needs.chip-tests-needed.outputs.chip-tests-required == 'true' || needs.chip-tests-needed.outputs.chip-changes == 'true') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Initialize chip tests | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: "false" | |
| patch-test-yaml: "true" | |
| - name: Run Core cluster tests using the python parser sending commands to chip-tool from yaml files | |
| id: test-execution-08-core | |
| shell: bash | |
| run: | | |
| cd connectedhomeip | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../bin/chip-tool \ | |
| --log-level debug \ | |
| --target-glob "{TestSelfFabricRemoval}" \ | |
| run \ | |
| --iterations 1 \ | |
| --all-clusters-app ../support/chip-testing/AllClustersTestApp.sh \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| --tv-app ../support/chip-testing/dist/esm/TvTestApp.js \ | |
| || (cat ./test_allclusters.log && exit 1)' | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../bin/chip-tool \ | |
| --log-level info \ | |
| --target-glob "{Test_TC_ACE_*,Test_TC_ACL_*,Test_AddNewFabricFromExistingFabric,Test_TC_BINFO_*,Test_TC_BRBINFO_*,Test_TC_CADMIN_*,Test_TC_CGEN_*,Test_TC_CNET_*,Test_TC_DGGEN_*,Test_TC_OPCREDS_*,TestAccessControlC*,TestArmFailSafe,TestCASERecovery,TestCommandsById,TestCommissionerNodeId,TestCommissioningWindow,TestFabricRemovalWhileSubscribed,TestGeneralCommissioning,TestMultiAdmin,TestOperationalCredentialsCluster,TestSubscribe_*,TestDiscovery}" \ | |
| run \ | |
| --iterations 1 \ | |
| --all-clusters-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| --tv-app ../support/chip-testing/dist/esm/TvTestApp.js \ | |
| ' | |
| matterjs-tests-core: | |
| needs: [prepare-chip-build, chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && (needs.chip-tests-needed.outputs.chip-tool-rebuild == 'true' || needs.chip-tests-needed.outputs.chip-tests-required == 'true' || needs.chip-tests-needed.outputs.chip-changes == 'true') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Initialize chip tests | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: "false" | |
| patch-test-yaml: "true" | |
| - name: Run Core cluster tests using the python parser sending commands to matter.js-controller from yaml files | |
| id: test-execution-08-core-matterjs | |
| shell: bash | |
| run: | | |
| cd connectedhomeip | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../support/chip-testing/dist/esm/ControllerWebSocketTestApp.js \ | |
| --log-level debug \ | |
| --target-glob "{TestSelfFabricRemoval}" \ | |
| run \ | |
| --iterations 1 \ | |
| --all-clusters-app ../support/chip-testing/AllClustersTestApp.sh \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| --tv-app ../support/chip-testing/dist/esm/TvTestApp.js \ | |
| || (cat ./test_allclusters.log && exit 1)' | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../support/chip-testing/dist/esm/ControllerWebSocketTestApp.js \ | |
| --log-level info \ | |
| --target-glob "{Test_TC_ACE_*,Test_TC_ACL_*,Test_AddNewFabricFromExistingFabric,Test_TC_BINFO_*,Test_TC_BRBINFO_*,Test_TC_CADMIN_*,Test_TC_CGEN_*,Test_TC_CNET_*,Test_TC_DGGEN_*,Test_TC_DESC_*,Test_TC_OPCREDS_*,TestAccessControlC*,TestArmFailSafe,TestCASERecovery,TestCommandsById,TestCommissionerNodeId,TestCommissioningWindow,TestFabricRemovalWhileSubscribed,TestGeneralCommissioning,TestMultiAdmin,TestOperationalCredentialsCluster,TestSubscribe_*,TestDiscovery}" \ | |
| --target-skip-glob "{TestCASERecovery,TestOperationalCredentialsCluster}" \ | |
| run \ | |
| --iterations 1 \ | |
| --all-clusters-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| --tv-app ../support/chip-testing/dist/esm/TvTestApp.js \ | |
| ' | |
| # Execute the fast application cluster tests | |
| chip-tests-app-fast: | |
| needs: [prepare-chip-build, chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && (needs.chip-tests-needed.outputs.chip-tool-rebuild == 'true' || needs.chip-tests-needed.outputs.chip-tests-required == 'true' || needs.chip-tests-needed.outputs.chip-changes == 'true' || needs.chip-tests-needed.outputs.chip-app-tests-required == 'true') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Initialize chip tests | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: "false" | |
| patch-test-yaml: "true" | |
| - name: Run fast application cluster tests using the python parser sending commands to chip-tool from yaml files | |
| id: test-execution-08-app-fast | |
| shell: bash | |
| run: | | |
| cd connectedhomeip | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../bin/chip-tool \ | |
| --log-level info \ | |
| --target-glob "{Test_TC_ACFREMON_*,Test_TC_AIRQUAL_*,Test_TC_APBSC_*,Test_TC_BOOL_*,Test_TC_*CONC_*,Test_TC_FLABEL_*,Test_TC_FLW_*,Test_TC_HEPAFREMON_*,Test_TC_I_*,Test_TC_ILL_*,Test_TC_LCFG_*,Test_TC_LOWPOWER_*,Test_TC_LTIME_*,Test_TC_LUNIT_*,Test_TC_MOD_*,Test_TC_OO_*,Test_TC_PCC_*,Test_TC_PRS_*,Test_TC_PS_*,Test_TC_RH_*,Test_TC_SWTCH_*,Test_TC_TMP_*,Test_TC_TSUIC_*,Test_TC_ULABEL_*,Test_TC_WAKEONLAN_*,TestUserLabelCluster}" \ | |
| --target-skip-glob "{Test_TC_OO_2_7}" \ | |
| run \ | |
| --iterations 1 \ | |
| --all-clusters-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| --tv-app ../support/chip-testing/dist/esm/TvTestApp.js \ | |
| ' | |
| matterjs-tests-app-fast: | |
| needs: [prepare-chip-build, chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && (needs.chip-tests-needed.outputs.chip-tool-rebuild == 'true' || needs.chip-tests-needed.outputs.chip-tests-required == 'true' || needs.chip-tests-needed.outputs.chip-changes == 'true' || needs.chip-tests-needed.outputs.chip-app-tests-required == 'true') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Initialize chip tests | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: "false" | |
| patch-test-yaml: "true" | |
| - name: Run fast application cluster tests using the python parser sending commands to matter.js-controller from yaml files | |
| id: test-execution-08-app-fast | |
| shell: bash | |
| run: | | |
| cd connectedhomeip | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../support/chip-testing/dist/esm/ControllerWebSocketTestApp.js \ | |
| --log-level info \ | |
| --target-glob "{Test_TC_ACFREMON_*,Test_TC_AIRQUAL_*,Test_TC_APBSC_*,Test_TC_BOOL_*,Test_TC_*CONC_*,Test_TC_DEMM_*,Test_TC_EEVSEM_*,Test_TC_FLABEL_*,Test_TC_FLW_*,Test_TC_HEPAFREMON_*,Test_TC_I_*,Test_TC_ILL_*,Test_TC_LCFG_*,Test_TC_LOWPOWER_*,Test_TC_LTIME_*,Test_TC_LUNIT_*,Test_TC_LWM_*,Test_TC_MOD_*,Test_TC_OCC_*,Test_TC_OO_*,Test_TC_OTCCM_*,Test_TC_PCC_*,Test_TC_PRS_*,Test_TC_PS_*,Test_TC_PWRTL_*,Test_TC_RH_*,Test_TC_SWTCH_*,Test_TC_TMP_*,Test_TC_TSUIC_*,Test_TC_ULABEL_*,Test_TC_WAKEONLAN_*,TestUserLabelCluster}" \ | |
| --target-skip-glob "{Test_TC_OO_2_7}" \ | |
| run \ | |
| --iterations 1 \ | |
| --all-clusters-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| --tv-app ../support/chip-testing/dist/esm/TvTestApp.js \ | |
| --energy-gateway-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| --energy-management-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| ' | |
| # Execute the slower (because simulated) application cluster tests | |
| chip-tests-app-slow: | |
| needs: [prepare-chip-build, chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && (needs.chip-tests-needed.outputs.chip-tool-rebuild == 'true' || needs.chip-tests-needed.outputs.chip-slowapp-tests-required == 'true' || needs.chip-tests-needed.outputs.chip-long-tests-required == 'true') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Initialize chip tests | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: "false" | |
| patch-test-yaml: "true" | |
| - name: Run slower application cluster tests using the python parser sending commands to chip-tool from yaml files | |
| id: test-execution-08-app-slow | |
| shell: bash | |
| run: | | |
| cd connectedhomeip | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../bin/chip-tool \ | |
| --log-level info \ | |
| --target-glob "{Test_TC_CC_*,Test_TC_LVL_*,Test_TC_WNCV_*}" \ | |
| --target-skip-glob "{Test_TC_LVL_9_1,Test_TC_CC_9_1,Test_TC_CC_9_2,Test_TC_CC_9_3}" \ | |
| --include-tags MANUAL \ | |
| run \ | |
| --iterations 1 \ | |
| --all-clusters-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| --tv-app ../support/chip-testing/dist/esm/TvTestApp.js \ | |
| ' | |
| chip-tests-long: | |
| needs: [prepare-chip-build, chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && needs.chip-tests-needed.outputs.chip-long-tests-required == 'true' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Initialize chip tests | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: 'false' | |
| patch-test-yaml: "true" | |
| - name: Long Test execution | |
| id: test-execution-long-08 | |
| shell: bash | |
| run: | | |
| cd connectedhomeip | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../bin/chip-tool \ | |
| --log-level info \ | |
| --target-glob "{Test_TC_CADMIN_1_3,Test_TC_CADMIN_1_4,Test_TC_CADMIN_1_5,Test_TC_CADMIN_1_6,Test_TC_CADMIN_1_9,Test_TC_CADMIN_1_10,Test_TC_CADMIN_1_16,Test_TC_CADMIN_1_23,Test_TC_CADMIN_1_24}" \ | |
| --include-tags MANUAL \ | |
| run \ | |
| --all-clusters-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| ' | |
| matterjs-tests-long: | |
| needs: [prepare-chip-build, chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && needs.chip-tests-needed.outputs.chip-long-tests-required == 'true' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Initialize chip tests | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: 'false' | |
| patch-test-yaml: "true" | |
| - name: Long Test execution with matter.js controller | |
| id: test-execution-long-08 | |
| shell: bash | |
| run: | | |
| cd connectedhomeip | |
| ./scripts/run_in_build_env.sh \ | |
| './scripts/tests/run_test_suite.py \ | |
| --runner chip_tool_python \ | |
| --chip-tool ../support/chip-testing/dist/esm/ControllerWebSocketTestApp.js \ | |
| --log-level info \ | |
| --target-glob "{Test_TC_CADMIN_1_3,Test_TC_CADMIN_1_4,Test_TC_CADMIN_1_5,Test_TC_CADMIN_1_6,Test_TC_CADMIN_1_9,Test_TC_CADMIN_1_10,Test_TC_CADMIN_1_16,Test_TC_CADMIN_1_23,Test_TC_CADMIN_1_24}" \ | |
| --include-tags MANUAL \ | |
| run \ | |
| --all-clusters-app ../support/chip-testing/dist/esm/AllClustersTestApp.js \ | |
| --bridge-app ../support/chip-testing/dist/esm/BridgeTestApp.js \ | |
| ' | |
| python-repl-tests-core: | |
| needs: [prepare-chip-build, chip-tests-needed] | |
| if: ${{ github.repository == 'matter-js/matter.js' && (needs.chip-tests-needed.outputs.chip-tool-rebuild == 'true' || needs.chip-tests-needed.outputs.chip-tests-required == 'true' || needs.chip-tests-needed.outputs.chip-changes == 'true' || needs.chip-tests-needed.outputs.chip-long-tests-required == 'true') }} | |
| env: | |
| TSAN_OPTIONS: "halt_on_error=1 suppressions=scripts/tests/chiptest/tsan-linux-suppressions.txt" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out matter.js | |
| uses: actions/checkout@v6 | |
| - name: Initialize chip tests | |
| uses: ./.github/actions/prepare-chip-testing | |
| with: | |
| rebuild-chip-tool: 'false' | |
| patch-test-yaml: "true" | |
| - name: Generate an argument environment file | |
| run: | | |
| echo -n "" >/tmp/test_env.yaml | |
| echo "ALL_CLUSTERS_APP: ../support/chip-testing/dist/esm/AllClustersTestApp.js" >> /tmp/test_env.yaml | |
| echo "CHIP_LOCK_APP: ../support/chip-testing/dist/esm/AllClustersTestApp.js" >> /tmp/test_env.yaml | |
| echo "ENERGY_MANAGEMENT_APP: ../support/chip-testing/dist/esm/AllClustersTestApp.js" >> /tmp/test_env.yaml | |
| echo "LIT_ICD_APP: ../support/chip-testing/dist/esm/AllClustersTestApp.js" >> /tmp/test_env.yaml | |
| echo "CHIP_MICROWAVE_OVEN_APP: ../support/chip-testing/dist/esm/AllClustersTestApp.js" >> /tmp/test_env.yaml | |
| echo "CHIP_RVC_APP: ../support/chip-testing/dist/esm/RvcTestApp.js" >> /tmp/test_env.yaml | |
| echo "NETWORK_MANAGEMENT_APP: ../support/chip-testing/dist/esm/AllClustersTestApp.js" >> /tmp/test_env.yaml | |
| echo "LIGHTING_APP_NO_UNIQUE_ID: ../support/chip-testing/dist/esm/AllClustersTestApp.js" >> /tmp/test_env.yaml | |
| echo "TRACE_APP: out/trace_data/app-{SCRIPT_BASE_NAME}" >> /tmp/test_env.yaml | |
| echo "TRACE_TEST_JSON: out/trace_data/test-{SCRIPT_BASE_NAME}" >> /tmp/test_env.yaml | |
| echo "TRACE_TEST_PERFETTO: out/trace_data/test-{SCRIPT_BASE_NAME}" >> /tmp/test_env.yaml | |
| # Remove once https://github.com/project-chip/connectedhomeip/pull/38788 got merged + 1 day | |
| - name: Patch Test runner backchannel waiting times | |
| uses: actions/github-script@v8 | |
| with: | |
| result-encoding: string | |
| script: | | |
| const fs = require("fs"); | |
| let file= fs.readFileSync("./connectedhomeip/src/python_testing/matter_testing_infrastructure/matter/testing/matter_testing.py", "utf8"); | |
| // Patch the test runner to execute controller and app on same network interface | |
| file = file.replaceAll("sleep(0.001)", "sleep(0.05)"); | |
| fs.writeFileSync("./connectedhomeip/src/python_testing/matter_testing_infrastructure/matter/testing/matter_testing.py", file); | |
| # remove once https://github.com/project-chip/connectedhomeip/issues/33735 is clarified | |
| - name: Patch ACE 2.2 testcase | |
| uses: actions/github-script@v8 | |
| with: | |
| result-encoding: string | |
| script: | | |
| const fs = require("fs"); | |
| let file= fs.readFileSync("./connectedhomeip/src/python_testing/TC_AccessChecker.py", "utf8"); | |
| // Patch the test runner to execute controller and app on same network interface | |
| file = file.replace("if resp[0].Status != Status.UnsupportedWrite:", "if (resp[0].Status != Status.UnsupportedWrite and resp[0].Status != Status.UnsupportedAccess):"); | |
| fs.writeFileSync("./connectedhomeip/src/python_testing/TC_AccessChecker.py", file); | |
| - name: Run Tests | |
| id: python-tests-08 | |
| shell: bash | |
| run: | | |
| cd connectedhomeip | |
| mkdir -p out/trace_data | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_AccessChecker.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_ACE_1_2.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_ACE_1_3.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_ACE_1_4.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_ACE_1_5.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app ../support/chip-testing/dist/esm/AllClustersTestApp.js --factory-reset --app-args "--discriminator 1234 --KVS kvs1" --script "src/python_testing/TC_ACL_2_2.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --PICS src/app/tests/suites/certification/ci-pics-values --trace-to json:out/trace_data/test-{SCRIPT_BASE_NAME}.json --trace-to perfetto:out/trace_data/test-{SCRIPT_BASE_NAME}.perfetto"' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_CADMIN_1_9.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_CADMIN_1_11.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_CADMIN_1_22.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_CADMIN_1_3_4.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_CADMIN_1_15.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_CGEN_2_4.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_DA_1_2.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_DA_1_5.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_DA_1_7.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app ../support/chip-testing/dist/esm/AllClustersTestApp.js --factory-reset --app-args "--discriminator 1234 --KVS kvs1" --script "src/python_testing/TC_DGGEN_3_2.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --bool-arg allow_sdk_dac:true --PICS src/app/tests/suites/certification/ci-pics-values --trace-to json:out/trace_data/test-{SCRIPT_BASE_NAME}.json --trace-to perfetto:out/trace_data/test-{SCRIPT_BASE_NAME}.perfetto"' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_DeviceBasicComposition.py --run 1' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_IDM_1_2.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_IDM_1_4.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_IDM_4_2.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_TestEventTrigger.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_OPCREDS_3_1.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_OPCREDS_3_2.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_OPCREDS_3_4.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_OPCREDS_3_5.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_OPCREDS_3_8.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_SC_3_6.py' | |
| scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_SC_7_1.py' | |
| # scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/python_testing/TC_CADMIN_1_19.py' |