Merge test folder of test branch
[iotivity.git] / test / src / automation / robot / tc / api / Iotivity_ComponentAPI_AndroidTest.txt
1 #####################################################################
2 #
3 # Copyright 2018 Samsung Electronics All Rights Reserved.
4 #
5 #
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #      http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 #
19 #
20 #####################################################################
21
22 *** Settings ***
23 Documentation     Test API Test for Android platform
24 Variables         ../../helper/variable.py
25 Resource    ../../helper/Iotivity_Test_Helper.txt
26 Suite Setup    Do Suite Init Task
27 Test Teardown    Common API TC Teardown
28
29 *** Test Cases ***
30 Run RI API TC
31     [Documentation]    |Item |Description |
32     ...    |author |m.parves@samsung.com, last updated: 2017-01-06 |
33     ...    |reviewer | |
34     ...    |since |2017-01-06 |
35     ...    |see | |
36     ...    |objective |Run RI Android API testcase |
37     ...    |target | |
38     ...    |test_data | |
39     ...    |pre_condition | |
40     ...    |procedure | 1. Build iotivity for android platform |
41     ...    |procedure | 2. Build RI junit testcases |
42     ...    |procedure | 3. Run TEST Manger's script to execute testcases |
43     ...    |procedure | 4. Gererate excel report by runner result_repoerter |
44     ...    |post_condition | |
45     ...    |expected | Every steps should run successfully |
46     [Tags]    RI
47     [Timeout]    240 minutes
48     Run Android API TC    SECURED=0 TARGET_TRANSPORT=IP
49
50 Run RE API TC
51     [Documentation]    |Item |Description |
52     ...    |author |m.parves@samsung.com, last updated: 2017-01-25 |
53     ...    |reviewer | |
54     ...    |since |2017-01-06 |
55     ...    |see | |
56     ...    |objective |Run RE Android API testcase |
57     ...    |target | |
58     ...    |test_data | |
59     ...    |pre_condition | |
60     ...    |procedure | 1. Build iotivity for android platform |
61     ...    |procedure | 2. Build RE junit testcases |
62     ...    |procedure | 3. Run TEST Manger's script to execute testcases |
63     ...    |procedure | 4. Gererate excel report by runner result_repoerter |
64     ...    |post_condition | |
65     ...    |expected | Every steps should run successfully |
66     [Tags]    re
67     [Timeout]    300 minutes
68     Run TC Using Tcp Server Client    ${EMPTY}    ${EMPTY}
69
70 Run RC API TC
71     [Documentation]    |Item |Description |
72     ...    |author |m.parves@samsung.com, last updated: 2017-01-25 |
73     ...    |reviewer | |
74     ...    |since |2017-01-06 |
75     ...    |see | |
76     ...    |objective |Run RC Android API testcase |
77     ...    |target | |
78     ...    |test_data | |
79     ...    |pre_condition | |
80     ...    |procedure | 1. Build iotivity for android platform |
81     ...    |procedure | 2. Build RC junit testcases |
82     ...    |procedure | 3. Run TEST Manger's script to execute testcases |
83     ...    |procedure | 4. Gererate excel report by runner result_repoerter |
84     ...    |post_condition | |
85     ...    |expected | Every steps should run successfully |
86     [Tags]    rc
87     [Timeout]    120 minutes
88     Run Android API TC    SECURED=0 TARGET_TRANSPORT=IP
89
90 Run NS API TC
91     [Documentation]    |Item |Description |
92     ...    |author |m.parves@samsung.com, last updated: 2017-01-06 |
93     ...    |reviewer | |
94     ...    |since |2017-01-06 |
95     ...    |see | |
96     ...    |objective |Run NS Android API testcase |
97     ...    |target | |
98     ...    |test_data | |
99     ...    |pre_condition | |
100     ...    |procedure | 1. Build iotivity for android platform |
101     ...    |procedure | 2. Build NS junit testcases |
102     ...    |procedure | 3. Run TEST Manger's script to execute testcases |
103     ...    |procedure | 4. Gererate excel report by runner result_repoerter |
104     ...    |post_condition | |
105     ...    |expected | Every steps should run successfully |
106     [Tags]    NS
107     [Timeout]    300 minutes
108     Run Android API TC    SECURED=0 TARGET_TRANSPORT=IP
109
110 Run CA API Test
111     [Documentation]    |Item |Description |
112     ...    |author |m.parves@samsung.com |
113     ...    |reviewer | |
114     ...    |since |2016-06-22 |
115     ...    |see | |
116     ...    |objective | Execute CA Test Suite |
117     ...    |target | CA Test Suite |
118     ...    |test_data | |
119     ...    |pre_condition | 1. Build iotivity library for CA module |
120     ...    |pre_condition | 2. Build testcase for CA module |
121     ...    |procedure | Execute test_runner to run Test Suite |
122     ...    |post_condition | Run result reporter create excel report |
123     ...    |expected | All the testcase from suite all be run and excel test report will be generated |
124     [Tags]    CA
125     [Timeout]    300 minutes
126     ${build_prefix}    Set Variable    TARGET_TRANSPORT=IP SECURED=1 WITH_TCP=1
127     ${native_simulator_start}    Set Variable    ${ADB} -s ${ANDROID_DEVICE_ID} shell /data/local/tmp/android_runner.sh /data/local/tmp iotivity_ca_simulator
128     ${android_simulator_start}    Set Variable    ${ADB} -s ${PEER_ANDROID_DEVICE_ID} shell am start -a android.intent.action.VIEW -n org.iotivity.ca.simulator/.MainActivity -e transport
129     Add Specific Device    Linux    Linux2    Linux2
130     Run CA Suite With Simulator    TARGET_TRANSPORT=IP SECURED=1 WITH_TCP=1    gtest    ${native_simulator_start}    ip    0    tcp    4
131     ${tc_run_command}    Set Variable    ./common_test_runner.py -p android -f ${MODULE}_test -d ${ANDROID_DEVICE_ID} -w gtest -r ../TestReport/Result/__${MODULE}_${OS}__
132     Execute Common Runner    ${tc_run_command}
133     Run CA Suite With Simulator    TARGET_TRANSPORT=BT,BLE    junit    ${android_simulator_start}    ble    1   bt   2
134     ${tc_run_command}    Set Variable    ./common_test_runner.py -p android -m ca -u CATest -d ${ANDROID_DEVICE_ID} -w junit -r ../TestReport/Result/__${MODULE}_${OS}__
135     Execute Common Runner    ${tc_run_command}
136     Run Keyword If    '${ENABLE_TC_RUN}'!='0'    Run Linux Command    Linux1    cmd_terminal    ${TEST_MANAGER_ROOT}    ./result_reporter.py ../TestReport/Result/__${MODULE}_${OS}__ ${MODULE}_${OS}    Making Test Result Report is Done!!
137     Remove All Devices
138
139 Run ES API TC
140     [Documentation]    |Item |Description |
141     ...    |author |m.parves@samsung.com, last updated: 2017-01-25 |
142     ...    |reviewer | |
143     ...    |since |2017-01-25 |
144     ...    |see | |
145     ...    |objective |Run ES Android API testcase |
146     ...    |target | |
147     ...    |test_data | |
148     ...    |pre_condition | |
149     ...    |procedure | 1. Build iotivity for android platform |
150     ...    |procedure | 2. Build ES junit testcases |
151     ...    |procedure | 3. Run TEST Manger's script to execute testcases |
152     ...    |procedure | 4. Gererate excel report by runner result_repoerter |
153     ...    |post_condition | |
154     ...    |expected | Every steps should run successfully |
155     [Tags]    ES
156     [Timeout]    150 minutes
157     ${enrollee_run}    Get Concatenated String    ${DLM}    ${IOTIVITY_ROOT}/out/linux/${x86}/${RELEASE_DIR}    stdbuf -oL ./enrollee    EasySetup Enrollee SAMPLE    5s    ${False}    s    i
158     @{simulator_run}    Create List    ${enrollee_run}
159     Run Android TC With Linux Simulator    SECURED=0 WITH_TCP=1 WITH_CLOUD=1 TARGET_TRANSPORT=IP    ${EMPTY}    SECURED=0    ${FALSE}    @{simulator_run}
160
161 Run IC API TC
162     [Documentation]    |Item |Description |
163     ...    |author |m.parves@samsung.com, last updated: 2017-03-06 |
164     ...    |reviewer | |
165     ...    |since |2017-03-06 |
166     ...    |see | |
167     ...    |objective |Run IC Android API testcase |
168     ...    |target | |
169     ...    |test_data | |
170     ...    |pre_condition | |
171     ...    |procedure | 1. Build iotivity for android platform |
172     ...    |procedure | 2. Build IC junit testcases |
173     ...    |procedure | 3. Run TEST Manger's script to execute testcases |
174     ...    |procedure | 4. Gererate excel report by runner result_repoerter |
175     ...    |post_condition | |
176     ...    |expected | Every steps should run successfully |
177     [Tags]    IC
178     [Timeout]    330 minutes
179     @{cloud_services}    Get Cloud Services    0
180     Execute Terminal Command    ${TEST_ROOT}/res/cloud_resource/cloud_run.sh kill ${KAFKA_ROOT}
181     Run Android TC With Linux Simulator    SECURED=0 WITH_TCP=1 WITH_CLOUD=1 WITH_MQ=PUB,SUB TARGET_TRANSPORT=IP    CLOUD_SERVICE=1 KAFKA_ROOT=${KAFKA_ROOT}    ${FALSE}    ${FALSE}    ${EMPTY}    @{cloud_services}
182     [Teardown]    Cloud API TC Teardown
183
184 Run CS API TC
185     [Documentation]    |Item |Description |
186     ...    |author |m.parves@samsung.com, last updated: 2017-03-06 |
187     ...    |reviewer | |
188     ...    |since |2017-03-06 |
189     ...    |see | |
190     ...    |objective |Run IC Android API testcase |
191     ...    |target | |
192     ...    |test_data | |
193     ...    |pre_condition | |
194     ...    |procedure | 1. Build iotivity for android platform |
195     ...    |procedure | 2. Build IC junit testcases |
196     ...    |procedure | 3. Run TEST Manger's script to execute testcases |
197     ...    |procedure | 4. Gererate excel report by runner result_repoerter |
198     ...    |post_condition | |
199     ...    |expected | Every steps should run successfully |
200     [Tags]    CS
201     [Timeout]    330 minutes
202     @{build_types}    Create List    non-tls    tls
203     : FOR  ${index}  IN RANGE    0    2
204     \    Clear Simulator List
205     \    @{cloud_services}    Get Cloud Services    ${index}
206     \    ${runner_params}    Set Variable    -b @{build_types}[${index}]
207     \    Execute Terminal Command    ${TEST_ROOT}/res/cloud_resource/cloud_run.sh kill
208     \    BuiltIn.Sleep    10s
209     \    Run Android TC With Linux Simulator    SECURED=1 WITH_TCP=1 WITH_CLOUD=1 WITH_MQ=PUB,SUB TARGET_TRANSPORT=IP    CLOUD_SERVICE=1 KAFKA_ROOT=${KAFKA_ROOT}    ${FALSE}    ${FALSE}    ${runner_params}    @{cloud_services}
210     \    Stop Simulators
211     \    Execute Terminal Command    ${TEST_ROOT}/res/cloud_resource/cloud_run.sh kill
212     [Teardown]    Cloud API TC Teardown
213
214 Run PM API TC
215     [Documentation]    |Item |Description |
216     ...    |author |m.parves@samsung.com, last updated: 2017-01-30 |
217     ...    |reviewer | |
218     ...    |since |2017-01-30 |
219     ...    |see | |
220     ...    |objective |Run PM Android API testcase |
221     ...    |target | |
222     ...    |test_data | |
223     ...    |pre_condition | |
224     ...    |procedure | 1. Build iotivity for android platform |
225     ...    |procedure | 2. Build PM junit testcases |
226     ...    |procedure | 3. Run TEST Manger's script to execute testcases |
227     ...    |procedure | 4. Gererate excel report by runner result_repoerter |
228     ...    |post_condition | |
229     ...    |expected | Every steps should run successfully |
230     [Tags]    PM
231     [Timeout]    300 minutes
232     Run TC Using Tcp Server Client    ${EMPTY}    resource
233
234 *** Keywords ***
235 Run CA Suite With Simulator
236     [Arguments]    ${build_prefix}    ${framework}    ${simulator_run}    @{params}
237     ${ANDROID_PATHS}    Set Variable    ${PARAM_ANDROID_HOME} ${PARAM_ANDROID_NDK} ${PARAM_ANDROID_GRADLE}
238     ${iotivity_build_command}    Set Variable    scons ${build_prefix} TARGET_OS=android ${ANDROID_PATHS} TARGET_ARCH=${ANDROID_TARGET_ARCH} RELEASE=${RELEASE} -j ${J}
239     ${tc_build_command}    Set Variable    scons TARGET_OS=android ${ANDROID_PATHS} TARGET_ARCH=${ANDROID_TARGET_ARCH} MODULE=ca IOTIVITY_ROOT=${IOTIVITY_ROOT} RELEASE=${RELEASE} SECURED=1 PUSH=all FRAMEWORK=${framework}
240     ${android_simulator_stop}    Set Variable    ${ADB} -s ${PEER_ANDROID_DEVICE_ID} shell am force-stop org.iotivity.ca.simulator
241     Build Iotivity    ${IOTIVITY_ROOT}    ${iotivity_build_command}    done building targets
242     Build Iotivity TEST    ${TEST_ROOT}    ${tc_build_command}    done building targets
243     : FOR    ${index}    IN RANGE    0    2
244     \    ${temp}    Evaluate    ${index}*2+1
245     \    Run Linux Command    Linux2    cmd_terminal    ${TEST_MANAGER_ROOT}    ${simulator_run} @{params}[${temp}]   ${EMPTY}    5s    ${False}
246     \    ${sim_result}    Get Application Log    Linux2    cmd_terminal
247     \    BuiltIn.Log    ${sim_result}
248     \    BuiltIn.Sleep    2s
249     \    ${temp}    Evaluate    ${index}*2
250     \    ${transport}    Set Variable    @{params}[${temp}]
251     \    ${suit_names}    Set Variable If    '${transport}' == 'bt'    CABtTest,CANetworkTest,CANetworkCommonTest,CAClientTest,CAMulticastTest
252     \    ${suit_names}    Set Variable If    '${transport}' == 'ble'    CABleTest,CANetworkTest,CANetworkCommonTest,CAClientTest,CAMulticastTest    ${suit_names}
253     \    ${gtest_run_command}    Set Variable    ./common_test_runner.py -p android -m ca -f ca_${transport}_test -x ${transport} -d ${ANDROID_DEVICE_ID} -w ${framework} -r ../TestReport/Result/__${MODULE}_${OS}__
254     \    ${junit_run_command}    Set Variable    ./common_test_runner.py -p android -m ca -u ${suit_names} -x ${transport} -d ${ANDROID_DEVICE_ID} -w ${framework} -r ../TestReport/Result/__${MODULE}_${OS}__
255     \    ${tc_run_command}    Set Variable If    '${framework}' == 'gtest'    ${gtest_run_command}    ${junit_run_command}
256     \    Run Keyword If    '${framework}' == 'junit'    Update CA Config File    ${transport}
257     \    Execute Common Runner    ${tc_run_command}
258     \    ${sim_result}    Get Application Log    Linux2    cmd_terminal
259     \    BuiltIn.Log    ${sim_result}
260     \    Run Keyword If    '${framework}'=='junit'    Run Linux Command    Linux2    cmd_terminal    ${TEST_MANAGER_ROOT}    ${android_simulator_stop}    ${EMPTY}
261
262 Push Cloud Resource
263     [Arguments]    ${tls_mode}
264     ${net_interface}    Set Variable If    '${OS}'=='linux'    l0    wlan0
265     ${ip}    Get Ip Address    ${net_interface}
266     ${ip_key}    Set Variable If    '${OS}'=='linux'    ${CI_SERVER_ETHERNET_IP_KEY}    ${CI_SERVER_WIFI_IP_KEY}
267     Update Common Config File    ${TEST_ROOT}/bin/${OS}/config.properties    ${GITHUB_USER_KEY}    ${AUTH_USERNAME}    ${GITHUB_PASSWORD_KEY}    ${AUTH_PASSWORD}    ${ip_key}    ${ip}
268     Execute Terminal Command    ${ADB} -s ${ANDROID_DEVICE_ID} push ${TEST_ROOT}/bin/${OS}/config.properties /data/local/tmp/
269
270 Update CA Config File
271     [Arguments]    ${transport}
272     ${bt}    Set Variable If    '${transport}' == 'bt'    1    0
273     ${ble}    Set Variable If    '${transport}' == 'ble'    1    0
274     ${text}    Set Variable    [SIMULATOR]\nIP = 0.0.0.0\nOTHER_IP_LIST = \nPORT = 0\nSECURE_PORT = 0\nCA_IP = 0\nCA_LE = ${bt}\nCA_EDR = ${ble}\nCA_TCP = 0\n
275     Write File    ${TEST_ROOT}/res/ca_resource/config.ini    ${text}
276     Execute Terminal Command    ${ADB} -s ${ANDROID_DEVICE_ID} push ${TEST_ROOT}/res/ca_resource/config.ini /data/local/tmp/config.ini
277
278 Run TC Using Tcp Server Client
279     [Arguments]    ${iotivity_android_build_param}    ${iotivity_linux_build_param}
280     ${tcp_server_port}    Set Variable    7200
281     ${network_interface}    Set Variable    wlan0
282     ${tcp_client_package_name}    Set Variable    org.iotivity.tcpandroidclient
283     ${config_file_path}    Set Variable    ${TEST_ROOT}/bin/${OS}/config.properties
284     ${ANDROID_PATHS}    Set Variable    ${PARAM_ANDROID_HOME} ${PARAM_ANDROID_NDK} ${PARAM_ANDROID_GRADLE}
285     ${tcp_client_uninstall}    Set Variable    ${ADB} -s ${ANDROID_DEVICE_ID} uninstall ${tcp_client_package_name}
286     ${tcp_client_stop}    Set Variable    ${ADB} -s ${ANDROID_DEVICE_ID} shell am force-stop ${tcp_client_package_name}
287     ${tcp_client_start}    Set Variable    ${ADB} -s ${ANDROID_DEVICE_ID} shell monkey -p ${tcp_client_package_name} -c android.intent.category.LAUNCHER 1
288     Execute Terminal Command    ${tcp_client_stop}
289     Execute Terminal Command    ${tcp_client_uninstall}
290     Build Iotivity    ${IOTIVITY_ROOT}    scons ${iotivity_android_build_param} SECURED=${SECURED} TARGET_OS=android TARGET_ARCH=${ANDROID_TARGET_ARCH} RELEASE=${RELEASE} ${ANDROID_PATHS} TARGET_TRANSPORT=IP -j ${J}    done building targets
291     Build Iotivity TEST    ${TEST_ROOT}    scons SECURED=${SECURED} RELEASE=${RELEASE} IOTIVITY_ROOT=${IOTIVITY_ROOT} TARGET_OS=android ${ANDROID_PATHS} TARGET_ARCH=${ANDROID_TARGET_ARCH} MODULE=${MODULE}    done building targets
292     Build Iotivity    ${IOTIVITY_ROOT}    scons ${iotivity_linux_build_param} SECURED=${SECURED} TARGET_OS=linux RELEASE=${RELEASE} -j ${J}    done building targets
293     Build Iotivity TEST    ${TEST_ROOT}    scons SECURED=${SECURED} RELEASE=${RELEASE} IOTIVITY_ROOT=${IOTIVITY_ROOT} TARGET_OS=linux MODULE=${MODULE} TEST=simulator    done building targets
294     Return From Keyword If    '${ENABLE_TC_RUN}'=='0'
295     Run Keyword If    '${MODULE}'=='PM'    Run Linux Command    Linux1    kill_iotivity_server    ${TEST_ROOT}/bin/linux    ./SerialKiller    ${EMPTY}    10s    ${True}
296     Execute Terminal Command    fuser -k -n tcp ${tcp_server_port}
297     BuiltIn.Sleep    2s
298     Run Linux Command    Linux2    tcp_server    ${TEST_ROOT}/bin/linux    java -jar TcpTestServer.jar    Server Started    5s    ${False}
299     ${ip}    Get Ip Address    ${network_interface}
300     ${ipv6}    Get Ipv6 Address    ${network_interface}
301     Execute Terminal Command    cp ${TEST_ROOT}/res/common/config.properties ${config_file_path}
302     Update Common Config File    ${config_file_path}    ${CI_SERVER_WIFI_IP_KEY}    ${ip}
303     Update Common Config File    ${config_file_path}    ${CI_SERVER_WIFI_IPv6_KEY}    ${ipv6}
304     Execute Terminal Command    ${ADB} -s ${ANDROID_DEVICE_ID} push ${config_file_path} /data/local/tmp/
305     Execute Terminal Command    ${tcp_client_start}
306     BuiltIn.Sleep    5s
307     ${expected_log}    Set Variable    Server connected with Android Client now you can chat with socket server.
308     ${log}    Get Application Log    Linux2    tcp_server
309     BuiltIn.Log    ${log}
310     Execute Common Runner    ./common_test_runner.py -p android -d ${ANDROID_DEVICE_ID} -m ${MODULE} -r ../TestReport/Result/__${MODULE}_${OS}__
311     Run Linux Command    Linux1    cmd_terminal    ${TEST_MANAGER_ROOT}    ./result_reporter.py ../TestReport/Result/__${MODULE}_${OS}__ ${MODULE}_${OS}    Making Test Result Report is Done!!
312     ${log}    Get Application Log    Linux2    tcp_server
313     BuiltIn.Log    ${log}
314     Terminate Application    Linux2    tcp_server
315     Execute Terminal Command    ${tcp_client_stop}
316     Execute Terminal Command    ${tcp_client_uninstall}
317