xref: /PHP-7.0/sapi/fpm/tests/008.phpt (revision eb02876e)
1--TEST--
2FPM: Test multi pool (dynamic + ondemand + static) (bug #68423)
3--SKIPIF--
4<?php
5include "skipif.inc";
6
7$cfg = <<<EOT
8[global]
9error_log = /dev/null
10[poold_ondemand]
11listen=127.0.0.1:9000
12pm = ondemand
13pm.max_children = 2
14pm.process_idle_timeout = 10
15EOT;
16
17if (test_fpm_conf($cfg, $msg) == false) {
18	die("skip " .  $msg);
19}
20?>
21--FILE--
22<?php
23
24include "include.inc";
25
26$logfile = dirname(__FILE__).'/php-fpm.log.tmp';
27$port1 = 9000+PHP_INT_SIZE;
28$port2 = 9001+PHP_INT_SIZE;
29$port3 = 9002+PHP_INT_SIZE;
30
31$cfg = <<<EOT
32[global]
33error_log = $logfile
34[pool_dynamic]
35listen = 127.0.0.1:$port1
36ping.path = /ping
37ping.response = pong-dynamic
38pm = dynamic
39pm.max_children = 5
40pm.start_servers = 2
41pm.min_spare_servers = 1
42pm.max_spare_servers = 3
43[poold_ondemand]
44listen = 127.0.0.1:$port2
45ping.path = /ping
46ping.response = pong-on-demand
47pm = ondemand
48pm.max_children = 2
49pm.process_idle_timeout = 10
50[pool_static]
51listen = 127.0.0.1:$port3
52ping.path = /ping
53ping.response = pong-static
54pm = static
55pm.max_children = 2
56EOT;
57
58$fpm = run_fpm($cfg, $tail);
59if (is_resource($fpm)) {
60    fpm_display_log($tail, 2);
61    try {
62		var_dump(strpos(run_request('127.0.0.1', $port1), 'pong-dynamic'));
63		echo "Dynamic ok\n";
64	} catch (Exception $e) {
65		echo "Dynamic error\n";
66	}
67    try {
68		var_dump(strpos(run_request('127.0.0.1', $port2), 'pong-on-demand'));
69		echo "OnDemand ok\n";
70	} catch (Exception $e) {
71		echo "OnDemand error\n";
72	}
73    try {
74		var_dump(strpos(run_request('127.0.0.1', $port3), 'pong-static'));
75		echo "Static ok\n";
76	} catch (Exception $e) {
77		echo "Static error\n";
78	}
79
80	proc_terminate($fpm);
81    stream_get_contents($tail);
82    fclose($tail);
83    proc_close($fpm);
84}
85
86?>
87--EXPECTF--
88[%d-%s-%d %d:%d:%d] NOTICE: fpm is running, pid %d
89[%d-%s-%d %d:%d:%d] NOTICE: ready to handle connections
90int(%d)
91Dynamic ok
92int(%d)
93OnDemand ok
94int(%d)
95Static ok
96--CLEAN--
97<?php
98    $logfile = dirname(__FILE__).'/php-fpm.log.tmp';
99    @unlink($logfile);
100?>
101