summaryrefslogtreecommitdiff
path: root/README
blob: bfa2883a18d2c7ca68b119ae9c65388f17b54d88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#####
Weles
#####

********
Overview
********

Weles is part of SLAV_ stack. It is a simple, lightweight generic test framework.
It uses Boruta_ for DUT [#]_ reservation and MuxPi_ for accessing it.
Weles was inspired by LAVA_.

Weles responsibilities include:

* acquiring DUT from Boruta_ system
* flashing images to the DUT
* running tests
* presenting results in a human and computer-readable form

.. [#] Device Under Test
.. _MuxPi: https://github.com/SamsungSLAV/muxpi
.. _Boruta: https://github.com/SamsungSLAV/boruta
.. _SLAV: https://github.com/SamsungSLAV/slav
.. _LAVA: https://www.linaro.org/initiatives/lava/

User provides a yaml file containing all neccessary information to perform tests:

* required capabilities of a target device
* timeouts
* priority
* interface for accessing target
* credentials, input sequences
* test cases to be run defined as a list of:

  * commands for target
  * files to be pushed to target
  * artifacts to be collected from a target

Check sample yaml for Weles in parser/sample_yaml


*************
Documentation
*************

`Weles documentation`_ is hosted on Read The Docs pages.

.. _`Weles documentation`: https://weles.rtfd.io/


**********
Deployment
**********

Docker
======

Prerequisites

* Docker_
* Make_

.. _Docker: https://www.docker.com/
.. _Make: https://www.gnu.org/software/make/


Clone Weles and go to that directory::

  $ git clone https://github.com/SamsungSLAV/weles.git && cd weles

Adjust swagger.yml to your instance. You should only edit following fields:

* description
* termsOfService
* contact
* host

And build Weles::

  $ make docker-build

Local
=====

- git
- make
- `go (1.10+)`_

.. _`go (1.10+)`: https://golang.org/doc/install


Go get it and go to weles directory::

  $ go get github.com/SamsungSLAV/weles
  $ cd $GOPATH/src/github.com/SamsungSLAV/weles

Weles uses Dep to manage dependencies; if you dont have it, go get it::

  $ go get -u github.com/golang/dep/cmd/dep

Download all dependencies::

  $ make vendor

Adjust swagger.yml to your instance. You should only edit following fields:

* description
* termsOfService
* contact
* host

Regenerate server code with your changes in the swagger.yml file::

  $ make swagger-server-generate

And finally we can build Weles::

  $ make server

The binary of Weles will be available in bin/weles-server

Run it with -h flag::

  $ bin/weles-server -h

to receive full list of parameters.


***********
Using Weles
***********

Currently server supports only http protocol.
Following flags may be ignored:

- --tls*
- --scheme
- --socket-path

When you run your server, you can check the API documentation on http://host:port/api/v1/docs/
Remember to set `--boruta-address` flag with proper Boruta address or Weles won't work!


Contact information
===================

+----------------------+----------------------------------+
|         Name         |              E-mail              |
+======================+==================================+
| Paweł Wieczorek      | p.wieczorek2@samsung.com         |
+----------------------+----------------------------------+
| Łukasz Wojciechowski | l.wojciechow@partner.samsung.com |
+----------------------+----------------------------------+


*******
License
*******

Weles is distributed under `Apache 2.0 License`_

.. _`Apache 2.0 License`: LICENSE