merge for VWR-22700 'As an engineer, I want to see unit test execution results in TeamCity build results, so that I have instant feedback into test results as builds are executed, and so that I can provide visibility into unit tests that I add to the code base.'
commit
749f8cd5d9
|
|
@ -172,4 +172,13 @@ oz_viewer-review2_coverity.build_CYGWIN_Debug = false
|
|||
oz_viewer-review2_coverity.build_CYGWIN_RelWithDebInfo = false
|
||||
oz_viewer-review2_coverity.build_CYGWIN_Release = false
|
||||
|
||||
# ========================================
|
||||
# enus
|
||||
# ========================================
|
||||
|
||||
viewer-tut-teamcity.email = enus@lindenlab.com
|
||||
viewer-tut-teamcity.build_server = false
|
||||
viewer-tut-teamcity.build_server_tests = false
|
||||
|
||||
|
||||
# eof
|
||||
|
|
|
|||
4
build.sh
4
build.sh
|
|
@ -222,7 +222,7 @@ do
|
|||
fi
|
||||
else
|
||||
begin_section "Build$variant"
|
||||
build "$variant" "$build_dir" >> "$build_log" 2>&1
|
||||
build "$variant" "$build_dir" 2>&1 | tee -a "$build_log" | grep --line-buffered "^##teamcity"
|
||||
if `cat "$build_dir/build_ok"`
|
||||
then
|
||||
echo so far so good.
|
||||
|
|
@ -251,7 +251,7 @@ then
|
|||
begin_section "Build$variant"
|
||||
build_dir=`build_dir_$arch $variant`
|
||||
build_dir_stubs="$build_dir/win_setup/$variant"
|
||||
cat "$build_dir/build.log" >> "$build_log"
|
||||
tee -a $build_log < "$build_dir/build.log" | grep --line-buffered "^##teamcity"
|
||||
if `cat "$build_dir/build_ok"`
|
||||
then
|
||||
echo so far so good.
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<lljoint_data> lljoint_test;
|
||||
typedef lljoint_test::object lljoint_object;
|
||||
tut::lljoint_test lljoint_testcase("lljoint");
|
||||
tut::lljoint_test lljoint_testcase("LLJoint");
|
||||
|
||||
template<> template<>
|
||||
void lljoint_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<bit_pack> bit_pack_t;
|
||||
typedef bit_pack_t::object bit_pack_object_t;
|
||||
tut::bit_pack_t tut_bit_pack("bitpack");
|
||||
tut::bit_pack_t tut_bit_pack("LLBitPack");
|
||||
|
||||
// pack -> unpack
|
||||
template<> template<>
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<sd_data> sd_test;
|
||||
typedef sd_test::object sd_object;
|
||||
tut::sd_test sd("llsd");
|
||||
tut::sd_test sd("LLSD");
|
||||
|
||||
template<> template<>
|
||||
void sd_object::test<1>()
|
||||
|
|
@ -450,7 +450,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<mem_data> mem_test;
|
||||
typedef mem_test::object mem_object;
|
||||
tut::mem_test mem_stream("memory_stream");
|
||||
tut::mem_test mem_stream("LLMemoryStream");
|
||||
|
||||
template<> template<>
|
||||
void mem_object::test<1>()
|
||||
|
|
@ -643,7 +643,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<hash_data> hash_test;
|
||||
typedef hash_test::object hash_object;
|
||||
tut::hash_test hash_tester("hash_test");
|
||||
tut::hash_test hash_tester("LLHash");
|
||||
|
||||
template<> template<>
|
||||
void hash_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<base64_data> base64_test;
|
||||
typedef base64_test::object base64_object;
|
||||
tut::base64_test base64("base64");
|
||||
tut::base64_test base64("LLBase64");
|
||||
|
||||
template<> template<>
|
||||
void base64_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<date_test> date_test_t;
|
||||
typedef date_test_t::object date_test_object_t;
|
||||
tut::date_test_t tut_date_test("date_test");
|
||||
tut::date_test_t tut_date_test("LLDate");
|
||||
|
||||
/* format validation */
|
||||
template<> template<>
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<deps_data> deps_group;
|
||||
typedef deps_group::object deps_object;
|
||||
tut::deps_group depsgr("lldependencies");
|
||||
tut::deps_group depsgr("LLDependencies");
|
||||
|
||||
template<> template<>
|
||||
void deps_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<frametimer_test> frametimer_group_t;
|
||||
typedef frametimer_group_t::object frametimer_object_t;
|
||||
tut::frametimer_group_t frametimer_instance("frametimer");
|
||||
tut::frametimer_group_t frametimer_instance("LLFrameTimer");
|
||||
|
||||
template<> template<>
|
||||
void frametimer_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace tut
|
|||
|
||||
typedef test_group<processor> processor_t;
|
||||
typedef processor_t::object processor_object_t;
|
||||
tut::processor_t tut_processor("processor");
|
||||
tut::processor_t tut_processor("LLProcessor");
|
||||
|
||||
template<> template<>
|
||||
void processor_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace tut
|
|||
|
||||
typedef test_group<random> random_t;
|
||||
typedef random_t::object random_object_t;
|
||||
tut::random_t tut_random("random");
|
||||
tut::random_t tut_random("LLSeedRand");
|
||||
|
||||
template<> template<>
|
||||
void random_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ namespace tut
|
|||
|
||||
typedef test_group<sd_xml_data> sd_xml_test;
|
||||
typedef sd_xml_test::object sd_xml_object;
|
||||
tut::sd_xml_test sd_xml_stream("sd_xml_serialization");
|
||||
tut::sd_xml_test sd_xml_stream("LLSDXMLFormatter");
|
||||
|
||||
template<> template<>
|
||||
void sd_xml_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<string_index> string_index_t;
|
||||
typedef string_index_t::object string_index_object_t;
|
||||
tut::string_index_t tut_string_index("string_test");
|
||||
tut::string_index_t tut_string_index("LLString");
|
||||
|
||||
template<> template<>
|
||||
void string_index_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<iter_data> iter_group;
|
||||
typedef iter_group::object iter_object;
|
||||
tut::iter_group ig("lltreeiterators");
|
||||
tut::iter_group ig("LLTreeIterators");
|
||||
} // namespace tut
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<stringize_data> stringize_group;
|
||||
typedef stringize_group::object stringize_object;
|
||||
tut::stringize_group strzgrp("stringize");
|
||||
tut::stringize_group strzgrp("stringize_h");
|
||||
|
||||
template<> template<>
|
||||
void stringize_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -144,11 +144,11 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<imagedecodethread_test> imagedecodethread_t;
|
||||
typedef imagedecodethread_t::object imagedecodethread_object_t;
|
||||
tut::imagedecodethread_t tut_imagedecodethread("imagedecodethread");
|
||||
tut::imagedecodethread_t tut_imagedecodethread("LLImageDecodeThread");
|
||||
|
||||
typedef test_group<imagerequest_test> imagerequest_t;
|
||||
typedef imagerequest_t::object imagerequest_object_t;
|
||||
tut::imagerequest_t tut_imagerequest("imagerequest");
|
||||
tut::imagerequest_t tut_imagerequest("LLImageRequest");
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
// Test functions
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<inventory_data> inventory_test;
|
||||
typedef inventory_test::object inventory_object;
|
||||
tut::inventory_test inv("llinventory");
|
||||
tut::inventory_test inv("LLInventory");
|
||||
|
||||
//***class LLInventoryType***//
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<llinventoryparcel_data> llinventoryparcel_test;
|
||||
typedef llinventoryparcel_test::object llinventoryparcel_object;
|
||||
tut::llinventoryparcel_test llinventoryparcel("llinventoryparcel");
|
||||
tut::llinventoryparcel_test llinventoryparcel("LLInventoryParcel");
|
||||
|
||||
template<> template<>
|
||||
void llinventoryparcel_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<modularmath_data> modularmath_test;
|
||||
typedef modularmath_test::object modularmath_object;
|
||||
tut::modularmath_test modularmath_testcase("modularmath");
|
||||
tut::modularmath_test modularmath_testcase("LLModularMath");
|
||||
|
||||
template<> template<>
|
||||
void modularmath_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<llquat_test> llquat_test_t;
|
||||
typedef llquat_test_t::object llquat_test_object_t;
|
||||
tut::llquat_test_t tut_llquat_test("llquat");
|
||||
tut::llquat_test_t tut_llquat_test("LLQuaternion");
|
||||
|
||||
//test case for LLQuaternion::LLQuaternion(void) fn.
|
||||
template<> template<>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<m3math_test> m3math_test_t;
|
||||
typedef m3math_test_t::object m3math_test_object_t;
|
||||
tut::m3math_test_t tut_m3math_test("m3math_test");
|
||||
tut::m3math_test_t tut_m3math_test("m3math_h");
|
||||
|
||||
//test case for setIdentity() fn.
|
||||
template<> template<>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<math_data> math_test;
|
||||
typedef math_test::object math_object;
|
||||
tut::math_test tm("basic_linden_math");
|
||||
tut::math_test tm("BasicLindenMath");
|
||||
|
||||
template<> template<>
|
||||
void math_object::test<1>()
|
||||
|
|
@ -178,7 +178,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<uuid_data> uuid_test;
|
||||
typedef uuid_test::object uuid_object;
|
||||
tut::uuid_test tu("uuid");
|
||||
tut::uuid_test tu("LLUUID");
|
||||
|
||||
template<> template<>
|
||||
void uuid_object::test<1>()
|
||||
|
|
@ -233,7 +233,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<crc_data> crc_test;
|
||||
typedef crc_test::object crc_object;
|
||||
tut::crc_test tc("crc");
|
||||
tut::crc_test tc("LLCrc");
|
||||
|
||||
template<> template<>
|
||||
void crc_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<v2math_data> v2math_test;
|
||||
typedef v2math_test::object v2math_object;
|
||||
tut::v2math_test v2math_testcase("v2math");
|
||||
tut::v2math_test v2math_testcase("v2math_h");
|
||||
|
||||
template<> template<>
|
||||
void v2math_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<v3color_data> v3color_test;
|
||||
typedef v3color_test::object v3color_object;
|
||||
tut::v3color_test v3color_testcase("v3color");
|
||||
tut::v3color_test v3color_testcase("v3color_h");
|
||||
|
||||
template<> template<>
|
||||
void v3color_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<v3dmath_data> v3dmath_test;
|
||||
typedef v3dmath_test::object v3dmath_object;
|
||||
tut::v3dmath_test v3dmath_testcase("v3dmath");
|
||||
tut::v3dmath_test v3dmath_testcase("v3dmath_h");
|
||||
|
||||
template<> template<>
|
||||
void v3dmath_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<v3math_data> v3math_test;
|
||||
typedef v3math_test::object v3math_object;
|
||||
tut::v3math_test v3math_testcase("v3math");
|
||||
tut::v3math_test v3math_testcase("v3math_h");
|
||||
|
||||
template<> template<>
|
||||
void v3math_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<v4color_data> v4color_test;
|
||||
typedef v4color_test::object v4color_object;
|
||||
tut::v4color_test v4color_testcase("v4color");
|
||||
tut::v4color_test v4color_testcase("v4color_h");
|
||||
|
||||
template<> template<>
|
||||
void v4color_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<v4coloru_data> v4coloru_test;
|
||||
typedef v4coloru_test::object v4coloru_object;
|
||||
tut::v4coloru_test v4coloru_testcase("v4coloru");
|
||||
tut::v4coloru_test v4coloru_testcase("v4coloru_h");
|
||||
|
||||
template<> template<>
|
||||
void v4coloru_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<v4math_data> v4math_test;
|
||||
typedef v4math_test::object v4math_object;
|
||||
tut::v4math_test v4math_testcase("v4math");
|
||||
tut::v4math_test v4math_testcase("v4math_h");
|
||||
|
||||
template<> template<>
|
||||
void v4math_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<xform_test> xform_test_t;
|
||||
typedef xform_test_t::object xform_test_object_t;
|
||||
tut::xform_test_t tut_xform_test("xform_test");
|
||||
tut::xform_test_t tut_xform_test("LLXForm");
|
||||
|
||||
//test case for init(), getParent(), getRotation(), getPositionW(), getWorldRotation() fns.
|
||||
template<> template<>
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<host_data> host_test;
|
||||
typedef host_test::object host_object;
|
||||
tut::host_test host_testcase("llhost");
|
||||
tut::host_test host_testcase("LLHost");
|
||||
|
||||
|
||||
template<> template<>
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<mime_index> mime_index_t;
|
||||
typedef mime_index_t::object mime_index_object_t;
|
||||
tut::mime_index_t tut_mime_index("mime_index");
|
||||
tut::mime_index_t tut_mime_index("LLMime");
|
||||
|
||||
template<> template<>
|
||||
void mime_index_object_t::test<1>()
|
||||
|
|
@ -228,7 +228,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<mime_parse> mime_parse_t;
|
||||
typedef mime_parse_t::object mime_parse_object_t;
|
||||
tut::mime_parse_t tut_mime_parse("mime_parse");
|
||||
tut::mime_parse_t tut_mime_parse("LLMimeParse");
|
||||
|
||||
template<> template<>
|
||||
void mime_parse_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<namevalue_test> namevalue_t;
|
||||
typedef namevalue_t::object namevalue_object_t;
|
||||
tut::namevalue_t tut_namevalue("namevalue_test");
|
||||
tut::namevalue_t tut_namevalue("LLNameValue");
|
||||
|
||||
|
||||
template<> template<>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<partdata_test> partdata_test_t;
|
||||
typedef partdata_test_t::object partdata_test_object_t;
|
||||
tut::partdata_test_t tut_partdata_test("partdata_test");
|
||||
tut::partdata_test_t tut_partdata_test("LLPartData");
|
||||
|
||||
template<> template<>
|
||||
void partdata_test_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ namespace tut
|
|||
|
||||
namespace
|
||||
{
|
||||
tut::factory tf("LLRegionPresenceVerifier test");
|
||||
tut::factory tf("LLRegionPresenceVerifier");
|
||||
}
|
||||
|
||||
namespace tut
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ namespace tut
|
|||
|
||||
namespace
|
||||
{
|
||||
tut::factory tf("LLTemplateMessageDispatcher test");
|
||||
tut::factory tf("LLTemplateMessageDispatcher");
|
||||
}
|
||||
|
||||
namespace tut
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ namespace tut
|
|||
|
||||
namespace
|
||||
{
|
||||
tut::factory tf("LLTrustedMessageServiceData test");
|
||||
tut::factory tf("LLTrustedMessageServiceData");
|
||||
}
|
||||
|
||||
namespace tut
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace tut
|
|||
};
|
||||
typedef test_group<llxfer_data> llxfer_test;
|
||||
typedef llxfer_test::object llxfer_object;
|
||||
tut::llxfer_test llxfer("llxfer");
|
||||
tut::llxfer_test llxfer("LLXferFile");
|
||||
|
||||
template<> template<>
|
||||
void llxfer_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ namespace tut
|
|||
|
||||
typedef test_group<LLPluginCookieStoreFixture> factory;
|
||||
typedef factory::object object;
|
||||
factory tf("LLPluginCookieStore test");
|
||||
factory tf("LLPluginCookieStore");
|
||||
|
||||
// Tests
|
||||
template<> template<>
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ namespace tut
|
|||
namespace
|
||||
{
|
||||
// this is for naming our tests to make pretty output
|
||||
tut::factory tf("MediaEntry Test");
|
||||
tut::factory tf("LLMediaEntry");
|
||||
}
|
||||
|
||||
namespace tut
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ namespace tut
|
|||
|
||||
typedef test_group<llprimitive> llprimitive_t;
|
||||
typedef llprimitive_t::object llprimitive_object_t;
|
||||
tut::llprimitive_t tut_llprimitive("llprimitive");
|
||||
tut::llprimitive_t tut_llprimitive("LLPrimitive");
|
||||
|
||||
template<> template<>
|
||||
void llprimitive_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ namespace tut
|
|||
|
||||
typedef test_group<agentaccess> agentaccess_t;
|
||||
typedef agentaccess_t::object agentaccess_object_t;
|
||||
tut::agentaccess_t tut_agentaccess("agentaccess");
|
||||
tut::agentaccess_t tut_agentaccess("LLAgentAccess");
|
||||
|
||||
template<> template<>
|
||||
void agentaccess_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ namespace tut
|
|||
|
||||
typedef test_group<dateutil> dateutil_t;
|
||||
typedef dateutil_t::object dateutil_object_t;
|
||||
tut::dateutil_t tut_dateutil("dateutil");
|
||||
tut::dateutil_t tut_dateutil("LLDateUtil");
|
||||
|
||||
template<> template<>
|
||||
void dateutil_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@ namespace tut
|
|||
|
||||
typedef test_group<lllogininstance_data> lllogininstance_group;
|
||||
typedef lllogininstance_group::object lllogininstance_object;
|
||||
lllogininstance_group llsdmgr("lllogininstance");
|
||||
lllogininstance_group llsdmgr("LLLoginInstance");
|
||||
|
||||
template<> template<>
|
||||
void lllogininstance_object::test<1>()
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ namespace tut
|
|||
|
||||
typedef test_group<mediadataclient> mediadataclient_t;
|
||||
typedef mediadataclient_t::object mediadataclient_object_t;
|
||||
tut::mediadataclient_t tut_mediadataclient("mediadataclient");
|
||||
tut::mediadataclient_t tut_mediadataclient("LLMediaDataClient");
|
||||
|
||||
void ensure(const std::string &msg, int value, int expected)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<secapiTest> secapiTestFactory;
|
||||
typedef secapiTestFactory::object secapiTestObject;
|
||||
tut::secapiTestFactory tut_test("llsecapi");
|
||||
tut::secapiTestFactory tut_test("LLSecAPI");
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
// Test functions
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<sechandler_basic_test> sechandler_basic_test_factory;
|
||||
typedef sechandler_basic_test_factory::object sechandler_basic_test_object;
|
||||
tut::sechandler_basic_test_factory tut_test("llsechandler_basic");
|
||||
tut::sechandler_basic_test_factory tut_test("LLSecHandler");
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
// Test functions
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<slurlTest> slurlTestFactory;
|
||||
typedef slurlTestFactory::object slurlTestObject;
|
||||
tut::slurlTestFactory tut_test("llslurl");
|
||||
tut::slurlTestFactory tut_test("LLSlurl");
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
// Test functions
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<textureinfo_test> textureinfo_t;
|
||||
typedef textureinfo_t::object textureinfo_object_t;
|
||||
tut::textureinfo_t tut_textureinfo("textureinfo");
|
||||
tut::textureinfo_t tut_textureinfo("LLTectureInfo");
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<textureinfodetails_test> textureinfodetails_t;
|
||||
typedef textureinfodetails_t::object textureinfodetails_object_t;
|
||||
tut::textureinfodetails_t tut_textureinfodetails("textureinfodetails");
|
||||
tut::textureinfodetails_t tut_textureinfodetails("LLTextureInfoDetails");
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<texturestatsuploader_test> texturestatsuploader_t;
|
||||
typedef texturestatsuploader_t::object texturestatsuploader_object_t;
|
||||
tut::texturestatsuploader_t tut_texturestatsuploader("texturestatsuploader");
|
||||
tut::texturestatsuploader_t tut_texturestatsuploader("LLTextureStatsUploader");
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ namespace tut
|
|||
|
||||
typedef test_group<viewerhelputil> viewerhelputil_t;
|
||||
typedef viewerhelputil_t::object viewerhelputil_object_t;
|
||||
tut::viewerhelputil_t tut_viewerhelputil("viewerhelputil");
|
||||
tut::viewerhelputil_t tut_viewerhelputil("LLViewerHelpUtil");
|
||||
|
||||
template<> template<>
|
||||
void viewerhelputil_object_t::test<1>()
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<viewerNetworkTest> viewerNetworkTestFactory;
|
||||
typedef viewerNetworkTestFactory::object viewerNetworkTestObject;
|
||||
tut::viewerNetworkTestFactory tut_test("llviewernetwork");
|
||||
tut::viewerNetworkTestFactory tut_test("LLViewerNetwork");
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
// Test functions
|
||||
|
|
|
|||
|
|
@ -144,15 +144,15 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<iteminfo_test> iteminfo_t;
|
||||
typedef iteminfo_t::object iteminfo_object_t;
|
||||
tut::iteminfo_t tut_iteminfo("iteminfo");
|
||||
tut::iteminfo_t tut_iteminfo("LLItemInfo");
|
||||
|
||||
typedef test_group<siminfo_test> siminfo_t;
|
||||
typedef siminfo_t::object siminfo_object_t;
|
||||
tut::siminfo_t tut_siminfo("siminfo");
|
||||
tut::siminfo_t tut_siminfo("LLSimInfo");
|
||||
|
||||
typedef test_group<worldmap_test> worldmap_t;
|
||||
typedef worldmap_t::object worldmap_object_t;
|
||||
tut::worldmap_t tut_worldmap("worldmap");
|
||||
tut::worldmap_t tut_worldmap("LLWorldMap");
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
// Test functions
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ namespace tut
|
|||
// Tut templating thingamagic: test group, object and test instance
|
||||
typedef test_group<worldmipmap_test> worldmipmap_t;
|
||||
typedef worldmipmap_t::object worldmipmap_object_t;
|
||||
tut::worldmipmap_t tut_worldmipmap("worldmipmap");
|
||||
tut::worldmipmap_t tut_worldmipmap("LLWorldMipmap");
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
// Test functions
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
namespace tut
|
||||
{
|
||||
std::string sSourceDir;
|
||||
|
||||
|
||||
test_runner_singleton runner;
|
||||
}
|
||||
|
||||
|
|
@ -64,54 +64,66 @@ class LLTestCallback : public tut::callback
|
|||
{
|
||||
public:
|
||||
LLTestCallback(bool verbose_mode, std::ostream *stream) :
|
||||
mVerboseMode(verbose_mode),
|
||||
mTotalTests(0),
|
||||
mPassedTests(0),
|
||||
mFailedTests(0),
|
||||
mSkippedTests(0),
|
||||
mStream(stream)
|
||||
mVerboseMode(verbose_mode),
|
||||
mTotalTests(0),
|
||||
mPassedTests(0),
|
||||
mFailedTests(0),
|
||||
mSkippedTests(0),
|
||||
mStream(stream)
|
||||
{
|
||||
}
|
||||
|
||||
void run_started()
|
||||
~LLTestCallback()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void run_started()
|
||||
{
|
||||
//std::cout << "run_started" << std::endl;
|
||||
}
|
||||
|
||||
void test_completed(const tut::test_result& tr)
|
||||
virtual void group_started(const std::string& name) {
|
||||
std::cout << "Unit test group_started name=" << name << std::endl;
|
||||
}
|
||||
|
||||
virtual void group_completed(const std::string& name) {
|
||||
std::cout << "Unit test group_completed name=" << name << std::endl;
|
||||
}
|
||||
|
||||
virtual void test_completed(const tut::test_result& tr)
|
||||
{
|
||||
++mTotalTests;
|
||||
std::ostringstream out;
|
||||
out << "[" << tr.group << ", " << tr.test << "] ";
|
||||
switch(tr.result)
|
||||
{
|
||||
case tut::test_result::ok:
|
||||
++mPassedTests;
|
||||
out << "ok";
|
||||
break;
|
||||
case tut::test_result::fail:
|
||||
++mFailedTests;
|
||||
out << "fail";
|
||||
break;
|
||||
case tut::test_result::ex:
|
||||
++mFailedTests;
|
||||
out << "exception";
|
||||
break;
|
||||
case tut::test_result::warn:
|
||||
++mFailedTests;
|
||||
out << "test destructor throw";
|
||||
break;
|
||||
case tut::test_result::term:
|
||||
++mFailedTests;
|
||||
out << "abnormal termination";
|
||||
break;
|
||||
case tut::test_result::skip:
|
||||
++mSkippedTests;
|
||||
out << "skipped known failure";
|
||||
break;
|
||||
default:
|
||||
++mFailedTests;
|
||||
out << "unknown";
|
||||
case tut::test_result::ok:
|
||||
++mPassedTests;
|
||||
out << "ok";
|
||||
break;
|
||||
case tut::test_result::fail:
|
||||
++mFailedTests;
|
||||
out << "fail";
|
||||
break;
|
||||
case tut::test_result::ex:
|
||||
++mFailedTests;
|
||||
out << "exception";
|
||||
break;
|
||||
case tut::test_result::warn:
|
||||
++mFailedTests;
|
||||
out << "test destructor throw";
|
||||
break;
|
||||
case tut::test_result::term:
|
||||
++mFailedTests;
|
||||
out << "abnormal termination";
|
||||
break;
|
||||
case tut::test_result::skip:
|
||||
++mSkippedTests;
|
||||
out << "skipped known failure";
|
||||
break;
|
||||
default:
|
||||
++mFailedTests;
|
||||
out << "unknown";
|
||||
}
|
||||
if(mVerboseMode || (tr.result != tut::test_result::ok))
|
||||
{
|
||||
|
|
@ -128,7 +140,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void run_completed()
|
||||
virtual void run_completed()
|
||||
{
|
||||
if (mStream)
|
||||
{
|
||||
|
|
@ -137,10 +149,9 @@ public:
|
|||
run_completed_(std::cout);
|
||||
}
|
||||
|
||||
int getFailedTests() const { return mFailedTests; }
|
||||
|
||||
private:
|
||||
void run_completed_(std::ostream &stream)
|
||||
virtual int getFailedTests() const { return mFailedTests; }
|
||||
|
||||
virtual void run_completed_(std::ostream &stream)
|
||||
{
|
||||
stream << "\tTotal Tests:\t" << mTotalTests << std::endl;
|
||||
stream << "\tPassed Tests:\t" << mPassedTests;
|
||||
|
|
@ -153,7 +164,7 @@ private:
|
|||
if (mSkippedTests > 0)
|
||||
{
|
||||
stream << "\tSkipped known failures:\t" << mSkippedTests
|
||||
<< std::endl;
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
if(mFailedTests > 0)
|
||||
|
|
@ -174,6 +185,94 @@ protected:
|
|||
std::ostream *mStream;
|
||||
};
|
||||
|
||||
// TeamCity specific class which emits service messages
|
||||
// http://confluence.jetbrains.net/display/TCD3/Build+Script+Interaction+with+TeamCity;#BuildScriptInteractionwithTeamCity-testReporting
|
||||
|
||||
class LLTCTestCallback : public LLTestCallback
|
||||
{
|
||||
public:
|
||||
LLTCTestCallback(bool verbose_mode, std::ostream *stream) :
|
||||
LLTestCallback(verbose_mode, stream),
|
||||
mTCStream()
|
||||
{
|
||||
}
|
||||
|
||||
~LLTCTestCallback()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void group_started(const std::string& name) {
|
||||
LLTestCallback::group_started(name);
|
||||
mTCStream << "\n##teamcity[testSuiteStarted name='" << name << "']" << std::endl;
|
||||
}
|
||||
|
||||
virtual void group_completed(const std::string& name) {
|
||||
LLTestCallback::group_completed(name);
|
||||
mTCStream << "##teamcity[testSuiteFinished name='" << name << "']" << std::endl;
|
||||
}
|
||||
|
||||
virtual void test_completed(const tut::test_result& tr)
|
||||
{
|
||||
LLTestCallback::test_completed(tr);
|
||||
|
||||
switch(tr.result)
|
||||
{
|
||||
case tut::test_result::ok:
|
||||
mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
break;
|
||||
case tut::test_result::fail:
|
||||
mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
break;
|
||||
case tut::test_result::ex:
|
||||
mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
break;
|
||||
case tut::test_result::warn:
|
||||
mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
break;
|
||||
case tut::test_result::term:
|
||||
mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
break;
|
||||
case tut::test_result::skip:
|
||||
mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testIgnored name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
virtual void run_completed()
|
||||
{
|
||||
LLTestCallback::run_completed();
|
||||
|
||||
// dump the TC reporting results to cout
|
||||
tc_run_completed_(std::cout);
|
||||
}
|
||||
|
||||
virtual void tc_run_completed_(std::ostream &stream)
|
||||
{
|
||||
|
||||
// dump the TC reporting results to cout
|
||||
stream << mTCStream.str() << std::endl;
|
||||
}
|
||||
|
||||
protected:
|
||||
std::ostringstream mTCStream;
|
||||
|
||||
};
|
||||
|
||||
|
||||
static const apr_getopt_option_t TEST_CL_OPTIONS[] =
|
||||
{
|
||||
{"help", 'h', 0, "Print the help message."},
|
||||
|
|
@ -185,13 +284,14 @@ static const apr_getopt_option_t TEST_CL_OPTIONS[] =
|
|||
{"touch", 't', 1, "Touch the given file if all tests succeed"},
|
||||
{"wait", 'w', 0, "Wait for input before exit."},
|
||||
{"debug", 'd', 0, "Emit full debug logs."},
|
||||
{"suitename", 'x', 1, "Run tests using this suitename"},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
void stream_usage(std::ostream& s, const char* app)
|
||||
{
|
||||
s << "Usage: " << app << " [OPTIONS]" << std::endl
|
||||
<< std::endl;
|
||||
<< std::endl;
|
||||
|
||||
s << "This application runs the unit tests." << std::endl << std::endl;
|
||||
|
||||
|
|
@ -201,7 +301,7 @@ void stream_usage(std::ostream& s, const char* app)
|
|||
{
|
||||
s << " ";
|
||||
s << " -" << (char)option->optch << ", --" << option->name
|
||||
<< std::endl;
|
||||
<< std::endl;
|
||||
s << "\t" << option->description << std::endl << std::endl;
|
||||
++option;
|
||||
}
|
||||
|
|
@ -242,9 +342,9 @@ int main(int argc, char **argv)
|
|||
LLError::initForApplication(".");
|
||||
LLError::setFatalFunction(wouldHaveCrashed);
|
||||
LLError::setDefaultLevel(LLError::LEVEL_ERROR);
|
||||
//< *TODO: should come from error config file. Note that we
|
||||
// have a command line option that sets this to debug.
|
||||
|
||||
//< *TODO: should come from error config file. Note that we
|
||||
// have a command line option that sets this to debug.
|
||||
|
||||
#ifdef CTYPE_WORKAROUND
|
||||
ctype_workaround();
|
||||
#endif
|
||||
|
|
@ -267,6 +367,7 @@ int main(int argc, char **argv)
|
|||
bool verbose_mode = false;
|
||||
bool wait_at_exit = false;
|
||||
std::string test_group;
|
||||
std::string suite_name;
|
||||
|
||||
// values use for options parsing
|
||||
apr_status_t apr_err;
|
||||
|
|
@ -274,7 +375,7 @@ int main(int argc, char **argv)
|
|||
int opt_id = 0;
|
||||
std::ofstream *output = NULL;
|
||||
const char *touch = NULL;
|
||||
|
||||
|
||||
while(true)
|
||||
{
|
||||
apr_err = apr_getopt_long(os, TEST_CL_OPTIONS, &opt_id, &opt_arg);
|
||||
|
|
@ -283,55 +384,68 @@ int main(int argc, char **argv)
|
|||
{
|
||||
char buf[255]; /* Flawfinder: ignore */
|
||||
std::cerr << "Error parsing options: "
|
||||
<< apr_strerror(apr_err, buf, 255) << std::endl;
|
||||
<< apr_strerror(apr_err, buf, 255) << std::endl;
|
||||
return 1;
|
||||
}
|
||||
switch (opt_id)
|
||||
{
|
||||
case 'g':
|
||||
test_group.assign(opt_arg);
|
||||
break;
|
||||
case 'h':
|
||||
stream_usage(std::cout, argv[0]);
|
||||
return 0;
|
||||
break;
|
||||
case 'l':
|
||||
stream_groups(std::cout, argv[0]);
|
||||
return 0;
|
||||
case 'v':
|
||||
verbose_mode = true;
|
||||
break;
|
||||
case 'o':
|
||||
output = new std::ofstream;
|
||||
output->open(opt_arg);
|
||||
break;
|
||||
case 's': // --sourcedir
|
||||
tut::sSourceDir = opt_arg;
|
||||
// For convenience, so you can use tut::sSourceDir + "myfile"
|
||||
tut::sSourceDir += '/';
|
||||
break;
|
||||
case 't':
|
||||
touch = opt_arg;
|
||||
break;
|
||||
case 'w':
|
||||
wait_at_exit = true;
|
||||
break;
|
||||
case 'd':
|
||||
// *TODO: should come from error config file. We set it to
|
||||
// ERROR by default, so this allows full debug levels.
|
||||
LLError::setDefaultLevel(LLError::LEVEL_DEBUG);
|
||||
break;
|
||||
default:
|
||||
stream_usage(std::cerr, argv[0]);
|
||||
return 1;
|
||||
break;
|
||||
case 'g':
|
||||
test_group.assign(opt_arg);
|
||||
break;
|
||||
case 'h':
|
||||
stream_usage(std::cout, argv[0]);
|
||||
return 0;
|
||||
break;
|
||||
case 'l':
|
||||
stream_groups(std::cout, argv[0]);
|
||||
return 0;
|
||||
case 'v':
|
||||
verbose_mode = true;
|
||||
break;
|
||||
case 'o':
|
||||
output = new std::ofstream;
|
||||
output->open(opt_arg);
|
||||
break;
|
||||
case 's': // --sourcedir
|
||||
tut::sSourceDir = opt_arg;
|
||||
// For convenience, so you can use tut::sSourceDir + "myfile"
|
||||
tut::sSourceDir += '/';
|
||||
break;
|
||||
case 't':
|
||||
touch = opt_arg;
|
||||
break;
|
||||
case 'w':
|
||||
wait_at_exit = true;
|
||||
break;
|
||||
case 'd':
|
||||
// *TODO: should come from error config file. We set it to
|
||||
// ERROR by default, so this allows full debug levels.
|
||||
LLError::setDefaultLevel(LLError::LEVEL_DEBUG);
|
||||
break;
|
||||
case 'x':
|
||||
suite_name.assign(opt_arg);
|
||||
break;
|
||||
default:
|
||||
stream_usage(std::cerr, argv[0]);
|
||||
return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// run the tests
|
||||
LLTestCallback callback(verbose_mode, output);
|
||||
tut::runner.get().set_callback(&callback);
|
||||
|
||||
|
||||
LLTestCallback* mycallback;
|
||||
if (getenv("TEAMCITY_PROJECT_NAME"))
|
||||
{
|
||||
mycallback = new LLTCTestCallback(verbose_mode, output);
|
||||
}
|
||||
else
|
||||
{
|
||||
mycallback = new LLTestCallback(verbose_mode, output);
|
||||
}
|
||||
|
||||
tut::runner.get().set_callback(mycallback);
|
||||
|
||||
if(test_group.empty())
|
||||
{
|
||||
tut::runner.get().run_tests();
|
||||
|
|
@ -341,14 +455,14 @@ int main(int argc, char **argv)
|
|||
tut::runner.get().run_tests(test_group);
|
||||
}
|
||||
|
||||
bool success = (callback.getFailedTests() == 0);
|
||||
bool success = (mycallback->getFailedTests() == 0);
|
||||
|
||||
if (wait_at_exit)
|
||||
{
|
||||
std::cerr << "Press return to exit..." << std::endl;
|
||||
std::cin.get();
|
||||
}
|
||||
|
||||
|
||||
if (output)
|
||||
{
|
||||
output->close();
|
||||
|
|
@ -362,9 +476,11 @@ int main(int argc, char **argv)
|
|||
s << "ok" << std::endl;
|
||||
s.close();
|
||||
}
|
||||
|
||||
|
||||
apr_terminate();
|
||||
|
||||
|
||||
int retval = (success ? 0 : 1);
|
||||
return retval;
|
||||
|
||||
//delete mycallback;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ namespace tut
|
|||
|
||||
typedef test_group<llviewerlogin_data> llviewerlogin_group;
|
||||
typedef llviewerlogin_group::object llviewerlogin_object;
|
||||
llviewerlogin_group llviewerlogingrp("llviewerlogin");
|
||||
llviewerlogin_group llviewerlogingrp("LLViewerLogin");
|
||||
|
||||
template<> template<>
|
||||
void llviewerlogin_object::test<1>()
|
||||
|
|
|
|||
Loading…
Reference in New Issue