diff --git a/include/utils/SkRTConf.h b/include/utils/SkRTConf.h index 4ba607011d..dc95cdbadb 100644 --- a/include/utils/SkRTConf.h +++ b/include/utils/SkRTConf.h @@ -84,21 +84,20 @@ public: template void set(const char *confname, T value, bool warnIfNotFound = true); -#ifdef SK_SUPPORT_UNITTEST - static void UnitTest(); -#endif + private: template friend class SkRTConf; void registerConf(SkRTConfBase *conf); + template bool parse(const char *name, T* value); SkTDArray fConfigFileKeys, fConfigFileValues; typedef SkTDict< SkTDArray * > ConfMap; ConfMap fConfs; -#ifdef SK_SUPPORT_UNITTEST - SkRTConfRegistry(bool); -#endif + + template + friend bool test_rt_conf_parse(SkRTConfRegistry*, const char* name, T* value); }; // our singleton registry diff --git a/src/utils/SkRTConf.cpp b/src/utils/SkRTConf.cpp index bb6cb23cb9..8ca9981094 100644 --- a/src/utils/SkRTConf.cpp +++ b/src/utils/SkRTConf.cpp @@ -321,30 +321,3 @@ SkRTConfRegistry &skRTConfRegistry() { static SkRTConfRegistry r; return r; } - - -#ifdef SK_SUPPORT_UNITTEST - -#ifdef SK_BUILD_FOR_WIN32 -static void sk_setenv(const char* key, const char* value) { - _putenv_s(key, value); -} -#else -static void sk_setenv(const char* key, const char* value) { - setenv(key, value, 1); -} -#endif - -void SkRTConfRegistry::UnitTest() { - SkRTConfRegistry registryWithoutContents(true); - - sk_setenv("skia_nonexistent_item", "132"); - int result = 0; - registryWithoutContents.parse("nonexistent.item", &result); - SkASSERT(result == 132); -} - -SkRTConfRegistry::SkRTConfRegistry(bool) - : fConfs(100) { -} -#endif diff --git a/tests/RTConfRegistryTest.cpp b/tests/RTConfRegistryTest.cpp index f42281fa22..59fb3e9142 100644 --- a/tests/RTConfRegistryTest.cpp +++ b/tests/RTConfRegistryTest.cpp @@ -8,8 +8,25 @@ #include "SkRTConf.h" #include "Test.h" -DEF_TEST(SkRTConfRegistry, reporter) { -#ifdef SK_SUPPORT_UNITTEST - SkRTConfRegistry::UnitTest(); +// Friended proxy for SkRTConfRegistry::parse() +template +bool test_rt_conf_parse(SkRTConfRegistry* reg, const char* key, T* value) { + return reg->parse(key, value); +} + +static void portable_setenv(const char* key, const char* value) { +#ifdef SK_BUILD_FOR_WIN32 + _putenv_s(key, value); +#else + setenv(key, value, 1); #endif } + +DEF_TEST(SkRTConfRegistry, reporter) { + SkRTConfRegistry reg; + + portable_setenv("skia_nonexistent_item", "132"); + int result = 0; + test_rt_conf_parse(®, "nonexistent.item", &result); + REPORTER_ASSERT(reporter, result == 132); +}