aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/test/llmessageconfig_tut.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/test/llmessageconfig_tut.cpp205
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
38namespace tut 39namespace 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}