diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/test/llmessageconfig_tut.cpp | 205 |
1 files changed, 88 insertions, 117 deletions
diff --git a/linden/indra/test/llmessageconfig_tut.cpp b/linden/indra/test/llmessageconfig_tut.cpp index 1d11cbf..cc2a0a2 100644 --- a/linden/indra/test/llmessageconfig_tut.cpp +++ b/linden/indra/test/llmessageconfig_tut.cpp | |||
@@ -32,41 +32,46 @@ | |||
32 | #include "llmessageconfig.h" | 32 | #include "llmessageconfig.h" |
33 | #include "llsdserialize.h" | 33 | #include "llsdserialize.h" |
34 | #include "llfile.h" | 34 | #include "llfile.h" |
35 | #include "lldir.h" | ||
35 | #include "lltimer.h" | 36 | #include "lltimer.h" |
36 | #include "llframetimer.h" | 37 | #include "llframetimer.h" |
37 | 38 | ||
38 | namespace tut | 39 | namespace tut |
39 | { | 40 | { |
40 | ///var/tmp/babbage/dev/message-liberation/etc | ||
41 | static const char file_name[] = "/tmp/message.xml"; | ||
42 | static const long refreshRateMillis = 6000; | ||
43 | |||
44 | struct LLMessageConfigTestData { | 41 | struct LLMessageConfigTestData { |
42 | std::string mTestConfigDir; | ||
45 | 43 | ||
46 | LLSD getCurrentConfig() | 44 | LLMessageConfigTestData() |
47 | { | 45 | { |
48 | LLSD data; | 46 | // generate temp dir |
49 | // store aside the current config to overwrite the test ones | 47 | mTestConfigDir = "/tmp/llmessage-config-test"; |
50 | // when the test finishes | 48 | LLFile::mkdir(mTestConfigDir.c_str()); |
51 | llifstream in_file(file_name); | 49 | |
52 | if (in_file.is_open()) | 50 | LLMessageConfig::initClass("simulator", mTestConfigDir); |
53 | { | 51 | } |
54 | LLSDSerialize::fromXML(data, in_file); | 52 | |
55 | } | 53 | ~LLMessageConfigTestData() |
56 | return data; | 54 | { |
55 | // rm contents of temp dir | ||
56 | gDirUtilp->deleteFilesInDir(mTestConfigDir, "*"); | ||
57 | // rm temp dir | ||
58 | LLFile::rmdir(mTestConfigDir.c_str()); | ||
57 | } | 59 | } |
58 | 60 | ||
61 | void reloadConfig(const LLSD& config) | ||
62 | { | ||
63 | LLMessageConfig::useConfig(config); | ||
64 | } | ||
65 | |||
59 | void writeConfigFile(const LLSD& config) | 66 | void writeConfigFile(const LLSD& config) |
60 | { | 67 | { |
61 | LLMessageConfig::initClass("simulator", "/tmp"); | 68 | std::string configFile = mTestConfigDir + "/message.xml"; |
62 | llofstream file(file_name); | 69 | llofstream file(configFile.c_str()); |
63 | if (file.is_open()) | 70 | if (file.is_open()) |
64 | { | 71 | { |
65 | LLSDSerialize::toPrettyXML(config, file); | 72 | LLSDSerialize::toPrettyXML(config, file); |
66 | } | 73 | } |
67 | file.close(); | 74 | file.close(); |
68 | ms_sleep(refreshRateMillis); | ||
69 | LLFrameTimer::updateFrameTime(); | ||
70 | } | 75 | } |
71 | }; | 76 | }; |
72 | 77 | ||
@@ -78,150 +83,116 @@ namespace tut | |||
78 | void LLMessageConfigTestObject::test<1>() | 83 | void LLMessageConfigTestObject::test<1>() |
79 | // tests server defaults | 84 | // tests server defaults |
80 | { | 85 | { |
81 | LLSD config_backup = getCurrentConfig(); | ||
82 | LLSD config; | 86 | LLSD config; |
83 | config["serverDefaults"]["simulator"] = "template"; | 87 | config["serverDefaults"]["simulator"] = "template"; |
84 | writeConfigFile(config); | 88 | reloadConfig(config); |
85 | ensure_equals("Ensure server default is not llsd", | 89 | ensure_equals("Ensure server default is not template", |
86 | LLMessageConfig::isServerDefaultBuilderLLSD(), | 90 | LLMessageConfig::getServerDefaultFlavor(), |
87 | false); | 91 | LLMessageConfig::TEMPLATE_FLAVOR); |
88 | ensure_equals("Ensure server default is template", | ||
89 | LLMessageConfig::isServerDefaultBuilderTemplate(), | ||
90 | true); | ||
91 | writeConfigFile(config_backup); | ||
92 | } | 92 | } |
93 | 93 | ||
94 | template<> template<> | 94 | template<> template<> |
95 | void LLMessageConfigTestObject::test<2>() | 95 | void LLMessageConfigTestObject::test<2>() |
96 | // tests message builders | 96 | // tests message flavors |
97 | { | 97 | { |
98 | LLSD config_backup = getCurrentConfig(); | ||
99 | LLSD config; | 98 | LLSD config; |
100 | config["serverDefaults"]["simulator"] = "template"; | 99 | config["serverDefaults"]["simulator"] = "template"; |
101 | config["messages"]["msg1"]["builder"] = "template"; | 100 | config["messages"]["msg1"]["flavor"] = "template"; |
102 | config["messages"]["msg2"]["builder"] = "llsd"; | 101 | config["messages"]["msg2"]["flavor"] = "llsd"; |
103 | writeConfigFile(config); | 102 | reloadConfig(config); |
104 | ensure_equals("Ensure msg template builder not llsd", | 103 | ensure_equals("Ensure msg template flavor", |
105 | LLMessageConfig::isMessageBuiltLLSD("msg1"), | 104 | LLMessageConfig::getMessageFlavor("msg1"), |
106 | false); | 105 | LLMessageConfig::TEMPLATE_FLAVOR); |
107 | ensure_equals("Ensure msg template builder", | 106 | ensure_equals("Ensure msg llsd flavor", |
108 | LLMessageConfig::isMessageBuiltTemplate("msg1"), | 107 | LLMessageConfig::getMessageFlavor("msg2"), |
109 | true); | 108 | LLMessageConfig::LLSD_FLAVOR); |
110 | ensure_equals("Ensure msg llsd builder", | ||
111 | LLMessageConfig::isMessageBuiltLLSD("msg2"), | ||
112 | true); | ||
113 | ensure_equals("Ensure msg llsd builder not template", | ||
114 | LLMessageConfig::isMessageBuiltTemplate("msg2"), | ||
115 | false); | ||
116 | writeConfigFile(config_backup); | ||
117 | } | 109 | } |
118 | 110 | ||
119 | template<> template<> | 111 | template<> template<> |
120 | void LLMessageConfigTestObject::test<4>() | 112 | void LLMessageConfigTestObject::test<4>() |
121 | // tests message builder defaults | 113 | // tests message flavor defaults |
122 | { | 114 | { |
123 | LLSD config_backup = getCurrentConfig(); | ||
124 | LLSD config; | 115 | LLSD config; |
125 | config["serverDefaults"]["simulator"] = "llsd"; | 116 | config["serverDefaults"]["simulator"] = "llsd"; |
126 | config["messages"]["msg1"]["trusted-sender"] = true; | 117 | config["messages"]["msg1"]["trusted-sender"] = true; |
127 | writeConfigFile(config); | 118 | reloadConfig(config); |
128 | ensure_equals("Ensure missing message defaults to server builder, not template", | 119 | ensure_equals("Ensure missing message gives no flavor", |
129 | LLMessageConfig::isMessageBuiltTemplate("Test"), | 120 | LLMessageConfig::getMessageFlavor("Test"), |
130 | false); | 121 | LLMessageConfig::NO_FLAVOR); |
131 | ensure_equals("Ensure missing message default to server builder llsd", | 122 | ensure_equals("Ensure missing flavor is NO_FLAVOR even with sender trustedness set", |
132 | LLMessageConfig::isMessageBuiltLLSD("Test"), | 123 | LLMessageConfig::getMessageFlavor("msg1"), |
133 | true); | 124 | LLMessageConfig::NO_FLAVOR); |
134 | ensure_equals("Ensure missing builder defaults to server builder, not template", | 125 | ensure_equals("Ensure server default is llsd", |
135 | LLMessageConfig::isMessageBuiltTemplate("msg1"), | 126 | LLMessageConfig::getServerDefaultFlavor(), |
136 | false); | 127 | LLMessageConfig::LLSD_FLAVOR); |
137 | ensure_equals("Ensure missing builder default to server builder llsd", | ||
138 | LLMessageConfig::isMessageBuiltLLSD("msg1"), | ||
139 | true); | ||
140 | |||
141 | ensure_equals("Ensure server default is not llsd", | ||
142 | LLMessageConfig::isServerDefaultBuilderLLSD(), | ||
143 | true); | ||
144 | ensure_equals("Ensure server default is template", | ||
145 | LLMessageConfig::isServerDefaultBuilderTemplate(), | ||
146 | false); | ||
147 | |||
148 | writeConfigFile(config_backup); | ||
149 | } | 128 | } |
150 | 129 | ||
151 | template<> template<> | 130 | template<> template<> |
152 | void LLMessageConfigTestObject::test<3>() | 131 | void LLMessageConfigTestObject::test<3>() |
153 | // tests trusted/untrusted senders | 132 | // tests trusted/untrusted senders |
154 | { | 133 | { |
155 | LLSD config_backup = getCurrentConfig(); | ||
156 | LLSD config; | 134 | LLSD config; |
157 | config["serverDefaults"]["simulator"] = "template"; | 135 | config["serverDefaults"]["simulator"] = "template"; |
158 | config["messages"]["msg1"]["builder"] = "llsd"; | 136 | config["messages"]["msg1"]["flavor"] = "llsd"; |
159 | config["messages"]["msg1"]["trusted-sender"] = false; | 137 | config["messages"]["msg1"]["trusted-sender"] = false; |
160 | config["messages"]["msg2"]["builder"] = "llsd"; | 138 | config["messages"]["msg2"]["flavor"] = "llsd"; |
161 | config["messages"]["msg2"]["trusted-sender"] = true; | 139 | config["messages"]["msg2"]["trusted-sender"] = true; |
162 | writeConfigFile(config); | 140 | reloadConfig(config); |
163 | ensure_equals("Ensure untrusted is not trusted", | ||
164 | LLMessageConfig::isMessageTrusted("msg1"), | ||
165 | false); | ||
166 | ensure_equals("Ensure untrusted is untrusted", | 141 | ensure_equals("Ensure untrusted is untrusted", |
167 | LLMessageConfig::isValidUntrustedMessage("msg1"), | 142 | LLMessageConfig::getSenderTrustedness("msg1"), |
168 | true); | 143 | LLMessageConfig::UNTRUSTED); |
169 | ensure_equals("Ensure trusted is trusted", | 144 | ensure_equals("Ensure trusted is trusted", |
170 | LLMessageConfig::isMessageTrusted("msg2"), | 145 | LLMessageConfig::getSenderTrustedness("msg2"), |
171 | true); | 146 | LLMessageConfig::TRUSTED); |
172 | ensure_equals("Ensure trusted is not untrusted", | 147 | ensure_equals("Ensure missing trustedness is NOT_SET", |
173 | LLMessageConfig::isValidUntrustedMessage("msg2"), | 148 | LLMessageConfig::getSenderTrustedness("msg3"), |
174 | false); | 149 | LLMessageConfig::NOT_SET); |
175 | writeConfigFile(config_backup); | ||
176 | } | 150 | } |
177 | 151 | ||
178 | template<> template<> | 152 | template<> template<> |
179 | void LLMessageConfigTestObject::test<5>() | 153 | void LLMessageConfigTestObject::test<5>() |
180 | // tests trusted/untrusted without flag, only builder | 154 | // tests trusted/untrusted without flag, only flavor |
181 | { | 155 | { |
182 | LLSD config_backup = getCurrentConfig(); | ||
183 | LLSD config; | 156 | LLSD config; |
184 | config["serverDefaults"]["simulator"] = "template"; | 157 | config["serverDefaults"]["simulator"] = "template"; |
185 | config["messages"]["msg1"]["builder"] = "llsd"; | 158 | config["messages"]["msg1"]["flavor"] = "llsd"; |
186 | writeConfigFile(config); | 159 | reloadConfig(config); |
187 | ensure_equals("Ensure missing trusted is not trusted", | 160 | ensure_equals("Ensure msg1 exists, has llsd flavor", |
188 | LLMessageConfig::isMessageTrusted("msg1"), | 161 | LLMessageConfig::getMessageFlavor("msg1"), |
189 | false); | 162 | LLMessageConfig::LLSD_FLAVOR); |
190 | ensure_equals("Ensure missing trusted is not untrusted", | 163 | ensure_equals("Ensure missing trusted is not set", |
191 | LLMessageConfig::isValidUntrustedMessage("msg1"), | 164 | LLMessageConfig::getSenderTrustedness("msg1"), |
192 | false); | 165 | LLMessageConfig::NOT_SET); |
193 | writeConfigFile(config_backup); | ||
194 | } | 166 | } |
195 | 167 | ||
196 | template<> template<> | 168 | template<> template<> |
197 | void LLMessageConfigTestObject::test<6>() | 169 | void LLMessageConfigTestObject::test<6>() |
198 | // tests message builder defaults | ||
199 | { | 170 | { |
200 | LLSD config_backup = getCurrentConfig(); | ||
201 | LLSD config; | 171 | LLSD config; |
202 | config["serverDefaults"]["simulator"] = "template"; | 172 | config["capBans"]["MapLayer"] = true; |
203 | config["messages"]["msg1"]["trusted-sender"] = true; | 173 | config["capBans"]["MapLayerGod"] = false; |
204 | writeConfigFile(config); | 174 | reloadConfig(config); |
205 | ensure_equals("Ensure missing message defaults to server builder, not template", | 175 | ensure_equals("Ensure cap ban true MapLayer", |
206 | LLMessageConfig::isMessageBuiltTemplate("Test"), | 176 | LLMessageConfig::isCapBanned("MapLayer"), |
207 | true); | ||
208 | ensure_equals("Ensure missing message default to server builder llsd", | ||
209 | LLMessageConfig::isMessageBuiltLLSD("Test"), | ||
210 | false); | ||
211 | ensure_equals("Ensure missing builder defaults to server builder, not template", | ||
212 | LLMessageConfig::isMessageBuiltTemplate("msg1"), | ||
213 | true); | 177 | true); |
214 | ensure_equals("Ensure missing builder default to server builder llsd", | 178 | ensure_equals("Ensure cap ban false", |
215 | LLMessageConfig::isMessageBuiltLLSD("msg1"), | 179 | LLMessageConfig::isCapBanned("MapLayerGod"), |
216 | false); | 180 | false); |
181 | } | ||
217 | 182 | ||
218 | ensure_equals("Ensure server default is not llsd", | 183 | template<> template<> |
219 | LLMessageConfig::isServerDefaultBuilderLLSD(), | 184 | void LLMessageConfigTestObject::test<7>() |
220 | false); | 185 | // tests that config changes are picked up/refreshed periodically |
221 | ensure_equals("Ensure server default is template", | 186 | { |
222 | LLMessageConfig::isServerDefaultBuilderTemplate(), | 187 | LLSD config; |
223 | true); | 188 | config["serverDefaults"]["simulator"] = "llsd"; |
189 | writeConfigFile(config); | ||
224 | 190 | ||
225 | writeConfigFile(config_backup); | 191 | // wait for it to reload after N seconds |
192 | ms_sleep(6*1000); | ||
193 | LLFrameTimer::updateFrameTime(); | ||
194 | ensure_equals("Ensure reload after 6 seconds", | ||
195 | LLMessageConfig::getServerDefaultFlavor(), | ||
196 | LLMessageConfig::LLSD_FLAVOR); | ||
226 | } | 197 | } |
227 | } | 198 | } |