PLaceholder for CSIT 29/111029/1
authormaximesson <maxime.bonneau@est.tech>
Fri, 7 Aug 2020 12:18:32 +0000 (14:18 +0200)
committermaximesson <maxime.bonneau@est.tech>
Fri, 7 Aug 2020 12:47:49 +0000 (14:47 +0200)
Change-Id: I7f0ef4ed815c39abaf1c231cfba3c0dad226094e
Issue-ID: CCSDK-2491
Signed-off-by: maximesson <maxime.bonneau@est.tech>
plans/ccsdk/oran/functionality1/setup.sh [new file with mode: 0755]
plans/ccsdk/oran/functionality1/teardown.sh [new file with mode: 0755]
plans/ccsdk/oran/functionality1/testplan.txt [new file with mode: 0644]
scripts/ccsdk/oran/mock-hello.sh [new file with mode: 0755]
tests/ccsdk/oran/suite1/__init__.robot [new file with mode: 0644]
tests/ccsdk/oran/suite1/test1.robot [new file with mode: 0644]
tests/ccsdk/oran/suite2/__init__.robot [new file with mode: 0644]
tests/ccsdk/oran/suite2/test1.robot [new file with mode: 0644]
tests/ccsdk/oran/vCPE/__init__.robot [new file with mode: 0644]
tests/ccsdk/oran/vCPE/test1.robot [new file with mode: 0644]

diff --git a/plans/ccsdk/oran/functionality1/setup.sh b/plans/ccsdk/oran/functionality1/setup.sh
new file mode 100755 (executable)
index 0000000..f9fe0c5
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# Copyright 2016-2017 Huawei Technologies Co., Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Place the scripts in run order:
+source ${WORKSPACE}/scripts/ccsdk/script1.sh
+
+# CLI internet speed test
+curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
+
+# Test download a 100 MB file to check network speed to nexus.onap.org
+wget -O /dev/null https://nexus.onap.org/content/repositories/releases/org/onap/appc/appc-dg-shared-installer/1.3.0/appc-dg-shared-installer-1.3.0.zip
+
+# Test download a 100 MB file to check network speed to nexus3.onap.org
+wget -O /dev/null https://nexus3.onap.org/repository/docker.release/v2/-/blobs/sha256:04dc4b8163487bb1c40df1ce16f349b507c262d6e2f202baa2e66a42eb8c64a1
+
diff --git a/plans/ccsdk/oran/functionality1/teardown.sh b/plans/ccsdk/oran/functionality1/teardown.sh
new file mode 100755 (executable)
index 0000000..acf2d09
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Copyright 2016-2017 Huawei Technologies Co., Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+kill-instance.sh i-mock
+
+
diff --git a/plans/ccsdk/oran/functionality1/testplan.txt b/plans/ccsdk/oran/functionality1/testplan.txt
new file mode 100644 (file)
index 0000000..e9485b8
--- /dev/null
@@ -0,0 +1,5 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+# Temporary change to trigger verify job.
+ccsdk/oran/suite1
+ccsdk/oran/suite2
diff --git a/scripts/ccsdk/oran/mock-hello.sh b/scripts/ccsdk/oran/mock-hello.sh
new file mode 100755 (executable)
index 0000000..a40f8bf
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/bash
+#
+# Copyright 2016-2017 Huawei Technologies Co., Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+curl -v -X PUT -d @- http://$1:1080/expectation <<EOF
+{
+    "httpRequest": {
+        "method": "GET",
+        "path": "/hello"
+    },
+    "httpResponse": {
+        "body": "Hello world!",
+        "statusCode": 200
+    }
+}
+EOF
+
diff --git a/tests/ccsdk/oran/suite1/__init__.robot b/tests/ccsdk/oran/suite1/__init__.robot
new file mode 100644 (file)
index 0000000..09aa031
--- /dev/null
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation    Ccsdk Oran - Suite 1
diff --git a/tests/ccsdk/oran/suite1/test1.robot b/tests/ccsdk/oran/suite1/test1.robot
new file mode 100644 (file)
index 0000000..10e6852
--- /dev/null
@@ -0,0 +1,30 @@
+*** Settings ***
+Library       OperatingSystem
+Library       RequestsLibrary
+
+*** Variables ***
+${MESSAGE}    Hello, world!
+
+*** Test Cases ***
+String Equality Test
+    Should Be Equal    ${MESSAGE}    Hello, world!
+
+Dir Test
+    [Documentation]    Check if /tmp exists
+    Log                ${MESSAGE}
+    CheckDir           /tmp
+
+Url Test
+    [Documentation]    Check if google.com can be reached
+    CheckUrl           http://www.google.com
+
+*** Keywords ***
+CheckDir
+    [Arguments]                 ${path}
+    Directory Should Exist      ${path}
+
+CheckUrl
+    [Arguments]                  ${url}
+    Create Session               session              ${url}
+    ${resp}=                     Get Request          session                  /
+    Should Be Equal As Integers  ${resp.status_code}  200
diff --git a/tests/ccsdk/oran/suite2/__init__.robot b/tests/ccsdk/oran/suite2/__init__.robot
new file mode 100644 (file)
index 0000000..c9bbad3
--- /dev/null
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation    Ccsdk Oran - Suite 2
diff --git a/tests/ccsdk/oran/suite2/test1.robot b/tests/ccsdk/oran/suite2/test1.robot
new file mode 100644 (file)
index 0000000..5d354dd
--- /dev/null
@@ -0,0 +1,30 @@
+*** Settings ***
+Library       OperatingSystem
+Library       RequestsLibrary
+
+*** Variables ***
+${MESSAGE}    Hello, world!
+
+*** Test Cases ***
+String Equality Test
+    Should Be Equal    ${MESSAGE}    Hello, world!
+
+Dir Test
+    [Documentation]    Check if /tmp exists
+    Log                ${MESSAGE}
+    CheckDir           /tmp
+
+Url Test
+    [Documentation]    Check if www.onap.org can be reached
+    Create Session     openo          http://www.onap.org
+    CheckUrl           openo          /
+
+*** Keywords ***
+CheckDir
+    [Arguments]                 ${path}
+    Directory Should Exist      ${path}
+
+CheckUrl
+    [Arguments]                  ${session}   ${path}
+    ${resp}=                     Get Request          ${session}               ${path}
+    Should Be Equal As Integers  ${resp.status_code}  200
diff --git a/tests/ccsdk/oran/vCPE/__init__.robot b/tests/ccsdk/oran/vCPE/__init__.robot
new file mode 100644 (file)
index 0000000..f6230ae
--- /dev/null
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation    Ccsdk Oran - vCPE
diff --git a/tests/ccsdk/oran/vCPE/test1.robot b/tests/ccsdk/oran/vCPE/test1.robot
new file mode 100644 (file)
index 0000000..d07bf6e
--- /dev/null
@@ -0,0 +1,60 @@
+*** Settings ***
+Suite Setup       Suite Setup
+Suite Teardown    Suite Teardown
+Library           OperatingSystem
+Library           RequestsLibrary
+Library           Process
+Library           ONAPLibrary.Utilities
+
+*** Variables ***
+${GLOBAL_APPLICATION_ID}    csit-vCPE
+${GLOBAL_MSO_USERNAME}    InfraPortalClient
+${GLOBAL_MSO_PASSWORD}    password1$
+
+*** Test Cases ***
+SO ServiceInstance health check
+    ${auth}=    Create List    ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    ${session}=    Create Session    so    http://${SO_IP}:8080
+    ${uuid}=    Generate UUID4
+    ${headers}=    Create Dictionary    Accept=text/html    Content-Type=text/html    X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
+    ${resp}=    Get Request    so    /ecomp/mso/infra/globalhealthcheck    headers=${headers}
+    &{headers}=    Create Dictionary    Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==    Content-Type=application/json    Accept=application/json
+    ${resp}=    Get Request    so    /ecomp/mso/infra/orchestrationRequests/v2    headers=${headers}
+    Should Not Contain    ${resp.content}    null
+
+*** Keywords ***
+Run Docker
+    [Arguments]    ${image}    ${name}    ${parameters}=${EMPTY}
+    ${result}=    Run Process    docker run --name ${name} ${parameters} -d ${image}    shell=True
+    Should Be Equal As Integers    ${result.rc}    0
+    Log    ${result.stdout}
+    ${result}=    Run Process    docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${name}    shell=True
+    Should Be Equal As Integers    ${result.rc}    0
+    Log    ${result.stdout}
+    [Return]    ${result.stdout}
+
+Kill Docker
+    [Arguments]    ${name}
+    ${result}=    Run Process    docker logs ${name}    shell=True
+    Should Be Equal As Integers    ${result.rc}    0
+    Log    ${result.stdout}
+    ${result}=    Run Process    docker kill ${name}    shell=True
+    Should Be Equal As Integers    ${result.rc}    0
+    Log    ${result.stdout}
+    ${result}=    Run Process    docker rm ${name}    shell=True
+    Should Be Equal As Integers    ${result.rc}    0
+    Log    ${result.stdout}
+
+CheckUrl
+    [Arguments]    ${url}
+    Create Session    session    ${url}    disable_warnings=True
+    ${resp}=    Get Request    session    /
+    Should Be Equal As Integers    ${resp.status_code}    200
+
+Suite Setup
+    ${SO_IP}=    Run Docker    nexus3.onap.org:10001/openecomp/mso    i-so
+    Wait Until Keyword Succeeds    1 min    5 sec    CheckUrl    http://${SO_IP}:8080
+    Set Suite Variable    ${SO_IP}
+
+Suite Teardown
+    Kill Docker    i-so