diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2011-02-02 17:17:41 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2011-02-02 17:17:41 -0500 |
commit | 63f81d59f6e736c5fdd30d8297d64d1677987d3c (patch) | |
tree | d80700b160469147f5f6738347ee01e83599fa18 /indra | |
parent | f1262c83fc9be45c4b5cd1678c127b601634fb29 (diff) |
Add test to exercise map/array args mismatch validation.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llcommon/tests/lleventdispatcher_test.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/indra/llcommon/tests/lleventdispatcher_test.cpp b/indra/llcommon/tests/lleventdispatcher_test.cpp index 30878beae4..2f2188a121 100644 --- a/indra/llcommon/tests/lleventdispatcher_test.cpp +++ b/indra/llcommon/tests/lleventdispatcher_test.cpp @@ -1056,4 +1056,24 @@ namespace tut ensure_equals("matching mismatch", ti->llsd, matching); } } + + template<> template<> + void object::test<17>() + { + set_test_name("passing wrong args to (map | array)-style registrations"); + + // Pass scalar/map to array-style functions, scalar/array to map-style + // functions. As that validation happens well before we engage the + // argument magic, it seems pointless to repeat this with every + // variation: (free function | non-static method), (no | arbitrary) + // args. We should only need to engage it for one map-style + // registration and one array-style registration. + std::string array_exc("needs an args array"); + call_exc("free0_array", 17, array_exc); + call_exc("free0_array", LLSDMap("pi", 3.14), array_exc); + + std::string map_exc("needs a map"); + call_exc("free0_map", 17, map_exc); + call_exc("free0_map", LLSDArray("a")("b"), map_exc); + } } // namespace tut |