← Back to team overview

checkbox-dev team mailing list archive

Remote testing

 

Hey

My recent work was focused on checkbox-touch but all internal API
changes that I've smuggled in were designed to be compatible with a
world where we can test remotely.

Some big changes have just landed that set the stage for upcoming
work. The following is the list of remaining topics that we need to
patch to be able to support remote testing:

- The session suspend / resume helpers need to learn about devices,
they need to store the connection string for each device so that we
can recover the connection. On a similar note we should stop relying
on SessionManager.state (and deprecate it) and really store/restore
all of SessionManager.device_context_list (so one state + device
connection pair per device). This is mostly straightforward and should
be easy to do as soon as we get the ...

- Local device patch. This patch is pretty simple conceptually.
Everywhere where plainbox does something that is related to running
jobs we should go via the SessionDeviceContext which sould delegate
the work, as appropriate the the .device object it holds. The local
device is easy as we don't need to add any new user-visible "features"
just move them around so all that logic hangs off from a device class.

- Teach 'plainbox run' to use the SessionManager without using the
deprecated bits (currently they are not marked as deprecated but I'm
mostly thinking about @state) and to bootstrap and tear down devices
that participate in the session. This should be done in a way that is
mostly ignorant to the set of devices that participate in the session
(it must work with the one but it should work with many). It also
involves some UI changes but I think we can still use the conceptually
simple -@ phablet:serial |  -@ local command line arguments I did in
Budapest

- Add a phablet device. This is mostly done (from the Budapest remote
branch), just needs to be adapted to the new device API and tied to
the session device context where appropriate. The only change that we
must do is to alter the bootstrap code as described here [1]

- Add arch awareness to providers. This is an open problem but we
don't really *need* to get it right for the first version. We need to
cheat a little and that's it. I'll write more about that and about
sealed providers some other time.

Thansk
ZK

[1] https://github.com/zyga/python-phablet/issues/1