1 #include <gtest/gtest.h>
3 #include "hphp/runtime/vm/jit/code-cache.h"
5 #include "hphp/runtime/base/config.h"
6 #include "hphp/runtime/base/ini-setting.h"
10 TEST(IniSetting
, ini_iterate
) {
12 "hhvm.ip_block_map[0][location] = /test\n"
13 "hhvm.ip_block_map[0][allow_first] = true\n"
14 "hhvm.ip_block_map[0][ip][allow][0] = 127.0.0.1\n"
15 "hhvm.ip_block_map[0][ip][deny][0] = 8.32.0.0/24\n"
16 "hhvm.ip_block_map[0][ip][deny][1] = "
17 "aaaa:bbbb:cccc:dddd:eeee:ffff:1111::/80\n"
18 "hhvm.ip_block_map[1][location] = /blah\n"
19 "hhvm.ip_block_map[1][allow_first] = true\n"
20 "hhvm.ip_block_map[1][ip][allow][0] = 127.10.10.10\n"
21 "hhvm.ip_block_map[1][ip][deny][0] = 255.255.255.255\n"
22 "hhvm.server.apc.ttl_limit = 1000\n"
23 "hhvm.server.allowed_exec_cmds[]= ls\n"
24 "hhvm.server.allowed_exec_cmds[]= cp\n"
25 "hhvm.jit_a_cold_size = 22222222\n";
28 Config::ParseIniString(inistr
, ini
);
30 auto value
= ini_iterate(ini
, "hhvm.ip_block_map.0.location");
31 EXPECT_EQ("/test", value
.toString().toCppString());
32 value
= ini_iterate(ini
, "hhvm.ip_block_map.1.ip.allow.0");
33 EXPECT_EQ("127.10.10.10", value
.toString().toCppString());
34 value
= ini_iterate(ini
, "hhvm.server.apc.ttl_limit");
35 EXPECT_EQ("1000", value
.toString().toCppString());
36 value
= ini_iterate(ini
, "hhvm.server.bogus.ttl_limit");
37 EXPECT_TRUE(value
.isNull());
38 value
= ini_iterate(ini
, "hhvm.server.allowed_exec_cmds.1");
39 EXPECT_EQ("cp", value
.toString().toCppString());
40 value
= ini_iterate(ini
, "hhvm.ip_block_map.0.ip.deny.0");
41 EXPECT_EQ("8.32.0.0/24", value
.toString().toCppString());
42 value
= ini_iterate(ini
, "hhvm.ip_block_map.0.ip.deny.1");
43 EXPECT_EQ("aaaa:bbbb:cccc:dddd:eeee:ffff:1111::/80",
44 value
.toString().toCppString());
45 value
= ini_iterate(ini
, "hhvm.ip_block_map.1.ip.allow.2");
46 EXPECT_TRUE(value
.isNull());
47 value
= ini_iterate(init_null(), "hhvm.ip_block_map");
48 EXPECT_TRUE(value
.isNull());
49 value
= ini_iterate(ini
, "hhvm.ip_block_map");
50 EXPECT_TRUE(value
.isArray());
51 EXPECT_EQ(2, value
.toArray().size());
53 // Check some runtime options
54 EXPECT_EQ(22222222, jit::CodeCache::AColdSize
);
55 EXPECT_EQ("", RuntimeOption::ExtensionDir
);