[riot-devel] HIL testing

2017-11-27 Thread Hauke Petersen

Hi everyone,

in today's developer meeting the discussion passed by the topic of HIL 
testing once again, this time in the context of the upcoming re-modeling 
of the I2C interface. Some weeks ago I had an idea for a simple HIL 
setup for automatically testing perihp/i2c drivers, and I promised to 
share it (although it is in very very early state). So here it is.


So the basic idea is to connect the I2C pins of the 'board-under-test' 
(i2c master for now) to a 2nd board (lets call it 'test peer'), running 
a fully controllable software i2c slave implementation. On the 
device-under-test we simply run the 'tests/periph_i2c' app, that lets us 
control the I2C master using shell commands (init/read/write incl 
parameters). On the 'test peer' we run a programmable soft i2c client, 
that offers shell commands expressing expectations, e.g. "expect 4 byter 
[abcd] written to addr 0x23".


Now for creating an automated I2C test-suite, I imagine something 
similar to our existing pyexpect scripts (testrunner), just with the 
added capability of handling two clients. So the test script could look 
something like this (mostly pseudocode...):


`PORT=/dev/ttyACM0 TESTPEER=/dev/ttyACM1 make hil-test`

triggers:

```python
...
def testfunc(testie, peer):
    ...
   # tell the 'test peer' to expect something to be written to addr 
0x23 and respond with a NACK

    peer.sendline("expect_addr 0x23")
   # write a random byte the addr 0x23
    testie.sendline("w 0x23 a")
    # the 'test peer' will tell if it sees the expected address
    peer.expect("[SUCCESS]")
    # the 'device-under-test' should recognize the NACK
    testie.expect("error: no device with that address found on bus")

    # test writing (expect 4 bytes [affe] written to address 0x42)
    peer.sendline("expect_write 0x42 a f f e")
    testie.sendline("w 0x42 a f f e")
    peer.expect("[SUCCESS]")
    testie.expect("I2C_DEV(0): successfully wrote 4 bytes to the bus\n")

   ...
    # many many more test cases here, including simulation of badly 
behaving slaves and bus recovery...

```

I have sketched a I2C slave implementation to run on the 'test peer' in 
[1] (under `tests/softi2ccli`). It is in no means production code, but a 
quick prove of concept. But IMHO this would be a very easy and straight 
forward way to have an automatic test-suite that would work on someones 
desk for now.


Integration into the bigger picture would hopefully be easy doable, but 
this not in the scope of this particular proposal here...
For now my goal would simply be to build a test suite for assisting with 
the upcoming I2C remodeling to get some hands-on experience and speed up 
the testing efforts for that task.


Cheers,
Hauke

[1] https://github.com/haukepetersen/RIOT/tree/add_softi2cli
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] Updates to the build system - modules definition

2017-11-27 Thread Francisco Javier Acosta Padilla
Hi,

I think the problem to solve is that RIOT is very difficult to configure.

While working with other IoT operating systems, one can notice that RIOT is 
very hardly configurable, unless we are very familiar with the build system and 
specific RIOT CFLAGS and special key-words (USEMODULE, USEPKG, etc…).

Besides, I have no knowledge of a tool that can parse RIOT makefiles and give 
an insight about module usage, dependencies, features, etc. 

Thus IMHO a way to make, first, RIOT more *friendly* configurable it’s a good 
and necessary feature. This would also allow to eventually build a dependency 
tree in a more human-readable fashion, as well as give some help to get 
different product lines according to the selected features.

However, I’d say that *deep* modifications to the current build system can lead 
to instability or buggy builds. I’m not against any improvement to the build 
system, but maybe as a first approach some additions like files in any more 
descriptive (parseable) language can help to describe RIOT in a higher level, 
without affecting at all the underlying system. Then, with the knowledge 
obtained thanks to such a description, we can imagine to generate makefiles or 
make “make” calls with the specific RIOT CFLAGS, USEMODULE, etc.

My 2c.

Cheers,

-- 
Francisco Javier Acosta Padilla
Research Engineer at INRIA Saclay
INFINE Team

On 24 November 2017 at 19:16:29, Thomas C. Schmidt (t.schm...@haw-hamburg.de) 
wrote:

Hi Dan, Gaetan,

I wonder, what problems are we trying to solve?

Maybe we can clearly enumerate them first so that we can check later,  
whether an improved solution really solves these problems.

Cheers,
Thomas

On 24/11/2017 16:47, Daniel Petry wrote:
> Hi Gaetan
>  
>  
>> I would like to introduce some packaging concepts around RIOT.
>> To consider modules like well defined distribution packages and not only
>> source files added to an application firmware.
>  
> From what you're saying, I understand that the aim is to make modules
> completely self-contained with respect to build definitions, and make
> those definitions much more human readable. In this way, an application
> developer can go to only one place to find out information regarding a
> module's build (dependency information, etc.), and a module developer
> only has to write/change the module directory Makefile and can do so
> with declarative language. Also, the information can be easily parseable
> for eg a user interface.
>  
> So the changes you're proposing are:
>  
> 1) Move build information concerning a particular module into that
> module's Makefile
> 2) Make the module makefiles able to be written with purely declarative
> language
> 3) Retain backwards compatibility with the current build system
>  
> Is this correct?
>  
> I think 2) would be great for user friendliness, and 3) is a no-brainer.
> 1) is a bigger topic as there are a number of different ways in which
> dependencies are manifested for example, so I think this can be a point
> for further discussion... do you have any particular examples?
>  
>  
> Dan.
>  
> ___
> devel mailing list
> devel@riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
>  

--  

Prof. Dr. Thomas C. Schmidt
° Hamburg University of Applied Sciences Berliner Tor 7 °
° Dept. Informatik, Internet Technologies Group 20099 Hamburg, Germany °
° http://www.haw-hamburg.de/inet Fon: +49-40-42875-8452 °
° http://www.informatik.haw-hamburg.de/~schmidt Fax: +49-40-42875-8409 °
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


[riot-devel] RIOT developers monthly meeting

2017-11-27 Thread Francisco Javier Acosta Padilla

RIOT developers monthly meeting
Scheduled: 27 Nov 2017 17:00 to 18:00
Location: https://zoom.us/j/235153205
Invitees: devel@riot-os.org, Francisco Javier Acosta Padilla
Hi there, 

Francisco Acosta is inviting you to a scheduled Zoom meeting. 

Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/235153205

Or iPhone one-tap :
    US: +16699006833,,235153205#  or +16465588656,,235153205# 
Or Telephone:
    Dial(for higher quality, dial a number based on your current location):
        US: +1 669 900 6833  or +1 646 558 8656 
    Meeting ID: 235 153 205
    International numbers available: 
https://zoom.us/zoomconference?m=3QuTkS0wteDtL_3pyOjFM0KBPZ_220mB


-- 
Francisco Javier Acosta Padilla
Research Engineer at INRIA Saclay
INFINE Team___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] Notification: Monthly RIOT developer meeting @ Mon Nov 27, 2017 5pm - 6pm (RIOT Events)

2017-11-27 Thread Francisco Javier Acosta Padilla
Hi RIOTers!

Today is our second monthly meeting. So far, I noted the following agenda:

  1. Look at the issues solved during the month.
  2. Enforce the usage of issues for WIP.
  3. Update maintainers list.

If you have other concerns which we might talk about with other developers 
please add them to the agenda.

I’ll try to use the features of the zoom.us app to schedule the meeting and 
agenda bashing, you should receive another invitation e-mail with the meeting 
link.

Cheers,

Francisco.



On 26 November 2017 at 17:00:13, Google Calendar 
(calendar-notificat...@google.com) wrote:

more details »
Monthly RIOT developer meeting
When
Mon Nov 27, 2017 5pm – 6pm Berlin
Where
Online (map)
Calendar
RIOT Events
Who
•   
Martine Lenders - creator
Invitation from Google Calendar

You are receiving this email at the account peterschme...@gmail.com because you 
are subscribed for notifications on calendar RIOT Events.

To stop receiving these emails, please log in to 
https://www.google.com/calendar/ and change your notification settings for this 
calendar.

Forwarding this invitation could allow any recipient to modify your RSVP 
response. Learn More.

___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel