Skip to content

Commit 62d712f

Browse files
LuxoftAKutsanjordynmackool
authored andcommitted
SDL 0206 - Remote Automated testing(revisions) (smartdevicelink#645)
* Revision fixes fixing typos Updates after review #1 Update 0206-remote_atf_testing.md Minor updates Minor updates #2 minor text formatting * Fixes after Laura review * Update 0206-remote_atf_testing.md * Update 0206-remote_atf_testing.md * Update 0206-remote_atf_testing.md
1 parent 44a00e4 commit 62d712f

File tree

1 file changed

+47
-30
lines changed

1 file changed

+47
-30
lines changed

proposals/0206-remote_atf_testing.md

Lines changed: 47 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@
77

88
## Introduction
99

10-
This proposal is about modification of Automated Test Framework (ATF) for providing ability to test SDL on remote workstation usinig automated test scripts.
10+
This proposal is about modification of Automated Test Framework (ATF) for providing ability to test SDL on remote workstations using automated test scripts.
1111

1212
## Motivation
1313

14-
Automated testing of SDL on the real OEM hardware would significantly reduce the amount of efforts during the integration stage.
14+
Automated testing of SDL on the real OEM hardware would significantly reduce efforts during the integration stage.
1515
This also can ensure that during the integration stage the business logic SDL will be ported successfully and will not be corrupted.
1616

17-
On various OEM platforms communication between HMI and SDL is performed through different transports, that may not be retrieved from the target (i.e. mqueue). So for ATF it's not possible to connect to SDL from HMI side and emulate HMI behavior.
17+
On various OEM platforms communication between HMI and SDL is performed through different transports, that may not be retrieved from the target (e.g. mqueue). So for ATF it's not possible to connect to SDL from HMI side and emulate HMI behavior.
1818
This proposal suggests adding the optional proxy (relay) layer. This layer will connect to SDL, which is located on the OEM's target and expose API to ATF, which is located on other workstation via Transmission Control Protocol (TCP).
1919

2020
## Proposed solution
2121

22-
Create Remote ATF Adapter as a separate application. This application will be executed on the same hardware with SDL and will provide API for communication with SDL and will control the SDL life cycle.
22+
It is proposed to create Remote ATF Adapter as a separate application. This application will be executed on the same hardware with SDL and will provide an API for communication with SDL and will control the SDL life cycle.
2323

2424
### Remote ATF Adapter
2525

26-
ATF will use the Remote ATF Adapter as a relay for sending data to SDL via the HMI connection.
27-
Remote ATF Adapter may utilise any local transport that is used for connection between SDL and HMI on specific OEM hardware, but it will provide TCP for ATF and Open Source ATF will be used.
26+
ATF will use the Remote ATF Adapter as a relay for sending data to SDL via the HMI connection.
27+
Remote ATF Adapter may utilize any local transport that is used for connection between SDL and HMI on specific OEM hardware, but it will provide TCP for ATF and Open Source ATF will be used.
2828

2929
![Remote ATF Adapter](/assets/proposals/nnnn-hmi-relay/ATFRemoteAdapter.png)
3030

@@ -34,41 +34,58 @@ Remote ATF Adapter should provide the following functionality:
3434
For sending and receiving data. In some cases more than one connection (with different connection types) should be opened, so interface should be rather general.
3535

3636
The following RPCs are required:
37-
- Open Connection (connection parameters).
38-
- send (connection, data) -> status.
39-
- receive (connection) -> data.
40-
- Close Connection(connection) -> status.
37+
- Open Connection (connection parameters)
38+
- Send (connection, data) -> status
39+
- Receive (connection) -> data
40+
- Close Connection(connection) -> status
4141

42-
### RPCs for SDL life cycle management:
43-
Testing of some SDL functionality (i.e. Resumption flow) requires performing of ignition cycles. For the SDL ignition cycle, that means it will be stopped and started again (with additional notifications before stop). So ATF will need to control the SDL life cycle.
42+
#### RPCs for SDL life cycle management:
43+
Testing of some SDL functionality (e.g. Resumption flow) requires performing of ignition cycles. For SDL, the new ignition cycle means it will be stopped and started again (with additional notifications before stopping). So ATF will need to control the SDL life cycle.
4444
This can only be done with a Remote ATF Adapter on a remote workstation.
4545

4646
The following RPCs are required:
47-
- Start SDL.
48-
- Stop SDL.
49-
- CheckSDL state.
47+
- Start SDL
48+
- Stop SDL
49+
- CheckSDL state
5050

51-
### File management:
52-
Some automated use cases are required as special preconditions for the modifications in smartDeviceLink.ini file, capabilities, preloaded policy table, etc ...
51+
#### File management:
52+
Some automated use cases are required as special preconditions for the modifications in smartDeviceLink.ini file, capabilities, preloaded policy table, etc.
5353
Because of this Remote ATF Adapter, it should provide functionality for file and folder management, such as:
54-
- Upload file.
55-
- Download file.
56-
- Update file.
57-
- Delete file.
58-
- Check if file exist.
59-
- Create a directory.
60-
- Delete a directory.
61-
- Check if directory exist.
62-
63-
# Low level OS management:
64-
- Command execute.
54+
- Upload file
55+
- Download file
56+
- Update file
57+
- Delete file
58+
- Check if file exists
59+
- Create a directory
60+
- Delete a directory
61+
- Check if directory exist
62+
63+
#### Low level OS management:
64+
- Command execute
6565

6666
For communication with SDL, the OEM adapter will need to implement this API.
6767
In case OEM requires additional functionality, relay server API may be extended.
6868

6969
ATF should use this API for sending/receiving data as a simulation of the HMI side.
7070

71-
Remote connection as a simulation of Mobile side may be done in scope of the following proposal : [ATF support of additional transports (BT and USB)](https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0126-atf-additional-transports.md). Or by using of Wi-Fi (TCP) transport, in this case there is no additional implementation required.
71+
Remote connection as a simulation of Mobile side may be done in scope of the following proposal: [ATF support of additional transports (BT and USB)](https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0126-atf-additional-transports.md). Or by using of Wi-Fi (TCP) transport, in this case additional implementation is not required.
72+
73+
74+
### Open source implementation of Remote ATF Adapter
75+
76+
Open source implementation of Remote Adapter Server will support appropriate transports to test open source SDL :
77+
- TCP for mobile connections (additional transports for automated testing provided in separate proposal)
78+
- Web socket for HMI connection.
79+
80+
Remote Adapter Server is a component with listed transport agnostic interfaces, so an OEM can implement for another transport. The API of the Remote Adapter Server can be extended in case the OEM implementation of SDL requires any additional functionality.
81+
82+
The open source implementation of the Remote adapter server is part of this proposal.
83+
The Remote adapter server should be done using the C++ programming language to provide minimal latency, and to support a long list of supported platforms.
84+
The Remote adapter server runs on the target, it communicates with SDL as HMI (using web socket for open source) and as mobile (using TCP for open source).
85+
The Remote adapter server is controlled via ATF(from host) via TCP.
86+
87+
The Remote Client should be maintained in [sdl_atf](https://github.com/smartdevicelink/sdl_atf) repository as part of ATF.
88+
The OEM may reimplement the Remote adapter server in case it uses another HMI communication transport, or has any additional transports for communication with SDL.
7289

7390
## Potential downsides
7491

@@ -80,4 +97,4 @@ Impacts only Automated Test Framework code.
8097

8198
## Alternatives considered
8299

83-
Determine to use TCP and web-sockets for HMI communication by OEM.
100+
Investigated using TCP and web-sockets for HMI communication by OEM.

0 commit comments

Comments
 (0)