ci: sync with current prplos branch state

Sync CI bits with the current state in prplos branch on commit
9af7fff65169 ("ci: fix build Docker image sdk-x86-64 job").

Signed-off-by: Petr Štetiar <ynezz@true.cz>
This commit is contained in:
Petr Štetiar 2022-11-30 09:33:24 +01:00 committed by Petr Štetiar
parent bb8cac12c2
commit c6daa92b26
No known key found for this signature in database
GPG Key ID: 58EE120F30CC02D3
28 changed files with 19371 additions and 159 deletions

View File

@ -4,6 +4,8 @@ variables:
include: include:
- local: .gitlab/build.yml - local: .gitlab/build.yml
- local: .gitlab/cdrouter.yml - local: .gitlab/cdrouter.yml
- local: .gitlab/cdrouter/glinet-b1300.yml
- local: .gitlab/cdrouter/turris-omnia.yml
- local: .gitlab/coverity.yml - local: .gitlab/coverity.yml
- local: .gitlab/docker.yml - local: .gitlab/docker.yml
- local: .gitlab/docker/builder/gitlab.yml - local: .gitlab/docker/builder/gitlab.yml
@ -26,87 +28,35 @@ stages:
- cdrouter - cdrouter
- coverity - coverity
.build test intel_mips prpl: .build test intel_mips prpl webui:
extends: .build test config extends: .build test config
build test ipq40xx prpl: build test ipq40xx prpl webui:
extends: .build test config extends: .build test config
build test mvebu prpl: build test mvebu prpl webui:
extends: .build test config extends: .build test config
coverity scan ipq40xx prpl: build test x86_64 prpl webui:
extends: .coverity scan config extends: .build test config
variables: variables:
CI_COVERITY_COMPILER_TEMPLATE_LIST: > CI_BUILD_CONFIG: >
arm-openwrt-linux-gcc +DEVEL +BUILD_LOG +SDK +IB +IB_STANDALONE
arm-openwrt-linux-muslgnueabi-gcc
.run test NEC WX3000HP with system on NAND: .run test NEC WX3000HP NAND:
needs: needs:
- build test intel_mips prpl - job: build test intel_mips prpl webui
optional: true
extends: .nec-wx3000hp testbed extends: .nec-wx3000hp testbed
run test Gl.iNet B1300 with system on initramfs: run test Gl.iNet B1300 initramfs:
needs: needs:
- build test ipq40xx prpl - job: build test ipq40xx prpl webui
optional: true
extends: .glinet-b1300 testbed extends: .glinet-b1300 testbed
run test Turris Omnia with system on initramfs: run test Turris Omnia initramfs:
needs: needs:
- build test mvebu prpl - job: build test mvebu prpl webui
optional: true
extends: .turris-omnia testbed extends: .turris-omnia testbed
.CDRouter CDRouter-Top-100 package on NEC WX3000HP with system on NAND:
needs:
- build test intel_mips prpl
extends:
- .nec-wx3000hp testbed
- .cdrouter
variables:
LABGRID_TARGET: "$DUT_BOARD-firstboot"
CDRouter CDRouter-Top-100 package on Gl.iNet B1300 with system on initramfs:
needs:
- build test ipq40xx prpl
extends:
- .glinet-b1300 testbed
- .cdrouter
CDRouter CDRouter-Top-100 package on Turris Omnia with system on initramfs:
needs:
- build test mvebu prpl
extends:
- .turris-omnia testbed
- .cdrouter
.CDRouter CDRouter-TR-069 package on NEC WX3000HP with system on NAND:
allow_failure: true
needs:
- build test intel_mips prpl
extends:
- .nec-wx3000hp testbed
- .cdrouter
CDRouter CDRouter-TR-069 package on Gl.iNet B1300 with system on NOR:
allow_failure: true
needs:
- build test ipq40xx prpl
extends:
- .glinet-b1300 testbed
- .cdrouter
variables:
LABGRID_TARGET: glinet-b1300-nor
TFTP_IMAGE_FILENAME: openwrt-ipq40xx-generic-glinet_gl-b1300-squashfs-sysupgrade.bin
CDRouter CDRouter-TR-069 package on Turris Omnia with system on eMMC:
allow_failure: true
needs:
- build test mvebu prpl
extends:
- .turris-omnia testbed
- .cdrouter
variables:
LABGRID_TARGET: turris-omnia-emmc
TFTP_IMAGE_FILENAME: openwrt-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz
TFTP_IMAGE_UNPACK_COMMAND: "gunzip --force $TESTBED_TFTP_PATH/$TFTP_IMAGE_FILENAME || true"

View File

@ -7,23 +7,32 @@
- if: '$CI_COMMIT_BRANCH == $CI_DESIGNATED_BRANCH' - if: '$CI_COMMIT_BRANCH == $CI_DESIGNATED_BRANCH'
- when: manual - when: manual
variables: variables:
TEST_CONFIG: generic CDROUTER_TEST_CONFIG: generic
DUT_SLEEP_AFTER_BOOT: 20 DUT_SLEEP_AFTER_BOOT: 20
CDROUTER_LAN_INTERFACE: eth1 CDROUTER_LAN_INTERFACE: eth1
CDROUTER_WAN_INTERFACE: eth2 CDROUTER_WAN_INTERFACE: eth2
CDROUTER_ETH0_MAC_ADDRESS: 00:03:2d:49:2e:d8 CDROUTER_ETH0_MAC_ADDRESS: 00:03:2d:49:2e:d8
CDROUTER_ETH0_MAC_ADDRESS_TESTBED_02: 00:03:2d:49:2e:c8
before_script: before_script:
- sudo etherwake -i $TESTBED_MNG_INTERFACE $CDROUTER_ETH0_MAC_ADDRESS 2> /dev/null - >
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
sudo etherwake -i $TESTBED_MNG_INTERFACE $CDROUTER_ETH0_MAC_ADDRESS 2> /dev/null
else
sudo etherwake -i $TESTBED_MNG_INTERFACE $CDROUTER_ETH0_MAC_ADDRESS_TESTBED_02 2> /dev/null
fi
- sudo ip link set $TESTBED_LAN_INTERFACE up 2> /dev/null - sudo ip link set $TESTBED_LAN_INTERFACE up 2> /dev/null
- sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null - sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null
- sleep 10 - sleep 10
- eval $(ssh-agent -s)
- echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh; chmod 700 ~/.ssh - mkdir -p ~/.ssh; chmod 700 ~/.ssh
- ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null - >
- chmod 644 ~/.ssh/known_hosts if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
eval $(ssh-agent -s)
echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
chmod 644 ~/.ssh/known_hosts
fi
- > - >
if [ -n "$TFTP_IMAGE_DOWNLOAD_URL" ]; then if [ -n "$TFTP_IMAGE_DOWNLOAD_URL" ]; then
@ -38,6 +47,12 @@
echo "Running $TFTP_IMAGE_UNPACK_COMMAND" echo "Running $TFTP_IMAGE_UNPACK_COMMAND"
eval "$TFTP_IMAGE_UNPACK_COMMAND" eval "$TFTP_IMAGE_UNPACK_COMMAND"
fi fi
- >
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
export TB_CONFIG=".testbed/labgrid/testbed-02.yaml"
fi
- .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET boot_into shell - .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET boot_into shell
- sudo ip link set $TESTBED_WAN_INTERFACE down 2> /dev/null - sudo ip link set $TESTBED_WAN_INTERFACE down 2> /dev/null
- > - >
@ -46,21 +61,22 @@
--network lan --network lan
--remote-host $TARGET_LAN_TEST_HOST --remote-host $TARGET_LAN_TEST_HOST
- > - echo "Waiting for SSH connection availability with ${DUT_SSH_CONNECT_TIMEOUT}sec timeout, with $DUT_SSH_CONNECT_ATTEMPTS attempts..."
retry_count=3; - time ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectionAttempts=$DUT_SSH_CONNECT_ATTEMPTS -o ConnectTimeout=$DUT_SSH_CONNECT_TIMEOUT root@$TARGET_LAN_IP 'exit 0'
while [ $retry_count -gt 0 ]; do
echo "Waiting for SSH availability on $TARGET_LAN_IP"
ssh-keyscan "$TARGET_LAN_IP" 2>&1 | grep -q "$TARGET_LAN_IP" && break
retry_count="$(( retry_count - 1 ))"
sleep 5
done
- ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null - ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null
- ssh root@$TARGET_LAN_IP "cat /var/log/messages" > syslog-$LABGRID_TARGET.txt 2> /dev/null || true - ssh root@$TARGET_LAN_IP "cat /var/log/messages" > syslog-$LABGRID_TARGET.txt 2> /dev/null || true
- ssh root@$TARGET_LAN_IP "ubus call system board" | tee system-$LABGRID_TARGET.json - ssh root@$TARGET_LAN_IP "ubus call system board" | tee system-$LABGRID_TARGET.json
- scp .gitlab/mockups/tr181-mockups.tar.gz root@${TARGET_LAN_IP}:/tmp/ - >
- ssh root@$TARGET_LAN_IP "tar xzf /tmp/tr181-mockups.tar.gz -C / && /etc/init.d/tr181-mockups start" for dut_init_script in $DUT_INIT_SCRIPTS;
do echo "Running $dut_init_script"; /bin/sh "$dut_init_script";
done
- >
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
export CDROUTER_API_TOKEN="$CDROUTER_API_TOKEN_TESTBED_02"
fi
- .gitlab/scripts/testbed-cdrouter.py package_stop - .gitlab/scripts/testbed-cdrouter.py package_stop
- .gitlab/scripts/testbed-cdrouter.py wait_for_netif $CDROUTER_LAN_INTERFACE - .gitlab/scripts/testbed-cdrouter.py wait_for_netif $CDROUTER_LAN_INTERFACE
@ -71,14 +87,19 @@
script: script:
- sleep $DUT_SLEEP_AFTER_BOOT - sleep $DUT_SLEEP_AFTER_BOOT
- export TEST_PACKAGE="$(echo $CI_JOB_NAME | sed 's/CDRouter \(.*\) package on .*/\1/')" - >
- .gitlab/scripts/testbed-cdrouter.py config_import $TEST_CONFIG if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
export CDROUTER_API_TOKEN="$CDROUTER_API_TOKEN_TESTBED_02"
fi
- export TEST_PACKAGE="$(echo $CI_JOB_NAME | sed 's/\(\w\) .*/\1/')"
- .gitlab/scripts/testbed-cdrouter.py config_import $CDROUTER_TEST_CONFIG
- .gitlab/scripts/testbed-cdrouter.py package_import $TEST_PACKAGE.gz - .gitlab/scripts/testbed-cdrouter.py package_import $TEST_PACKAGE.gz
- > - >
.gitlab/scripts/testbed-cdrouter.py .gitlab/scripts/testbed-cdrouter.py
package_run $TEST_PACKAGE package_run $TEST_PACKAGE
--device generic --device generic
--configuration $TEST_CONFIG --configuration $CDROUTER_TEST_CONFIG
--system-info system-$LABGRID_TARGET.json --system-info system-$LABGRID_TARGET.json
after_script: after_script:
@ -89,16 +110,30 @@
cat cdrouter-results/final.txt && cat cdrouter-results/final.txt &&
.gitlab/scripts/cdrouter-pretty-failures.awk cdrouter-results/*.txt .gitlab/scripts/cdrouter-pretty-failures.awk cdrouter-results/*.txt
- eval $(ssh-agent -s)
- echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh; chmod 700 ~/.ssh - mkdir -p ~/.ssh; chmod 700 ~/.ssh
- ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null - >
- chmod 644 ~/.ssh/known_hosts if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
eval $(ssh-agent -s)
echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
chmod 644 ~/.ssh/known_hosts
fi
- sudo ip link set $TESTBED_LAN_INTERFACE up 2> /dev/null - sudo ip link set $TESTBED_LAN_INTERFACE up 2> /dev/null
- sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null - sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null
- sleep 5 - sleep 5
- >
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
export TB_CONFIG=".testbed/labgrid/testbed-02.yaml"
fi
- >
ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=15 root@$TARGET_LAN_IP 'exit 0' || {
.gitlab/scripts/testbed-device.py --target $LABGRID_TARGET console_dump_system_state
.gitlab/scripts/testbed-device.py --target $LABGRID_TARGET console_recover_ssh_access
} || true
- ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null - ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null
- > - >
ssh root@$TARGET_LAN_IP exit && { ssh root@$TARGET_LAN_IP exit && {
@ -113,6 +148,10 @@
- .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET power off - .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET power off
- mv console_$LABGRID_TARGET console_$LABGRID_TARGET.txt || true - mv console_$LABGRID_TARGET console_$LABGRID_TARGET.txt || true
- >
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
export CDROUTER_API_TOKEN="$CDROUTER_API_TOKEN_TESTBED_02"
fi
- .gitlab/scripts/testbed-cdrouter.py package_stop - .gitlab/scripts/testbed-cdrouter.py package_stop
artifacts: artifacts:

View File

@ -0,0 +1,63 @@
.glinet-cdrouter: &glinet_cdrouter
needs:
- job: build test ipq40xx prpl webui
optional: true
extends:
- .glinet-b1300 testbed
- .cdrouter
CDRouter-Top-100+mDNS Gl.iNet initramfs:
<<: *glinet_cdrouter
CDRouter-Top-100+mDNS Gl.iNet VLAN WAN/LAN initramfs:
<<: *glinet_cdrouter
variables:
CDROUTER_TEST_CONFIG: vlan
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
CDRouter-Top-100+mDNS Gl.iNet PPPoE WAN initramfs:
<<: *glinet_cdrouter
variables:
CDROUTER_TEST_CONFIG: ppp
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
.glinet-cdrouter-ipv6: &glinet_cdrouter_ipv6
<<: *glinet_cdrouter
allow_failure: true
rules:
- if: '$TFTP_IMAGE_DOWNLOAD_URL =~ $TFTP_IMAGE_FILENAME_PATTERN'
when: always
- if: '$TFTP_IMAGE_DOWNLOAD_URL'
when: never
- when: manual
CDRouter-IPv6-Top-100+mDNS Gl.iNet initramfs:
<<: *glinet_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: generic-ipv6
CDRouter-IPv6-Top-100+mDNS Gl.iNet VLAN WAN/LAN initramfs:
<<: *glinet_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: vlan-ipv6
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
CDRouter-TR-069 Gl.iNet NOR:
<<: *glinet_cdrouter
variables:
LABGRID_TARGET: glinet-b1300-nor
TFTP_IMAGE_FILENAME: openwrt-ipq40xx-generic-glinet_gl-b1300-squashfs-sysupgrade.bin
TFTP_IMAGE_FILENAME_PATTERN: /.*openwrt-ipq40xx-generic-glinet_gl-b1300-squashfs-sysupgrade.bin/
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh
CDRouter-IPv6-Top-100+mDNS Gl.iNet PPPoE WAN initramfs:
<<: *glinet_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: ppp-ipv6
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh

View File

@ -0,0 +1,64 @@
.turris-cdrouter: &turris_cdrouter
needs:
- job: build test mvebu prpl webui
optional: true
extends:
- .turris-omnia testbed
- .cdrouter
CDRouter-Top-100+mDNS Turris initramfs:
<<: *turris_cdrouter
CDRouter-Top-100+mDNS Turris VLAN WAN/LAN initramfs:
<<: *turris_cdrouter
variables:
CDROUTER_TEST_CONFIG: vlan
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
CDRouter-Top-100+mDNS Turris PPPoE WAN initramfs:
<<: *turris_cdrouter
variables:
CDROUTER_TEST_CONFIG: ppp
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
.turris-cdrouter-ipv6: &turris_cdrouter_ipv6
<<: *turris_cdrouter
allow_failure: true
rules:
- if: '$TFTP_IMAGE_DOWNLOAD_URL =~ $TFTP_IMAGE_FILENAME_PATTERN'
when: always
- if: '$TFTP_IMAGE_DOWNLOAD_URL'
when: never
- when: manual
CDRouter-IPv6-Top-100+mDNS Turris initramfs:
<<: *turris_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: generic-ipv6
CDRouter-IPv6-Top-100+mDNS Turris VLAN WAN/LAN initramfs:
<<: *turris_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: vlan-ipv6
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
CDRouter-IPv6-Top-100+mDNS Turris PPPoE WAN initramfs:
<<: *turris_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: ppp-ipv6
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
CDRouter-TR-069 Turris eMMC:
<<: *turris_cdrouter
variables:
LABGRID_TARGET: turris-omnia-emmc
TFTP_IMAGE_FILENAME: openwrt-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz
TFTP_IMAGE_FILENAME_PATTERN: /.*openwrt-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz/
TFTP_IMAGE_UNPACK_COMMAND: "gunzip --force $TESTBED_TFTP_PATH/$TFTP_IMAGE_FILENAME || true"
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh

View File

@ -1,6 +1,6 @@
.build Docker image sdk-intel_mips-xrx500: .build Docker image sdk-intel_mips-xrx500:
stage: docker SDK stage: docker SDK
needs: ["build test intel_mips prpl"] needs: ["build test intel_mips prpl webui"]
variables: variables:
DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk
DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH
@ -20,7 +20,7 @@
build Docker image sdk-ipq40xx-generic: build Docker image sdk-ipq40xx-generic:
stage: docker SDK stage: docker SDK
needs: ["build test ipq40xx prpl"] needs: ["build test ipq40xx prpl webui"]
variables: variables:
DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk
DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH
@ -40,7 +40,7 @@ deploy Docker image sdk-ipq40xx-generic:
build Docker image sdk-mvebu-cortexa9: build Docker image sdk-mvebu-cortexa9:
stage: docker SDK stage: docker SDK
needs: ["build test mvebu prpl"] needs: ["build test mvebu prpl webui"]
variables: variables:
DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk
DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH
@ -56,3 +56,23 @@ deploy Docker image sdk-mvebu-cortexa9:
stage: docker SDK deploy stage: docker SDK deploy
extends: .deploy Docker image extends: .deploy Docker image
needs: ["test Docker image sdk-mvebu-cortexa9"] needs: ["test Docker image sdk-mvebu-cortexa9"]
build Docker image sdk-x86-64:
stage: docker SDK
needs: ["build test x86_64 prpl webui"]
variables:
DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk
DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH
extends: .build Docker image
before_script:
- tar xf bin/targets/x86/64/openwrt-sdk-x86-64_gcc*.Linux-x86_64.tar.xz --strip=1 -C .gitlab/docker/sdk
test Docker image sdk-x86-64:
extends: .test Docker SDK image
needs: ["build Docker image sdk-x86-64"]
deploy Docker image sdk-x86-64:
stage: docker SDK deploy
extends: .deploy Docker image
needs: ["test Docker image sdk-x86-64"]

View File

@ -28,14 +28,15 @@ RUN \
RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG=en_US.utf8 ENV LANG=en_US.utf8
ENV LABGRID_COMMIT=e1da2a319314 ENV LABGRID_COMMIT=0e1ef80ca803
RUN git clone --branch wip/testbed-next https://gitlab.com/prpl-foundation/prplOS/labgrid RUN git clone --branch wip/testbed https://gitlab.com/prpl-foundation/prplOS/labgrid
WORKDIR labgrid WORKDIR labgrid
RUN git reset --hard $LABGRID_COMMIT RUN git reset --hard $LABGRID_COMMIT
RUN \ RUN \
pip3 install -U pip && \ pip3 install -U pip && \
pip3 install -r requirements.txt && \ pip3 install -r requirements.txt && \
pip3 install -r modbus-requirements.txt && \
python3 setup.py install && \ python3 setup.py install && \
rm -fr /labgrid rm -fr /labgrid

Binary file not shown.

View File

@ -0,0 +1,9 @@
#!/bin/bash
ssh root@$TARGET_LAN_IP "ubus -t 200 wait_for PPP"
ssh root@$TARGET_LAN_IP "ubus -t 200 wait_for DHCPv4"
ssh root@$TARGET_LAN_IP "ubus -t 200 wait_for IP"
ssh root@$TARGET_LAN_IP "ubus call DHCPv4.Client.1 _set '{\"parameters\":{\"Enable\":0}}'"
ssh root@$TARGET_LAN_IP "ubus call PPP.Interface.1 _set '{\"parameters\":{\"Enable\":1}}'"
ssh root@$TARGET_LAN_IP "ubus call IP.Interface.2 _set '{\"parameters\":{\"LowerLayers\":\"Device.PPP.Interface.1.\"}}'"
ssh root@$TARGET_LAN_IP "ubus call IP.Interface.2.IPv4Address.1 _set '{\"parameters\":{\"AddressingType\":\"IPCP\"}}'"

View File

@ -0,0 +1,4 @@
#!/bin/bash
.gitlab/scripts/testbed-device.py --target "$LABGRID_TARGET" init_vlans
true

View File

@ -0,0 +1,4 @@
#!/bin/bash
scp .gitlab/mockups/tr181-mockups.tar.gz root@${TARGET_LAN_IP}:/tmp/
ssh root@$TARGET_LAN_IP "tar xzf /tmp/tr181-mockups.tar.gz -C / && /etc/init.d/tr181-mockups start"

View File

@ -240,20 +240,10 @@ class JiraHelper:
self.login() self.login()
def login(self): def login(self):
cert_data = None
args = self.args args = self.args
self.jira = JIRA(
with open(args.private_key, "r", errors="ignore") as cert_file: args.instance_url, basic_auth=(args.api_username, args.api_token)
cert_data = cert_file.read() )
oauth_dict = {
"access_token": args.access_token,
"access_token_secret": args.access_token_secret,
"consumer_key": args.consumer_key,
"key_cert": cert_data,
}
self.jira = JIRA({"server": args.instance_url}, oauth=oauth_dict)
def create_or_update_issue(self, failure_type, failure_details): def create_or_update_issue(self, failure_type, failure_details):
args = self.args args = self.args
@ -378,24 +368,17 @@ def main():
) )
parser.add_argument( parser.add_argument(
"--access-token", "--api-username",
type=str, type=str,
default=os.environ.get("JIRA_ACCESS_TOKEN"), default=os.environ.get("JIRA_API_USERNAME"),
help="Jira access token (default: %(default)s)", help="Jira API username",
) )
parser.add_argument( parser.add_argument(
"--access-token-secret", "--api-token",
type=str, type=str,
default=os.environ.get("JIRA_ACCESS_TOKEN_SECRET"), default=os.environ.get("JIRA_API_TOKEN"),
help="Jira access token secret", help="Jira API token",
)
parser.add_argument(
"--consumer-key",
type=str,
default=os.environ.get("JIRA_CONSUMER_KEY"),
help="Jira consumer key",
) )
parser.add_argument( parser.add_argument(
@ -405,13 +388,6 @@ def main():
help="Jira instance URL (default: %(default)s)", help="Jira instance URL (default: %(default)s)",
) )
parser.add_argument(
"--private-key",
type=str,
default=os.environ.get("JIRA_PRIVATE_KEY"),
help="Jira private key",
)
parser.add_argument( parser.add_argument(
"--project", "--project",
type=str, type=str,

View File

@ -4,18 +4,234 @@ import argparse
import os import os
import sys import sys
import logging import logging
import json
import time
from labgrid import Environment, StepReporter from labgrid import Environment, StepReporter
from labgrid.driver import ExecutionError
from labgrid.consoleloggingreporter import ConsoleLoggingReporter from labgrid.consoleloggingreporter import ConsoleLoggingReporter
class OpenWrtConsoleShell:
def __init__(self, args, shell):
self.args = args
self.shell = shell
def run(self, cmd):
result = None
try:
logging.info(f"executing: {cmd}")
result = self.shell.run_check(cmd)
except ExecutionError as e:
stdout = " ".join(e.stdout)
stderr = " ".join(e.stderr)
logging.error(f"failed: '{e.msg}' stdout='{stdout}' stderr='{stderr}'")
return None, (e.msg, e.stdout, e.stderr)
if len(result) > 0:
logging.info("result:\n" + "\n".join(result) + "\n" + "-" * 80)
return result
def ubus_call(self, cmd):
result = None
cmd = f"ubus call {cmd}"
try:
logging.info(f"executing: {cmd}")
result = self.shell.run_check(cmd)
except ExecutionError as e:
stdout = " ".join(e.stdout).replace("\t", "")
stderr = " ".join(e.stderr)
logging.error(f"failed: {e.msg} stdout='{stdout}' stderr='{stderr}'")
return None, e.stdout[-1], (e.msg, e.stdout, e.stderr)
result = json.loads(" ".join(result))
logging.info(f"result: {result}")
return result
class UbusTR181:
def __init__(self, args, shell):
self.args = args
self.shell = shell
def api_call(self, method, path, parameters=None):
cmd = f"{path} {method}"
if parameters:
p = json.dumps({"parameters": parameters})
cmd += f" '{p}'"
return self.shell.ubus_call(cmd)
def get(self, path, parameters=None):
return self.api_call("_get", path, parameters)
def set(self, path, parameters):
return self.api_call("_set", path, parameters)
def add(self, path, parameters):
return self.api_call("_add", path, parameters)
def remove(self, path, parameters=None):
return self.api_call("_del", path, parameters)
def call(self, path, method, parameters):
cmd = f"{path} {method}"
if parameters:
p = json.dumps(parameters)
cmd += f" '{p}'"
return self.shell.ubus_call(cmd)
class TestbedDevice: class TestbedDevice:
def __init__(self, args): def __init__(self, args):
self.args = args self.args = args
self.shell = None
self.env = Environment(config_file=self.args.config) self.env = Environment(config_file=self.args.config)
ConsoleLoggingReporter.start(args.console_logpath) ConsoleLoggingReporter.start(args.console_logpath)
self.target = self.env.get_target(args.target) self.target = self.env.get_target(args.target)
def init_shell(self):
if self.shell:
return
self.shell_driver = self.target.get_driver("ShellDriver")
self.shell = OpenWrtConsoleShell(self.args, self.shell_driver)
def init_swconfig_glinet(self):
self.shell.run("swconfig dev switch0 vlan 1 set vid 201")
self.shell.run("swconfig dev switch0 vlan 1 set ports '0t 3t 4t'")
self.shell.run("swconfig dev switch0 vlan 2 set vid 101")
self.shell.run("swconfig dev switch0 vlan 2 set ports '0t 5t'")
self.shell.run("swconfig dev switch0 vlan 1 show")
self.shell.run("swconfig dev switch0 vlan 2 show")
self.shell.run(
"""
uci add network switch_vlan &&
uci set network.@switch_vlan[-1]=switch_vlan &&
uci set network.@switch_vlan[-1].device='switch0' &&
uci set network.@switch_vlan[-1].vlan='2' &&
uci set network.@switch_vlan[-1].vid='101' &&
uci set network.@switch_vlan[-1].ports='0t 5t' &&
uci set network.@switch_vlan[0].vid='201' &&
uci set network.@switch_vlan[0].ports='3t 4t 0t' &&
uci commit network
"""
)
def _init_swconfig(self):
if self.board_name.startswith("glinet"):
self.init_swconfig_glinet()
def _init_wan_vlan(self):
self.shell.run("ubus -t 60 wait_for X_PRPL-COM_WANManager.WAN")
self.ubus_tr181.set("X_PRPL-COM_WANManager.WAN.2.Intf.1", {"VlanID": 101})
self.ubus_tr181.call(
"X_PRPL-COM_WANManager", "setWANMode", {"WANMode": "demo_vlanmode"}
)
def _init_lan_vlan(self):
bridge_lan_ports = {
"cznic,turris-omnia": "Bridging.Bridge.1.Port.5",
"EASY350 ANYWAN (GRX350) Axepoint Asurada model": "Bridging.Bridge.1.Port.5",
}
bridge_vlan_port = bridge_lan_ports.get(
self.board_name, "Bridging.Bridge.1.Port.2"
)
self.ubus_tr181.set("Bridging.Bridge.1", {"Standard": "802.1Q-2005"})
self.ubus_tr181.add(
"Bridging.Bridge.1.VLAN",
{"Alias": "vlan201", "Name": "vlan201", "VLANID": 201, "Enable": 1},
)
self.ubus_tr181.set(
f"{bridge_vlan_port}",
{
"AcceptableFrameTypes": "AdmitOnlyVLANTagged",
"PVID": "201",
"Type": "CustomerVLANPort",
"Enable": 1,
},
)
self.ubus_tr181.add(
"Bridging.Bridge.1.VLANPort",
{
"Alias": "LAN",
"Name": "vlan201",
"Port": f"Device.{bridge_vlan_port}.",
"VLAN": "Device.Bridging.Bridge.1.VLAN.1.",
"Enable": 1,
},
)
def init_vlans(self):
self.init_shell()
system_info = self.shell.ubus_call("system board")
if not system_info:
logging.error("Unable to determine running DUT board!")
return
self.board_name = system_info["board_name"]
logging.info(f"Running on {self.board_name} board")
self.ubus_tr181 = UbusTR181(self.args, self.shell)
self._init_wan_vlan()
self._init_lan_vlan()
self._init_swconfig()
logging.info(
"Let the system apply the new configuration, waiting 15 seconds..."
)
time.sleep(15)
self.ubus_tr181.get("Ethernet.VLANTermination")
self.shell.run("(cat /proc/vlan101 || cat /proc/net/vlan/vlan101) 2> /dev/null")
self.shell.run("(cat /proc/vlan201 || cat /proc/net/vlan/vlan201) 2> /dev/null")
self.shell.run("ip address show vlan101")
self.shell.run("ip address show vlan201")
self.shell.run("brctl show")
self.shell.run("ip route show")
def console_dump_system_state(self):
self.init_shell()
self.shell.ubus_call("system board")
self.shell.run("df -h || df")
self.shell.run("free -h || free")
self.shell.run("ps auxfw || ps w")
self.shell.run("cat /etc/config/network")
self.shell.run("brctl show")
self.shell.run("ip route show")
self.shell.run("ip address show")
self.shell.run("ip link show")
self.shell.run("iptables-save")
self.shell.run("ip6tables-save")
self.shell.run("cat /var/log/messages || logread")
self.ubus_tr181 = UbusTR181(self.args, self.shell)
self.ubus_tr181.call("IP", "_get", {"depth": 100})
self.ubus_tr181.call("NetDev", "_get", {"depth": 100})
self.ubus_tr181.call("NetModel", "_get", {"depth": 100})
self.ubus_tr181.call("Bridging", "_get", {"depth": 100})
self.ubus_tr181.call("Firewall", "_get", {"depth": 100})
def console_recover_ssh_access(self):
self.init_shell()
self.shell.run("iptables -P INPUT ACCEPT")
self.shell.run("iptables -L INPUT")
self.shell.run("/etc/init.d/dropbear restart; sleep 5")
self.shell.run("logread | grep dropbear | tail -10")
self.shell.run("netstat -nlp | grep :22")
self.shell.run("ping -c1 192.168.1.1; ping -c1 192.168.1.2")
def boot_into(self): def boot_into(self):
strategy = self.target.get_driver("UBootStrategy") strategy = self.target.get_driver("UBootStrategy")
dest = self.args.destination dest = self.args.destination
@ -117,6 +333,22 @@ def main():
) )
subparser.set_defaults(func=TestbedDevice.check_network) subparser.set_defaults(func=TestbedDevice.check_network)
subparser = subparsers.add_parser(
"init_vlans", help="initialize VLAN configuration"
)
subparser.set_defaults(func=TestbedDevice.init_vlans)
subparser = subparsers.add_parser(
"console_dump_system_state", help="dump system state using serial console"
)
subparser.set_defaults(func=TestbedDevice.console_dump_system_state)
subparser = subparsers.add_parser(
"console_recover_ssh_access",
help="try to recover SSH access using serial console",
)
subparser.set_defaults(func=TestbedDevice.console_recover_ssh_access)
args = parser.parse_args() args = parser.parse_args()
if args.verbose >= 1: if args.verbose >= 1:
StepReporter.start() StepReporter.start()

View File

@ -6,6 +6,8 @@ stages:
- build - build
.build feed with SDK: .build feed with SDK:
tags:
- package-builder
stage: build stage: build
image: $CI_SDK_IMAGE image: $CI_SDK_IMAGE
variables: variables:
@ -26,10 +28,6 @@ stages:
- > - >
for feed in $CI_SDK_INSTALL_FEEDS ci; do for feed in $CI_SDK_INSTALL_FEEDS ci; do
sleep_interval="$(( (RANDOM % 60) + 1 ))"
echo "Waiting for $sleep_interval seconds..."
sleep "${sleep_interval}s"
./scripts/feeds update "$feed" ; ./scripts/feeds update "$feed" ;
./scripts/feeds install -a -p "$feed" ; ./scripts/feeds install -a -p "$feed" ;
done 2>&1 | tee logs/build.log done 2>&1 | tee logs/build.log
@ -104,6 +102,11 @@ stages:
CI_SDK_BUILD_PACKAGES: | CI_SDK_BUILD_PACKAGES: |
please-provide please-provide
CI_SDK_PACKAGE_JOBS_TEMPLATE: | CI_SDK_PACKAGE_JOBS_TEMPLATE: |
{% if env['CI_SDK_PIPELINE_SOURCE'] %}
workflow:
rules:
- if: $$CI_PIPELINE_SOURCE == "{{ env['CI_SDK_PIPELINE_SOURCE'] }}"
{% endif %}
include: include:
- remote: https://gitlab.com/prpl-foundation/prplos/prplos/-/raw/$CI_DESIGNATED_BRANCH/.gitlab/sdk.yml - remote: https://gitlab.com/prpl-foundation/prplos/prplos/-/raw/$CI_DESIGNATED_BRANCH/.gitlab/sdk.yml
{% for sdk in env['CI_SDK_TARGETS'].rstrip().split("\n") %} {% for sdk in env['CI_SDK_TARGETS'].rstrip().split("\n") %}
@ -168,7 +171,18 @@ stages:
variables: variables:
CI_SDK_IMAGE: registry.gitlab.com/prpl-foundation/prplos/prplos/$CI_DESIGNATED_BRANCH/sdk-mvebu-cortexa9:latest CI_SDK_IMAGE: registry.gitlab.com/prpl-foundation/prplos/prplos/$CI_DESIGNATED_BRANCH/sdk-mvebu-cortexa9:latest
.build feed with ath79-generic-22.03-SNAPSHOT SDK: .build feed with x86-64 SDK:
extends: .build feed with SDK
variables:
CI_SDK_IMAGE: registry.gitlab.com/prpl-foundation/prplos/prplos/$CI_DESIGNATED_BRANCH/sdk-x86-64:latest
.build feed with ath79-generic-19.07.7 SDK:
extends: .build feed with OpenWrt SDK extends: .build feed with OpenWrt SDK
variables: variables:
CI_SDK_IMAGE: openwrt/sdk:ath79-generic-22.03-SNAPSHOT CI_SDK_IMAGE: openwrtorg/sdk:ath79-generic-19.07.7
.build feed with x86-64-22.03.2 SDK:
extends: .build feed with OpenWrt SDK
variables:
CI_SDK_BEFORE_COMPILE_COMMAND: sudo apt-get update; sudo apt-get install -y python3-yaml
CI_SDK_IMAGE: openwrt/sdk:x86-64-22.03.2

View File

@ -11,10 +11,16 @@
TESTBED_LAN_INTERFACE: enp2s0 TESTBED_LAN_INTERFACE: enp2s0
TESTBED_WAN_INTERFACE: enp3s0 TESTBED_WAN_INTERFACE: enp3s0
TESTBED_TFTP_PATH: /var/lib/tftpboot TESTBED_TFTP_PATH: /var/lib/tftpboot
TFTP_IMAGE_PATH: bin/targets/$DUT_ARCH/$DUT_SUBTARGET TFTP_IMAGE_PATH: bin/targets/$DUT_TARGET/$DUT_SUBTARGET
PACKAGE_DIR: bin/packages
DUT_ARCH_PACKAGES_PATH: $PACKAGE_DIR/${DUT_ARCH}_${DUT_CPU_TYPE}_${DUT_CPU_SUBTYPE}
TARGET_LAN_IP: 192.168.1.1 TARGET_LAN_IP: 192.168.1.1
TARGET_LAN_TEST_HOST: 192.168.1.2 TARGET_LAN_TEST_HOST: 192.168.1.2
DUT_SLEEP_AFTER_BOOT: 90 DUT_SLEEP_AFTER_BOOT: 90
DUT_SSH_CONNECT_TIMEOUT: 30
DUT_SSH_CONNECT_ATTEMPTS: 3
DUT_TR181_WAN_INTERFACE: Device.Ethernet.Link.2.
DUT_TR181_LAN_INTERFACE: Device.Ethernet.Link.3.
CRAM_REMOTE_COMMAND: ssh root@$TARGET_LAN_IP CRAM_REMOTE_COMMAND: ssh root@$TARGET_LAN_IP
CRAM_TEST_SUITE: | CRAM_TEST_SUITE: |
.gitlab/tests/cram/generic/acceleration-plan-components .gitlab/tests/cram/generic/acceleration-plan-components
@ -29,11 +35,14 @@
- sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null - sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null
- sleep 10 - sleep 10
- eval $(ssh-agent -s)
- echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh; chmod 700 ~/.ssh - mkdir -p ~/.ssh; chmod 700 ~/.ssh
- ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null - >
- chmod 644 ~/.ssh/known_hosts if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
eval $(ssh-agent -s)
echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
chmod 644 ~/.ssh/known_hosts
fi
- > - >
if [ -n "$TFTP_IMAGE_DOWNLOAD_URL" ]; then if [ -n "$TFTP_IMAGE_DOWNLOAD_URL" ]; then
@ -48,6 +57,12 @@
echo "Running $TFTP_IMAGE_UNPACK_COMMAND" echo "Running $TFTP_IMAGE_UNPACK_COMMAND"
eval "$TFTP_IMAGE_UNPACK_COMMAND" eval "$TFTP_IMAGE_UNPACK_COMMAND"
fi fi
- >
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
export TB_CONFIG=".testbed/labgrid/testbed-02.yaml"
fi
- .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET boot_into shell - .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET boot_into shell
- > - >
.gitlab/scripts/testbed-device.py .gitlab/scripts/testbed-device.py
@ -55,14 +70,8 @@
--network lan --network lan
--remote-host $TARGET_LAN_TEST_HOST --remote-host $TARGET_LAN_TEST_HOST
- > - echo "Waiting for SSH connection availability with ${DUT_SSH_CONNECT_TIMEOUT}sec timeout, with $DUT_SSH_CONNECT_ATTEMPTS attempts..."
retry_count=3; - time ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectionAttempts=$DUT_SSH_CONNECT_ATTEMPTS -o ConnectTimeout=$DUT_SSH_CONNECT_TIMEOUT root@$TARGET_LAN_IP 'exit 0'
while [ $retry_count -gt 0 ]; do
echo "Waiting for SSH availability on $TARGET_LAN_IP"
ssh-keyscan "$TARGET_LAN_IP" 2>&1 | grep -q "$TARGET_LAN_IP" && break
retry_count="$(( retry_count - 1 ))"
sleep 5
done
- ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null - ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null
- ssh root@$TARGET_LAN_IP "cat /var/log/messages" > syslog-$LABGRID_TARGET.txt 2> /dev/null || true - ssh root@$TARGET_LAN_IP "cat /var/log/messages" > syslog-$LABGRID_TARGET.txt 2> /dev/null || true
@ -82,11 +91,25 @@
true true
} }
- eval $(ssh-agent -s)
- echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh; chmod 700 ~/.ssh - mkdir -p ~/.ssh; chmod 700 ~/.ssh
- ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null - >
- chmod 644 ~/.ssh/known_hosts if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
eval $(ssh-agent -s)
echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
chmod 644 ~/.ssh/known_hosts
fi
- >
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
export TB_CONFIG=".testbed/labgrid/testbed-02.yaml"
fi
- >
ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=15 root@$TARGET_LAN_IP 'exit 0' || {
.gitlab/scripts/testbed-device.py --target $LABGRID_TARGET console_dump_system_state
.gitlab/scripts/testbed-device.py --target $LABGRID_TARGET console_recover_ssh_access
} || true
- ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null - ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null
- > - >

View File

@ -1,11 +1,14 @@
.glinet-b1300 testbed: .glinet-b1300 testbed:
extends: .testbed true.cz extends: .testbed true.cz
variables: variables:
DUT_ARCH: ipq40xx DUT_ARCH: arm
DUT_TARGET: ipq40xx
DUT_SUBTARGET: generic DUT_SUBTARGET: generic
DUT_BOARD: glinet-b1300 DUT_BOARD: glinet-b1300
DUT_WAN_INTERFACE: wan DUT_CPU_TYPE: cortex-a7
DUT_CPU_SUBTYPE: neon-vfpv4
LABGRID_TARGET: glinet-b1300-initramfs LABGRID_TARGET: glinet-b1300-initramfs
TFTP_IMAGE_FILENAME: openwrt-ipq40xx-generic-glinet_gl-b1300-initramfs-fit-zImage.itb TFTP_IMAGE_FILENAME: openwrt-ipq40xx-generic-glinet_gl-b1300-initramfs-fit-zImage.itb
TFTP_IMAGE_FILENAME_PATTERN: /.*openwrt-ipq40xx-generic-glinet_gl-b1300-initramfs-fit-zImage.itb/
tags: tags:
- dut-glinet-b1300 - dut-glinet-b1300

View File

@ -1,10 +1,14 @@
.nec-wx3000hp testbed: .nec-wx3000hp testbed:
extends: .testbed true.cz extends: .testbed true.cz
variables: variables:
DUT_ARCH: intel_mips DUT_ARCH: mips
DUT_TARGET: intel_mips
DUT_SUBTARGET: xrx500 DUT_SUBTARGET: xrx500
DUT_BOARD: nec-wx3000hp DUT_BOARD: nec-wx3000hp
DUT_CPU_TYPE: 24kc
DUT_CPU_SUBTYPE: nomips16
LABGRID_TARGET: nec-wx3000hp-nand LABGRID_TARGET: nec-wx3000hp-nand
TFTP_IMAGE_FILENAME: AX3000_1600_ETH_11AXUCI_ASURADA-squashfs-fullimage.img TFTP_IMAGE_FILENAME: AX3000_1600_ETH_11AXUCI_ASURADA-squashfs-fullimage.img
TFTP_IMAGE_FILENAME_PATTERN: /.*AX3000_1600_ETH_11AXUCI_ASURADA-squashfs-fullimage.img/
tags: tags:
- dut-nec-wx3000hp - dut-nec-wx3000hp

View File

@ -1,11 +1,15 @@
.turris-omnia testbed: .turris-omnia testbed:
extends: .testbed true.cz extends: .testbed true.cz
variables: variables:
DUT_ARCH: mvebu DUT_ARCH: arm
DUT_TARGET: mvebu
DUT_SUBTARGET: cortexa9 DUT_SUBTARGET: cortexa9
DUT_BOARD: turris-omnia DUT_BOARD: turris-omnia
DUT_CPU_TYPE: cortex-a9
DUT_CPU_SUBTYPE: vfpv3-d16
DUT_WAN_INTERFACE: eth2 DUT_WAN_INTERFACE: eth2
LABGRID_TARGET: turris-omnia-initramfs LABGRID_TARGET: turris-omnia-initramfs
TFTP_IMAGE_FILENAME: openwrt-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin TFTP_IMAGE_FILENAME: openwrt-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin
TFTP_IMAGE_FILENAME_PATTERN: /.*openwrt-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin/
tags: tags:
- dut-turris-omnia - dut-turris-omnia

View File

@ -332,7 +332,7 @@ SECTION "Base Configuration" {
# testvar lanMask 255.255.255.0 # testvar lanMask 255.255.255.0
# testvar lanDomainName qacafe.com # testvar lanDomainName qacafe.com
# testvar lanMtu default # testvar lanMtu default
# testvar lanHostname mydut testvar lanHostname prplOS
# testvar lanGuestMode no # testvar lanGuestMode no
SECTION "ARP Settings" { SECTION "ARP Settings" {
@ -679,7 +679,7 @@ SECTION "Base Configuration" {
testvar firewallTcpOpenPorts "50805" testvar firewallTcpOpenPorts "50805"
# testvar firewallTcpClosedPorts 2323 # testvar firewallTcpClosedPorts 2323
# testvar firewallUdpOpenPorts 1234 # testvar firewallUdpOpenPorts 1234
# testvar firewallUdpClosedPorts 113 testvar firewallUdpClosedPorts 68
# testvar firewallOutBlockedTcpPorts 1234 # testvar firewallOutBlockedTcpPorts 1234
# testvar firewallOutBlockedUdpPorts 1234 # testvar firewallOutBlockedUdpPorts 1234
# testvar firewallOutBlockedIpProtos 0 # testvar firewallOutBlockedIpProtos 0
@ -1292,7 +1292,7 @@ SECTION "CDRouter IPv6 Add-On" {
SECTION "IPv6 LAN" { SECTION "IPv6 LAN" {
# testvar ipv6LanMode autoconf # testvar ipv6LanMode autoconf
# testvar ipv6LanIp 3001:dddd::%eui64% testvar ipv6LanIp 3001:dddd::1
# testvar ipv6LanPrivacyAddresses no # testvar ipv6LanPrivacyAddresses no
# testvar ipv6LanPrefixLen 64 # testvar ipv6LanPrefixLen 64
# testvar ipv6MaxLanClients 32 # testvar ipv6MaxLanClients 32

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,63 @@
targets:
glinet-b1300-initramfs:
resources:
ModbusTCPCoil:
host: quido.testbed-02.vpn.true.cz
coil: 7
write_multiple_coils: True
RawSerialPort:
port: "/dev/glinet-b1300"
drivers:
ModbusCoilDriver: {}
DigitalOutputPowerDriver: {}
SerialDriver: {}
ShellDriver:
console_ready: Please press Enter to activate this console.
prompt: 'root@[\w()]+:[^ ]+ '
login_prompt: built-in shell (ash)
await_login_timeout: 15
username: kingbanik
UBootDriver:
prompt: '\(IPQ40xx\) # '
password: 'gl'
password_prompt: 'Hit "gl" key to stop booting'
init_commands:
- setenv bootdelay 0
- setenv serverip 192.168.1.2
- setenv ipaddr 192.168.1.1
boot_command_delay: 5
boot_timeout: 90
boot_command: tftpboot 0x88000000 openwrt-ipq40xx-generic-glinet_gl-b1300-initramfs-fit-zImage.itb && bootm 0x88000000
UBootStrategy: {}
glinet-b1300-nor:
resources:
ModbusTCPCoil:
host: quido.testbed-02.vpn.true.cz
coil: 7
write_multiple_coils: True
RawSerialPort:
port: "/dev/glinet-b1300"
drivers:
ModbusCoilDriver: {}
DigitalOutputPowerDriver: {}
SerialDriver: {}
ShellDriver:
console_ready: Please press Enter to activate this console.
prompt: 'root@[\w()]+:[^ ]+ '
login_prompt: built-in shell (ash)
await_login_timeout: 15
username: kingbanik
UBootDriver:
prompt: '\(IPQ40xx\) # '
password: 'gl'
password_prompt: 'Hit "gl" key to stop booting'
init_commands:
- setenv bootdelay 0
- setenv serverip 192.168.1.2
- setenv ipaddr 192.168.1.1
boot_command_delay: 5
boot_timeout: 180
boot_command: tftpboot 0x84000000 openwrt-ipq40xx-generic-glinet_gl-b1300-squashfs-sysupgrade.bin && sf probe && sf erase 0x180000 0x1e80000 && sf write 0x84000000 0x180000 $filesize && bootipq
UBootStrategy: {}