From a144fe12cf08a174b065b368a59d94b0494a42a4 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: add CDRouter-UPnP-IPv46-Failing with currently failing UPnP tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In CDRouter-UPnP-IPv46 we've now all passing UPnP tests from both 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've removed following 30 tests currently known to be not failing: 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_100, ipv6_upnp_igd2_200, ipv6_upnp_igd2_203, ipv6_upnp_igd2_204, ipv6_upnp_igd2_220, ipv6_upnp_igd2_307 So lets introduce a new CDRouter-UPnP-IPv46-Failing package, with the above mentioned failing tests (29) which would allow us tracking the potentially remaining bits which needs to be fixed. Link: https://support.qacafe.com/cdrouter/knowledge-base/upnp-testing-guide References: PCF-720, PPW-336, FEAT-85, FEAT-244 Signed-off-by: Petr Štetiar --- .gitlab/cdrouter/arcadyan-mozart.yml | 9 +++++++++ .gitlab/cdrouter/mxl25641-hdk-6.yml | 9 +++++++++ .gitlab/cdrouter/prpl-haze.yml | 9 +++++++++ .gitlab/cdrouter/turris-omnia.yml | 9 +++++++++ .gitlab/cdrouter/urx851-hdk-3.yml | 9 +++++++++ .gitlab/cdrouter/wnc-freedom.yml | 9 +++++++++ .../packages/CDRouter-UPnP-IPv46-Failing.gz | Bin 0 -> 18100 bytes 7 files changed, 54 insertions(+) create mode 100644 .testbed/cdrouter/packages/CDRouter-UPnP-IPv46-Failing.gz diff --git a/.gitlab/cdrouter/arcadyan-mozart.yml b/.gitlab/cdrouter/arcadyan-mozart.yml index a1effc2f81..ca7ddb0864 100644 --- a/.gitlab/cdrouter/arcadyan-mozart.yml +++ b/.gitlab/cdrouter/arcadyan-mozart.yml @@ -58,6 +58,15 @@ CDRouter-UPnP-IPv46 Mozart initramfs: DUT_INIT_SCRIPTS: | .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh +CDRouter-UPnP-IPv46-Failing Mozart initramfs: + <<: *arcadyan_mozart_ipv6 + timeout: 120 minutes + allow_failure: true + variables: + CDROUTER_TEST_CONFIG: generic-ipv6-upnp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + CDRouter-IPv6-Top-100+mDNS Mozart initramfs: <<: *arcadyan_mozart_ipv6 variables: diff --git a/.gitlab/cdrouter/mxl25641-hdk-6.yml b/.gitlab/cdrouter/mxl25641-hdk-6.yml index 70d16bb7eb..c5d82304df 100644 --- a/.gitlab/cdrouter/mxl25641-hdk-6.yml +++ b/.gitlab/cdrouter/mxl25641-hdk-6.yml @@ -58,6 +58,15 @@ CDRouter-UPnP-IPv46 MXL25641-HDK-6 eMMC: DUT_INIT_SCRIPTS: | .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh +CDRouter-UPnP-IPv46-Failing MXL25641-HDK-6 eMMC: + <<: *mxl25641_cdrouter_ipv6 + timeout: 120 minutes + allow_failure: true + variables: + CDROUTER_TEST_CONFIG: generic-ipv6-upnp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + CDRouter-IPv6-Top-100+mDNS MXL25641-HDK-6 eMMC: <<: *mxl25641_cdrouter_ipv6 variables: diff --git a/.gitlab/cdrouter/prpl-haze.yml b/.gitlab/cdrouter/prpl-haze.yml index 564027dff9..88413452a9 100644 --- a/.gitlab/cdrouter/prpl-haze.yml +++ b/.gitlab/cdrouter/prpl-haze.yml @@ -60,6 +60,15 @@ CDRouter-UPnP-IPv46 Haze initramfs: DUT_INIT_SCRIPTS: | .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh +CDRouter-UPnP-IPv46-Failing Haze initramfs: + <<: *prpl_haze_ipv6 + timeout: 120 minutes + allow_failure: true + variables: + CDROUTER_TEST_CONFIG: generic-ipv6-upnp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + CDRouter-IPv6-Top-100+mDNS Haze initramfs: <<: *prpl_haze_ipv6 variables: diff --git a/.gitlab/cdrouter/turris-omnia.yml b/.gitlab/cdrouter/turris-omnia.yml index 07199ca462..790354874a 100644 --- a/.gitlab/cdrouter/turris-omnia.yml +++ b/.gitlab/cdrouter/turris-omnia.yml @@ -60,6 +60,15 @@ CDRouter-UPnP-IPv46 Turris initramfs: DUT_INIT_SCRIPTS: | .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh +CDRouter-UPnP-IPv46-Failing Turris initramfs: + <<: *turris_cdrouter_ipv6 + timeout: 120 minutes + allow_failure: true + variables: + CDROUTER_TEST_CONFIG: generic-ipv6-upnp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + CDRouter-IPv6-Top-100+mDNS Turris initramfs: <<: *turris_cdrouter_ipv6 variables: diff --git a/.gitlab/cdrouter/urx851-hdk-3.yml b/.gitlab/cdrouter/urx851-hdk-3.yml index ac857b94af..0096c1f9bb 100644 --- a/.gitlab/cdrouter/urx851-hdk-3.yml +++ b/.gitlab/cdrouter/urx851-hdk-3.yml @@ -56,6 +56,15 @@ CDRouter-UPnP-IPv46 URX851-HDK-3 eMMC: DUT_INIT_SCRIPTS: | .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh +CDRouter-UPnP-IPv46-Failing URX851-HDK-3 eMMC: + <<: *urx851_cdrouter_ipv6 + timeout: 120 minutes + allow_failure: true + variables: + CDROUTER_TEST_CONFIG: generic-ipv6-upnp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + CDRouter-IPv6-Top-100+mDNS URX851-HDK-3 eMMC: <<: *urx851_cdrouter_ipv6 variables: diff --git a/.gitlab/cdrouter/wnc-freedom.yml b/.gitlab/cdrouter/wnc-freedom.yml index 8b74fc8c01..e3bfa03692 100644 --- a/.gitlab/cdrouter/wnc-freedom.yml +++ b/.gitlab/cdrouter/wnc-freedom.yml @@ -58,6 +58,15 @@ CDRouter-UPnP-IPv46 Freedom initramfs: DUT_INIT_SCRIPTS: | .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh +CDRouter-UPnP-IPv46-Failing Freedom initramfs: + <<: *wnc_freedom_ipv6 + timeout: 120 minutes + allow_failure: true + variables: + CDROUTER_TEST_CONFIG: generic-ipv6-upnp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + CDRouter-IPv6-Top-100+mDNS Freedom initramfs: <<: *wnc_freedom_ipv6 variables: diff --git a/.testbed/cdrouter/packages/CDRouter-UPnP-IPv46-Failing.gz b/.testbed/cdrouter/packages/CDRouter-UPnP-IPv46-Failing.gz new file mode 100644 index 0000000000000000000000000000000000000000..9137900c55b192b6d4b4a88e07136379af10fb29 GIT binary patch literal 18100 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 literal 0 HcmV?d00001