php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | |
Patch patch-ext-snmp-tests for SNMP related Bug #53594Patch version 2010-12-22 18:53 UTC Return to Bug #53594 | Download this patchThis patch is obsolete Obsoleted by patches:
Developer: lytboris@gmail.com--- ext/snmp/tests/README 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/README 2010-12-21 19:41:14.000000000 +0300 @@ -0,0 +1,63 @@ +SNMP Tests +---------- + +To enable these tests, you must have : +- PHP compiled with SNMP (--with-snmp) +- an SNMP server running. + + +** How to test ** +You need to give credentials with environment vars if default ones are not +sutable (see snmp_include.inc for more info): +SNMP_HOSTNAME : IP or IP:PORT to connect to +SNMP_COMMUNITY : community name +SNMP_COMMUNITY_WRITE : community used for write tests (snmpset()). +SNMP_MIBDIR : Directory containing MIBS + +** Configuring the SNMPD server ** + +On Linux/FreeBSD +-------- + +- Install package net-snmpd (name may differ based on your distribution) +- Edit config file (by default this is /etc/snmp/snmpd.conf on Linux and + usr/local/etc/snmp/snmpd.conf on FreeBSD) and replace whole content + with following lines: + +###### Config file ##### +rocommunity public 127.0.0.1 +rwcommunity private 127.0.0.1 + +Do not enable them - being set here they make appropriate OID switch into r/o +#syslocation "Somewhere in the world" +#syscontact "root" + +#SNMPv3 credentials +rouser adminMD5 +rouser adminSHA +rwuser adminMD5AES +rouser adminMD5AES128 +rouser adminMD5DES +createUser adminMD5 MD5 test1234 +createUser adminSHA SHA test1234 +createUser adminMD5AES MD5 test1234 AES test1234 +createUser adminMD5AES128 MD5 test1234 AES test1234 +createUser adminMD5DES MD5 test1234 DES test1234 + +createUser noAuthUser +authuser read noAuthUser noauth +###### End ##### + +Before launching daemon make sure that there is no file /var/net-snmp/snmpd.conf +Delete it if exists. Ingoring to to so will fail SNMPv3 tests + +Make snmpd bind on localhost only. To do so, pass '127.0.0.1' into it's startup arguments +(see /etc/init.d/snmpd on Linux and set snmpd_flags="127.0.0.1" in rc.conf in FreeBSD). +Otherwise your SNMP daemon will answer SNMPv3 messages from remote clients. + +- Launch snmpd (service snmpd start or /etc/init.d/snmpd start) + +On Windows +---------- + +[to be completed] --- ext/snmp/tests/clean.inc 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/clean.inc 2009-10-17 21:14:00.000000000 +0400 @@ -0,0 +1,4 @@ +<?php +include_once(dirname(__FILE__) . '/snmp_include.inc'); + +// To be completed if necessary --- ext/snmp/tests/generic_timeout_error.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/generic_timeout_error.phpt 2010-12-21 23:33:35.000000000 +0300 @@ -0,0 +1,22 @@ +--TEST-- +Generic timeout (wrong community) +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +var_dump(snmpget($hostname, 'timeout_community_432', '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); + +?> +--EXPECTF-- +Warning: snmpget(): No response from %s in %s on line %d +bool(false) \ No newline at end of file --- ext/snmp/tests/skipif.inc 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/skipif.inc 2010-12-18 14:33:17.000000000 +0300 @@ -0,0 +1,13 @@ +<?php +extension_loaded('snmp') or die('skip snmp extension not available in this build'); + +require_once (dirname(__FILE__).'/snmp_include.inc'); + +//test server is available +// this require snmpget to work ... +//snmpget ( string $hostname , string $community , +//string $object_id [, int $timeout [, int $retries ]] ) + +if (snmpget($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout) === false) + die('NO SNMPD on this host or community invalid'); + --- ext/snmp/tests/snmp2_get.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp2_get.phpt 2010-12-21 17:08:24.000000000 +0300 @@ -0,0 +1,107 @@ +--TEST-- +Function snmp2_get +--CREDITS-- +Olivier Doucet & Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Checking error handling\n"; +var_dump(snmp2_get($hostname, $community, '.1.3.6.1.2.1.1.1.0', '')); +var_dump(snmp2_get($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, '')); +echo "Empty OID array\n"; +var_dump(snmp2_get($hostname, $community, array(), $timeout, $retries)); + +echo "Checking working\n"; +echo "Single OID\n"; +var_dump(snmp2_get($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmp2_get($hostname, $community, array('.1.3.6.1.2.1.1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmp2_get($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); + +echo "More error handling\n"; +echo "Single OID\n"; +var_dump(snmp2_get($hostname, $community, '.1.3.6.1.2..1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmp2_get($hostname, $community, array('.1.3.6.1.2.1...1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmp2_get($hostname, $community, array('.1.3.6.1.2.1...1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); + +echo "noSuchName checks\n"; +echo "Single OID\n"; +var_dump(snmp2_get($hostname, $community, '.1.3.6.1.2.1.1.1.110', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmp2_get($hostname, $community, array('.1.3.6.1.2.1.1.1.110'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmp2_get($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.220'), $timeout, $retries)); + + +?> +--EXPECTF-- +Checking error handling + +Warning: snmp2_get() expects parameter 4 to be long,%s given in %s on line %d +bool(false) + +Warning: snmp2_get() expects parameter 5 to be long,%s given in %s on line %d +bool(false) +Empty OID array + +Warning: snmp2_get(): Got empty OID array in %s on line %d +bool(false) +Checking working +Single OID +%unicode|string%(%d) "%s" +Single OID in array +array(1) { + [0]=> + %unicode|string%(%d) "%s" +} +Multiple OID +array(2) { + [0]=> + %unicode|string%(%d) "%s" + [1]=> + %unicode|string%(%d) "%d" +} +More error handling +Single OID + +Warning: snmp2_get(): Invalid object identifier: .1.3.6.1.2..1.1.1.0 in %s on line %d +bool(false) +Single OID in array + +Warning: snmp2_get(): Invalid object identifier: .1.3.6.1.2.1...1.1.0 in %s on line %d +bool(false) +Multiple OID + +Warning: snmp2_get(): Invalid object identifier: .1.3.6.1.2.1...1.1.0 in %s on line %d +array(1) { + [0]=> + %unicode|string%(%d) "%d" +} +noSuchName checks +Single OID + +Warning: snmp2_get(): Error in packet at 'SNMPv2-MIB::sysDescr.110': No Such Instance currently exists at this OID in %s on line %d +bool(false) +Single OID in array + +Warning: snmp2_get(): Error in packet at 'SNMPv2-MIB::sysDescr.110': No Such Instance currently exists at this OID in %s on line %d +bool(false) +Multiple OID + +Warning: snmp2_get(): Error in packet at 'SNMPv2-MIB::sysUpTime.220': No Such Instance currently exists at this OID in %s on line %d +array(1) { + [0]=> + %unicode|string%(%d) "%s" +} --- ext/snmp/tests/snmp2_getnext.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp2_getnext.phpt 2010-12-19 22:44:42.000000000 +0300 @@ -0,0 +1,39 @@ +--TEST-- +Function snmp2_getnext +--CREDITS-- +Olivier Doucet & Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Single OID\n"; +var_dump(snmp2_getnext($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmp2_getnext($hostname, $community, array('.1.3.6.1.2.1.1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmp2_getnext($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.6.0'), $timeout, $retries)); + +?> +--EXPECTF-- +Single OID +%unicode|string%(%d) "%s" +Single OID in array +array(1) { + [0]=> + %unicode|string%(%d) "%s" +} +Multiple OID +array(2) { + [0]=> + %unicode|string%(%d) "%s" + [1]=> + %unicode|string%(%d) "%d" +} --- ext/snmp/tests/snmp2_real_get.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp2_real_get.phpt 2010-12-19 18:46:41.000000000 +0300 @@ -0,0 +1,104 @@ +--TEST-- +Function snmp2_real_get +--CREDITS-- +Olivier Doucet & Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Checking error handling\n"; +var_dump(snmp2_real_get($hostname, $community, '.1.3.6.1.2.1.1.1.0', '')); +var_dump(snmp2_real_get($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, '')); + +echo "Checking working\n"; +echo "Single OID\n"; +var_dump(snmp2_real_get($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmp2_real_get($hostname, $community, array('.1.3.6.1.2.1.1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmp2_real_get($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); + +echo "More error handling\n"; +echo "Single OID\n"; +var_dump(snmp2_real_get($hostname, $community, '.1.3.6.1.2.1..1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmp2_real_get($hostname, $community, array('.1.3.6.1.2.1...1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmp2_real_get($hostname, $community, array('.1.3.6.1.2.1...1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); + +echo "noSuchName checks\n"; +echo "Single OID\n"; +var_dump(snmp2_real_get($hostname, $community, '.1.3.6.1.2.1.1.1.110', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmp2_real_get($hostname, $community, array('.1.3.6.1.2.1.1.1.110'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmp2_real_get($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.220'), $timeout, $retries)); + + +?> +--EXPECTF-- +Checking error handling + +Warning: snmp2_real_get() expects parameter 4 to be long,%s given in %s on line %d +bool(false) + +Warning: snmp2_real_get() expects parameter 5 to be long,%s given in %s on line %d +bool(false) +Checking working +Single OID +array(1) { + ["%s"]=> + %unicode|string%(%d) "%s" +} +Single OID in array +array(1) { + ["%s"]=> + %unicode|string%(%d) "%s" +} +Multiple OID +array(2) { + ["%s"]=> + %unicode|string%(%d) "%s" + ["%s"]=> + %unicode|string%(%d) "%d" +} +More error handling +Single OID + +Warning: snmp2_real_get(): Invalid object identifier: .1.3.6.1.2.1..1.1.0 in %s on line %d +bool(false) +Single OID in array + +Warning: snmp2_real_get(): Invalid object identifier: .1.3.6.1.2.1...1.1.0 in %s on line %d +bool(false) +Multiple OID + +Warning: snmp2_real_get(): Invalid object identifier: .1.3.6.1.2.1...1.1.0 in %s on line %d +array(1) { + [%s]=> + %unicode|string%(%d) "%d" +} +noSuchName checks +Single OID + +Warning: snmp2_real_get(): Error in packet at 'SNMPv2-MIB::sysDescr.110': No Such Instance currently exists at this OID in %s on line %d +bool(false) +Single OID in array + +Warning: snmp2_real_get(): Error in packet at 'SNMPv2-MIB::sysDescr.110': No Such Instance currently exists at this OID in %s on line %d +bool(false) +Multiple OID + +Warning: snmp2_real_get(): Error in packet at 'SNMPv2-MIB::sysUpTime.220': No Such Instance currently exists at this OID in %s on line %d +array(1) { + [%s]=> + %unicode|string%(%d) "%s" +} --- ext/snmp/tests/snmp2_real_getnext.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp2_real_getnext.phpt 2010-12-20 11:22:38.000000000 +0300 @@ -0,0 +1,42 @@ +--TEST-- +Function snmp2_real_getnext +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Single OID\n"; +var_dump(snmp2_real_getnext($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmp2_real_getnext($hostname, $community, array('.1.3.6.1.2.1.1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmp2_real_getnext($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.6.0'), $timeout, $retries)); + +?> +--EXPECTF-- +Single OID +array(1) { + [%s]=> + %unicode|string%(%d) "%s" +} +Single OID in array +array(1) { + [%s]=> + %unicode|string%(%d) "%s" +} +Multiple OID +array(2) { + [%s]=> + %unicode|string%(%d) "%s" + [%s]=> + %unicode|string%(%d) "%d" +} --- ext/snmp/tests/snmp2_real_walk.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp2_real_walk.phpt 2010-12-21 23:31:59.000000000 +0300 @@ -0,0 +1,86 @@ +--TEST-- +Function snmp2_real_walk +--CREDITS-- +Olivier Doucet Olivier Doucet Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Checking error handling\n"; +var_dump(snmp2_real_walk($hostname, $community, '.1.3.6.1.2.1.1', '')); +var_dump(snmp2_real_walk($hostname, $community, '.1.3.6.1.2.1.1', $timeout, '')); + +echo "Checking working\n"; +echo "Single OID\n"; +$return = snmp2_real_walk($hostname, $community, '.1.3.6.1.2.1.1', $timeout, $retries); +var_dump(gettype($return)); +var_dump(sizeof($return)); +var_dump(key($return)); +var_dump(array_shift($return)); + +echo "Single OID in array\n"; +$return = snmp2_real_walk($hostname, $community, array('.1.3.6.1.2.1.1'), $timeout, $retries); +var_dump(gettype($return)); +var_dump(sizeof($return)); +var_dump(key($return)); +var_dump(array_shift($return)); + +echo "More error handling\n"; +echo "Multiple correct OID\n"; +$return = snmp2_real_walk($hostname, $community, array('.1.3.6.1.2.1.1', '.1.3.6'), $timeout, $retries); +var_dump($return); + +echo "Multiple OID with wrong OID\n"; +$return = snmp2_real_walk($hostname, $community, array('.1.3.6.1.2.1.1', '.1.3.6...1'), $timeout, $retries); +var_dump($return); +$return = snmp2_real_walk($hostname, $community, array('.1.3.6...1', '.1.3.6.1.2.1.1'), $timeout, $retries); +var_dump($return); + +echo "Single nonexisting OID\n"; +$return = snmp2_real_walk($hostname, $community, array('.1.3.6.99999.0.99999.111'), $timeout, $retries); +var_dump($return); + +?> +--EXPECTF-- +Checking error handling + +Warning: snmp2_real_walk() expects parameter 4 to be long, %s given in %s on line %d +bool(false) + +Warning: snmp2_real_walk() expects parameter 5 to be long, %s given in %s on line %d +bool(false) +Checking working +Single OID +%unicode|string%(5) "array" +int(%d) +string(%d) "%s" +string(%d) "%s" +Single OID in array +%unicode|string%(5) "array" +int(%d) +string(%d) "%s" +string(%d) "%s" +More error handling +Multiple correct OID + +Warning: snmp2_real_walk(): Multi OID walks are not supported! in %s on line %d +bool(false) +Multiple OID with wrong OID + +Warning: snmp2_real_walk(): Multi OID walks are not supported! in %s on line %d +bool(false) + +Warning: snmp2_real_walk(): Multi OID walks are not supported! in %s on line %d +bool(false) +Single nonexisting OID + +Warning: snmp2_real_walk(): Error in packet at '%s': No more variables left in this MIB View (It is past the end of the MIB tree) in %s on line %d +bool(false) --- ext/snmp/tests/snmp2_set-nomib.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp2_set-nomib.phpt 2010-12-20 11:05:38.000000000 +0300 @@ -0,0 +1,59 @@ +--TEST-- +Function snmp2_set +--CREDITS-- +Boris Lytockin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--ENV-- +return <<<END +MIBS= +END; +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Check error handing\n"; +echo "Nonexisting OID\n"; +$z = snmp2_set($hostname, $communityWrite, '.1.3.6.777.888.999.444.0', 's', 'bbb', $timeout, $retries); +var_dump($z); + +echo "Bogus OID\n"; +$z = snmp2_set($hostname, $communityWrite, '.1.3.6...777.888.999.444.0', 's', 'bbb', $timeout, $retries); +var_dump($z); + +echo "Checking working\n"; +$oid1 = '.1.3.6.1.2.1.1.4.0'; +$oldvalue1 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries); +$newvalue1 = $oldvalue1 . '0'; + +echo "Single OID\n"; +$z = snmp2_set($hostname, $communityWrite, $oid1, 's', $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +$z = snmp2_set($hostname, $communityWrite, $oid1, 's', $oldvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); + +?> +--EXPECTF-- +Check error handing +Nonexisting OID + +Warning: snmp2_set(): Error in packet at '%s': notWritable (That object does not support modification) in %s on line %d +bool(false) +Bogus OID + +Warning: snmp2_set(): Invalid object identifier: %s in %s on line %d +bool(false) +Checking working +Single OID +bool(true) +bool(true) +bool(true) +bool(true) \ No newline at end of file --- ext/snmp/tests/snmp2_set.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp2_set.phpt 2010-12-20 10:36:16.000000000 +0300 @@ -0,0 +1,248 @@ +--TEST-- +Function snmp2_set +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Check error handing\n"; +echo "4args (5 needed)\n"; +$z = snmp2_set($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0'); +var_dump($z); + +echo "No type & no value (timeout & retries instead)\n"; +$z = snmp2_set($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0', $timeout, $retries); +var_dump($z); + +echo "No value (timeout instead), retries instead of timeout\n"; +$z = snmp2_set($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0', 'q', $timeout, $retries); +var_dump($z); + +echo "Bogus OID\n"; +$z = snmp2_set($hostname, $communityWrite, '.1.3.6.777.888.999.444.0', 's', 'bbb', $timeout, $retries); +var_dump($z); + +echo "Checking working\n"; +$oid1 = 'SNMPv2-MIB::sysContact.0'; +$oldvalue1 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries); +$newvalue1 = $oldvalue1 . '0'; +$oid2 = 'SNMPv2-MIB::sysLocation.0'; +$oldvalue2 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries); +$newvalue2 = $oldvalue2 . '0'; + +echo "Single OID\n"; +$z = snmp2_set($hostname, $communityWrite, $oid1, 's', $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +$z = snmp2_set($hostname, $communityWrite, $oid1, 's', $oldvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); + +echo "Multiple OID\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue2)); +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single type & value\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), 's', $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue1)); +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single type, multiple value\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), 's', array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue2)); +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + + +echo "More error handing\n"; +echo "Single OID, single type in array, single value\n"; +$z = snmp2_set($hostname, $communityWrite, $oid1, array('s'), $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Single OID, single type, single value in array\n"; +$z = snmp2_set($hostname, $communityWrite, $oid1, 's', array($newvalue1), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, 1st wrong type\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('sw','s'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, 2nd wrong type\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','sb'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single type in array, multiple value\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID & type, singe value in array\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s', 's'), array($newvalue1), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, 1st bogus, single type, multiple value\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1 . '44.55.66.77', $oid2), 's', array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, 2nd bogus, single type, multiple value\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2 . '44.55.66.77'), 's', array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single multiple type (1st bogus), multiple value\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('q', 's'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single multiple type (2nd bogus), multiple value\n"; +$z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s', 'w'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +?> +--EXPECTF-- +Check error handing +4args (5 needed) + +Warning: snmp2_set() expects at least 5 parameters, 3 given in %s on line %d +bool(false) +No type & no value (timeout & retries instead) + +Warning: snmp2_set(): Bogus type '-1', should be single char, got 2 in %s on line %d +bool(false) +No value (timeout instead), retries instead of timeout + +Warning: snmp2_set(): Could not add variable: OID='%s' type='q' value='%i': Bad variable type ("q") in %s on line %d +bool(false) +Bogus OID + +Warning: snmp2_set(): Error in packet at '%s': notWritable (That object does not support modification) in %s on line %d +bool(false) +Checking working +Single OID +bool(true) +bool(true) +bool(true) +bool(true) +Multiple OID +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +Multiple OID, single type & value +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +Multiple OID, single type, multiple value +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +More error handing +Single OID, single type in array, single value + +Warning: snmp2_set(): Single objid and multiple type or values are not supported in %s on line %s +bool(false) +bool(true) +bool(true) +Single OID, single type, single value in array + +Warning: snmp2_set(): Single objid and multiple type or values are not supported in %s on line %s +bool(false) +bool(true) +bool(true) +Multiple OID, 1st wrong type + +Warning: snmp2_set(): '%s': bogus type 'sw', should be single char, got 2 in %s on line %s +bool(false) +bool(true) +bool(true) +Multiple OID, 2nd wrong type + +Warning: snmp2_set(): '%s': bogus type 'sb', should be single char, got 2 in %s on line %s +bool(false) +bool(true) +bool(true) +Multiple OID, single type in array, multiple value + +Warning: snmp2_set(): '%s': no type set in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID & type, singe value in array + +Warning: snmp2_set(): '%s': no value set in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID, 1st bogus, single type, multiple value + +Warning: snmp2_set(): Error in packet at '%s': noCreation (That table does not support row creation or that object can not ever be created) in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID, 2nd bogus, single type, multiple value + +Warning: snmp2_set(): Error in packet at '%s': noCreation (That table does not support row creation or that object can not ever be created) in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID, single multiple type (1st bogus), multiple value + +Warning: snmp2_set(): Could not add variable: OID='%s' type='q' value='%s': Bad variable type ("q") in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID, single multiple type (2nd bogus), multiple value + +Warning: snmp2_set(): Could not add variable: OID='%s' type='w' value='%s': Bad variable type ("w") in %s on line %d +bool(false) +bool(true) +bool(true) --- ext/snmp/tests/snmp2_walk.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp2_walk.phpt 2010-12-21 23:31:59.000000000 +0300 @@ -0,0 +1,99 @@ +--TEST-- +Function snmp2_walk +--CREDITS-- +Olivier Doucet Olivier Doucet Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Checking error handling\n"; +var_dump(snmp2_walk($hostname, $community, '.1.3.6.1.2.1.1', '')); +var_dump(snmp2_walk($hostname, $community, '.1.3.6.1.2.1.1', $timeout, '')); + +echo "Checking working\n"; +echo "Single OID\n"; +$return = snmp2_walk($hostname, $community, '.1.3.6.1.2.1.1', $timeout, $retries); + +var_dump(gettype($return)); +var_dump(sizeof($return)); +var_dump(gettype($return[0])); +var_dump(gettype($return[1])); + +echo "Single OID in array\n"; +$return = snmp2_walk($hostname, $community, array('.1.3.6.1.2.1.1'), $timeout, $retries); +var_dump(gettype($return)); +var_dump(gettype($return[0])); + +echo "Default OID\n"; +$return = snmpwalk($hostname, $community, '', $timeout, $retries); +var_dump(gettype($return)); +var_dump(gettype($return[0])); + +echo "More error handling\n"; +echo "Single incorrect OID\n"; +$return = snmpwalk($hostname, $community, '.1.3.6...1', $timeout, $retries); +var_dump($return); + +echo "Multiple correct OID\n"; +$return = snmp2_walk($hostname, $community, array('.1.3.6.1.2.1.1', '.1.3.6'), $timeout, $retries); +var_dump($return); + +echo "Multiple OID with wrong OID\n"; +$return = snmp2_walk($hostname, $community, array('.1.3.6.1.2.1.1', '.1.3.6...1'), $timeout, $retries); +var_dump($return); +$return = snmp2_walk($hostname, $community, array('.1.3.6...1', '.1.3.6.1.2.1.1'), $timeout, $retries); +var_dump($return); + +echo "Single nonexisting OID\n"; +$return = snmp2_walk($hostname, $community, array('.1.3.6.99999.0.99999.111'), $timeout, $retries); +var_dump($return); + +?> +--EXPECTF-- +Checking error handling + +Warning: snmp2_walk() expects parameter 4 to be long, %s given in %s on line %d +bool(false) + +Warning: snmp2_walk() expects parameter 5 to be long, %s given in %s on line %d +bool(false) +Checking working +Single OID +%unicode|string%(5) "array" +int(32) +%unicode|string%(6) "string" +%unicode|string%(6) "string" +Single OID in array +%unicode|string%(5) "array" +%unicode|string%(6) "string" +Default OID +%unicode|string%(5) "array" +%unicode|string%(6) "string" +More error handling +Single incorrect OID + +Warning: snmpwalk(): Invalid object identifier: %s in %s on line %d +bool(false) +Multiple correct OID + +Warning: snmp2_walk(): Multi OID walks are not supported! in %s on line %d +bool(false) +Multiple OID with wrong OID + +Warning: snmp2_walk(): Multi OID walks are not supported! in %s on line %d +bool(false) + +Warning: snmp2_walk(): Multi OID walks are not supported! in %s on line %d +bool(false) +Single nonexisting OID + +Warning: snmp2_walk(): Error in packet at '%s': No more variables left in this MIB View (It is past the end of the MIB tree) in %s on line %d +bool(false) --- ext/snmp/tests/snmp3-error.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp3-error.phpt 2010-12-21 22:11:55.000000000 +0300 @@ -0,0 +1,76 @@ +--TEST-- +SNMPv3 Support +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +echo "Checking error handling\n"; + +//int snmp3_get(string host, string sec_name, string sec_level, string auth_protocol, +// string auth_passphrase, string priv_protocol, string priv_passphrase, +// string object_id [, int timeout [, int retries]]); + +var_dump(snmp3_get($hostname, $community, '', '', '', '', '')); +var_dump(snmp3_get($hostname, $community, '', '', '', '', '', '')); +var_dump(snmp3_get($hostname, $community, 'bugusPriv', '', '', '', '', '')); +var_dump(snmp3_get($hostname, $community, 'authNoPriv', 'TTT', '', '', '', '')); +var_dump(snmp3_get($hostname, $community, 'authNoPriv', 'MD5', '', '', '', '')); +var_dump(snmp3_get($hostname, $community, 'authNoPriv', 'MD5', 'te', '', '', '')); +var_dump(snmp3_get($hostname, $community, 'authPriv', 'MD5', $auth_pass, 'BBB', '', '')); +var_dump(snmp3_get($hostname, $community, 'authPriv', 'MD5', $auth_pass, 'AES', '', '')); +var_dump(snmp3_get($hostname, $community, 'authPriv', 'MD5', $auth_pass, 'AES', 'ty', '')); +var_dump(snmp3_get($hostname, 'somebogususer', 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); + +var_dump(snmp3_set($hostname, $community, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 's')); + +var_dump(snmp3_set($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '.1.3.6.777...7.5.3', 's', 'ttt', $timeout, $retries)); +var_dump(snmp3_set($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '.1.3.6.777.7.5.3', array('s'), 'yyy', $timeout, $retries)); + +?> +--EXPECTF-- +Checking error handling + +Warning: snmp3_get() expects at least 8 parameters, 7 given in %s on line %d +bool(false) + +Warning: snmp3_get(): Invalid security level '' in %s on line %d +bool(false) + +Warning: snmp3_get(): Invalid security level 'bugusPriv' in %s on line %d +bool(false) + +Warning: snmp3_get(): Unknown authentication protocol 'TTT' in %s on line %d +bool(false) + +Warning: snmp3_get(): Error generating a key for authentication pass phrase '': Generic error (The supplied password length is too short.) in %s on line %d +bool(false) + +Warning: snmp3_get(): Error generating a key for authentication pass phrase 'te': Generic error (The supplied password length is too short.) in %s on line %d +bool(false) + +Warning: snmp3_get(): Unknown security protocol 'BBB' in %s on line %d +bool(false) + +Warning: snmp3_get(): Error generating a key for privacy pass phrase '': Generic error (The supplied password length is too short.) in %s on line %d +bool(false) + +Warning: snmp3_get(): Error generating a key for privacy pass phrase 'ty': Generic error (The supplied password length is too short.) in %s on line %d +bool(false) + +Warning: snmp3_get(): Fatal error: Unknown user name in %s on line %d +bool(false) + +Warning: snmp3_set() expects at least 10 parameters, 9 given in %s on line %d +bool(false) + +Warning: snmp3_set(): Invalid object identifier: .1.3.6.777...7.5.3 in %s on line %d +bool(false) + +Warning: snmp3_set(): Single objid and multiple type or values are not supported in %s on line %d +bool(false) \ No newline at end of file --- ext/snmp/tests/snmp3.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp3.phpt 2010-12-21 23:32:14.000000000 +0300 @@ -0,0 +1,141 @@ +--TEST-- +SNMPv3 Support +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//int snmp3_get(string host, string sec_name, string sec_level, string auth_protocol, +// string auth_passphrase, string priv_protocol, string priv_passphrase, +// string object_id [, int timeout [, int retries]]); + +echo "Working version\n"; +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); +echo "GET single: noAuthNoPriv\n"; +var_dump(snmp3_get($hostname, $user_noauth, 'noAuthNoPriv', '', '', '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); + +foreach(array('MD5', 'SHA') as $signalg) { + echo "GET single: $signalg\n"; + var_dump(snmp3_get($hostname, $user_auth_prefix . $signalg, 'authNoPriv', $signalg, $auth_pass, '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +} + +foreach(array('AES', 'DES', 'AES128') as $chipher) { + echo "GET single: MD5/$chipher\n"; + var_dump(snmp3_get($hostname, $user_auth_prefix . 'MD5' . $chipher, 'authPriv', 'MD5', $auth_pass, $chipher, $priv_pass, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +} +$username = $user_auth_prefix . 'MD5'; +echo "GET multiple\n"; +var_dump(snmp3_get($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); +echo "GETNEXT single\n"; +var_dump(snmp3_getnext($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "REALGET single\n"; +var_dump(snmp3_real_get($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "REALGETNEXT single\n"; +var_dump(snmp3_real_getnext($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); + +echo "WALK single on single OID\n"; +$z = snmp3_walk($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries); +var_dump(gettype($z)); +var_dump(count($z)); +var_dump($z); + +echo "REALWALK single on single OID\n"; +$z = snmp3_real_walk($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries); +var_dump(gettype($z)); +var_dump(count($z)); +var_dump($z); + +echo "WALK multiple on single OID\n"; +$z = snmp3_walk($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1', $timeout, $retries); +var_dump(gettype($z)); +var_dump(count($z)); +var_dump(key($z)); +var_dump(array_shift($z)); + +echo "REALWALK multiple on single OID\n"; +$z = snmp3_real_walk($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, 'AES', '', '.1.3.6.1.2.1.1', $timeout, $retries); +var_dump(gettype($z)); +var_dump(count($z)); +var_dump(key($z)); +var_dump(array_shift($z)); + +echo "SET single OID\n"; +$oid1 = 'SNMPv2-MIB::sysContact.0'; +$oldvalue1 = snmp3_get($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, $timeout, $retries); +$newvalue1 = $oldvalue1 . '0'; + +$z = snmp3_set($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, 's', $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmp3_get($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, $timeout, $retries) === $newvalue1)); +$z = snmp3_set($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, 's', $oldvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmp3_get($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, $timeout, $retries) === $oldvalue1)); + +?> +--EXPECTF-- +Working version +GET single: noAuthNoPriv +%string|unicode%(%d) "%s" +GET single: MD5 +%string|unicode%(%d) "%s" +GET single: SHA +%string|unicode%(%d) "%s" +GET single: MD5/AES +%string|unicode%(%d) "%s" +GET single: MD5/DES +%string|unicode%(%d) "%s" +GET single: MD5/AES128 +%string|unicode%(%d) "%s" +GET multiple +array(2) { + [0]=> + %string|unicode%(%d) "%s" + [1]=> + %string|unicode%(%d) "%s" +} +GETNEXT single +%string|unicode%(%d) "%s" +REALGET single +array(1) { + ["%s"]=> + %string|unicode%(%d) "%s" +} +REALGETNEXT single +array(1) { + ["%s"]=> + %string|unicode%(%d) "%s" +} +WALK single on single OID +%string|unicode%(5) "array" +int(1) +array(1) { + [0]=> + %string|unicode%(%d) "%s" +} +REALWALK single on single OID +%string|unicode%(5) "array" +int(1) +array(1) { + ["%s"]=> + %string|unicode%(%d) "%s" +} +WALK multiple on single OID +%string|unicode%(5) "array" +int(%d) +int(0) +%string|unicode%(%d) "%s" +REALWALK multiple on single OID +%string|unicode%(5) "array" +int(%d) +%string|unicode%(%d) "%s" +%string|unicode%(%d) "%s" +SET single OID +bool(true) +bool(true) +bool(true) +bool(true) --- ext/snmp/tests/snmp_get_quick_print.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp_get_quick_print.phpt 2010-12-19 14:03:23.000000000 +0300 @@ -0,0 +1,41 @@ +--TEST-- +Function snmp_get_quick_print / snmp_set_quick_print +--CREDITS-- +Olivier Doucet +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +echo "Checking error handling\n"; +var_dump(snmp_get_quick_print('noarg')); +var_dump(snmp_set_quick_print('noarg')); +var_dump(snmp_set_quick_print()); + +echo "Checking working\n"; +var_dump(snmp_get_quick_print()); +snmp_set_quick_print(false); +var_dump(snmp_get_quick_print()); +snmp_set_quick_print(true); +var_dump(snmp_get_quick_print()); + +?> +--EXPECTF-- +Checking error handling + +Warning: snmp_get_quick_print() expects exactly 0 parameters, 1 given in %s on line %d +NULL + +Warning: snmp_set_quick_print() expects parameter 1 to be long, %s given in %s on line %d +bool(false) + +Warning: snmp_set_quick_print() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) +Checking working +bool(%s) +bool(false) +bool(true) + --- ext/snmp/tests/snmp_get_valueretrieval.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp_get_valueretrieval.phpt 2010-12-19 14:17:55.000000000 +0300 @@ -0,0 +1,37 @@ +--TEST-- +Function snmp_get_valueretrieval / snmp_set_valueretrieval +--CREDITS-- +Olivier Doucet +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +echo "Checking error handling\n"; +var_dump(snmp_get_valueretrieval('noarg')); +var_dump(snmp_set_valueretrieval('noarg')); + +echo "Checking working\n"; +var_dump(snmp_get_valueretrieval()); +snmp_set_valueretrieval(SNMP_VALUE_LIBRARY); +var_dump(snmp_get_valueretrieval() === SNMP_VALUE_LIBRARY); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); +var_dump(snmp_get_valueretrieval() === SNMP_VALUE_PLAIN); +snmp_set_valueretrieval(SNMP_VALUE_OBJECT); +var_dump(snmp_get_valueretrieval() === SNMP_VALUE_OBJECT); + +?> +--EXPECTF-- +Checking error handling +int(%d) + +Warning: snmp_set_valueretrieval() expects parameter 1 to be long, %s given in %s on line %d +bool(false) +Checking working +int(%d) +bool(true) +bool(true) +bool(true) --- ext/snmp/tests/snmp_getvalue.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp_getvalue.phpt 2010-12-19 19:37:10.000000000 +0300 @@ -0,0 +1,46 @@ +--TEST-- +Function snmp_getvalue +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); + +echo "Get with SNMP_VALUE_LIBRARY\n"; +snmp_set_valueretrieval(SNMP_VALUE_LIBRARY); +var_dump(snmpget($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); + +echo "Get with SNMP_VALUE_PLAIN\n"; +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); +var_dump(snmpget($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); + +echo "Get with SNMP_VALUE_OBJECT\n"; +snmp_set_valueretrieval(SNMP_VALUE_OBJECT); +$z = snmpget($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries); +echo gettype($z)."\n"; +var_dump($z->type); +var_dump($z->value); + +echo "Check parsing of different OID types\n"; +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); +var_dump(count(snmp2_walk($hostname, $community, '.', $timeout, $retries))); + +?> +--EXPECTF-- +Get with SNMP_VALUE_LIBRARY +string(%d) "STRING: %s" +Get with SNMP_VALUE_PLAIN +string(%d) "%s" +Get with SNMP_VALUE_OBJECT +object +int(4) +string(%d) "%s" +Check parsing of different OID types +int(%d) --- ext/snmp/tests/snmp_include.inc 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp_include.inc 2010-12-21 15:40:33.000000000 +0300 @@ -0,0 +1,29 @@ +<?php + +/* +By default tests will try to access SNMP agent @ '127.0.0.1:161' and will use 'public' community for read +requests and 'private' community for write requests. +Default timeout is 1000ms and there will be one request performed. +*/ + +$hostname = getenv('SNMP_HOSTNAME') ? getenv('SNMP_HOSTNAME') : '127.0.0.1'; +$port = getenv('SNMP_PORT') ? getenv('SNMP_PORT') : '161'; +$hostname .= ":$port"; +$community = getenv('SNMP_COMMUNITY') ? getenv('SNMP_COMMUNITY') : 'public'; +$communityWrite = getenv('SNMP_COMMUNITY_WRITE')? getenv('SNMP_COMMUNITY_WRITE'):'private'; + +$timeout = getenv('SNMP_TIMEOUT') ? getenv('SNMP_TIMEOUT') : -1; +$retries = getenv('SNMP_RETRIES') ? getenv('SNMP_RETRIES') : 1; + +if (stristr(PHP_OS, "FreeBSD")) { + $mibdir = getenv('SNMP_MIBDIR') ? getenv('SNMP_MIBDIR') : "/usr/local/share/snmp/mibs"; +} else { + $mibdir = getenv('SNMP_MIBDIR') ? getenv('SNMP_MIBDIR') : "/usr/share/snmp/mibs"; +} + + +$user_noauth = getenv('SNMP_USER_NOAUTH') ? getenv('SNMP_USER_NOAUTH') : 'noAuthUser'; +$user_auth_prefix = getenv('SNMP_USER_PREFIX') ? getenv('SNMP_USER_PREFIX') : 'admin'; +$rwuser = getenv('SNMP_RWUSER') ? getenv('SNMP_RWUSER') : ($user_auth_prefix . 'MD5AES'); +$auth_pass = getenv('SNMP_AUTH_PASS') ? getenv('SNMP_AUTH_PASS') : 'test1234'; +$priv_pass = getenv('SNMP_PRIV_PASS') ? getenv('SNMP_PRIV_PASS') : 'test1234'; --- ext/snmp/tests/snmp_parse_oid.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp_parse_oid.phpt 2010-12-20 15:10:06.000000000 +0300 @@ -0,0 +1,36 @@ +--TEST-- +Function snmp_parse_oid +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +$oid1 = 'SNMPv2-MIB::sysContact.0'; +$type1 = 's'; +$oldvalue1 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries); +$newvalue1 = $oldvalue1 . '0'; + +echo "Checking SNMP_MAXOIDS_IN_PDU\n"; +$i = 0; +$oids = array(); +while($i++ < 128){ + $oids[] = '.1.3.6.1.2.1.1.7.0'; +} +$z = snmp2_get($hostname, $community, $oids, $timeout, $retries); +var_dump($z); + +?> +--EXPECTF-- +Checking SNMP_MAXOIDS_IN_PDU + +Warning: snmp2_get(): Could not process more than %d OIDs in singe GET/GETNEXT/SET query in %s on line %d +bool(false) \ No newline at end of file --- ext/snmp/tests/snmp_read_mib.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp_read_mib.phpt 2010-12-21 23:31:59.000000000 +0300 @@ -0,0 +1,34 @@ +--TEST-- +Function snmp_read_mib +--CREDITS-- +Olivier Doucet Olivier Doucet Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +require_once(dirname(__FILE__).'/snmp_include.inc'); + +if (!file_exists($mibdir . '/SNMPv2-MIB.txt')) die('MIB file not in the system'); + +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +echo "Checking error handling\n"; +var_dump(snmp_read_mib()); +var_dump(snmp_read_mib(dirname(__FILE__).'/cannotfindthisfile')); + +echo "Checking working\n"; +var_dump(snmp_read_mib($mibdir . '/SNMPv2-MIB.txt')); + +?> +--EXPECTF-- +Checking error handling + +Warning: snmp_read_mib() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +Warning: snmp_read_mib(): Error while reading MIB file '%s': No such file or directory in %s on line %d +bool(false) +Checking working +bool(true) --- ext/snmp/tests/snmp_set_enum_print.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp_set_enum_print.phpt 2010-12-19 14:16:50.000000000 +0300 @@ -0,0 +1,28 @@ +--TEST-- +Function snmp_set_enum_print +--CREDITS-- +Olivier Doucet +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +if (!function_exists('snmp_set_enum_print')) die('This function is only available if using NET_SNMP'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +echo "Checking error handling\n"; +var_dump(snmp_set_enum_print()); + +echo "Checking working\n"; +var_dump(snmp_set_enum_print(0)); +var_dump(snmp_set_enum_print(1)); +?> +--EXPECTF-- +Checking error handling + +Warning: snmp_set_enum_print() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) +Checking working +bool(true) +bool(true) --- ext/snmp/tests/snmp_set_oid_output_format.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmp_set_oid_output_format.phpt 2010-12-19 14:05:11.000000000 +0300 @@ -0,0 +1,28 @@ +--TEST-- +Function snmp_set_oid_output_format +--CREDITS-- +Olivier Doucet +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +if (!function_exists('snmp_set_oid_output_format')) die('This function is only available if using NET_SNMP'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +echo "Checking error handling\n"; +var_dump(snmp_set_oid_output_format()); + +echo "Checking working\n"; +var_dump(snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL)); +var_dump(snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC)); +?> +--EXPECTF-- +Checking error handling + +Warning: snmp_set_oid_output_format() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) +Checking working +bool(true) +bool(true) --- ext/snmp/tests/snmpget.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmpget.phpt 2010-12-19 18:07:17.000000000 +0300 @@ -0,0 +1,101 @@ +--TEST-- +Function snmpget +--CREDITS-- +Olivier Doucet & Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Checking error handling\n"; +var_dump(snmpget($hostname, $community, '.1.3.6.1.2.1.1.1.0', '')); +var_dump(snmpget($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, '')); + +echo "Checking working\n"; +echo "Single OID\n"; +var_dump(snmpget($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmpget($hostname, $community, array('.1.3.6.1.2.1.1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmpget($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); + +echo "More error handling\n"; +echo "Single OID\n"; +var_dump(snmpget($hostname, $community, '.1.3.6.1.2.1..1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmpget($hostname, $community, array('.1.3.6.1.2.1...1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmpget($hostname, $community, array('.1.3.6.1.2.1...1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); + +echo "noSuchName checks\n"; +echo "Single OID\n"; +var_dump(snmpget($hostname, $community, '.1.3.6.1.2.1.1.1.110', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmpget($hostname, $community, array('.1.3.6.1.2.1.1.1.110'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmpget($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.220'), $timeout, $retries)); + + +?> +--EXPECTF-- +Checking error handling + +Warning: snmpget() expects parameter 4 to be long,%s given in %s on line %d +bool(false) + +Warning: snmpget() expects parameter 5 to be long,%s given in %s on line %d +bool(false) +Checking working +Single OID +%unicode|string%(%d) "%s" +Single OID in array +array(1) { + [0]=> + %unicode|string%(%d) "%s" +} +Multiple OID +array(2) { + [0]=> + %unicode|string%(%d) "%s" + [1]=> + %unicode|string%(%d) "%d" +} +More error handling +Single OID + +Warning: snmpget(): Invalid object identifier: .1.3.6.1.2.1..1.1.0 in %s on line %d +bool(false) +Single OID in array + +Warning: snmpget(): Invalid object identifier: .1.3.6.1.2.1...1.1.0 in %s on line %d +bool(false) +Multiple OID + +Warning: snmpget(): Invalid object identifier: .1.3.6.1.2.1...1.1.0 in %s on line %d +array(1) { + [0]=> + %unicode|string%(%d) "%d" +} +noSuchName checks +Single OID + +Warning: snmpget(): Error in packet at 'SNMPv2-MIB::sysDescr.110': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) +Single OID in array + +Warning: snmpget(): Error in packet at 'SNMPv2-MIB::sysDescr.110': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) +Multiple OID + +Warning: snmpget(): Error in packet at 'SNMPv2-MIB::sysUpTime.220': (noSuchName) There is no such variable name in this MIB. in %s on line %d +array(1) { + [0]=> + %unicode|string%(%d) "%s" +} --- ext/snmp/tests/snmpgetnext.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmpgetnext.phpt 2010-12-19 22:42:55.000000000 +0300 @@ -0,0 +1,39 @@ +--TEST-- +Function snmpgetnext +--CREDITS-- +Olivier Doucet & Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Single OID\n"; +var_dump(snmpgetnext($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmpgetnext($hostname, $community, array('.1.3.6.1.2.1.1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmpgetnext($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.6.0'), $timeout, $retries)); + +?> +--EXPECTF-- +Single OID +%unicode|string%(%d) "%s" +Single OID in array +array(1) { + [0]=> + %unicode|string%(%d) "%s" +} +Multiple OID +array(2) { + [0]=> + %unicode|string%(%d) "%s" + [1]=> + %unicode|string%(%d) "%d" +} --- ext/snmp/tests/snmprealget.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmprealget.phpt 2010-12-19 18:40:08.000000000 +0300 @@ -0,0 +1,104 @@ +--TEST-- +Function snmprealget +--CREDITS-- +Olivier Doucet & Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Checking error handling\n"; +var_dump(snmprealget($hostname, $community, '.1.3.6.1.2.1.1.1.0', '')); +var_dump(snmprealget($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, '')); + +echo "Checking working\n"; +echo "Single OID\n"; +var_dump(snmprealget($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmprealget($hostname, $community, array('.1.3.6.1.2.1.1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmprealget($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); + +echo "More error handling\n"; +echo "Single OID\n"; +var_dump(snmprealget($hostname, $community, '.1.3.6.1.2.1..1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmprealget($hostname, $community, array('.1.3.6.1.2.1...1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmprealget($hostname, $community, array('.1.3.6.1.2.1...1.1.0', '.1.3.6.1.2.1.1.3.0'), $timeout, $retries)); + +echo "noSuchName checks\n"; +echo "Single OID\n"; +var_dump(snmprealget($hostname, $community, '.1.3.6.1.2.1.1.1.110', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmprealget($hostname, $community, array('.1.3.6.1.2.1.1.1.110'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmprealget($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.220'), $timeout, $retries)); + + +?> +--EXPECTF-- +Checking error handling + +Warning: snmprealget() expects parameter 4 to be long,%s given in %s on line %d +bool(false) + +Warning: snmprealget() expects parameter 5 to be long,%s given in %s on line %d +bool(false) +Checking working +Single OID +array(1) { + ["%s"]=> + %unicode|string%(%d) "%s" +} +Single OID in array +array(1) { + ["%s"]=> + %unicode|string%(%d) "%s" +} +Multiple OID +array(2) { + ["%s"]=> + %unicode|string%(%d) "%s" + ["%s"]=> + %unicode|string%(%d) "%d" +} +More error handling +Single OID + +Warning: snmprealget(): Invalid object identifier: .1.3.6.1.2.1..1.1.0 in %s on line %d +bool(false) +Single OID in array + +Warning: snmprealget(): Invalid object identifier: .1.3.6.1.2.1...1.1.0 in %s on line %d +bool(false) +Multiple OID + +Warning: snmprealget(): Invalid object identifier: .1.3.6.1.2.1...1.1.0 in %s on line %d +array(1) { + [%s]=> + %unicode|string%(%d) "%d" +} +noSuchName checks +Single OID + +Warning: snmprealget(): Error in packet at 'SNMPv2-MIB::sysDescr.110': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) +Single OID in array + +Warning: snmprealget(): Error in packet at 'SNMPv2-MIB::sysDescr.110': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) +Multiple OID + +Warning: snmprealget(): Error in packet at 'SNMPv2-MIB::sysUpTime.220': (noSuchName) There is no such variable name in this MIB. in %s on line %d +array(1) { + [%s]=> + %unicode|string%(%d) "%s" +} --- ext/snmp/tests/snmprealgetnext.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmprealgetnext.phpt 2010-12-20 11:16:47.000000000 +0300 @@ -0,0 +1,42 @@ +--TEST-- +Function snmprealgetnext +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Single OID\n"; +var_dump(snmprealgetnext($hostname, $community, '.1.3.6.1.2.1.1.1.0', $timeout, $retries)); +echo "Single OID in array\n"; +var_dump(snmprealgetnext($hostname, $community, array('.1.3.6.1.2.1.1.1.0'), $timeout, $retries)); +echo "Multiple OID\n"; +var_dump(snmprealgetnext($hostname, $community, array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.6.0'), $timeout, $retries)); + +?> +--EXPECTF-- +Single OID +array(1) { + [%s]=> + %unicode|string%(%d) "%s" +} +Single OID in array +array(1) { + [%s]=> + %unicode|string%(%d) "%s" +} +Multiple OID +array(2) { + [%s]=> + %unicode|string%(%d) "%s" + [%s]=> + %unicode|string%(%d) "%d" +} --- ext/snmp/tests/snmprealwalk.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmprealwalk.phpt 2010-12-21 23:31:59.000000000 +0300 @@ -0,0 +1,86 @@ +--TEST-- +Function snmprealwalk +--CREDITS-- +Olivier Doucet Olivier Doucet Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Checking error handling\n"; +var_dump(snmprealwalk($hostname, $community, '.1.3.6.1.2.1.1', '')); +var_dump(snmprealwalk($hostname, $community, '.1.3.6.1.2.1.1', $timeout, '')); + +echo "Checking working\n"; +echo "Single OID\n"; +$return = snmprealwalk($hostname, $community, '.1.3.6.1.2.1.1', $timeout, $retries); +var_dump(gettype($return)); +var_dump(sizeof($return)); +var_dump(key($return)); +var_dump(array_shift($return)); + +echo "Single OID in array\n"; +$return = snmprealwalk($hostname, $community, array('.1.3.6.1.2.1.1'), $timeout, $retries); +var_dump(gettype($return)); +var_dump(sizeof($return)); +var_dump(key($return)); +var_dump(array_shift($return)); + +echo "More error handling\n"; +echo "Multiple correct OID\n"; +$return = snmprealwalk($hostname, $community, array('.1.3.6.1.2.1.1', '.1.3.6'), $timeout, $retries); +var_dump($return); + +echo "Multiple OID with wrong OID\n"; +$return = snmprealwalk($hostname, $community, array('.1.3.6.1.2.1.1', '.1.3.6...1'), $timeout, $retries); +var_dump($return); +$return = snmprealwalk($hostname, $community, array('.1.3.6...1', '.1.3.6.1.2.1.1'), $timeout, $retries); +var_dump($return); + +echo "Single nonexisting OID\n"; +$return = snmprealwalk($hostname, $community, array('.1.3.6.99999.0.99999.111'), $timeout, $retries); +var_dump($return); + +?> +--EXPECTF-- +Checking error handling + +Warning: snmprealwalk() expects parameter 4 to be long, %s given in %s on line %d +bool(false) + +Warning: snmprealwalk() expects parameter 5 to be long, %s given in %s on line %d +bool(false) +Checking working +Single OID +%unicode|string%(5) "array" +int(%d) +string(%d) "%s" +string(%d) "%s" +Single OID in array +%unicode|string%(5) "array" +int(%d) +string(%d) "%s" +string(%d) "%s" +More error handling +Multiple correct OID + +Warning: snmprealwalk(): Multi OID walks are not supported! in %s on line %d +bool(false) +Multiple OID with wrong OID + +Warning: snmprealwalk(): Multi OID walks are not supported! in %s on line %d +bool(false) + +Warning: snmprealwalk(): Multi OID walks are not supported! in %s on line %d +bool(false) +Single nonexisting OID + +Warning: snmprealwalk(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) --- ext/snmp/tests/snmpset-nomib.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmpset-nomib.phpt 2010-12-21 23:32:27.000000000 +0300 @@ -0,0 +1,60 @@ +--TEST-- +Function snmpset +--CREDITS-- +Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--ENV-- +return <<<END +MIBS= +END; +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Check error handing\n"; +echo "Nonexisting OID\n"; +$z = snmpset($hostname, $communityWrite, '.1.3.6.777.888.999.444.0', 's', 'bbb', $timeout, $retries); +var_dump($z); + +echo "Bogus OID\n"; +$z = snmpset($hostname, $communityWrite, '.1.3...6.777.888.999.444.0', 's', 'bbb', $timeout, $retries); +var_dump($z); + + +echo "Checking working\n"; +$oid1 = '.1.3.6.1.2.1.1.4.0'; +$oldvalue1 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries); +$newvalue1 = $oldvalue1 . '0'; + +echo "Single OID\n"; +$z = snmpset($hostname, $communityWrite, $oid1, 's', $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +$z = snmpset($hostname, $communityWrite, $oid1, 's', $oldvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); + +?> +--EXPECTF-- +Check error handing +Nonexisting OID + +Warning: snmpset(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) +Bogus OID + +Warning: snmpset(): Invalid object identifier: %s in %s on line %d +bool(false) +Checking working +Single OID +bool(true) +bool(true) +bool(true) +bool(true) \ No newline at end of file --- ext/snmp/tests/snmpset.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmpset.phpt 2010-12-21 23:31:59.000000000 +0300 @@ -0,0 +1,248 @@ +--TEST-- +Function snmpset +--CREDITS-- +Olivier Doucet Olivier Doucet Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Check error handing\n"; +echo "4args (5 needed)\n"; +$z = snmpset($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0'); +var_dump($z); + +echo "No type & no value (timeout & retries instead)\n"; +$z = snmpset($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0', $timeout, $retries); +var_dump($z); + +echo "No value (timeout instead), retries instead of timeout\n"; +$z = snmpset($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0', 'q', $timeout, $retries); +var_dump($z); + +echo "Bogus OID\n"; +$z = snmpset($hostname, $communityWrite, '.1.3.6.777.888.999.444.0', 's', 'bbb', $timeout, $retries); +var_dump($z); + +echo "Checking working\n"; +$oid1 = 'SNMPv2-MIB::sysContact.0'; +$oldvalue1 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries); +$newvalue1 = $oldvalue1 . '0'; +$oid2 = 'SNMPv2-MIB::sysLocation.0'; +$oldvalue2 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries); +$newvalue2 = $oldvalue2 . '0'; + +echo "Single OID\n"; +$z = snmpset($hostname, $communityWrite, $oid1, 's', $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +$z = snmpset($hostname, $communityWrite, $oid1, 's', $oldvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); + +echo "Multiple OID\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue2)); +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single type & value\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), 's', $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue1)); +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single type, multiple value\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), 's', array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue2)); +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + + +echo "More error handing\n"; +echo "Single OID, single type in array, single value\n"; +$z = snmpset($hostname, $communityWrite, $oid1, array('s'), $newvalue1, $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Single OID, single type, single value in array\n"; +$z = snmpset($hostname, $communityWrite, $oid1, 's', array($newvalue1), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, 1st wrong type\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('sw','s'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, 2nd wrong type\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','sb'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single type in array, multiple value\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID & type, singe value in array\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s', 's'), array($newvalue1), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, 1st bogus, single type, multiple value\n"; +$z = snmpset($hostname, $communityWrite, array($oid1 . '44.55.66.77', $oid2), 's', array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, 2nd bogus, single type, multiple value\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2 . '44.55.66.77'), 's', array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single multiple type (1st bogus), multiple value\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('q', 's'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +echo "Multiple OID, single multiple type (2nd bogus), multiple value\n"; +$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s', 'w'), array($newvalue1, $newvalue2), $timeout, $retries); +var_dump($z); +var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1)); +var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2)); + +?> +--EXPECTF-- +Check error handing +4args (5 needed) + +Warning: snmpset() expects at least 5 parameters, 3 given in %s on line %d +bool(false) +No type & no value (timeout & retries instead) + +Warning: snmpset(): Bogus type '-1', should be single char, got 2 in %s on line %d +bool(false) +No value (timeout instead), retries instead of timeout + +Warning: snmpset(): Could not add variable: OID='%s' type='q' value='%i': Bad variable type ("q") in %s on line %d +bool(false) +Bogus OID + +Warning: snmpset(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) +Checking working +Single OID +bool(true) +bool(true) +bool(true) +bool(true) +Multiple OID +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +Multiple OID, single type & value +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +Multiple OID, single type, multiple value +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +More error handing +Single OID, single type in array, single value + +Warning: snmpset(): Single objid and multiple type or values are not supported in %s on line %s +bool(false) +bool(true) +bool(true) +Single OID, single type, single value in array + +Warning: snmpset(): Single objid and multiple type or values are not supported in %s on line %s +bool(false) +bool(true) +bool(true) +Multiple OID, 1st wrong type + +Warning: snmpset(): '%s': bogus type 'sw', should be single char, got 2 in %s on line %s +bool(false) +bool(true) +bool(true) +Multiple OID, 2nd wrong type + +Warning: snmpset(): '%s': bogus type 'sb', should be single char, got 2 in %s on line %s +bool(false) +bool(true) +bool(true) +Multiple OID, single type in array, multiple value + +Warning: snmpset(): '%s': no type set in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID & type, singe value in array + +Warning: snmpset(): '%s': no value set in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID, 1st bogus, single type, multiple value + +Warning: snmpset(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID, 2nd bogus, single type, multiple value + +Warning: snmpset(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID, single multiple type (1st bogus), multiple value + +Warning: snmpset(): Could not add variable: OID='%s' type='q' value='%s': Bad variable type ("q") in %s on line %d +bool(false) +bool(true) +bool(true) +Multiple OID, single multiple type (2nd bogus), multiple value + +Warning: snmpset(): Could not add variable: OID='%s' type='w' value='%s': Bad variable type ("w") in %s on line %d +bool(false) +bool(true) +bool(true) --- ext/snmp/tests/snmpwalk.phpt 1970-01-01 03:00:00.000000000 +0300 +++ ext/snmp/tests/snmpwalk.phpt 2010-12-21 23:31:59.000000000 +0300 @@ -0,0 +1,99 @@ +--TEST-- +Function snmpwalk +--CREDITS-- +Olivier Doucet Olivier Doucet Boris Lytochkin +--SKIPIF-- +<?php +require_once(dirname(__FILE__).'/skipif.inc'); +?> +--FILE-- +<?php +require_once(dirname(__FILE__).'/snmp_include.inc'); + +//EXPECTF format is quickprint OFF +snmp_set_quick_print(false); +snmp_set_valueretrieval(SNMP_VALUE_PLAIN); + +echo "Checking error handling\n"; +var_dump(snmpwalk($hostname, $community, '.1.3.6.1.2.1.1', '')); +var_dump(snmpwalk($hostname, $community, '.1.3.6.1.2.1.1', $timeout, '')); + +echo "Checking working\n"; +echo "Single OID\n"; +$return = snmpwalk($hostname, $community, '.1.3.6.1.2.1.1', $timeout, $retries); + +var_dump(gettype($return)); +var_dump(sizeof($return)); +var_dump(gettype($return[0])); +var_dump(gettype($return[1])); + +echo "Single OID in array\n"; +$return = snmpwalk($hostname, $community, array('.1.3.6.1.2.1.1'), $timeout, $retries); +var_dump(gettype($return)); +var_dump(gettype($return[0])); + +echo "Default OID\n"; +$return = snmpwalk($hostname, $community, '', $timeout, $retries); +var_dump(gettype($return)); +var_dump(gettype($return[0])); + +echo "More error handling\n"; +echo "Single incorrect OID\n"; +$return = snmpwalk($hostname, $community, '.1.3.6...1', $timeout, $retries); +var_dump($return); + +echo "Multiple correct OID\n"; +$return = snmpwalk($hostname, $community, array('.1.3.6.1.2.1.1', '.1.3.6'), $timeout, $retries); +var_dump($return); + +echo "Multiple OID with wrong OID\n"; +$return = snmpwalk($hostname, $community, array('.1.3.6.1.2.1.1', '.1.3.6...1'), $timeout, $retries); +var_dump($return); +$return = snmpwalk($hostname, $community, array('.1.3.6...1', '.1.3.6.1.2.1.1'), $timeout, $retries); +var_dump($return); + +echo "Single nonexisting OID\n"; +$return = snmpwalk($hostname, $community, array('.1.3.6.99999.0.99999.111'), $timeout, $retries); +var_dump($return); + +?> +--EXPECTF-- +Checking error handling + +Warning: snmpwalk() expects parameter 4 to be long, %s given in %s on line %d +bool(false) + +Warning: snmpwalk() expects parameter 5 to be long, %s given in %s on line %d +bool(false) +Checking working +Single OID +%unicode|string%(5) "array" +int(%d) +%unicode|string%(6) "string" +%unicode|string%(6) "string" +Single OID in array +%unicode|string%(5) "array" +%unicode|string%(6) "string" +Default OID +%unicode|string%(5) "array" +%unicode|string%(6) "string" +More error handling +Single incorrect OID + +Warning: snmpwalk(): Invalid object identifier: %s in %s on line %d +bool(false) +Multiple correct OID + +Warning: snmpwalk(): Multi OID walks are not supported! in %s on line %d +bool(false) +Multiple OID with wrong OID + +Warning: snmpwalk(): Multi OID walks are not supported! in %s on line %d +bool(false) + +Warning: snmpwalk(): Multi OID walks are not supported! in %s on line %d +bool(false) +Single nonexisting OID + +Warning: snmpwalk(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d +bool(false) |
Copyright © 2001-2024 The PHP Group All rights reserved. |
Last updated: Fri Oct 04 18:01:29 2024 UTC |