Hi Marcel, On Fri, May 3, 2013 at 10:55 AM, Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: >> We have been working recently on cleaning up GATT/ATT code and >> implementing unit tests for it (as you can see from our latest patches >> in BlueZ). Is this unpublished code based on existing code, or >> something written from scratch? If the latter, I think we should not >> spend time on cleaning up existing GATT code. > > it is from scratch code and also possible throw away code. It does nothing useful so far. However one think became pretty clear, the current gattrib needs massive cleanups. Not just a little bit. Especially when it comes to where GATT server is located and where GATT client. Do you mean the location on bluez tree (i.e. server code in src/attrib-server.c vs. client code in attrib/*)? What do you think of moving the attribute server to src/shared/* as well (after a bit of refactoring to become more pluggable)? At least gatttool can reuse it, as so far it has no ability to handle GATT requests, and therefore is not usable when connecting to clients that issue GATT requests. > I want to be able to create unit tests that simulate PTS and also extra unit tests that test the raw ATT protocol and GATT procedures. That is the basic goal here. I agree that exercising the ATT protocol separately is a good idea. Specially corner cases on encoding/decoding. IMHO the PTS GATT tests are not exhaustive. We could add tests that imitate them, but they tend to exercise only well behaved PDUs. Except for standard ATT errors, error paths are poorly tested with PTS. But it is a start. We will flush our latest development on GATT (including unit tests) to the mailing list and later we (or someone else interested) can improve on top of it to add more tests. Best Regards, -- Anderson Lizardo Instituto Nokia de Tecnologia - INdT Manaus - Brazil -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html