On Dec 31, 2013, at 2:44 PM, Alan D. Cabrera <l...@toolazydogs.com> wrote:

> 
> On Dec 31, 2013, at 1:53 PM, James Peach <jpe...@apache.org> wrote:
> 
>> On Dec 31, 2013, at 8:44 AM, Alan D. Cabrera <l...@toolazydogs.com> wrote:
>> 
>>> I'm looking for an example of an ATS plugin that has extensive unit tests.
>> 
>> There are none.
>> 
>>> I'm having problems linking my Boost unit tests against the plugin library 
>>> for obvious reasons, it's a module not a shared library.
>>> 
>>> I tried setting up an internal static library that the tests would link 
>>> against but can't seem to get the object files directly included into the 
>>> ATS plugin.
>> 
>> There's no reason, in principle, that this would not work. For many plugins 
>> it would be reasonable to separate core functions from the Traffic Server 
>> bindings, and use a TDD approach for developing the core.
> 
> Yes, but Autotools is getting in the way.  I can't seem to get those core 
> functions, which are in the static library that's shared by the plugin and 
> tests, into the ATS plugin module.  This is the Autotools "example" that I'm 
> looking for.

You should be able to build the core as an autotools convenience library, then 
link that into the test harness and the plugin.

> The dearth of specific replies tells me that everyone likely does integration 
> testing only.  That, or everyone is getting ready for the new year's eve 
> festivities.  ;)
> 
>> For the remainder of the tests, I'd recommend an integration testing 
>> approach. There is a very simple integration test harness in the ci/tsqa 
>> directory on master. You can use that to set up an independent ATS 
>> installation and drive integration tests through it.
> 
> I'll take a look at that.
> 
>> Finally, the core has the concept of "action tags", which are useful for 
>> testing, but not exposed through the API. Action tags would let you test 
>> corner cases, by setting tags to force particular APIs to fail, for example.
> 
> Interesting.  Where can I see examples of this form of testing?

It's not really used in testing right now, but that's an obvious application. 
If you search for "is_action_tag_set()" in the source, you can see a number of 
examples.

J


Reply via email to