From 587158c13dffeba9b540b151d4a726c4682be99e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Wed, 17 Sep 2025 09:14:33 +0000 Subject: [PATCH] ci: cdrouter: CDRouter-UPnP-IPv46: enable only tests which are passing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're currently using just a subset of UPnP test cases as being available in CDRouter via PCF-720. We need to increase the QA of UPnP, so lets add complete upnp and upnp-v6 modules, which are known to be working as of today. From the list of available 111 tests in CDRouter version 15.8.1 in both upnp-v6.tcl (60) and upnp.tcl(51) modules we're removing following 30 tests currently known to be not passing: cdrouter_upnp_203, cdrouter_upnp_204, cdrouter_upnp_220, cdrouter_upnp_igd2_203, cdrouter_upnp_igd2_204, cdrouter_upnp_igd2_220, ipv6_upnp_35, ipv6_upnp_36, ipv6_upnp_40, ipv6_upnp_41, ipv6_upnp_45, ipv6_upnp_50, ipv6_upnp_100, ipv6_upnp_203, ipv6_upnp_204, ipv6_upnp_220, ipv6_upnp_igd2_20, ipv6_upnp_igd2_25, ipv6_upnp_igd2_35, ipv6_upnp_igd2_36, ipv6_upnp_igd2_40, ipv6_upnp_igd2_41, ipv6_upnp_igd2_45, ipv6_upnp_igd2_50, ipv6_upnp_igd2_200, ipv6_upnp_igd2_203, ipv6_upnp_igd2_204, ipv6_upnp_igd2_220, ipv6_upnp_igd2_307 So we can regression test UPnP stack in current state and thus improve the QA. Cap the CI job runtime to 60 minutes as currently it seems, that it takes around 53 minutes to complete. References: PCF-720, PPW-336, FEAT-85, FEAT-244 Link: https://support.qacafe.com/cdrouter/knowledge-base/upnp-testing-guide Signed-off-by: Petr Štetiar Co-authored-by: Nikolai Merinov --- .gitlab/cdrouter/arcadyan-mozart.yml | 5 ++--- .gitlab/cdrouter/mxl25641-hdk-6.yml | 3 +-- .gitlab/cdrouter/prpl-haze.yml | 2 +- .gitlab/cdrouter/turris-omnia.yml | 2 +- .gitlab/cdrouter/urx851-hdk-3.yml | 3 +-- .gitlab/cdrouter/wnc-freedom.yml | 3 +-- .../cdrouter/packages/CDRouter-UPnP-IPv46.gz | Bin 17928 -> 18203 bytes 7 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.gitlab/cdrouter/arcadyan-mozart.yml b/.gitlab/cdrouter/arcadyan-mozart.yml index 74e8f495e4..a1effc2f81 100644 --- a/.gitlab/cdrouter/arcadyan-mozart.yml +++ b/.gitlab/cdrouter/arcadyan-mozart.yml @@ -52,8 +52,7 @@ CDRouter-Wireless Mozart initramfs: CDRouter-UPnP-IPv46 Mozart initramfs: <<: *arcadyan_mozart_ipv6 - timeout: 70 minutes - allow_failure: true + timeout: 60 minutes variables: CDROUTER_TEST_CONFIG: generic-ipv6-upnp DUT_INIT_SCRIPTS: | @@ -126,4 +125,4 @@ prplWare-Smoke-Test-Suite Mozart initramfs: .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh .gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh .gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh - .gitlab/scripts/dut-init/cdrouter-dut-configure-prplmesh-controller.sh \ No newline at end of file + .gitlab/scripts/dut-init/cdrouter-dut-configure-prplmesh-controller.sh diff --git a/.gitlab/cdrouter/mxl25641-hdk-6.yml b/.gitlab/cdrouter/mxl25641-hdk-6.yml index 24f40b04ec..70d16bb7eb 100644 --- a/.gitlab/cdrouter/mxl25641-hdk-6.yml +++ b/.gitlab/cdrouter/mxl25641-hdk-6.yml @@ -52,8 +52,7 @@ CDRouter-Wireless MXL25641-HDK-6 eMMC: CDRouter-UPnP-IPv46 MXL25641-HDK-6 eMMC: <<: *mxl25641_cdrouter_ipv6 - timeout: 70 minutes - allow_failure: true + timeout: 60 minutes variables: CDROUTER_TEST_CONFIG: generic-ipv6-upnp DUT_INIT_SCRIPTS: | diff --git a/.gitlab/cdrouter/prpl-haze.yml b/.gitlab/cdrouter/prpl-haze.yml index 6715cf46a2..564027dff9 100644 --- a/.gitlab/cdrouter/prpl-haze.yml +++ b/.gitlab/cdrouter/prpl-haze.yml @@ -54,7 +54,7 @@ CDRouter-Wireless Haze initramfs: CDRouter-UPnP-IPv46 Haze initramfs: <<: *prpl_haze_ipv6 - timeout: 70 minutes + timeout: 60 minutes variables: CDROUTER_TEST_CONFIG: generic-ipv6-upnp DUT_INIT_SCRIPTS: | diff --git a/.gitlab/cdrouter/turris-omnia.yml b/.gitlab/cdrouter/turris-omnia.yml index ca4493fe0b..07199ca462 100644 --- a/.gitlab/cdrouter/turris-omnia.yml +++ b/.gitlab/cdrouter/turris-omnia.yml @@ -54,7 +54,7 @@ CDRouter-Wireless Turris initramfs: CDRouter-UPnP-IPv46 Turris initramfs: <<: *turris_cdrouter_ipv6 - timeout: 70 minutes + timeout: 60 minutes variables: CDROUTER_TEST_CONFIG: generic-ipv6-upnp DUT_INIT_SCRIPTS: | diff --git a/.gitlab/cdrouter/urx851-hdk-3.yml b/.gitlab/cdrouter/urx851-hdk-3.yml index ec79b4b6d7..ac857b94af 100644 --- a/.gitlab/cdrouter/urx851-hdk-3.yml +++ b/.gitlab/cdrouter/urx851-hdk-3.yml @@ -50,8 +50,7 @@ CDRouter-Wireless-OSPv1 URX851-HDK-3 eMMC: CDRouter-UPnP-IPv46 URX851-HDK-3 eMMC: <<: *urx851_cdrouter_ipv6 - timeout: 70 minutes - allow_failure: true + timeout: 60 minutes variables: CDROUTER_TEST_CONFIG: generic-ipv6-upnp DUT_INIT_SCRIPTS: | diff --git a/.gitlab/cdrouter/wnc-freedom.yml b/.gitlab/cdrouter/wnc-freedom.yml index 18eae84831..8b74fc8c01 100644 --- a/.gitlab/cdrouter/wnc-freedom.yml +++ b/.gitlab/cdrouter/wnc-freedom.yml @@ -52,8 +52,7 @@ CDRouter-Wireless Freedom initramfs: CDRouter-UPnP-IPv46 Freedom initramfs: <<: *wnc_freedom_ipv6 - timeout: 70 minutes - allow_failure: true + timeout: 60 minutes variables: CDROUTER_TEST_CONFIG: generic-ipv6-upnp DUT_INIT_SCRIPTS: | diff --git a/.testbed/cdrouter/packages/CDRouter-UPnP-IPv46.gz b/.testbed/cdrouter/packages/CDRouter-UPnP-IPv46.gz index a2deec72c686b705baf6885103a52b51c84b3324..4870dcd3b7860e999eba6e17df473a38d07f3f2e 100644 GIT binary patch literal 18203 zcmaHRW2`Vt%;mLh+qP}nwrv~FwQbwBZQHi3eZSpgv%fZJ(vu?7$s{M8rub115CD*N z{{a4kMU?DaT}+*5RTbNq>acg2FhJp)QVH=;+7q3 z)7ea=Rgf`_XYsLyX5fk6nTXfJ0~jUZk8xA21It|9xyR-AZs8tSC6&tPT&(s^N`E%> z8r>hwTdH>f0092}fC19Fg~ZGM!}$Nd!v9aj*S@g!M_h^f`Ujr(4EAWa;)(o;9u4iT zTas;W8?kvgE@19}V9_FDo8!s3A}7XppMCgJ_^av(g-N|5w6z<|b=-(m8mc5wBSsDH z=3}oPtG>}(MSnl$W3F69v7T;x*RFi796L?3nz-Z$`*bO-hfLsl{Y1zXA#uB)0iIL&&*&1P{IT%C8MdC8nCa_|s zqOsT5(8OzJMc??t*RC_Ql7201=(G0&-&^F52wl134$tz@fQ)lury~{)fU-m4XM48f zJR6?}#N1b#ei$x)`D{ClwKsPYb#-S${xDzuQ`pmgxnFEAodU)`Q!}$M|F97oj7{Wq z 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 literal 17928 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 X32ul0{{R30|NjF30000000000_A-Kd