make[1]: Entering directory '/home/zabbix/zabbix/src/modules/dummy' cc -fPIC -shared -o dummy.so dummy.c -I../../../include -I../../../include/common make[1]: Leaving directory '/home/zabbix/zabbix/src/modules/dummy' make && \ cd tests && \ make LDFLAGS="-rdynamic -Wl,--wrap=zbx_db_select -Wl,--wrap=zbx_db_vselect -Wl,--wrap=zbx_db_select_n -Wl,--wrap=zbx_db_execute -Wl,--wrap=zbx_db_begin -Wl,--wrap=zbx_db_commit -Wl,--wrap=zbx_db_execute_multiple_query -Wl,--wrap=fopen -Wl,--wrap=fclose -Wl,--wrap=fgets -Wl,--wrap=fstat -Wl,--wrap=open -Wl,--wrap=lseek -Wl,--wrap=close -Wl,--wrap=opendir -Wl,--wrap=readdir -Wl,--wrap=__xstat -Wl,--wrap=__fxstat -Wl,--wrap=stat -Wl,--wrap=exit -Wl,--wrap=read -Wl,--wrap=connect -Wl,--wrap=poll" LIBS="-lpthread -lm -lpcre2-8 " make[1]: Entering directory '/home/zabbix/zabbix' Making all in include make[2]: Entering directory '/home/zabbix/zabbix/include' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/zabbix/zabbix/include' Making all in src make[2]: Entering directory '/home/zabbix/zabbix/src' Making all in libs make[3]: Entering directory '/home/zabbix/zabbix/src/libs' Making all in zbxalgo make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxalgo' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxalgo' Making all in zbxbincommon make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxbincommon' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxbincommon' Making all in zbxcommon make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcommon' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcommon' Making all in zbxcomms make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcomms' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcomms' Making all in zbxcommshigh make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcommshigh' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcommshigh' Making all in zbxcompress make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcompress' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcompress' Making all in zbxcfg make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcfg' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcfg' Making all in zbxcrypto make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcrypto' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcrypto' Making all in zbxcurl make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcurl' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcurl' Making all in zbxexec make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxexec' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxexec' Making all in zbxexpr make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxexpr' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxexpr' Making all in zbxfile make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxfile' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxfile' Making all in zbxgetopt make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxgetopt' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxgetopt' Making all in zbxhash make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxhash' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxhash' Making all in zbxhttp make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxhttp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxhttp' Making all in zbxinterface make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxinterface' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxinterface' Making all in zbxip make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxip' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxip' Making all in zbxjson make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxjson' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxjson' Making all in zbxlog make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxlog' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxlog' Making all in zbxmodules make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxmodules' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxmodules' Making all in zbxmutexs make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxmutexs' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxmutexs' Making all in zbxprof make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxprof' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxprof' Making all in zbxnix make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxnix' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxnix' Making all in zbxnum make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxnum' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxnum' Making all in zbxparam make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxparam' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxparam' Making all in zbxregexp make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxregexp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxregexp' Making all in zbxsysinfo make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxsysinfo' Making all in agent make[5]: Entering directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/agent' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/agent' Making all in alias make[5]: Entering directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/alias' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/alias' Making all in common make[5]: Entering directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/common' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/common' Making all in simple make[5]: Entering directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/simple' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/simple' Making all in linux make[5]: Entering directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/linux' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxsysinfo/linux' make[5]: Entering directory '/home/zabbix/zabbix/src/libs/zbxsysinfo' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxsysinfo' make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxsysinfo' Making all in zbxstr make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxstr' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxstr' Making all in zbxthreads make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxthreads' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxthreads' Making all in zbxtime make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxtime' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxtime' Making all in zbxvariant make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxvariant' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxvariant' Making all in zbxversion make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxversion' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxversion' Making all in zbxxml make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxxml' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxxml' Making all in zbxagentget make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxagentget' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxagentget' Making all in zbxalerter make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxalerter' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxalerter' Making all in zbxasynchttppoller make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxasynchttppoller' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxasynchttppoller' Making all in zbxasyncpoller make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxasyncpoller' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxasyncpoller' Making all in zbxaudit make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxaudit' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxaudit' Making all in zbxautoreg make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxautoreg' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxautoreg' Making all in zbxavailability make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxavailability' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxavailability' Making all in zbxbincommon make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxbincommon' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxbincommon' Making all in zbxconnector make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxconnector' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxconnector' Making all in zbxcompress make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcompress' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcompress' Making all in zbxdb make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdb' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdb' Making all in zbxdiscovery make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdiscovery' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdiscovery' Making all in zbxdiscoverer make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdiscoverer' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdiscoverer' Making all in zbxcacheconfig make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcacheconfig' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcacheconfig' Making all in zbxcachehistory make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcachehistory' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcachehistory' Making all in zbxcachevalue make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxcachevalue' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxcachevalue' Making all in zbxdbhigh make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdbhigh' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdbhigh' Making all in zbxdbwrap make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdbwrap' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdbwrap' Making all in zbxdbsyncer make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdbsyncer' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdbsyncer' Making all in zbxdbschema make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdbschema' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdbschema' Making all in zbxdbupgrade make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdbupgrade' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdbupgrade' Making all in zbxdiag make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxdiag' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxdiag' Making all in zbxembed make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxembed' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxembed' Making all in zbxescalations make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxescalations' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxescalations' Making all in zbxeval make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxeval' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxeval' Making all in zbxevent make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxevent' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxevent' Making all in zbxexport make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxexport' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxexport' Making all in zbxexpr make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxexpr' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxexpr' Making all in zbxhistory make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxhistory' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxhistory' Making all in zbxhttp make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxhttp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxhttp' Making all in zbxhttppoller make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxhttppoller' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxhttppoller' Making all in zbxicmpping make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxicmpping' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxicmpping' Making all in zbxinterface make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxinterface' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxinterface' Making all in zbxip make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxip' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxip' Making all in zbxipcservice make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxipcservice' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxipcservice' Making all in zbxkvs make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxkvs' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxkvs' Making all in zbxmedia make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxmedia' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxmedia' Making all in zbxnum make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxnum' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxnum' Making all in zbxodbc make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxodbc' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxodbc' Making all in zbxparam make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxparam' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxparam' Making all in zbxpgservice make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxpgservice' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxpgservice' Making all in zbxpinger make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxpinger' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxpinger' Making all in zbxpoller make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxpoller' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxpoller' Making all in zbxpreproc make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxpreproc' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxpreproc' Making all in zbxpreprocbase make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxpreprocbase' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxpreprocbase' Making all in zbxprometheus make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxprometheus' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxprometheus' Making all in zbxproxybuffer make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxproxybuffer' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxproxybuffer' Making all in zbxrtc make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxrtc' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxrtc' Making all in zbxscripts make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxscripts' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxscripts' Making all in zbxself make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxself' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxself' Making all in zbxserialize make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxserialize' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxserialize' Making all in zbxexpression make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxexpression' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxexpression' Making all in zbxservice make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxservice' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxservice' Making all in zbxshmem make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxshmem' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxshmem' Making all in zbxsnmptrapper make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxsnmptrapper' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxsnmptrapper' Making all in zbxstats make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxstats' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxstats' Making all in zbxstr make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxstr' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxstr' Making all in zbxtagfilter make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxtagfilter' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxtagfilter' Making all in zbxtasks make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxtasks' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxtasks' Making all in zbxtime make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxtime' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxtime' Making all in zbxtimekeeper make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxtimekeeper' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxtimekeeper' Making all in zbxtrends make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxtrends' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxtrends' Making all in zbxtrapper make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxtrapper' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxtrapper' Making all in zbxvariant make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxvariant' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxvariant' Making all in zbxvault make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxvault' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxvault' Making all in zbxversion make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxversion' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxversion' Making all in zbxvmware make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxvmware' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxvmware' Making all in zbxxml make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxxml' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxxml' Making all in zbxipmi make[4]: Entering directory '/home/zabbix/zabbix/src/libs/zbxipmi' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs/zbxipmi' make[4]: Entering directory '/home/zabbix/zabbix/src/libs' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/home/zabbix/zabbix/src/libs' make[3]: Leaving directory '/home/zabbix/zabbix/src/libs' Making all in zabbix_agent make[3]: Entering directory '/home/zabbix/zabbix/src/zabbix_agent' Making all in listener make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_agent/listener' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_agent/listener' Making all in active_checks make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_agent/active_checks' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_agent/active_checks' Making all in agent_conf make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_agent/agent_conf' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_agent/agent_conf' Making all in logfiles make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_agent/logfiles' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_agent/logfiles' Making all in metrics make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_agent/metrics' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_agent/metrics' make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_agent' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_agent' make[3]: Leaving directory '/home/zabbix/zabbix/src/zabbix_agent' Making all in zabbix_get make[3]: Entering directory '/home/zabbix/zabbix/src/zabbix_get' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/src/zabbix_get' Making all in zabbix_sender make[3]: Entering directory '/home/zabbix/zabbix/src/zabbix_sender' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/src/zabbix_sender' Making all in zabbix_server make[3]: Entering directory '/home/zabbix/zabbix/src/zabbix_server' Making all in audit make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/audit' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/audit' Making all in autoreg make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/autoreg' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/autoreg' Making all in actions make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/actions' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/actions' Making all in cachehistory make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/cachehistory' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/cachehistory' Making all in dbconfig make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/dbconfig' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/dbconfig' Making all in diag make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/diag' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/diag' Making all in discovery make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/discovery' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/discovery' Making all in events make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/events' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/events' Making all in housekeeper make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/housekeeper' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/housekeeper' Making all in poller make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/poller' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/poller' Making all in timer make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/timer' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/timer' Making all in escalator make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/escalator' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/escalator' Making all in operations make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/operations' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/operations' Making all in postinit make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/postinit' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/postinit' Making all in proxypoller make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/proxypoller' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/proxypoller' Making all in taskmanager make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/taskmanager' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/taskmanager' Making all in stats make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/stats' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/stats' Making all in preproc make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/preproc' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/preproc' Making all in connector make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/connector' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/connector' Making all in dbconfigworker make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/dbconfigworker' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/dbconfigworker' Making all in lld make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/lld' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/lld' Making all in reporter make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/reporter' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/reporter' Making all in service make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/service' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/service' Making all in trapper make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/trapper' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/trapper' Making all in rtc make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/rtc' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/rtc' Making all in ha make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/ha' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/ha' Making all in proxyconfigread make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/proxyconfigread' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/proxyconfigread' Making all in pgmanager make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server/pgmanager' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server/pgmanager' make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_server' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server' make[3]: Leaving directory '/home/zabbix/zabbix/src/zabbix_server' Making all in zabbix_js make[3]: Entering directory '/home/zabbix/zabbix/src/zabbix_js' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/src/zabbix_js' Making all in zabbix_proxy make[3]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy' Making all in autoreg make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/autoreg' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/autoreg' Making all in cachehistory make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/cachehistory' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/cachehistory' Making all in diag make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/diag' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/diag' Making all in discovery make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/discovery' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/discovery' Making all in housekeeper make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/housekeeper' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/housekeeper' Making all in proxyconfig make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/proxyconfig' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/proxyconfig' Making all in preproc make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/preproc' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/preproc' Making all in datasender make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/datasender' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/datasender' Making all in rtc make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/rtc' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/rtc' Making all in stats make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/stats' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/stats' Making all in taskmanager make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/taskmanager' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/taskmanager' Making all in trapper make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/trapper' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/trapper' Making all in proxyconfigwrite make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/proxyconfigwrite' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/proxyconfigwrite' Making all in poller make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy/poller' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy/poller' make[4]: Entering directory '/home/zabbix/zabbix/src/zabbix_proxy' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy' make[3]: Leaving directory '/home/zabbix/zabbix/src/zabbix_proxy' make[3]: Entering directory '/home/zabbix/zabbix/src' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/zabbix/zabbix/src' make[2]: Leaving directory '/home/zabbix/zabbix/src' Making all in database make[2]: Entering directory '/home/zabbix/zabbix/database' Making all in mysql make[3]: Entering directory '/home/zabbix/zabbix/database/mysql' Making all in option-patches make[4]: Entering directory '/home/zabbix/zabbix/database/mysql/option-patches' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/database/mysql/option-patches' make[4]: Entering directory '/home/zabbix/zabbix/database/mysql' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/home/zabbix/zabbix/database/mysql' make[3]: Leaving directory '/home/zabbix/zabbix/database/mysql' Making all in postgresql make[3]: Entering directory '/home/zabbix/zabbix/database/postgresql' Making all in option-patches make[4]: Entering directory '/home/zabbix/zabbix/database/postgresql/option-patches' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/database/postgresql/option-patches' Making all in timescaledb make[4]: Entering directory '/home/zabbix/zabbix/database/postgresql/timescaledb' Making all in option-patches make[5]: Entering directory '/home/zabbix/zabbix/database/postgresql/timescaledb/option-patches' Making all in with-compression make[6]: Entering directory '/home/zabbix/zabbix/database/postgresql/timescaledb/option-patches/with-compression' make[6]: Nothing to be done for 'all'. make[6]: Leaving directory '/home/zabbix/zabbix/database/postgresql/timescaledb/option-patches/with-compression' Making all in without-compression make[6]: Entering directory '/home/zabbix/zabbix/database/postgresql/timescaledb/option-patches/without-compression' make[6]: Nothing to be done for 'all'. make[6]: Leaving directory '/home/zabbix/zabbix/database/postgresql/timescaledb/option-patches/without-compression' make[6]: Entering directory '/home/zabbix/zabbix/database/postgresql/timescaledb/option-patches' make[6]: Nothing to be done for 'all-am'. make[6]: Leaving directory '/home/zabbix/zabbix/database/postgresql/timescaledb/option-patches' make[5]: Leaving directory '/home/zabbix/zabbix/database/postgresql/timescaledb/option-patches' make[5]: Entering directory '/home/zabbix/zabbix/database/postgresql/timescaledb' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/home/zabbix/zabbix/database/postgresql/timescaledb' make[4]: Leaving directory '/home/zabbix/zabbix/database/postgresql/timescaledb' make[4]: Entering directory '/home/zabbix/zabbix/database/postgresql' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/home/zabbix/zabbix/database/postgresql' make[3]: Leaving directory '/home/zabbix/zabbix/database/postgresql' Making all in sqlite3 make[3]: Entering directory '/home/zabbix/zabbix/database/sqlite3' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/database/sqlite3' make[3]: Entering directory '/home/zabbix/zabbix/database' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/zabbix/zabbix/database' make[2]: Leaving directory '/home/zabbix/zabbix/database' Making all in man make[2]: Entering directory '/home/zabbix/zabbix/man' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/zabbix/zabbix/man' Making all in misc make[2]: Entering directory '/home/zabbix/zabbix/misc' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/zabbix/zabbix/misc' make[2]: Entering directory '/home/zabbix/zabbix' make[2]: Nothing to be done for 'all-am'. make[2]: Leaving directory '/home/zabbix/zabbix' make[1]: Leaving directory '/home/zabbix/zabbix' make[1]: Entering directory '/home/zabbix/zabbix/tests' Making all in . make[2]: Entering directory '/home/zabbix/zabbix/tests' make[2]: Nothing to be done for 'all-am'. make[2]: Leaving directory '/home/zabbix/zabbix/tests' Making all in mocks make[2]: Entering directory '/home/zabbix/zabbix/tests/mocks' Making all in configcache make[3]: Entering directory '/home/zabbix/zabbix/tests/mocks/configcache' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/mocks/configcache' Making all in valuecache make[3]: Entering directory '/home/zabbix/zabbix/tests/mocks/valuecache' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/mocks/valuecache' make[3]: Entering directory '/home/zabbix/zabbix/tests/mocks' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/mocks' make[2]: Leaving directory '/home/zabbix/zabbix/tests/mocks' Making all in libs make[2]: Entering directory '/home/zabbix/zabbix/tests/libs' Making all in zbxcommon make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxcommon' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxcommon' Making all in zbxnum make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxnum' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxnum' Making all in zbxstr make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxstr' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxstr' Making all in zbxexpr make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxexpr' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxexpr' Making all in zbxvariant make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxvariant' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxvariant' Making all in zbxtime make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxtime' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxtime' Making all in zbxxml make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxxml' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxxml' Making all in zbxparam make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxparam' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxparam' Making all in zbxcfg make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxcfg' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxcfg' Making all in zbxcachevalue make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxcachevalue' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxcachevalue' Making all in zbxcacheconfig make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxcacheconfig' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxcacheconfig' Making all in zbxdb make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxdb' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxdb' Making all in zbxdbhigh make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxdbhigh' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxdbhigh' Making all in zbxhistory make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxhistory' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxhistory' Making all in zbxicmpping make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxicmpping' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxicmpping' Making all in zbxjson make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxjson' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxjson' Making all in zbxmodules make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxmodules' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxmodules' Making all in zbxpoller make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxpoller' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxpoller' Making all in zbxpreproc make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxpreproc' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxpreproc' Making all in zbxsysinfo make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxsysinfo' Making all in common make[4]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxsysinfo/common' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxsysinfo/common' Making all in linux make[4]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxsysinfo/linux' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxsysinfo/linux' make[4]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxsysinfo' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxsysinfo' make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxsysinfo' Making all in zbxcommshigh make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxcommshigh' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxcommshigh' Making all in zbxcommon make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxcommon' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxcommon' Making all in zbxalgo make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxalgo' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxalgo' Making all in zbxprometheus make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxprometheus' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxprometheus' Making all in zbxcomms make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxcomms' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxcomms' Making all in zbxregexp make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxregexp' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxregexp' Making all in zbxexpression make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxexpression' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxexpression' Making all in zbxtagfilter make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxtagfilter' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxtagfilter' Making all in zbxtrends make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxtrends' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxtrends' Making all in zbxtime make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxtime' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxtime' Making all in zbxeval make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxeval' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxeval' Making all in zbxfile make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxfile' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxfile' Making all in zbxodbc make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxodbc' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxodbc' Making all in zbxhttp make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxhttp' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxhttp' Making all in zbxip make[3]: Entering directory '/home/zabbix/zabbix/tests/libs/zbxip' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs/zbxip' make[3]: Entering directory '/home/zabbix/zabbix/tests/libs' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/libs' make[2]: Leaving directory '/home/zabbix/zabbix/tests/libs' Making all in zabbix_server make[2]: Entering directory '/home/zabbix/zabbix/tests/zabbix_server' Making all in pinger make[3]: Entering directory '/home/zabbix/zabbix/tests/zabbix_server/pinger' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/zabbix_server/pinger' Making all in service make[3]: Entering directory '/home/zabbix/zabbix/tests/zabbix_server/service' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/zabbix_server/service' Making all in trapper make[3]: Entering directory '/home/zabbix/zabbix/tests/zabbix_server/trapper' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/zabbix_server/trapper' Making all in lld make[3]: Entering directory '/home/zabbix/zabbix/tests/zabbix_server/lld' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/zabbix_server/lld' make[3]: Entering directory '/home/zabbix/zabbix/tests/zabbix_server' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/zabbix/zabbix/tests/zabbix_server' make[2]: Leaving directory '/home/zabbix/zabbix/tests/zabbix_server' make[1]: Leaving directory '/home/zabbix/zabbix/tests' export LD_LIBRARY_PATH=$LD_LIBRARY_PATH::; \ tests/tests_run.pl ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── # │ Status │ Test case description ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_lld_hgsets_test ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Add new host and new hgset 1 │ OK │ Add new host and reuse existing (in db) hgset 2 │ OK │ Reuse existing (in db) and delete old hgset 3 │ OK │ Reuse existing (in vector) and add new hgset 4 │ OK │ Keep hgset which is used by some other hosts 5 │ OK │ Swap host's hgsets 6 │ OK │ Add new host without groups 7 │ OK │ Update host without groups ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── service_get_rootcause_eventids ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Directly associated events 1 │ OK │ Merging overlapping events (min) 2 │ OK │ Merging overlapping events (max) 3 │ OK │ Skipping OK service 4 │ OK │ Requiring severity level 5 │ OK │ Requiring severity level, subcase(1) 6 │ OK │ Requiring severity level, subcase(2) 7 │ OK │ Requiring severity level, subcase(3) 8 │ OK │ Requiring severity level, subcase(4) 9 │ OK │ Requiring severity level by weight 10 │ OK │ Requiring severity level by weight, subcase(1) 11 │ OK │ Requiring severity level by weight, subcase(2) 12 │ OK │ Requiring severity level by weight, subcase(3) 13 │ OK │ Requiring severity level by count and weight 14 │ OK │ Requiring severity level by count and weight, subcase (1) 15 │ OK │ Requiring severity level by count and weight, subcase (2) 16 │ OK │ Requiring severity level by count and weight, subcase (3) 17 │ OK │ Requiring severity level by count and weight, subcase (4) 18 │ OK │ Accounting for propagation rules with default status calculation 19 │ OK │ Accounting for propagation rules with additional rules (1) 20 │ OK │ Accounting for propagation rules with additional rules (2) 21 │ OK │ Overriding min-status of default rules with additional rules 22 │ OK │ Applying min-status to events (min) 23 │ OK │ Applying min-status to events (max) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── service_get_rule_status ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ At least 4 services with severity 1+ (true) 1 │ OK │ At least 3 services with severity 2+ (false) 2 │ OK │ At least 1 services with severity 3+ (false) 3 │ OK │ At least 7 services with severity 0+ (false) 4 │ OK │ At least 50% services with severity 1+ (true) 5 │ OK │ At least 50% services with severity 2+ (false) 6 │ OK │ At least 1% services with severity 3+ (false) 7 │ OK │ At least 100% services with severity 0+ (false) 8 │ OK │ Less than 2 services with severity 0- (false) 9 │ OK │ Less than 3 services with severity 0- (true) 10 │ OK │ Less than 6 services with severity 2- (false) 11 │ OK │ Less than 7 services with severity 2- (true) 12 │ OK │ Less than 50% services with severity 0- (true) 13 │ OK │ Less than 50% services with severity 1- (false) 14 │ OK │ Less than 100% services with severity 1- (true) 15 │ OK │ Less than 100% services with severity 2- (false) 16 │ OK │ At least 150 weight of services with severity 1+ (true) 17 │ OK │ At least 150 weight of services with severity 2+ (false) 18 │ OK │ At least 1 weight of services with severity 3+ (false) 19 │ OK │ At least 301 weight of services with severity 0+ (false) 20 │ OK │ At least 50% weight of services with severity 1+ (true) 21 │ OK │ At least 50% weight of services with severity 2+ (false) 22 │ OK │ At least 1% weight of services with severity 3+ (false) 23 │ OK │ At least 100% weight of services with severity 0+ (true) 24 │ OK │ Less than 100 weight of services with severity 0- (false) 25 │ OK │ Less than 101 weight of services with severity 0- (true) 26 │ OK │ Less than 300 weight of services with severity 2- (false) 27 │ OK │ Less than 301 weight of services with severity 2- (true) 28 │ OK │ Less than 50% weight of services with severity 0- (true) 29 │ OK │ Less than 50% weight of services with severity 1- (false) 30 │ OK │ Less than 100% weight of services with severity 1- (true) 31 │ OK │ Less than 100% weight of services with severity 2- (false) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── service_get_main_status ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Most critical of services (ok,1-4) 1 │ OK │ Most critical of services (4-1,ok) 2 │ OK │ Most critical of all services (ok,4-1) 3 │ OK │ Most critical of all services (1-4,ok) 4 │ OK │ Most critical of services (1-3) 5 │ OK │ Most critical of services (3-1) 6 │ OK │ Most critical of all services (1-3) 7 │ OK │ Most critical of all services (3-1) 8 │ OK │ Status OK (ok,1-4) 9 │ OK │ Status OK (1-4) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── service_get_status ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Status -1 as is 1 │ OK │ Status 0 as is 2 │ OK │ Status 1 as is 3 │ OK │ Status 2 as is 4 │ OK │ Status 3 as is 5 │ OK │ Status 4 as is 6 │ OK │ Status 5 as is 7 │ OK │ Status -1 increase 1 8 │ OK │ Status 0 increase 1 9 │ OK │ Status 1 increase 2 10 │ OK │ Status 1 increase 20 11 │ OK │ Status -1 decrease 1 12 │ OK │ Status 0 decrease 1 13 │ OK │ Status 5 decrease 3 14 │ OK │ Status 3 decrease 10 15 │ OK │ Status 1 ignore 16 │ OK │ Status -1 ignore 17 │ OK │ Status -1 set 0 18 │ OK │ Status 1 set 0 19 │ OK │ Status 1 set -1 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_trapper_preproc_test_run ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Missing data.value_type field 1 │ OK │ Missing data.steps[0].error_handler_params field 2 │ OK │ Missing data.steps[0].params field 3 │ OK │ Missing data.steps[0].error_handler field 4 │ OK │ Missing data.steps[0].type field 5 │ OK │ Missing data.history.timestamp field 6 │ OK │ Missing data.history.value field 7 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to data: 4$ 8 │ OK │ Apply mult(2) + trim($) + regsub("data: *(.*)", \1) to data: 4$ 9 │ OK │ Apply trim($) + mult(2) + regsub("data: *(.*)", \1) to data: 4$ 10 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to data: x$ 11 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to 4$ with discard on fail 12 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to 4$ with set value to 5 on fail 13 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to 4$ with set error to Validation error on fail 14 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) to data: x$ for uint value 15 │ OK │ Apply regsub("data: *(.*)", \1) to data: x for uint value testing single step 16 │ OK │ Apply delta() to 100, 700 17 │ OK │ Apply delta_per_second() to 100, 700 18 │ OK │ Apply mult(2) + trim($) + regsub("data: *(.*)", \1) to history data: 4$ 19 │ OK │ Apply trim($) + mult(2) + regsub("data: *(.*)", \1) to history data: 4$ 20 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to history data: x$ 21 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to history 4$ with discard on fail 22 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to history 4$ with set value to 5 on fail 23 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) + mult(2) to history 4$ with set error to Validation error on fail 24 │ OK │ Apply trim($) + regsub("data: *(.*)", \1) to history data: x$ for uint value 25 │ OK │ Apply regsub("data: *(.*)", \1) to history data: x for uint value testing single step 26 │ OK │ Apply regsub("data: *(.*)", \1) + delta() to data: 9, data:10 27 │ OK │ Apply regsub("data: *(.*)", \1) + delta() to data: 9, data:10 28 │ OK │ Check for not supported test (supported item, single step) 29 │ OK │ Check for not supported test (single step) 30 │ OK │ Check for not supported test (single step without parameter) 31 │ OK │ Check for not supported test (multiple step, supported item) 32 │ OK │ Check for not supported test (multiple step) 33 │ OK │ Check no cutoff 34 │ OK │ Check cutoff 35 │ OK │ Check cutoff before 2 byte 36 │ OK │ Check cutoff middle 2 byte 37 │ OK │ Check cutoff before 3 byte 38 │ OK │ Check cutoff middle 3 byte 39 │ OK │ Check cutoff before 4 byte 40 │ OK │ Check cutoff middle 4 byte 41 │ OK │ Check no cutoff -1 42 │ OK │ Check no cutoff backslash 43 │ OK │ Check cutoff backslash middle 44 │ OK │ Check cutoff backslash complete ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_pinger_test ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Both interface and key parameter are present 1 │ OK │ Only interface is present 2 │ OK │ Only key parameter is present 3 │ OK │ Both interface and key parameter are missing ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_add_tags ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Add tags to host with no tags 1 │ OK │ Add tags to host having some tags 2 │ OK │ No changes are expected, if tags having the same name and values are added 3 │ OK │ Tags having the same tags and different values are different tags ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_merge_tags ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Add tags to destination with no tags 1 │ OK │ Perform exact tag + value match (dst tags: NORMAL, src tags NORMAL) 2 │ OK │ Perform exact tag + value match (dst tags: NORMAL, src tags AUTOMATIC) 3 │ OK │ Perform exact tag + value match (dst tags: AUTOMATIC, src tags NORMAL) 4 │ OK │ Perform exact tag + value match (dst tags: AUTOMATIC, src tags AUTOMATIC) 5 │ OK │ Perform tag match (dst tags: AUTOMATIC, src tags NORMAL) 6 │ OK │ Perform tag match (dst tags: AUTOMATIC, src tags AUTOMATIC) 7 │ OK │ Update rest of the tags (dst tags: AUTOMATIC, src tags NORMAL) 8 │ OK │ Create leftover tags (dst tags: AUTOMATIC, src tags NORMAL) 9 │ OK │ Create leftover tags (dst tags: AUTOMATIC, src tags AUTOMATIC) 10 │ OK │ Non-empty dst tags, empty src tags, remove automatic tags from destination 11 │ OK │ Non-empty dst tags, empty src tags, remove normal (manual) tags from destination 12 │ OK │ Append tags (dst tags: NORMAL, src tags NORMAL) 13 │ OK │ Append tags (dst tags: NORMAL, src tags AUTOMATIC) 14 │ OK │ Replace tags (dst tags: AUTOMATIC, src tags NORMAL) 15 │ OK │ Replace tags (dst tags: AUTOMATIC, src tags AUTOMATIC) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── DBadd_condition_alloc ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ successfully parsed #1 1 │ OK │ successfully parsed #4 2 │ OK │ successfully parsed #10 3 │ OK │ successfully parsed #951 4 │ OK │ successfully parsed #1000 5 │ OK │ successfully parsed #2000 6 │ OK │ successfully parsed #902501 7 │ OK │ successfully parsed #4x2 8 │ OK │ successfully parsed #5x2 9 │ OK │ successfully parsed #5x4x1 10 │ OK │ successfully parsed #5x4x2 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_del_tags ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Delete all tags from a host, tags are not in database yet 1 │ OK │ Delete all tags from a host, tags are already in database 2 │ OK │ Delete normal tags from a host while keeping automatic tags 3 │ OK │ Tags that are listed for deletion are not present on a host 4 │ OK │ Some tags are listed for deletion while no tags are present on a host 5 │ OK │ No tags are listed for deletion and no tags are present on a host ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── um_cache_resolve ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Resolve {$M0} 1 │ OK │ Resolve {$M1} 2 │ OK │ Resolve {$M2} 3 │ OK │ Resolve {$M3} 4 │ OK │ Resolve {$M4} 5 │ OK │ Resolve {$M5} 6 │ OK │ Resolve {$M6} 7 │ OK │ Resolve {$M7} 8 │ OK │ Resolve {$M8} 9 │ OK │ Resolve {$M8} fail 10 │ OK │ Resolve {$NODE:six} 11 │ OK │ Resolve {$NODE:none} on host:6 12 │ OK │ Resolve {$NODE:none} on host:7 13 │ OK │ Resolve {$NODE:zero} on host:6 14 │ OK │ Resolve {$M1} from long macro list 15 │ OK │ Resolve {$M2} from long macro list 16 │ OK │ Resolve {$M2:1} from long macro list 17 │ OK │ Resolve {$M2:2} from long macro list 18 │ OK │ Resolve {$M2:3} from long macro list 19 │ OK │ Resolve {$M2:4} from long macro list 20 │ OK │ Resolve {$M2:5} from long macro list 21 │ OK │ Resolve {$M2:6} from long macro list 22 │ OK │ Resolve {$M2:7} from long macro list 23 │ OK │ Resolve {$M2:8} from long macro list 24 │ OK │ Resolve {$M2:9} from long macro list 25 │ OK │ Resolve {$M3} from long macro list 26 │ OK │ Resolve {$M4} from long macro list 27 │ OK │ Resolve {$M4:1} from long macro list 28 │ OK │ Resolve {$M4:2} from long macro list 29 │ OK │ Resolve {$M5} from long macro list 30 │ OK │ Resolve {$M:regex:123} 31 │ OK │ Resolve {$M:regex:abc} ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── is_item_processed_by_server ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ invalid item key type (1) 1 │ OK │ invalid item key type (2) 2 │ OK │ invalid item key type (3) 3 │ OK │ invalid item key type (4) 4 │ OK │ invalid item key type (5) 5 │ OK │ invalid item key type (6) 6 │ OK │ invalid item key type (7) 7 │ OK │ invalid item key type (8) 8 │ OK │ invalid item key type (9) 9 │ OK │ invalid item key type (10) 10 │ OK │ invalid item key type (11) 11 │ OK │ valid item key type (12) 12 │ OK │ invalid item key syntax (13) 13 │ OK │ invalid item key syntax (14) 14 │ OK │ invalid item key syntax (15) 15 │ OK │ valid item key syntax (16) 16 │ OK │ invalid item key syntax (17) 17 │ OK │ valid item key syntax (18) 18 │ OK │ invalid item key syntax (19) 19 │ OK │ valid item key syntax (20) 20 │ OK │ invalid item key syntax (21) 21 │ OK │ valid item key syntax (22) 22 │ OK │ valid item key syntax (23) 23 │ OK │ invalid item key syntax (24) 24 │ OK │ invalid item key syntax (25) 25 │ OK │ invalid item key type (26) 26 │ OK │ invalid item key type (27) 27 │ OK │ invalid item key type (27) 28 │ OK │ invalid item key type (29) 29 │ OK │ invalid item key type (32) 30 │ OK │ invalid item key type (33) 31 │ OK │ invalid item key type (34) 32 │ OK │ invalid item key type (35) 33 │ OK │ invalid item key type (36) 34 │ OK │ invalid item key type (37) 35 │ OK │ invalid item key type (38) 36 │ OK │ invalid item key type (39) 37 │ OK │ invalid item key type (40) 38 │ OK │ invalid item key type (41) 39 │ OK │ invalid item key type (42) 40 │ OK │ invalid item key type (43) 41 │ OK │ valid item key type (44) 42 │ OK │ valid item key type (45) 43 │ OK │ invalid item key type (46) 44 │ OK │ invalid item key type (47) 45 │ OK │ invalid item key type (48) 46 │ OK │ invalid item key type (49) 47 │ OK │ non-existing item type (50) 48 │ OK │ non-existing item type (51) 49 │ OK │ valid item key syntax (52) 50 │ OK │ valid item key syntax (53) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── dc_check_maintenance_period ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Period before DST change to summer (0) 1 │ OK │ Period during DST change to summer (1) 2 │ OK │ Long period during DST change to summer (2) 3 │ OK │ Period finishes during DST change to summer (3) 4 │ OK │ Period finishes 1m after DST change to summer (4) 5 │ OK │ Period starts during DST change to summer (5) 6 │ OK │ Period cannot be applied during DST change to summer (6) 7 │ OK │ Daily period during DST change to summer (7) 8 │ OK │ Daily period finishes during DST change to summer (8) 9 │ OK │ Daily period starts during DST change to summer (9) 10 │ OK │ Monthly period during DST change to summer (10) 11 │ OK │ Monthly period finishes during DST change to summer (11) 12 │ OK │ Monthly period starts during DST change to summer (12) 13 │ OK │ Maintenance activity limited during DST change to summer (13) 14 │ OK │ Maintenance activity limited during DST change to summer (14) 15 │ OK │ Period before DST change to winter (15) 16 │ OK │ Period during DST change to winter (16) 17 │ OK │ Long period during DST change to winter (17) 18 │ OK │ Period finishes during DST change to winter (18) 19 │ OK │ Period finishes 1m after DST change to winter (19) 20 │ OK │ Period starts after DST change to winter (20) 21 │ OK │ Daily period during DST change to winter (21) 22 │ OK │ Daily period finishes during DST change to winter (22) 23 │ OK │ Daily period starts after DST change to winter (23) 24 │ OK │ Monthly period during DST change to winter (24) 25 │ OK │ Monthly period finishes during DST change to winter (25) 26 │ OK │ Monthly period starts after DST change to winter (26) 27 │ OK │ Maintenance activity limited during DST change to winter (27) 28 │ OK │ Maintenance activity limited during DST change to winter (28) 29 │ OK │ One time period during DST change to summer (29) 30 │ OK │ One time period finishes during DST change to summer (30) 31 │ OK │ One time period starts during DST change to summer (31) 32 │ OK │ One time period during DST change to winter (32) 33 │ OK │ One time period finishes during DST change to winter (33) 34 │ OK │ One time period starts after DST change to winter (34) 35 │ OK │ Long daily period during DST change to winter (35) 36 │ OK │ Long daily period during DST change to summer (36) 37 │ OK │ Long daily period during exotic DST change to summer (37) 38 │ OK │ Long daily period during exotic DST change to winter (38) 39 │ OK │ Long weekly period during exotic DST change to summer (39) 40 │ OK │ Long weekly period during exotic DST change to winter (40) 41 │ OK │ Short period during DST change to summer (41) 42 │ OK │ Short period during DST change to winter (42) 43 │ OK │ Maintenance activity limited out of DST (43) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── dc_item_poller_type_update ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Poller type update - direct 1 │ OK │ Poller type update - by proxy ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── dc_function_calculate_nextcheck ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Schedule time based trigger from 2020-09-01 00:00:00.000000000 +03:00 1 │ OK │ Schedule time based trigger from 2020-09-01 00:00:15.000000000 +03:00 2 │ OK │ Schedule time based trigger from 2020-09-01 00:00:30.000000000 +03:00 3 │ OK │ Schedule 1h:now/h 2020-09-01 10:30:30.000000000 +03:00 4 │ OK │ Schedule 1h:now/h 2020-09-01 10:00:00.000000000 +03:00 5 │ OK │ Schedule 1h:now/h 2020-09-01 10:59:00.000000000 +03:00 6 │ OK │ Schedule 1h:now/d 2020-09-01 10:00:00.000000000 +03:00 7 │ OK │ Schedule 1h:now/M+1h 2020-09-01 10:00:00.000000000 +03:00 8 │ OK │ Schedule 1h:now/M+1d 2020-09-01 10:00:00.000000000 +03:00 9 │ OK │ Schedule 1h:now/M+1d 2020-09-02 10:00:00.000000000 +03:00 10 │ OK │ Schedule 1d:now/M+6d/w+1d 2020-09-01 10:00:00.000000000 +03:00 11 │ OK │ Schedule 1d:now/M+6d/w+1d 2020-09-09 10:00:00.000000000 +03:00 12 │ OK │ Schedule 8h:now/d+17h 2020-09-01 10:00:00.000000000 +03:00 13 │ OK │ Schedule 8h:now/d+17h 2020-09-01 18:00:00.000000000 +03:00 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── dc_maintenance_match_tags ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ No maintenance and event tags (1) 1 │ OK │ No maintenance and event tags (2) 2 │ OK │ Maintenance tags with no event tags (1) 3 │ OK │ Maintenance tags with matching event tags (1) 4 │ OK │ Maintenance tags with matching event tags (2) 5 │ OK │ Maintenance tags with matching event tags (3) 6 │ OK │ Maintenance tags with matching event tags (4) 7 │ OK │ Maintenance tags with matching event tags (5) 8 │ OK │ Maintenance tags with matching event tags (6) 9 │ OK │ Maintenance tags with matching event tags (7) 10 │ OK │ Maintenance tags with matching event tags (8) 11 │ OK │ Maintenance tags with matching event tags (9) 12 │ OK │ Maintenance tags with matching event tags (10) 13 │ OK │ Maintenance tags with matching event tags (11) 14 │ OK │ Maintenance tags with matching event tags (12) 15 │ OK │ Maintenance tags with matching event tags (13) 16 │ OK │ Maintenance tags with matching event tags (14) 17 │ OK │ Maintenance tags with matching event tags (15) 18 │ OK │ Maintenance tags with matching event tags (16) 19 │ OK │ Maintenance tags with matching event tags (17) 20 │ OK │ Maintenance tags with matching event tags (18) 21 │ OK │ Maintenance tags with not matching event tags (1) 22 │ OK │ Maintenance tags with not matching event tags (2) 23 │ OK │ Maintenance tags with not matching event tags (3) 24 │ OK │ Maintenance tags with not matching event tags (4) 25 │ OK │ Maintenance tags with not matching event tags (5) 26 │ OK │ Maintenance tags with not matching event tags (6) 27 │ OK │ Maintenance tags with not matching event tags (7) 28 │ OK │ Maintenance tags with matching event tags (8) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── dc_expand_user_macros_in_func_params ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Expand '{$A}' with {$A}=1 1 │ OK │ Expand '{$A}' with {$A}=(1) 2 │ OK │ Expand '' 3 │ OK │ Expand ' ' 4 │ OK │ Expand '{$A}' 5 │ OK │ Expand ',' 6 │ OK │ Expand '{$A}' with {$A}="1" 7 │ OK │ Expand '"{$A}"' with {$A}=1 8 │ OK │ Expand '1 ,2 ,3 ' 9 │ OK │ Expand '1 , ,3 ' 10 │ OK │ Expand ',2 ,3 ' 11 │ OK │ Expand '{$A} ,{$B} ,{$C} with {$A}=1, {$B}="2", {$C}=(3)' 12 │ OK │ Expand '{$A}{$B}{$C} with {$A}=1, {$B}="2", {$C}=(3)' 13 │ OK │ Expand '{$A}' with {$A}=1,2,3 14 │ OK │ Expand '{$A},{$B}' with {$A}='', {$B}='' 15 │ OK │ Expand '{$A:a,b},{$A:c,d}' with {$A:a,b}='ab', {$B:c,d}='cd' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── um_cache_resolve_cont ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Continuous macro resolving ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── um_cache_sync ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Unlocked sync with macro/host template removal 1 │ OK │ Locked sync with macro/host template removal 2 │ OK │ Unlocked sync with macro/host template addition 3 │ OK │ Locked sync with macro/host template addition 4 │ OK │ Global macro update ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── parse_cfg_file ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ valid configuration file 1 │ OK │ recursive self inclusion 2 │ OK │ recursive inclusion loop 3 │ OK │ maximum allowed inclusion levels 4 │ OK │ too many inclusion levels 5 │ OK │ user parameters, 3 comas 6 │ OK │ user parameters, 3 user parameters ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tcp_recv_ext ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Zero bytes received 1 │ OK │ Correct number of bytes received 2 │ OK │ Fragmented header 3 │ OK │ Fragmented incorrect header in part 1 4 │ OK │ Fragmented incorrect header in part 2 5 │ OK │ Header in separate fragment 6 │ OK │ Header in separate fragment incorrect 7 │ OK │ Whole header fragmented 8 │ OK │ Only header with 0 data 9 │ OK │ Header is too small 10 │ OK │ Version not received 11 │ OK │ Incorrect version 0 in header 12 │ OK │ Incorrect version in header only compression 13 │ OK │ Unsupported and supported versions in header 14 │ OK │ Received header signature without version 15 │ OK │ Hheader + version received 16 │ OK │ Header + version + data size received 17 │ OK │ Header and data length fragmented 18 │ OK │ Data length indicator exceed max size 19 │ OK │ Don't accept if bigger length is supplied in header than sent 20 │ OK │ Don't accept if smaller length supplied than sent 21 │ OK │ Data length is too small 22 │ OK │ Fragmented key 23 │ OK │ Fragmented key by bytes 24 │ OK │ Whole message streamed by 1 byte 25 │ OK │ Stat buffer almost filled 26 │ OK │ Stat buffer filled 27 │ OK │ Second receive is required but still stat buffer 28 │ OK │ Stat buffer is not enough for data, switching to dynamic 29 │ OK │ Second receive, dynamic and fragmented 30 │ OK │ Second receive, received more than expected 31 │ OK │ Lots of binary data ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tcp_recv_raw_ext ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Zero bytes received 1 │ OK │ Correct number of bytes received 2 │ OK │ Correct number of bytes received fragmented 3 │ OK │ Stat buffer filled 4 │ OK │ Stat buffer filled and switched to dynamic fragmented 5 │ OK │ Correct number of bytes received binary stat buffer 6 │ OK │ Correct number of bytes received binary dynamic buffer 7 │ OK │ Lots of binary data ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tcp_recv_ext_zlib ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Compressed data 1 │ OK │ Corrupted compressed data 2 │ OK │ Compressed data with uncompressed size greater than expected 3 │ OK │ Compressed data with uncompressed size less than expected 4 │ OK │ Compressed data with large length fields ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_compose_expression ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Replace '{$U} -> 10' 1 │ OK │ Replace '{$U} -> xyz' 2 │ OK │ Replace '{$U} -> x\y/z' 3 │ OK │ Replace '{$U} -> xyz' 4 │ OK │ Replace '"{$U}" -> 123' 5 │ OK │ Replace '"{#LLD}" -> c:\data' 6 │ OK │ Replace '"{#U}" -> 123' 7 │ OK │ Replace '{123} -> {456}' 8 │ OK │ Replace '"{#U}" -> 1m' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_execute ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Expression '1 + 2 * 3' 1 │ OK │ Expression '1' 2 │ OK │ Expression '"x\"y\"z"' 3 │ OK │ Expression '{$M}' 4 │ OK │ Expression '{$M}' 5 │ OK │ Expression '{M}' 6 │ OK │ Expression '{M}' 7 │ OK │ Expression '{123}' 8 │ OK │ Expression '{123}' 9 │ OK │ Expression '-1' 10 │ OK │ Expression '--1' 11 │ OK │ Expression '- "2"' 12 │ OK │ Expression '1+2' 13 │ OK │ Expression '1-2' 14 │ OK │ Expression '3*2' 15 │ OK │ Expression '1/2' 16 │ OK │ Expression '1=1' 17 │ OK │ Expression '1=2' 18 │ OK │ Expression '"xyz"="xyz"' 19 │ OK │ Expression '"xyz"="abc"' 20 │ OK │ Expression '1<>1' 21 │ OK │ Expression '1<>2' 22 │ OK │ Expression '"xyz"<>"xyz"' 23 │ OK │ Expression '"xyz"<>"abc"' 24 │ OK │ Expression '1<2' 25 │ OK │ Expression '3<2' 26 │ OK │ Expression '1<1' 27 │ OK │ Expression '2>2' 28 │ OK │ Expression '2>1' 29 │ OK │ Expression '1<=2' 30 │ OK │ Expression '2<=2' 31 │ OK │ Expression '1<=3' 32 │ OK │ Expression '2>=1' 33 │ OK │ Expression '2>=2' 34 │ OK │ Expression '2>=3' 35 │ OK │ Expression '0 or 0' 36 │ OK │ Expression '0 or 1' 37 │ OK │ Expression '1 or 0' 38 │ OK │ Expression '1 or 1' 39 │ OK │ Expression '0 and 0' 40 │ OK │ Expression '0 and 1' 41 │ OK │ Expression '1 and 0' 42 │ OK │ Expression '1 and 1' 43 │ OK │ Expression 'not 1' 44 │ OK │ Expression 'not not 1' 45 │ OK │ Expression 'not "a"' 46 │ OK │ Expression 'min(2, 1)' 47 │ OK │ Expression 'min(2, 3)' 48 │ OK │ Expression 'max(2, 1)' 49 │ OK │ Expression 'max(2, 3)' 50 │ OK │ Expression 'sum(1, 2, 3)' 51 │ OK │ Expression 'avg(1, 2, 9)' 52 │ OK │ Expression 'min(max(1, 3), max(2, 4))' 53 │ OK │ Expression 'max("2", "1")' 54 │ OK │ Expression 'max("2", "a")' 55 │ OK │ Expression 'min(1 + 2, 0.5 + 1.5)' 56 │ OK │ Expression '{$M} or 1' 57 │ OK │ Expression '{$M} or 0' 58 │ OK │ Expression '{$M} or 1' 59 │ OK │ Expression '{$M} or "a"' 60 │ OK │ Expression '{$M} or 0' 61 │ OK │ Expression '{$M} and 1' 62 │ OK │ Expression '{$M} and 0' 63 │ OK │ Expression '{$M} and 1' 64 │ OK │ Expression '{$M} and 0' 65 │ OK │ Expression '{$M} and "a"' 66 │ OK │ Expression '{$M} + 2 or 1' 67 │ OK │ Expression '{$M} + 2 and 0' 68 │ OK │ Expression 'length("")' 69 │ OK │ Expression 'length("abc")' 70 │ OK │ Expression 'length(4)' 71 │ OK │ Expression 'length("ы")' 72 │ OK │ Expression 'length()' 73 │ OK │ Expression 'length(1, 2)' 74 │ OK │ Expression 'abs(5)' 75 │ OK │ Expression 'abs(-10)' 76 │ OK │ Expression 'abs()' 77 │ OK │ Expression 'abs("xyz")' 78 │ OK │ Expression 'date(1)' 79 │ OK │ Expression 'date()' 80 │ OK │ Expression 'time(1)' 81 │ OK │ Expression 'time()' 82 │ OK │ Expression 'now(1)' 83 │ OK │ Expression 'now()' 84 │ OK │ Expression 'dayofmonth(1)' 85 │ OK │ Expression 'dayofmonth()' 86 │ OK │ Expression 'dayofweek(1)' 87 │ OK │ Expression 'dayofweek()' 88 │ OK │ Expression '1K' 89 │ OK │ Expression '3 + 4 * 2 / ( 1 - 5 )' 90 │ OK │ Expression '1 + 3*4 = 13' 91 │ OK │ Expression '1 + 2*4 = 13' 92 │ OK │ Expression '0.1+0.1 > 0.1' 93 │ OK │ Expression '.1+.1 > 0.1' 94 │ OK │ Expression '1m=60s' 95 │ OK │ Expression '1e+309<>0' 96 │ OK │ Expression '1e+309s<>0' 97 │ OK │ Expression '1e+308<>0' 98 │ OK │ Expression '"a" and "b"' 99 │ OK │ Expression '1e+308K<>0' 100 │ OK │ Expression '1e+308K<>0' 101 │ OK │ Expression '{$M}=60' 102 │ OK │ Expression '{$M}' 103 │ OK │ Expression '"1" < "g"' 104 │ OK │ Expression '"1" = "1.0"' 105 │ OK │ Expression 'min(2s, 1m)' 106 │ OK │ Expression 'min(2s, 1m),' 107 │ OK │ Expression '-60={$M}' 108 │ OK │ Expression '"1m"=60s' 109 │ OK │ Expression 'min("1m", 30s)' 110 │ OK │ Expression 'in(1, 2, 1)' 111 │ OK │ Expression 'in(3, 2, 1)' 112 │ OK │ Expression 'in(3, 2, 1)' 113 │ OK │ Expression 'in("a", 3, "a", 1)' 114 │ OK │ Expression 'in("a", 3, "b", 1)' 115 │ OK │ Expression 'between(1, 1, 2)' 116 │ OK │ Expression 'between("1", "1", "2")' 117 │ OK │ Expression 'between("1", "a", "2")' 118 │ OK │ Expression 'between(3, 1, 2)' 119 │ OK │ Expression 'between(1, 1, 2, 4)' 120 │ OK │ Expression 'bitand(14, 3)' 121 │ OK │ Expression 'bitor(3, 10)' 122 │ OK │ Expression 'bitxor(14, 3)' 123 │ OK │ Expression 'bitlshift(3, 2)' 124 │ OK │ Expression 'bitrshift(12, 2)' 125 │ OK │ Expression 'bitnot(18446744073709551602)' 126 │ OK │ Expression 'left("Zabbix", 2)' 127 │ OK │ Expression 'left("Заббикс", 2)' 128 │ OK │ Expression 'left("Zabbix", 10)' 129 │ OK │ Expression 'left("Zabbix", 0)' 130 │ OK │ Expression 'left("Zabbix", -1)' 131 │ OK │ Expression 'left("Zabbix", 2.999999999)' 132 │ OK │ Expression 'left("Zabbix", "")' 133 │ OK │ Expression 'left("", 1)' 134 │ OK │ Expression 'left("Zabbix", 7)' 135 │ OK │ Expression 'left("Zabbix", 6)' 136 │ OK │ Expression 'left("Zabbix", 5)' 137 │ OK │ Expression 'left("Zabbix", 1)' 138 │ OK │ Expression 'mid("Zabbix", 3, 2)' 139 │ OK │ Expression 'mid("Zabbix", 3, 10)' 140 │ OK │ Expression 'mid("Заббикс", 3, 10)' 141 │ OK │ Expression 'mid("Заббикс", 3, 2)' 142 │ OK │ Expression 'mid("Zabbix", 3, 0)' 143 │ OK │ Expression 'mid("Zabbix", 0, 0)' 144 │ OK │ Expression 'mid("Zabbix", 33, 1)' 145 │ OK │ Expression 'mid("Zabbix", 2, 3)' 146 │ OK │ Expression 'mid("Zabbix", 2, 4)' 147 │ OK │ Expression 'mid("Zabbix", 2, 5)' 148 │ OK │ Expression 'mid("Zabbix", 2, 6)' 149 │ OK │ Expression 'right("Zabbix", 2)' 150 │ OK │ Expression 'right("Zabbix", 10)' 151 │ OK │ Expression 'right("Заббикс", 2)' 152 │ OK │ Expression 'right("Заббикс", 10)' 153 │ OK │ Expression 'right("Zabbix", 0)' 154 │ OK │ Expression 'right("Заббикс", 0)' 155 │ OK │ Expression 'right("Zabbix", 7)' 156 │ OK │ Expression 'right("Zabbix", 6)' 157 │ OK │ Expression 'right("Zabbix", 5)' 158 │ OK │ Expression 'right("Zabbix", 1)' 159 │ OK │ Expression 'trim("zZabbixz", "z")' 160 │ OK │ Expression 'trim("Zabbixz", "z")' 161 │ OK │ Expression 'trim(" Zabbix ", " ")' 162 │ OK │ Expression 'trim(" Zabbix", " ")' 163 │ OK │ Expression 'trim(" Zabbix ")' 164 │ OK │ Expression 'trim("")' 165 │ OK │ Expression 'ltrim(" Zabbix ", " ")' 166 │ OK │ Expression 'rtrim(" Zabbix ", " ")' 167 │ OK │ Expression 'concat("Zabbix ", "server")' 168 │ OK │ Expression 'concat("", "")' 169 │ OK │ Expression 'repeat("Zabbix", 3)' 170 │ OK │ Expression 'repeat("ZabbixЗаббикс", 2)' 171 │ OK │ Expression 'repeat("Zabbix", 0)' 172 │ OK │ Expression 'repeat("Zabbix", 999999)' 173 │ OK │ Expression 'char(65)' 174 │ OK │ Expression 'char(256)' 175 │ OK │ Expression 'ascii("A")' 176 │ OK │ Expression 'ascii("Ф")' 177 │ OK │ Expression 'bytelength(256)' 178 │ OK │ Expression 'bytelength(123123123123)' 179 │ OK │ Expression 'bytelength("word")' 180 │ OK │ Expression 'bitlength(256)' 181 │ OK │ Expression 'bitlength(0)' 182 │ OK │ Expression 'bitlength("word")' 183 │ OK │ Expression 'insert("Zibix", 2, 2, "abb")' 184 │ OK │ Expression 'insert("Зибикс", 2, 2, "абб")' 185 │ OK │ Expression 'insert("zabbix", 2, 2, "")' 186 │ OK │ Expression 'insert("", 1, 1, "zabbix")' 187 │ OK │ Expression 'insert("", 0, 0, "")' 188 │ OK │ Expression 'insert("Zabbix",2,33,"aaa")' 189 │ OK │ Expression 'insert("Zbx", 3, 1, "i")' 190 │ OK │ Expression 'insert("Zbx", 2, 2, "i")' 191 │ OK │ Expression 'insert("Zbx", 2, 3, "i")' 192 │ OK │ Expression 'replace("Zibix", "ibi", "abbi")' 193 │ OK │ Expression 'replace("Зибикс", "иби", "абби")' 194 │ OK │ Expression 'replace("Zibix", "", "abbi")' 195 │ OK │ Expression 'replace("Zibix", "ibi", "")' 196 │ OK │ Expression 'replace("", "ibi", "abbi")' 197 │ OK │ Expression 'replace("Hello Hello", "ll", "y")' 198 │ OK │ Expression 'sqrt(64)' 199 │ OK │ Expression 'sqrt(2.5)' 200 │ OK │ Expression 'sqrt(0)' 201 │ OK │ Expression 'sqrt(-1)' 202 │ OK │ Expression 'abs(3.5)' 203 │ OK │ Expression 'abs(-3.5)' 204 │ OK │ Expression 'cbrt(64)' 205 │ OK │ Expression 'cbrt(63)' 206 │ OK │ Expression 'cbrt(2.5)' 207 │ OK │ Expression 'ceil(2)' 208 │ OK │ Expression 'ceil(2.5)' 209 │ OK │ Expression 'ceil(-2.5)' 210 │ OK │ Expression 'e()' 211 │ OK │ Expression 'e(1)' 212 │ OK │ Expression 'exp(2)' 213 │ OK │ Expression 'exp(2.5)' 214 │ OK │ Expression 'expm1(2)' 215 │ OK │ Expression 'expm1(2.5)' 216 │ OK │ Expression 'expm1(expm1(2))' 217 │ OK │ Expression 'floor(2.6)' 218 │ OK │ Expression 'floor(2)' 219 │ OK │ Expression 'floor(-2.8)' 220 │ OK │ Expression 'log(2)' 221 │ OK │ Expression 'log(2.5)' 222 │ OK │ Expression 'log(0)' 223 │ OK │ Expression 'log10(5)' 224 │ OK │ Expression 'log10(0)' 225 │ OK │ Expression 'log10(2.5)' 226 │ OK │ Expression 'pi()' 227 │ OK │ Expression 'pi(1)' 228 │ OK │ Expression 'power(2,3)' 229 │ OK │ Expression 'power(2,2.5)' 230 │ OK │ Expression 'power(2.5,2.5)' 231 │ OK │ Expression 'round(2.5482,2)' 232 │ OK │ Expression 'round(2.5482,0)' 233 │ OK │ Expression 'round(2.5482,-1)' 234 │ OK │ Expression 'round(2.5482,1.5)' 235 │ OK │ Expression 'signum(-2)' 236 │ OK │ Expression 'signum(2)' 237 │ OK │ Expression 'signum(2.5)' 238 │ OK │ Expression 'signum(0)' 239 │ OK │ Expression 'truncate(2.5482,2)' 240 │ OK │ Expression 'truncate(2.5482,0)' 241 │ OK │ Expression 'truncate(2.5482,-1)' 242 │ OK │ Expression 'truncate(2.5482,1.5)' 243 │ OK │ Expression 'acos(0.5)' 244 │ OK │ Expression 'asin(0.5)' 245 │ OK │ Expression 'atan(1)' 246 │ OK │ Expression 'atan2(3,2)' 247 │ OK │ Expression 'atan2(3,2.5)' 248 │ OK │ Expression 'atan2(0,0)' 249 │ OK │ Expression 'cos(1)' 250 │ OK │ Expression 'cosh(1)' 251 │ OK │ Expression 'cot(1)' 252 │ OK │ Expression 'cot(0)' 253 │ OK │ Expression 'degrees(1)' 254 │ OK │ Expression 'radians(1)' 255 │ OK │ Expression 'sin(1)' 256 │ OK │ Expression 'sinh(1)' 257 │ OK │ Expression 'tan(1)' 258 │ OK │ Expression 'mod(5,2)' 259 │ OK │ Expression 'mod(5.5,2)' 260 │ OK │ Expression 'mod(-5,-2)' 261 │ OK │ Expression 'mod(-5.5,2)' 262 │ OK │ Expression 'mod(-5.5,0)' 263 │ OK │ Expression 'mod(123,6.253)' 264 │ OK │ Expression 'rand(1)' 265 │ OK │ Expression 'power(10,400)' 266 │ OK │ Expression 'power(10,300)*power(10,300)' 267 │ OK │ Expression 'histogram_quantile(0.8, 0.1, 1, 0.2, 2, +Inf, 3)' 268 │ OK │ Expression 'histogram_quantile(0.8, 0.2, 10, 0.4, 20, 1.0, 60, 1.2, 70, +Inf, 80)' 269 │ OK │ Expression 'histogram_quantile(0.8, 0.2, 10, 0.4, 20, 1.0, 25, 1.0, 35, 1.2, 70, +Inf, 80)' 270 │ OK │ Expression 'histogram_quantile(0.8, 0.2, 10, 1.0, 60, 0.4, 20, 1.2, 70, +Inf, 80)' 271 │ OK │ Expression 'histogram_quantile(0.8, 0.1, 1)' 272 │ OK │ Expression 'histogram_quantile(0.8, 0.1, 1, 0.2, 2, 0.3, 3)' 273 │ OK │ Expression 'histogram_quantile(0.8, 0.2, 2, 0.1, "+Inf", 3)' 274 │ OK │ Expression 'histogram_quantile(0.8, 0.1, 1, 0.2, 2, +Inf, 0)' 275 │ OK │ Expression 'histogram_quantile(0.8, 0.1, 0, 0.2, 0, +Inf, 0)' 276 │ OK │ Expression 'histogram_quantile(-0.1, 0.2, 10, 0.4, 20, 1.0, 60, 1.2, 70, +Inf, 80)' 277 │ OK │ Expression 'histogram_quantile(1.1, 0.2, 10, 0.4, 20, 1.0, 60, 1.2, 70, +Inf, 80)' 278 │ OK │ Expression 'replace(0, 0, 0)' 279 │ OK │ Expression 'jsonpath("{\"val\":\"str\"}", "$.val")' 280 │ OK │ Expression 'jsonpath("{\"val1\":\"str\"}", "$.val", "default")' 281 │ OK │ Expression 'jsonpath("{\"val\":\"\"}", "$.val")' 282 │ OK │ Expression 'jsonpath("{}", "$.val")' 283 │ OK │ Expression 'xmlxpath("", "/response/error/status/text()", "unknown status")' 284 │ OK │ Expression 'xmlxpath("", "/response/error/status", "unknown status")' 285 │ OK │ Expression 'xmlxpath("abc", "/response/error/status/text()")' 286 │ OK │ Expression 'xmlxpath("", "string(/response/error/status)", "unknown status")' 287 │ OK │ Expression 'xmlxpath("", "/response/error/status/text()")' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_parse_query ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Success '/host/key?[filter]' 1 │ OK │ Success '/*/*' 2 │ OK │ Success '//*?[group="a"]' 3 │ OK │ Success '/host/key[]?[group="a"]' 4 │ OK │ Success '/h o s t/key[?, "[]"]?[group="\"a\""]' 5 │ OK │ Success '/{HOST.HOST}/key' 6 │ OK │ Success '/{HOST.HOST}/{ITEM.KEY}' 7 │ OK │ Success '/host/{ITEM.KEY}' 8 │ OK │ Success '/{HOST.HOST1}/{ITEM.KEY1}' 9 │ OK │ Failure '/*/*?' 10 │ OK │ Failure '/*/*?[' 11 │ OK │ Failure '/*/*[' 12 │ OK │ Failure '/{HOST.HOST/key' 13 │ OK │ Failure '/{HOST.HOST}/{ITEM.KEY' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_serialize ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Base 1 │ OK │ Stack size 2 │ OK │ Auto-generated case 1 for random limit 7 3 │ OK │ Auto-generated case 2 for random limit 7 4 │ OK │ Auto-generated case 3 for random limit 7 5 │ OK │ Auto-generated case 4 for random limit 7 6 │ OK │ Auto-generated case 5 for random limit 7 7 │ OK │ Auto-generated case 6 for random limit 7 8 │ OK │ Auto-generated case 7 for random limit 7 9 │ OK │ Auto-generated case 8 for random limit 7 10 │ OK │ Auto-generated case 9 for random limit 7 11 │ OK │ Auto-generated case 10 for random limit 7 12 │ OK │ Auto-generated case 1 for random limit 7f 13 │ OK │ Auto-generated case 2 for random limit 7f 14 │ OK │ Auto-generated case 3 for random limit 7f 15 │ OK │ Auto-generated case 4 for random limit 7f 16 │ OK │ Auto-generated case 5 for random limit 7f 17 │ OK │ Auto-generated case 6 for random limit 7f 18 │ OK │ Auto-generated case 7 for random limit 7f 19 │ OK │ Auto-generated case 8 for random limit 7f 20 │ OK │ Auto-generated case 9 for random limit 7f 21 │ OK │ Auto-generated case 10 for random limit 7f 22 │ OK │ Auto-generated case 1 for random limit 7ff 23 │ OK │ Auto-generated case 2 for random limit 7ff 24 │ OK │ Auto-generated case 3 for random limit 7ff 25 │ OK │ Auto-generated case 4 for random limit 7ff 26 │ OK │ Auto-generated case 5 for random limit 7ff 27 │ OK │ Auto-generated case 6 for random limit 7ff 28 │ OK │ Auto-generated case 7 for random limit 7ff 29 │ OK │ Auto-generated case 8 for random limit 7ff 30 │ OK │ Auto-generated case 9 for random limit 7ff 31 │ OK │ Auto-generated case 10 for random limit 7ff 32 │ OK │ Auto-generated case 1 for random limit 7fff 33 │ OK │ Auto-generated case 2 for random limit 7fff 34 │ OK │ Auto-generated case 3 for random limit 7fff 35 │ OK │ Auto-generated case 4 for random limit 7fff 36 │ OK │ Auto-generated case 5 for random limit 7fff 37 │ OK │ Auto-generated case 6 for random limit 7fff 38 │ OK │ Auto-generated case 7 for random limit 7fff 39 │ OK │ Auto-generated case 8 for random limit 7fff 40 │ OK │ Auto-generated case 9 for random limit 7fff 41 │ OK │ Auto-generated case 10 for random limit 7fff 42 │ OK │ Auto-generated case 1 for random limit 7ffff 43 │ OK │ Auto-generated case 2 for random limit 7ffff 44 │ OK │ Auto-generated case 3 for random limit 7ffff 45 │ OK │ Auto-generated case 4 for random limit 7ffff 46 │ OK │ Auto-generated case 5 for random limit 7ffff 47 │ OK │ Auto-generated case 6 for random limit 7ffff 48 │ OK │ Auto-generated case 7 for random limit 7ffff 49 │ OK │ Auto-generated case 8 for random limit 7ffff 50 │ OK │ Auto-generated case 9 for random limit 7ffff 51 │ OK │ Auto-generated case 10 for random limit 7ffff 52 │ OK │ Auto-generated case 1 for random limit 7fffff 53 │ OK │ Auto-generated case 2 for random limit 7fffff 54 │ OK │ Auto-generated case 3 for random limit 7fffff 55 │ OK │ Auto-generated case 4 for random limit 7fffff 56 │ OK │ Auto-generated case 5 for random limit 7fffff 57 │ OK │ Auto-generated case 6 for random limit 7fffff 58 │ OK │ Auto-generated case 7 for random limit 7fffff 59 │ OK │ Auto-generated case 8 for random limit 7fffff 60 │ OK │ Auto-generated case 9 for random limit 7fffff 61 │ OK │ Auto-generated case 10 for random limit 7fffff 62 │ OK │ Auto-generated case 1 for random limit 7ffffff 63 │ OK │ Auto-generated case 2 for random limit 7ffffff 64 │ OK │ Auto-generated case 3 for random limit 7ffffff 65 │ OK │ Auto-generated case 4 for random limit 7ffffff 66 │ OK │ Auto-generated case 5 for random limit 7ffffff 67 │ OK │ Auto-generated case 6 for random limit 7ffffff 68 │ OK │ Auto-generated case 7 for random limit 7ffffff 69 │ OK │ Auto-generated case 8 for random limit 7ffffff 70 │ OK │ Auto-generated case 9 for random limit 7ffffff 71 │ OK │ Auto-generated case 10 for random limit 7ffffff 72 │ OK │ Auto-generated case 1 for random limit 7fffffff 73 │ OK │ Auto-generated case 2 for random limit 7fffffff 74 │ OK │ Auto-generated case 3 for random limit 7fffffff 75 │ OK │ Auto-generated case 4 for random limit 7fffffff 76 │ OK │ Auto-generated case 5 for random limit 7fffffff 77 │ OK │ Auto-generated case 6 for random limit 7fffffff 78 │ OK │ Auto-generated case 7 for random limit 7fffffff 79 │ OK │ Auto-generated case 8 for random limit 7fffffff 80 │ OK │ Auto-generated case 9 for random limit 7fffffff 81 │ OK │ Auto-generated case 10 for random limit 7fffffff 82 │ OK │ Base Large ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_parse_expression ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Fail '' 1 │ OK │ Succeed '0' 2 │ OK │ Fail (no rules) '0' 3 │ OK │ Succeed '0.1' 4 │ OK │ Succeed '1s' 5 │ OK │ FAIL 's' 6 │ OK │ Succeed '.1' 7 │ OK │ Succeed '1.' 8 │ OK │ Fail '1.1.' 9 │ OK │ Succeed '1e10' 10 │ OK │ Fail '1e1000' 11 │ OK │ Succeed '"xyz"' 12 │ OK │ Fail (no rules) '"xyz"' 13 │ OK │ Succeed '"x\\\"y\"z/"' 14 │ OK │ Fail '"x\yz"' 15 │ OK │ Succeed '""' 16 │ OK │ Fail '"xyz' 17 │ OK │ Fail '"xyz\"' 18 │ OK │ Succeed '{1}' 19 │ OK │ Succeed '{1}' 20 │ OK │ Fail '{1}' 21 │ OK │ Succeed '{MACRO}' 22 │ OK │ Succeed '{{MACRO}.func()}' 23 │ OK │ Succeed '{$MACRO}' 24 │ OK │ Succeed '{$MACRO:context}' 25 │ OK │ Fail '{$MACRO:context' 26 │ OK │ Succeed '{$MACRO:"context:\"context\""}' 27 │ OK │ Fail '{$MACRO:"context:\"context\"}' 28 │ OK │ Fail '{$MACRO}1' 29 │ OK │ Succeed '{$MACRO}1' 30 │ OK │ Succeed '1{$MACRO}' 31 │ OK │ Succeed '{$USER}{$MACRO}' 32 │ OK │ Succeed '{$MACRO}s' 33 │ OK │ Succeed '{$MACRO}x' 34 │ OK │ Succeed '1-1' 35 │ OK │ Succeed '{#LLD}' 36 │ OK │ Fail '{#LLD}' 37 │ OK │ Fail '{#LLD' 38 │ OK │ Succeed '{{#LLD}.function()}' 39 │ OK │ Succeed '1{{#LLD}.function()}' 40 │ OK │ Succeed '.{{#LLD}.function()}' 41 │ OK │ Succeed '{{#LLD}.function()}.{{#LLD}.function()}' 42 │ OK │ Succeed '{{#LLD}.function()}e{{#LLD}.function()}' 43 │ OK │ Succeed 'e{{#LLD}.function()}' 44 │ OK │ Fail '()' 45 │ OK │ Succeed '(0)' 46 │ OK │ Fail '(0' 47 │ OK │ Fail '0)' 48 │ OK │ Succeed '((0))' 49 │ OK │ Fail '-' 50 │ OK │ Succeed '-1' 51 │ OK │ Succeed '-(1)' 52 │ OK │ Succeed '-{MACRO}' 53 │ OK │ Succeed '--1' 54 │ OK │ Succeed '- - 1' 55 │ OK │ Succeed '-(-1)' 56 │ OK │ Fail '+' 57 │ OK │ Fail '-' 58 │ OK │ Fail '/' 59 │ OK │ Fail '*' 60 │ OK │ Fail '1+' 61 │ OK │ Fail '1-' 62 │ OK │ Fail '1/' 63 │ OK │ Fail '1*' 64 │ OK │ Fail '+1' 65 │ OK │ Fail '/1' 66 │ OK │ Fail '*1' 67 │ OK │ Succeed '1+2' 68 │ OK │ Succeed '1+2-3' 69 │ OK │ Succeed '1-2+3' 70 │ OK │ Fail '2**1' 71 │ OK │ Fail '2++1' 72 │ OK │ Fail '2//1' 73 │ OK │ Succeed '2--1' 74 │ OK │ Succeed '1+2*3' 75 │ OK │ Succeed '1*2+3' 76 │ OK │ Succeed '1+2*3-4' 77 │ OK │ Succeed '1/2+3*4' 78 │ OK │ Succeed '1/(2+3)*4' 79 │ OK │ Succeed '1+(2-(3+4))' 80 │ OK │ Succeed '((1+2)-3)+4' 81 │ OK │ Succeed '1=2' 82 │ OK │ Succeed '1<>2' 83 │ OK │ Succeed '1<2' 84 │ OK │ Succeed '1<=2' 85 │ OK │ Succeed '1>2' 86 │ OK │ Succeed '1>=2' 87 │ OK │ Fail '1=' 88 │ OK │ Fail '1<>' 89 │ OK │ Fail '1<' 90 │ OK │ Fail '1<=' 91 │ OK │ Fail '1>' 92 │ OK │ Fail '1>=' 93 │ OK │ Fail '=1' 94 │ OK │ Fail '<>1' 95 │ OK │ Fail '<1' 96 │ OK │ Fail '<=1' 97 │ OK │ Fail '>1' 98 │ OK │ Fail '>=1' 99 │ OK │ Fail '1==1' 100 │ OK │ Fail '1=<1' 101 │ OK │ Fail '1=>1' 102 │ OK │ Succeed '3 > 2 <> 1' 103 │ OK │ Succeed '3 = 2 + 1' 104 │ OK │ Succeed '(3 = 2) + 1' 105 │ OK │ Fail '1=+2' 106 │ OK │ Fail '1+=2' 107 │ OK │ Succeed '1=-2' 108 │ OK │ Fail 'not 1' 109 │ OK │ Succeed 'not 1' 110 │ OK │ Fail 'not1' 111 │ OK │ Succeed 'not(1)' 112 │ OK │ Succeed 'not 1 + 2' 113 │ OK │ Succeed 'not (1 + 2)' 114 │ OK │ Succeed '(not 1)' 115 │ OK │ Succeed '1 = not 2' 116 │ OK │ Fail '1 + not' 117 │ OK │ Fail '1 +not 2' 118 │ OK │ Succeed '1+2*3-{MACRO}' 119 │ OK │ Succeed '1=2 or 3<4' 120 │ OK │ Succeed '1=2 and 3<4' 121 │ OK │ Succeed '1 or 2 and 3 or 4' 122 │ OK │ Succeed '1 or 2 and 3 or 4' 123 │ OK │ Fail '1 and' 124 │ OK │ Fail '1 or' 125 │ OK │ Fail 'and 1' 126 │ OK │ Fail 'or 1' 127 │ OK │ Fail '1 and1' 128 │ OK │ Fail '1and 1' 129 │ OK │ Succeed '(1)and(2)' 130 │ OK │ Succeed 'min()' 131 │ OK │ Fail 'min(' 132 │ OK │ Succeed 'min(1)' 133 │ OK │ Succeed 'min(1,2)' 134 │ OK │ Succeed 'min(1,)' 135 │ OK │ Succeed 'min(,)' 136 │ OK │ Succeed 'min(1,"xyz")' 137 │ OK │ Succeed 'min(1,{$MACRO:context,})' 138 │ OK │ Succeed '1 + min(2, 3) - 4' 139 │ OK │ Succeed 'avg(min(1, 2), 3, max(4, 5, 6))' 140 │ OK │ Succeed 'min(1, , 2)' 141 │ OK │ Succeed 'min(/host/key,1)' 142 │ OK │ Fail 'min(/host/key,1)' 143 │ OK │ Fail 'min(,1m:now-1d)' 144 │ OK │ Succeed 'min(/host/key,5m)' 145 │ OK │ Succeed 'min(/host/key,5m:now-1h)' 146 │ OK │ Succeed 'min(/host/key,#10)' 147 │ OK │ Succeed 'min(/host/key,{$MACRO})' 148 │ OK │ Succeed 'min(/host/key,#{$MACRO})' 149 │ OK │ Succeed 'min(/host/key,#{{#LLD}.func})' 150 │ OK │ Succeed '1w + 2G + 3h + 4K + 5s' 151 │ OK │ Succeed 'min(1w, 2d, 3h, 4m, 5s)' 152 │ OK │ Fail '10y' 153 │ OK │ Succeed '1G' 154 │ OK │ Fail '1N' 155 │ OK │ Succeed '1m=60s' 156 │ OK │ Fail '1e+309s' 157 │ OK │ Fail '1e+308K' 158 │ OK │ Fail 'min(2s, 1m),' 159 │ OK │ Fail '1 + ((/host/key))' 160 │ OK │ Succeed 'last(/host/key)' 161 │ OK │ Succeed 'last(/host/key,#1)' 162 │ OK │ Succeed 'count(//trap[1],#5,,0)' 163 │ OK │ Succeed 'count(//trap[1],#5,,0) + count(/Trapper/trap[1] ,5m ,"1h ","1 ")' 164 │ OK │ Succeed 'min(1 + 2, 0.5 + 1.5)' 165 │ OK │ Fail '(1, 2, 3)' 166 │ OK │ Succeed 'min(3 * (1 + 2), 0.5 + 1.5)' 167 │ OK │ Succeed '1=-1' 168 │ OK │ Succeed 'last(/host/key,#1:now-1h)' 169 │ OK │ Succeed 'tag="xyz" and group<>"abc"' 170 │ OK │ Succeed 'tag' 171 │ OK │ Succeed 'tag=group' 172 │ OK │ Succeed '"xyz"=tag' 173 │ OK │ Succeed 'tag=("xyz")' 174 │ OK │ Succeed 'group=1' 175 │ OK │ Fail 'group="xyz" = tag' 176 │ OK │ Succeed '(tag="xyz") = (group<>"abc")' 177 │ OK │ Succeed 'min(/*/key?[group="a"],1)' 178 │ OK │ Succeed 'min(/*/key?[group="a:\"1\""],1)' 179 │ OK │ Succeed 'min(/*/key?[group="[]"],1)' 180 │ OK │ Fail 'min(/*/key?[group="a",1)' 181 │ OK │ Fail 'min(/*/key?[group="a],1)' 182 │ OK │ Fail '1 < 2' 183 │ OK │ Fail '((),9' 184 │ OK │ Succeed 'count(//trap[1],#5,"str\\arg",0)' 185 │ OK │ Fail 'count(//trap[1],#5,"str\arg",0)' 186 │ OK │ Succeed 'count(//trap[1],#5,"str\"arg",0)' 187 │ OK │ Succeed 'count(//trap[1],#5,"str\\",0)' 188 │ OK │ Succeed v64 compat 'count(//trap[1],#5,"str\arg",0)' 189 │ OK │ Fail v64 compat 'count(//trap[1],#5,"str\\",0)' 190 │ OK │ Succeed 'count(//trap[1],#5,{$MACRO: "a,)b\c"},"rfsdg")' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_get_group_filter ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Expression 'group="x"' 1 │ OK │ Expression '"x"=group' 2 │ OK │ Expression 'group="x" or "y"=group' 3 │ OK │ Expression 'tag="a"' 4 │ OK │ Expression 'tag="abc" and group<>"xyz"' 5 │ OK │ Expression 'tag="abc" or group="xyz"' 6 │ OK │ Expression 'group="x" and tag="a" or group="y" and tag="b"' 7 │ OK │ Expression '(group="x" or tag="a") and (group="y" or tag="b")' 8 │ OK │ Expression '"a" <> "b" and group="xyz"' 9 │ OK │ Expression '"a" <> "b" and tag="abc" and group="xyz"' 10 │ OK │ Expression '"a" <> "b" or tag="abc" and group="xyz"' 11 │ OK │ Expression '(group="x") = (group="y")' 12 │ OK │ Expression 'group<>"abc" and group<>"xyz"' 13 │ OK │ Expression '(group="Zabbix servers") or ("Zabbix servers"=group)' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_get_constant ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ extract token 1 1 │ OK │ extract token 2 2 │ OK │ extract token 3 3 │ OK │ extract token 1, int in the middle 4 │ OK │ extract token 2, int in the middle 5 │ OK │ extract token 3, int in the middle 6 │ OK │ extract token 1, str in the middle 7 │ OK │ extract token 2, str in the middle 8 │ OK │ extract token 3, str in the middle 9 │ OK │ escape function 10 │ OK │ macro 11 │ OK │ escaping 1 12 │ OK │ escaping 2 13 │ OK │ escaping 3 14 │ OK │ user macro 15 │ OK │ negative constant 16 │ OK │ user macro with context 17 │ OK │ fraction 18 │ OK │ negative fraction 19 │ OK │ constant after macro 20 │ OK │ constant 1e5 21 │ OK │ constant 1e-5 22 │ OK │ string constant -10e-10 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_execute_ext ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Expression 'forty_two()' 1 │ OK │ Expression 'forty_two()' 2 │ OK │ Expression 'sum(hist(/host/key,1h))' 3 │ OK │ Expression 'sum(hist(/host/key,1h),0)' 4 │ OK │ Expression 'min(err(), 1) or 1' 5 │ OK │ Expression 'min(err(), 1) or 1' 6 │ OK │ Expression 'min(1, 2, err()) and 0' 7 │ OK │ Expression 'min(1, 2, err()) and 0' 8 │ OK │ Expression 'sum(hist(/host/key,1h))' 9 │ OK │ Expression 'sum(hist(/host/key,))' 10 │ OK │ Expression 'count(last_foreach(/host/key,1h))' 11 │ OK │ Expression 'count(last_foreach(/host/key,1h)) - no items' 12 │ OK │ Expression 'count(last_foreach(/*/key))' 13 │ OK │ Expression 'count(last_foreach(/*/key),"gt",2)' 14 │ OK │ Expression 'count(last_foreach(/*/key),"gt",2)' - no data 15 │ OK │ Expression 'count(last_foreach(/*/key),"eq","2")' 16 │ OK │ Expression 'count(last_foreach(/*/key),"eq")' - pattern not provided with operator 17 │ OK │ Expression 'count(last_foreach(/*/key),"eq","aa")' - DBG 18 │ OK │ Expression 'count(last_foreach(/*/key),"like","aa")' - DBG 19 │ OK │ Expression 'count(last_foreach(/*/key),"regexp","aa.")' - DBG 20 │ OK │ Expression 'count(last_foreach(/*/key),"like","2")' - operation incompatible with numeric values 21 │ OK │ Expression 'count(last_foreach(/*/key),"x","2")' - unsupported operator 22 │ OK │ Expression 'count(last_foreach(/*/key)) - no items' 23 │ OK │ Expression 'count(last_foreach(/*/key),"eq","\\")' - DBG 24 │ OK │ Expression 'count(last_foreach(/*/key),"eq","a\\b")' - DBG 25 │ OK │ Expression 'count(last_foreach(/*/key),"regexp","\\")' - DBG 26 │ OK │ Expression 'count(last_foreach(/*/key),"regexp","\\\\")' - DBG 27 │ OK │ Expression 'count(last_foreach(/*/key),"regexp",".\\\"b")' - DBG ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_eval_prepare_filter ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Expression 'group="x"' 1 │ OK │ Expression 'group="x"' 2 │ OK │ Expression 'group="x" and tag="a"' 3 │ OK │ Expression 'group="x" or group="y" and tag="a"' 4 │ OK │ Expression 'group<>"x" or tag<>"a"' 5 │ OK │ Expression '(group="Zabbix servers") or ("Zabbix servers"=group)' 6 │ OK │ Expression 'group=tag' 7 │ OK │ Expression '(group)=("x")' 8 │ OK │ Expression '"a"="b"' 9 │ OK │ Expression 'group=(tag="x")' 10 │ OK │ Expression 'tag=("x"="y")' 11 │ OK │ Expression 'tag' 12 │ OK │ Expression 'group={$M}' 13 │ OK │ Expression 'tag=("a" or "b")' 14 │ OK │ Expression 'tag=("a" or tag = "b")' 15 │ OK │ Expression 'group="xyz" = tag' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_dbconn_select_uint64 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ successfully selected #1 1 │ OK │ successfully selected #2 2 │ OK │ successfully selected #3 3 │ OK │ failed selected #1 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── prometheus_parse_row ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ cpu{type="intel"} 1 (1) 1 │ OK │ cpu{type="intel"} 1 12344 (2) 2 │ OK │ cpu{type="intel"} 1 (3) 3 │ OK │ cpu {type="intel"} 1 4 │ OK │ cpu 1 1 5 │ OK │ cpu { type = "intel" , model = "i9" , } 1 6 │ OK │ 1cpu 1 7 │ OK │ cpu! 1 8 │ OK │ cpu none 9 │ OK │ {vendor="intel"} 10 │ OK │ cpu{vendor=="intel"} 11 │ OK │ cpu{,vendor=="intel"} 12 │ OK │ cpu{ven:dor=="intel"} 13 │ OK │ cpu{vendor=="in"tel"} 14 │ OK │ cpu{vendor=="intel\n"} 15 │ OK │ cpu{type="intel"} 1x 16 │ OK │ cpu:0{vendor="intel"} 1 17 │ OK │ cpu{vendor="in\"t\"el"} 1 18 │ OK │ cpu{vendor="intel\\"} 1 19 │ OK │ cpu{vendor="intel\n"} 1 20 │ OK │ cpu$ 1 21 │ OK │ cpu{vendor="intel"}1 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_prometheus_to_json ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Simple metric using params: wmi_os_physical_memory_free_bytes 1 │ OK │ Get metric using params: cpu_usage_system{cpu="cpu-total"} 2 │ OK │ Get metric using params: wmi_logical_disk_free_bytes{volume="{#VOLUME}"} 3 │ OK │ Get metric value using params: cpu_usage_system{cpu="cpu-total",host=~".*"} 4 │ OK │ Get metric value using params: cpu_usage_system{cpu="cpu-total",host=~".*"} 5 │ OK │ Get metric value using params: cpu_usage_system{cpu="cpu-total"} 6 │ OK │ Get metric value using params: cpu_usage_system{cpu=~"cpu-tot.+"} 7 │ OK │ Get metric value using params: {__name__=~"cpu_usage_syst.+",cpu=~"cpu-tot.+"} 8 │ OK │ Get metric value using params: cpu_usage_system{cpu=~".*"} 9 │ OK │ Get metric value using params: cpu_usage_system{cpu=~"cpu-tot.+"} 10 │ OK │ Get metric for http_requests_total{code="400"} 3 1395066363000 11 │ OK │ Escaping in label values 12 │ OK │ Minimalistic line 13 │ OK │ A weird metric from before the epoch 14 │ OK │ A histogram, which has a pretty complex representation in the text format 15 │ OK │ A summary, which has a complex representation #1 16 │ OK │ A summary, which has a complex representation #2 17 │ OK │ Empty metric 18 │ OK │ Empty params 19 │ OK │ Empty metric and empty params 20 │ OK │ Only spaces in metric 21 │ OK │ Only spaces in params 22 │ OK │ Only spaces in params (multiline metric) 23 │ OK │ Only spaces in metric and in params 24 │ OK │ Empty multiline metric 25 │ OK │ Metric without value 26 │ OK │ Metric with missing label value: wmi_os_timezone{timezone=} 1 27 │ OK │ Metric with missing label value: wmi_os_timezone{timezone} 1 28 │ OK │ Incorrect metric data 29 │ OK │ Incorrect metric data (a space within) 30 │ OK │ Metric name with invalid characters included 31 │ OK │ Incorrect metric data with valid HELP/TYPE 32 │ OK │ Metric with a hash symbol only 33 │ OK │ Metric with an empty space only 34 │ OK │ Metric with UTF-8 3 byte character only 35 │ OK │ Metric with UTF-8 3 byte character in label value 36 │ OK │ Metric with missing "{" 37 │ OK │ Metric with missing "}" 38 │ OK │ Metric with missing " 39 │ OK │ Metric with missing "," 40 │ OK │ Metric with missing "," but empty params 41 │ OK │ Double equal sign (==) instead of single equal sign (=) in label value assignment #1 42 │ OK │ Double equal sign (==) instead of single equal sign (=) in label value assignment #2 43 │ OK │ Double equal sign (==) instead of single equal sign (=) in label value assignment #3 44 │ OK │ Label value and params holds new line character 45 │ OK │ Metric name and params holds new line character 46 │ OK │ Double equal sign (==) instead of single equal sign (=) for label value in params 47 │ OK │ Single equal sign (=) instead of double equal sign (==) for metric value in params 48 │ OK │ More than one metric (2) corresponds to the given params 49 │ OK │ Metric with "Nan" value 50 │ OK │ Metric with "+Inf" value 51 │ OK │ Metric with "-Inf" value 52 │ OK │ Metric with "NAN" value 53 │ OK │ Metric with timestamp 54 │ OK │ Metric with additional value after timestamp 55 │ OK │ Metric with negative timestamp 56 │ OK │ Metric with negative value 57 │ OK │ Multilne metric with negative value 58 │ OK │ The __name__ identifier is specified as last in params #1 59 │ OK │ The __name__ identifier is specified as last in params #2 60 │ OK │ Params set to cpu_usage_system{__name__=~"cpu_usage_syst.+",cpu=~"cpu-tot.+"} 61 │ OK │ Params set to cpu_usage_system{__name__=~"cpu_age_syst.+",cpu=~"cpu-tot.+"} 62 │ OK │ Metric with multiple HELP lines 63 │ OK │ Metric with multiple TYPE:untyped lines 64 │ OK │ Metric with wrong TYPE 65 │ OK │ Metric with only one argument for TYPE 66 │ OK │ Metric with no arguments for TYPE 67 │ OK │ Metric with multiple spaces before value 68 │ OK │ Metric with no description after HELP 69 │ OK │ Metric with invalid characters in label name 70 │ OK │ Metric name consists of all valid characters 71 │ OK │ Label name consists of all valid characters 72 │ OK │ Params with regular expression but without prefix "~" 73 │ OK │ Wrong regular expression in params 74 │ OK │ Incorrect identifier __cpu__ set in params #1 75 │ OK │ Incorrect identifier __cpu__ set in params #2 76 │ OK │ Incorrect float in metric value 77 │ OK │ Params set to "{}" 78 │ OK │ Params set to "a{}" 79 │ OK │ Metric data contains "{}" only 80 │ OK │ Negative value in params for metric value 81 │ OK │ Get metric value using regular expression for date (mm/dd/yyyy) #1 82 │ OK │ Get metric value using regular expression for date (mm/dd/yyyy) #2 83 │ OK │ Get metric value using regular expression for date (mm/dd/yyyy) #3 84 │ OK │ Missing "==" in params 85 │ OK │ Get metric value using regular expression for email address 86 │ OK │ Label value and params hold "{" 87 │ OK │ Label value and params hold "{}" 88 │ OK │ Label value and params hold "}" 89 │ OK │ Label value and params hold "," 90 │ OK │ Metric with five values 91 │ OK │ Different metrics under one header #1 92 │ OK │ Different metrics under one header #2 93 │ OK │ Different metrics under one header #3 94 │ OK │ Metrics of different type #1 95 │ OK │ Metrics of different type #2 96 │ OK │ Metrics of different type #3 97 │ OK │ Get metric value using params: cpu_usage_system 98 │ OK │ Different metrics #1 99 │ OK │ Different metrics #2 100 │ OK │ Invalid HELP hint 101 │ OK │ Test HELP hint unescaping 102 │ OK │ Test HELP hint trailing whitespace removal 103 │ OK │ Test HELP hint unescaping ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── prometheus_filter_init ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ cpu{type="intel"} == 1 1 │ OK │ {__name__="cpu", type="intel"} 2 │ OK │ {__name__="cpu", type="intel", cores=~"4"} 3 │ OK │ cpu == 1 4 │ OK │ cpu{description="CPU \"Intel\""} 5 │ OK │ cpu{__name__="cpu"} 6 │ OK │ {__name__="cpu", __name__="cpu"} 7 │ OK │ cpu = 1 8 │ OK │ cpu =~ 1 9 │ OK │ cpu{type=="intel"} == 1 10 │ OK │ Empty 11 │ OK │ sensor == Nan 12 │ OK │ sensor == +Nan 13 │ OK │ sensor == +Inf 14 │ OK │ sensor == -.1 15 │ OK │ sensor == -.1e2 16 │ OK │ sensor == +1. 17 │ OK │ sensor == +1.e2 18 │ OK │ sensor == +1.0000 19 │ OK │ sensor == +1.0000e-2 20 │ OK │ sensor == . 21 │ OK │ sensor == 1e 22 │ OK │ sensor == 1e1 1 23 │ OK │ {type="intel"cores="4"} 24 │ OK │ {} 25 │ OK │ {vendor="intel", cores="4"} 26 │ OK │ cpu 27 │ OK │ {vendor="intel", cores="4",} 28 │ OK │ {vendor="intel" , } 29 │ OK │ {vendor="intel",,} 30 │ OK │ {vendor="intel \x"} 31 │ OK │ cpu{__="intel"} 32 │ OK │ sensor == NAN 33 │ OK │ sensor == nan 34 │ OK │ sensor == NaN 35 │ OK │ sensor == nAn 36 │ OK │ sensor == +INF 37 │ OK │ sensor == -inf 38 │ OK │ sensor == InF 39 │ OK │ sensor == iNf ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_prometheus_pattern ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Get metric value using params: "wmi_os_physical_memory_free_bytes" 1 │ OK │ Get metric value using params: "cpu_usage_system{cpu="cpu-total"}" 2 │ OK │ Get metric value using params: "wmi_logical_disk_free_bytes{volume="{#VOLUME}"}" 3 │ OK │ Get label value (volume) using params: "wmi_logical_disk_free_bytes{volume="{#VOLUME}"}" 4 │ OK │ Get metric value using params: "cpu_usage_system{cpu="cpu-total",host=~".*"}" 5 │ OK │ Get metric value using params: "cpu_usage_system{cpu="cpu-total",host=~".*"}" 6 │ OK │ Get metric value using params: "cpu_usage_system{cpu="cpu-total"}" 7 │ OK │ Get metric value using params: "cpu_usage_system{cpu=~"cpu-tot.+"}" 8 │ OK │ Get metric value using params: "{__name__=~"cpu_usage_syst.+",cpu=~"cpu-tot.+"}" 9 │ OK │ Get metric value using params: "cpu_usage_system{cpu=~".*"}" 10 │ OK │ Get metric value using params: "cpu_usage_system{cpu=~"cpu-tot.+"}" 11 │ OK │ Get label value (state) using params: "wmi_service_state{name="dhcp"} == 1" 12 │ OK │ Get label value (timezone) using params: "wmi_os_timezone{timezone=~".*"} == 1" 13 │ OK │ Multiple spaces in metric before the value 14 │ OK │ Escaping in label values 15 │ OK │ Minimalistic line 16 │ OK │ A weird metric from before the epoch 17 │ OK │ A histogram, which has a pretty complex representation in the text format 18 │ OK │ A summary, which has a complex representation 19 │ OK │ Invalid metric (expected "fail"): empty metric 20 │ OK │ Empty params 21 │ OK │ Empty params but value_type is set 22 │ OK │ Empty params but value_type is set (multiline metric) 23 │ OK │ Invalid metric (expected "fail"): empty metric and empty params 24 │ OK │ Invalid metric (expected "fail"): metric consists of spaces only #1 25 │ OK │ Params hold multiple spaces only 26 │ OK │ Params hold multiple spaces only (multiline metric) 27 │ OK │ Invalid metric (expected "fail"): metric consists of spaces only #2 28 │ OK │ Empty multiline metric 29 │ OK │ Empty value_type 30 │ OK │ Invalid metric (expected "fail"): metric without value 31 │ OK │ Invalid metric (expected "fail"): label value is missing but equal sign remains "wmi_os_timezone{timezone=} 1" 32 │ OK │ Invalid metric (expected "fail"): label value is missing "wmi_os_timezone{timezone} 1" 33 │ OK │ Invalid metric (expected "fail"): label value is missing and value_type is set to that label "wmi_os_timezone{timezone} 1" 34 │ OK │ Invalid metric (expected "fail"): label value is missing, value_type is set to that label; params: "wmi_os_timezone{timezone=~".*"} == 1" 35 │ OK │ Invalid metric (expected "fail"): wrong metric data 36 │ OK │ Invalid metric (expected "fail"): wrong metric data (a space within) 37 │ OK │ Invalid metric (expected "fail"): metric name with unsupported characters included 38 │ OK │ Invalid metric (expected "fail"): wrong metric data with valid HELP/TYPE 39 │ OK │ Invalid metric (expected "fail"): metric consists of hash symbol only 40 │ OK │ Invalid metric (expected "fail"): metric consists of empty space only 41 │ OK │ Invalid metric (expected "fail"): metric consists of 3 byte UTF-8 character only 42 │ OK │ Metric with 3 byte UTF-8 byte character included in label value 43 │ OK │ Invalid metric (expected "fail"): metric with missing "{" 44 │ OK │ Invalid metric (expected "fail"): metric with missing "}" 45 │ OK │ Invalid metric (expected "fail"): metric with missing " 46 │ OK │ Invalid metric (expected "fail"): metric with missing "," 47 │ OK │ Invalid metric (expected "fail"): metric with missing "," and params set to empty 48 │ OK │ Invalid metric (expected "fail"): double equal sign (==) instead of single equal sign (=) in label value assignment (multiline metric) 49 │ OK │ Invalid metric (expected "fail"): double equal sign (==) instead of single equal sign (=) in label value assignment (desired metric) 50 │ OK │ Invalid metric (expected "fail"): double equal sign (==) instead of single equal sign (=) in label value assignment 51 │ OK │ Label value and params holds new line character 52 │ OK │ Invalid metric (expected "fail"): metric name holds new line character 53 │ OK │ Invalid params (expected "fail"): params hold new line character 54 │ OK │ Invalid metric (expected "fail"): metric name and params hold new line character 55 │ OK │ Invalid params (expected "fail"): double equal sign (==) instead of single equal sign (=) in label value assignment 56 │ OK │ Invalid params (expected "fail"): single equal sign (=) instead of double equal sign (==) in metric value assignment #1 57 │ OK │ Invalid params (expected "fail"): single equal sign (=) instead of double equal sign (==) in metric value assignment #2 58 │ OK │ More than one metric (2) corresponds to the given params 59 │ OK │ All metrics (8) correspond to the given params 60 │ OK │ All metrics (16) correspond to the given params 61 │ OK │ Multiple metrics (16 of 18) correspond to the given params 62 │ OK │ Metric with "Nan" value 63 │ OK │ Metric with "+Inf" value 64 │ OK │ Metric with "-Inf" value 65 │ OK │ Invalid metric (expected "fail"): metric with "NAN" value 66 │ OK │ Metric with timestamp 67 │ OK │ Invalid metric (expected "succeed"): additional value after timestamp 68 │ OK │ Metric with negative timestamp 69 │ OK │ Metric with negative value 70 │ OK │ Multilne metric with negative value (multiline metric) 71 │ OK │ The __name__ identifier is specified as last in params #1 72 │ OK │ The __name__ identifier is specified as last in params #2 73 │ OK │ Label name set in value_type is not present in the metrics 74 │ OK │ Get metric value using params: "cpu_usage_system{__name__=~"cpu_usage_syst.+",cpu=~"cpu-tot.+"}" 75 │ OK │ Get metric value using params: "cpu_usage_system{__name__=~"cpu_age_syst.+",cpu=~"cpu-tot.+"}" 76 │ OK │ Random characters in value_type 77 │ OK │ Invalid metric (expected "succeed"): multiple HELP lines 78 │ OK │ Invalid metric (expected "succeed"): multiple TYPE:untyped lines 79 │ OK │ Invalid metric (expected "succeed"): unsupported TYPE 80 │ OK │ Invalid metric (expected "succeed"): only one argument for TYPE 81 │ OK │ Invalid metric (expected "succeed"): empty TYPE 82 │ OK │ Multiple spaces before metric value 83 │ OK │ Invalid metric (expected "succeed"): empty HELP 84 │ OK │ Invalid metric (expected "fail"): unsupported characters in label name 85 │ OK │ Get metric value using params: "wmi_os_timezone" 86 │ OK │ Metric name consists of all supported characters 87 │ OK │ Label name consists of all supported characters 88 │ OK │ Invalid params (expected "fail"): regular expression but without prefix "~" 89 │ OK │ Invalid params (expected "fail"): wrong regular expression 90 │ OK │ Invalid params (expected "fail"): unsupported identifier __cpu__ #1 91 │ OK │ Invalid params (expected "fail"): unsupported identifier __cpu__ #2 92 │ OK │ Invalid metric (expected "fail"): incorrect float 93 │ OK │ Invalid params (expected "fail"): "{}" 94 │ OK │ Invalid params (expected "fail"): "a{}" 95 │ OK │ Invalid metric (expected "fail"): "{}" 96 │ OK │ Get metric value using params: "wmi_os_timezone{timezone="MSK"} == -1" 97 │ OK │ Get label value using regular expression for date #1 98 │ OK │ Get label value using regular expression for date #2 99 │ OK │ Get label value using regular expression for date #3 100 │ OK │ Get label value using regular expression for date #4 101 │ OK │ Get label value using regular expression for date #5 102 │ OK │ Invalid params (expected "fail"): double equal sign (==) is missing 103 │ OK │ Get label value using regular expression for email address #1 104 │ OK │ Get label value using regular expression for email address #2 105 │ OK │ Get label value using regular expression for email address #3 106 │ OK │ Get metric value using regular expression for email address 107 │ OK │ Label value holds "{" 108 │ OK │ Label value holds "{}" 109 │ OK │ Label value holds "}" 110 │ OK │ Label value holds "," 111 │ OK │ Get label value (cpu) using params: "cpu_usage_system{cpu="cpu{total"} == 1.1940298507220641" 112 │ OK │ Get label value (cpu) using params: "cpu_usage_system{cpu="cpu}total"} == 1.1940298507220641" 113 │ OK │ Metric with five values 114 │ OK │ Different metrics under one HELP/TYPE header #1 115 │ OK │ Different metrics under one HELP/TYPE header #2 116 │ OK │ Metrics of different type #1 117 │ OK │ Metrics of different type #2 118 │ OK │ Metrics of different type #3 119 │ OK │ Get metric value using params: "cpu_usage_system { cpu = "cpu-total" , host = "host1",perf="100" }" 120 │ OK │ Invalid params (expected "fail"): no spaces around double equal sign (==) 121 │ OK │ Get metric value using params: "http_requests_total{code="400"} == 3" 122 │ OK │ Invalid metric (expected "fail"): metric with string value 123 │ OK │ Invalid params (expected "fail"): metric with string value 124 │ OK │ Invalid params (expected "fail"): __name__ identifier is specified twice 125 │ OK │ Get metric value using params: "{cpu=~".*",cpu=~"cpu-tot.+",perf="100"}" 126 │ OK │ Get metric value using params: "{cpu=~"z.+",cpu=~"cpu-tot.+",perf="100"}" 127 │ OK │ Get metric value using params: "{cpu=~"z.+",cpu=~"y.+",perf="100"}" 128 │ OK │ Apply INF metric filter on multiple inf values 129 │ OK │ Apply INF metric filter on multiple inf values (2) 130 │ OK │ Apply INF metric filter on multiple nan values 131 │ OK │ Apply INF metric filter on matching inf value 132 │ OK │ Apply INF metric filter on matching inf value (2) 133 │ OK │ Apply INF metric filter on matching inf value (3) 134 │ OK │ Apply INF metric filter on matching inf value (4) 135 │ OK │ Apply INF metric filter on matching nan value 136 │ OK │ Apply 1 metric filter on 1.0 value 137 │ OK │ Apply 10 metric filter on 1e1 value 138 │ OK │ Apply 125 metric filter on 1.25e2 value 139 │ OK │ Apply 00.0100 metric filter on 1e-2 value 140 │ OK │ Apply 125 metric filter on multiple matching values 141 │ OK │ Apply 1 metric filter on +1 value 142 │ OK │ Apply +1 metric filter on +1 value 143 │ OK │ Apply +1 metric filter on 1 value 144 │ OK │ Apply +1 metric filter on -1 value 145 │ OK │ Apply -1 metric filter on +1 value 146 │ OK │ Apply -1 metric filter on +1 value 147 │ OK │ Check != operator 148 │ OK │ Check !~ operator 149 │ OK │ Count the metrics 150 │ OK │ Sum metric values using params: "cpu_usage_system{cpu=~"cpu-total"}" 151 │ OK │ Avg metric values using params: "cpu_usage_system{cpu=~"cpu-total"}" 152 │ OK │ Min metric values using params: "cpu_usage_system{cpu=~"cpu-total"}" 153 │ OK │ Max metric values using params: "cpu_usage_system{cpu=~"cpu-total"}" ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_xml_to_json ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Test 1: simple xml 1 │ OK │ Test 2: xml with repeating and not repeating tags 2 │ OK │ Test 3: cdata 3 │ OK │ Test 4: wrong xml (empty) 4 │ OK │ Test 5: wrong xml (several roots) 5 │ OK │ Test 6: special symbols 6 │ OK │ Test 7: wrong xml (empty attribute) 7 │ OK │ Test 8: hierarchy of objects 8 │ OK │ Test 9: multiline xml 9 │ OK │ Test 10: self-closing tag 10 │ OK │ Test 11: hierarchy with null 11 │ OK │ Test 12: attribute 12 │ OK │ Test 13: attribute with text 13 │ OK │ Test 14: deep hierarchy 14 │ OK │ Test 15: array 15 │ OK │ Test 16: tag name "text" 16 │ OK │ Test 17: tag name "cdata" 17 │ OK │ Test 18: comment ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_json_to_xml ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Test 1: simple object 1 │ OK │ Test 2: combination of objects and arrays 2 │ OK │ Test 3: incorrect json 3 │ OK │ Test 4: hierarchy of objects 4 │ OK │ Test 5: null value 5 │ OK │ Test 6: hierarchy with null 6 │ OK │ Test 7: attribute 7 │ OK │ Test 8: attribute with text 8 │ OK │ Test 9: several roots in json 9 │ OK │ Test 10: no root in json 10 │ OK │ Test 11: root with no value 11 │ OK │ Test 12: deep hierarchy 12 │ OK │ Test 13: incorrect attribute format -> empty attribute 13 │ OK │ Test 14: empty attribute 14 │ OK │ Test 15: use special symbols 15 │ OK │ Test 16: several roots with text ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_determine_charset ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Empty but with header 1 │ OK │ ISO-8859-1 2 │ OK │ ISO-8859-1 without ; 3 │ OK │ ISO-8859-1 charset with spaces 4 │ OK │ ISO-8859-1 charset empty 5 │ OK │ ISO-8859-1 charset special symbol 6 │ OK │ ISO-8859-1 charset special symbol 7 │ OK │ ISO-8859-1 quoted 8 │ OK │ ISO-8859-1 quoted/unquote 9 │ OK │ ISO-8859-1 quoted/unquote last 10 │ OK │ ISO-8859-1 quoted but no matching quote 11 │ OK │ No encoding but is utf-8 12 │ OK │ ISO-8859-1 charset 13 │ OK │ ISO-8859-1 http-equiv content 14 │ OK │ ISO-8859-1 http-equiv content invalid charset supplied in header 15 │ OK │ meta cut off 16 │ OK │ meta cut off attribute name 17 │ OK │ meta cut off attribute name after equal 18 │ OK │ meta attribute name without value 19 │ OK │ meta attribute value in double quote 20 │ OK │ meta attribute value in double quote with spaces 21 │ OK │ meta attribute charser in double quote with spaces 22 │ OK │ meta attribute value in double quote not terminated 23 │ OK │ meta attribute value in single quote 24 │ OK │ meta attribute value charset with spaces 25 │ OK │ meta attribute value charset two times 26 │ OK │ http-eq and http-eq 27 │ OK │ http-eq and meta attribute value charset 28 │ OK │ meta attribute value charset and http-eq 29 │ OK │ meta attribute value in single quote with spaces 30 │ OK │ meta attribute value in single quote not terminated 31 │ OK │ meta attribute value unquoted 32 │ OK │ meta attribute value unquoted with spaces 33 │ OK │ HTML in JSON 34 │ OK │ empty text nothing happens 35 │ OK │ bom is not added to plain data utf8 assumed 36 │ OK │ utf8 bom is removed 37 │ OK │ utf8 bom is removed2 38 │ OK │ utf8 bom is removed with encoding specified 39 │ OK │ utf8 bom is removed empty text 40 │ OK │ utf16 LE bom is removed 41 │ OK │ utf16 LE noBOM with encoding 42 │ OK │ utf16 LE bom is removed empty text 43 │ OK │ utf16 BE bom is removed 44 │ OK │ utf16 BE noBOM with encoding 45 │ OK │ utf16 BE bom is removed empty text 46 │ OK │ utf32 LE bom is removed incorrect guess conversion to utf16 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_json_decodevalue ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Decode fail '' 1 │ OK │ Decode fail 'a b' 2 │ OK │ Decode fail ' 1' 3 │ OK │ Decode fail '+1' 4 │ OK │ Decode fail '--1' 5 │ OK │ Decode fail '.5' 6 │ OK │ Decode fail '01' 7 │ OK │ Decode fail '"a\X"' 8 │ OK │ Decode fail '"a\' 9 │ OK │ Decode fail '"a' 10 │ OK │ Decode fail '"' 11 │ OK │ Decode fail '[1, 2]' 12 │ OK │ Decode fail '{"a":1}' 13 │ OK │ Decode fail 'NULL' 14 │ OK │ Decode fail 'TRUE' 15 │ OK │ Decode fail 'FALSE' 16 │ OK │ Decode fail '"longer value"' with small output buffer 17 │ OK │ Decode fail '12345678901234567890' with small output buffer 18 │ OK │ Decode fail 'true' with small output buffer 19 │ OK │ Decode fail 'false' with small output buffer 20 │ OK │ Decode fail 'null' with small output buffer 21 │ OK │ Decode fail '"text"' with 0 output buffer 22 │ OK │ Decode fail 'true' with 0 output buffer 23 │ OK │ Decode fail 'false' with 0 output buffer 24 │ OK │ Decode fail 'null' with 0 output buffer 25 │ OK │ Decode fail '12345' with 0 output buffer 26 │ OK │ Decode success '1' 27 │ OK │ Decode success '1.5' 28 │ OK │ Decode success '-1' 29 │ OK │ Decode success '0' 30 │ OK │ Decode success '1e5' 31 │ OK │ Decode success '1e-2' 32 │ OK │ Decode success '-0.5E10' 33 │ OK │ Decode success '-0.5E+10' 34 │ OK │ Decode success '1e03' 35 │ OK │ Decode success 'true' 36 │ OK │ Decode fail 'true' with output buffer 1 byte less than needed 37 │ OK │ Decode success 'false' 38 │ OK │ Decode fail 'false' with output buffer 1 byte less than needed 39 │ OK │ Decode success 'null' 40 │ OK │ Decode success '"a"' 41 │ OK │ Decode success '"\\/"' 42 │ OK │ Decode success '"value \"1\""' 43 │ OK │ Decode success '"value \"1\""'with output buffer having the required size 44 │ OK │ Decode fail '"value \"1\""' with output buffer 1 byte less than needed 45 │ OK │ Decode success '"\u0420\u0435\u0433\u0438\u043e\u043d"' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_json_decodevalue_dyn ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Decode fail '' 1 │ OK │ Decode fail 'a b' 2 │ OK │ Decode fail ' 1' 3 │ OK │ Decode fail '+1' 4 │ OK │ Decode fail '--1' 5 │ OK │ Decode fail '.5' 6 │ OK │ Decode fail '01' 7 │ OK │ Decode fail '"a\X"' 8 │ OK │ Decode fail '"a\' 9 │ OK │ Decode fail '"a' 10 │ OK │ Decode fail '"' 11 │ OK │ Decode fail '[1, 2]' 12 │ OK │ Decode fail '{"a":1}' 13 │ OK │ Decode fail 'NULL' 14 │ OK │ Decode fail 'TRUE' 15 │ OK │ Decode fail 'FALSE' 16 │ OK │ Decode success '"longer value"' with small output buffer 17 │ OK │ Decode success '12345678901234567890' with small output buffer 18 │ OK │ Decode fail 'true' with small output buffer 19 │ OK │ Decode fail 'false' with small output buffer 20 │ OK │ Decode fail 'null' with small output buffer 21 │ OK │ Decode fail '"text"' with 0 output buffer 22 │ OK │ Decode fail 'true' with 0 output buffer 23 │ OK │ Decode fail 'false' with 0 output buffer 24 │ OK │ Decode fail 'null' with 0 output buffer 25 │ OK │ Decode fail '12345' with 0 output buffer 26 │ OK │ Decode success '1' 27 │ OK │ Decode success '1.5' 28 │ OK │ Decode success '-1' 29 │ OK │ Decode success '0' 30 │ OK │ Decode success '1e5' 31 │ OK │ Decode success '1e-2' 32 │ OK │ Decode success '-0.5E10' 33 │ OK │ Decode success '-0.5E+10' 34 │ OK │ Decode success '1e03' 35 │ OK │ Decode success 'true' 36 │ OK │ Decode fail 'true' with output buffer 1 byte less than needed 37 │ OK │ Decode success 'false' 38 │ OK │ Decode fail 'false' with output buffer 1 byte less than needed 39 │ OK │ Decode success 'null' 40 │ OK │ Decode success '"a"' 41 │ OK │ Decode success '"\\/"' 42 │ OK │ Decode success '"value \"1\""' 43 │ OK │ Decode success '"value \"1\""'with output buffer having the required size 44 │ OK │ Decode fail '"value \"1\""' with output buffer 1 byte less than needed 45 │ OK │ Decode success '"\u0420\u0435\u0433\u0438\u043e\u043d"' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_jsonpath_compile ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Compile fail "" 1 │ OK │ Compile fail $ 2 │ OK │ Compile fail "$." 3 │ OK │ Compile fail "$['a'" 4 │ OK │ Compile fail "$[a']" 5 │ OK │ Compile fail "$['']" 6 │ OK │ Compile fail "$.a[]" 7 │ OK │ Compile fail "$.a[1" 8 │ OK │ Compile fail "$['a'][]" 9 │ OK │ Compile fail "$['a'][1" 10 │ OK │ Compile fail "$.a." 11 │ OK │ Compile success "$.a" 12 │ OK │ Compile success "$['a']" 13 │ OK │ Compile success "$[ 'a' ]" 14 │ OK │ Compile success '$["a"]' 15 │ OK │ Compile success "$.a.b" 16 │ OK │ Compile success "$['a'].b" 17 │ OK │ Compile success "$['a']['b']" 18 │ OK │ Compile success $.a['b'] 19 │ OK │ Compile success $.a[0] 20 │ OK │ Compile success $[-1] 21 │ OK │ Compile success $.a[0].b[1] 22 │ OK │ Compile success $.a[1000] 23 │ OK │ Compile success $.a[ 1 ] 24 │ OK │ Compile success $['a'][2] 25 │ OK │ Compile success $['a'][2]['b'][3] 26 │ OK │ Compile success $[1][2] 27 │ OK │ Compile success $.['a'].['b'] 28 │ OK │ Compile fail $...a 29 │ OK │ Compile fail $.**.a 30 │ OK │ Compile fail $[,1] 31 │ OK │ Compile fail $[1,] 32 │ OK │ Compile fail $[1,,2] 33 │ OK │ Compile fail $[1,*,2] 34 │ OK │ Compile fail $[--1] 35 │ OK │ Compile fail $[a] 36 │ OK │ Compile fail $[$a$] 37 │ OK │ Compile fail $[,'a'] 38 │ OK │ Compile fail $['a',] 39 │ OK │ Compile fail $['a',,'b'] 40 │ OK │ Compile fail $['a',*,'b'] 41 │ OK │ Compile fail $[--'a'] 42 │ OK │ Compile fail $[1,'a'] 43 │ OK │ Compile fail $['a\a'] 44 │ OK │ Compile fail $['a\'] 45 │ OK │ Compile fail $['a\"'] 46 │ OK │ Compile fail $['a\] 47 │ OK │ Compile fail $['a\ 48 │ OK │ Compile fail $["a\'"] 49 │ OK │ Compile success $[ 1 ] 50 │ OK │ Compile success $[1,2] 51 │ OK │ Compile success $[ 1 , 2 ] 52 │ OK │ Compile success $[ -1 ] 53 │ OK │ Compile success $[ -1, 2, 3 ] 54 │ OK │ Compile success $[ ' a ' ] 55 │ OK │ Compile success $[ ' a ', "b" ] 56 │ OK │ Compile success $['a \'b\' \\/'] 57 │ OK │ Compile success $["a \"b\""] 58 │ OK │ Compile success $.*.a 59 │ OK │ Compile success $.* 60 │ OK │ Compile success $[*] 61 │ OK │ Compile success $..a.b..c 62 │ OK │ Compile fail $[1:2:3] 63 │ OK │ Compile success $[:] 64 │ OK │ Compile success $[1:] 65 │ OK │ Compile success $[:1] 66 │ OK │ Compile success $[1:2] 67 │ OK │ Compile success $[-1:-1] 68 │ OK │ Compile success $[ 1 : 2 ] 69 │ OK │ Compile success $[ : 1 ] 70 │ OK │ Compile success $[ 1 : ] 71 │ OK │ Compile fail $.min( 72 │ OK │ Compile fail $.min(1) 73 │ OK │ Compile fail $.div() 74 │ OK │ Compile fail $.avg().data 75 │ OK │ Compile fail $.len() 76 │ OK │ Compile success $.min() 77 │ OK │ Compile success $.max() 78 │ OK │ Compile success $.avg() 79 │ OK │ Compile success $.length() 80 │ OK │ Compile success $.first().max() 81 │ OK │ Compile fail $[?] 82 │ OK │ Compile fail $[?(] 83 │ OK │ Compile fail $[?()] 84 │ OK │ Compile fail $[?(+)] 85 │ OK │ Compile fail $[?(==)] 86 │ OK │ Compile fail $[?(()] 87 │ OK │ Compile fail $[?(+1)] 88 │ OK │ Compile fail $[?(!)] 89 │ OK │ Compile fail $[?(a)] 90 │ OK │ Compile fail $[?(())] 91 │ OK │ Compile fail $[?(1++1)] 92 │ OK │ Compile fail $[?(1 - - 1)] 93 │ OK │ Compile fail $[?(1 + + 1)] 94 │ OK │ Compile fail $[?((1+1)+)] 95 │ OK │ Compile fail $[?((1 + 1) + ())] 96 │ OK │ Compile fail $[?(a + 1)] 97 │ OK │ Compile fail $[?(1 + 'a)] 98 │ OK │ Compile fail $[?($..b + 1)] 99 │ OK │ Compile fail $[?($['a])] 100 │ OK │ Compile fail $[?($[1,2])] 101 │ OK │ Compile fail $[?($.a.)] 102 │ OK │ Compile success $[?(1)] 103 │ OK │ Compile success $[?(-1)] 104 │ OK │ Compile success $[?($.a)] 105 │ OK │ Compile success $[?(@.b)] 106 │ OK │ Compile success $[?(!1)] 107 │ OK │ Compile success $[?(1 + 2)] 108 │ OK │ Compile success $[?(1 + 2 * 3)] 109 │ OK │ Compile success $[?(1 - 2 / 3)] 110 │ OK │ Compile success $[?((1 + 2) * 3)] 111 │ OK │ Compile success $[?($.a + 2 == 3)] 112 │ OK │ Compile success $[?((1 + 2) * (3 - 4))] 113 │ OK │ Compile success $[?(1 == 2 || !3*5)] 114 │ OK │ Compile success $[?(1 == 2 || !(3*5))] 115 │ OK │ Compile success $[?(1 == 2 * @.a)] 116 │ OK │ Compile success $[?((1)+(2))] 117 │ OK │ Compile success $[?(1 + 2 - 3 + 4)] 118 │ OK │ Compile success $[?(1 == 2 == 3)] 119 │ OK │ Compile fail $[?(1 == 2 == 3] 120 │ OK │ Compile success $..[?(@.id)] 121 │ OK │ Compile success $['cn=snmp,cn=monitor']['connections'] 122 │ OK │ Compile success $.f$o 123 │ OK │ Compile success $[?(@.$)] 124 │ OK │ Compile success $.$.$[?(@.$ < $.$)] 125 │ OK │ Compile success $.sum() 126 │ OK │ Compile success $.*~ 127 │ OK │ Compile success $.*~.first() ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_json_open_path ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Invalid path $.a[] in {"a":{"b": [{"x":10}, 2, 3] }} 1 │ OK │ Invalid path $a in {"a":1} 2 │ OK │ Invalid path "" in {"a":1} 3 │ OK │ Invalid location $.x.b in {"a":{"b": [{"x":10}, 2, 3] }} 4 │ OK │ Invalid location $[3] in [1, 2, 3] 5 │ OK │ Valid location $[0] in [1, 2, 3] 6 │ OK │ Valid location $[1] in [1, 2, 3] 7 │ OK │ Valid location $[2] in [1, 2, 3] 8 │ OK │ Valid location $[1][0] in [1,["a","b","c"],3] 9 │ OK │ Valid location $.x[1][2] in {"x":[1, ["a", "b", "c"], 3]} 10 │ OK │ Valid location $.a in {"a":{"b": [{"x":10}, 2, 3] }} 11 │ OK │ Valid location $.a in {"a" : {"b": [{"x":10}, 2, 3] }} 12 │ OK │ Valid location $.a.b in {"a":{"b": [{"x":10}, 2, 3] }} 13 │ OK │ Valid location $.a.b[0] in {"a":{"b": [{"x":10}, 2, 3] }} 14 │ OK │ Valid location $.a.b[1] in {"a":{"b": [{"x":10}, 2, 3] }} 15 │ OK │ Valid location $.a.b[2] in {"a":{"b": [{"x":10}, 2, 3] }} 16 │ OK │ ZBX-13782, empty string 17 │ OK │ ZBX-13782, 1 non-escaped ASCII character 18 │ OK │ ZBX-13782, 2 non-escaped ASCII characters 19 │ OK │ ZBX-13782, 3 non-escaped ASCII characters 20 │ OK │ ZBX-13782, many non-escaped ASCII characters 21 │ OK │ ZBX-13782, escaped quotation mark 22 │ OK │ ZBX-13782, escaped reverse solidus 23 │ OK │ ZBX-13782, escaped solidus 24 │ OK │ ZBX-13782, escaped backspace 25 │ OK │ ZBX-13782, escaped form feed 26 │ OK │ ZBX-13782, escaped line feed 27 │ OK │ ZBX-13782, escaped carriage return 28 │ OK │ ZBX-13782, escaped tab 29 │ OK │ ZBX-13782, escaped character in the beginning of string 30 │ OK │ ZBX-13782, escaped character in the middle of string 31 │ OK │ ZBX-13782, escaped character in the end of string 32 │ OK │ ZBX-13782, several escaped character in string 33 │ OK │ ZBX-13782, escaped Unicode character \u0000 34 │ OK │ ZBX-13782, A as escaped Unicode character 35 │ OK │ ZBX-13782, escaped Unicode character \u00e4 which translates into 2 byte UTF-8 36 │ OK │ ZBX-13782, escaped Unicode character \u00D1 which translates into 2 byte UTF-8 37 │ OK │ ZBX-13782, escaped Unicode character \u042F which translates into 2 byte UTF-8 38 │ OK │ ZBX-13782, escaped Unicode character \u0800 which translates into 3 byte UTF-8 39 │ OK │ ZBX-13782, escaped Unicode character \u10c0 which translates into 3 byte UTF-8 40 │ OK │ ZBX-13782, escaped Unicode character \u10c0 which translates into 3 byte UTF-8 41 │ OK │ ZBX-13782, escaped Unicode character \u20E0 which translates into 3 byte UTF-8 42 │ OK │ ZBX-13782, string with escaped Unicode character \u20E0 which translates into 3 byte UTF-8 43 │ OK │ ZBX-13782, escaped Unicode character \uFFFD (replacement character) 44 │ OK │ ZBX-13782, escaped Unicode character Curling Stone U+1F94C 45 │ OK │ ZBX-13782, several escaped Unicode characters Zanabazar Square Letter Za U+11A28 46 │ OK │ ZBX-13782, several escaped Unicode characters Linear B Syllable B008 A U+10000 47 │ OK │ Invalid path $.*.b in {"a":{"b": [{"x":10}, 2, 3] }} 48 │ OK │ Invalid path $.a.b[?(@.x == "10")] in {"a":{"b": [{"x":10}, 2, 3] }} 49 │ OK │ Invalid path $["a", "x"].b in {"a":{"b": [{"x":10}, 2, 3] }} 50 │ OK │ Invalid path $.a.b[1,2] in {"a":{"b": [{"x":10}, 2, 3] }} 51 │ OK │ Invalid path $.a.b.length() in {"a":{"b": [{"x":10}, 2, 3] }} 52 │ OK │ Invalid path $..b in {"a":{"b": [{"x":10}, 2, 3] }} 53 │ OK │ Valid 64 element deep array test 54 │ OK │ Invalid 65 element deep array test 55 │ OK │ Valid 64 element deep object test 56 │ OK │ Invalid 65 element deep object test ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_jsonobj_query ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Query $[0] from ["a", "b"] 1 │ OK │ Query $[4] from ["a", "b"] 2 │ OK │ Query $[1] from ["a", "b"] 3 │ OK │ Query $[2] from ["a", "b"] 4 │ OK │ Query $[2].* from ["a", "b"] 5 │ OK │ Query $.filters.price 6 │ OK │ Query $.filters.category 7 │ OK │ Query $.filters.id 8 │ OK │ Query $.books[1].title 9 │ OK │ Query $['closed message'] 10 │ OK │ Query $.books[-1].author 11 │ OK │ Query $.filters 12 │ OK │ Query $.books.length() 13 │ OK │ Query $.tags[:] 14 │ OK │ Query $.tags[2:] 15 │ OK │ Query $.tags[:2] 16 │ OK │ Query $.tags[1:4] 17 │ OK │ Query $.tags[-2:] 18 │ OK │ Query $.tags[:-3] 19 │ OK │ Query $.tags[:-3].length() 20 │ OK │ $.tags[-10:-9] 21 │ OK │ $.tags[1:-10] 22 │ OK │ $.tags[-10:1] 23 │ OK │ Query $.books[0, 2].title 24 │ OK │ Query $.books[1]['author', "title"] 25 │ OK │ Query $..id 26 │ OK │ Query $.services..price 27 │ OK │ Query $.books[?(@.id == 1 + 1)].title 28 │ OK │ Query $.books[?(@.id == 4 / 2)].title 29 │ OK │ Query $.books[?(@.id == 7 - 5)].title 30 │ OK │ Query $.books[?(@.id == 0.4 * 5)].title 31 │ OK │ Query $.books[?(@.id == 4 - 0.4 * 5)].title 32 │ OK │ Query $.books[?(@.id == -0.4 * 5 + 4)].title 33 │ OK │ Query $.books[?(@.id == 0.4 * (-5) + 4)].title 34 │ OK │ Query $.books[?(@.id == 2 || @.id == 4)].title 35 │ OK │ Query $.books[?(@.id == 2 && 2 * ((1 + 3) / 2 + 3) == 10)].title 36 │ OK │ Query $.books[?(@.id == 2 == 1)].title 37 │ OK │ Query $.books[?(!(@.id == 2))].title 38 │ OK │ Query $.books[?(@.id != 2)].title 39 │ OK │ Query $.books[?(@.title =~ " of ")].title 40 │ OK │ Query $.books[?(@.price > 12.99)].title 41 │ OK │ Query $.books[?(@.price >= 12.99)].title 42 │ OK │ Query $.books[?(@.price < 12.99)].title 43 │ OK │ Query $.books[?(@.price <= 12.99)].title 44 │ OK │ Query $.books[?(@.author > "Herman Melville")].title 45 │ OK │ Query $.books[?(@.author >= "Herman Melville")].title 46 │ OK │ Query $.books[?(@.author < "Herman Melville")].title 47 │ OK │ Query $.books[?(@.author <= "Herman Melville")].title 48 │ OK │ Query $.books[?(@.price > $.filters.price)].title 49 │ OK │ Query $.books[?(@.category == $.filters.category)].title 50 │ OK │ Query $.books[?(@.category != $.filters.category)].title 51 │ OK │ Query $..[?(@.id)] 52 │ OK │ Query $.services..[?(@.price > 50)].description 53 │ OK │ Query $..id.length() 54 │ OK │ Query $.books[?(@.price >= 12.99)].length() 55 │ OK │ Query $.books[?(@.id == 2)].title.first() 56 │ OK │ Query $..tags.first().length() 57 │ OK │ Query $.bad.path.first().length() 58 │ OK │ Query $.[?(@.ElementName == "test")].values.first().length() 59 │ OK │ Query $.length() from ["a", "b"] 60 │ OK │ Query $.first() from ["a", "b"] 61 │ OK │ Query $.first().first() from [["a", "b"]] 62 │ OK │ Query $.first().first().first() from [[["a", "b"]]] 63 │ OK │ Query $.books[*].price.min() 64 │ OK │ Query $..price.max() 65 │ OK │ Query $.books[?(@.category == "fiction")].price.avg() 66 │ OK │ Query $.books[?(@.category == $.filters.xyz)].title 67 │ OK │ Query $.filters['no filters'] 68 │ OK │ Query $.services[?(@.active=="true")].servicegroup 69 │ OK │ Query $.services[?(@.active=="false")].servicegroup 70 │ OK │ Query $.books[?(@.title =~ "[a-z")].title 71 │ OK │ $..books[?(!@.isbn)] 72 │ OK │ $..books[?(@.isbn)] 73 │ OK │ Query $.books[*].price.sum() 74 │ OK │ Query $[?(@.a)].id from [{"a":{"b":"c"}, "id":1}, {"x":{"y":"z"}, "id":2}] 75 │ OK │ Query $[?(!@.a)].id from [{"a":{"b":"c"}, "id":1}, {"x":{"y":"z"}, "id":2}] 76 │ OK │ Query $[?(@.a)].id from [{"a":["b","c"], "id":1}, {"x":["y","z"], "id":2}] 77 │ OK │ Query $[?(!@.a)].id from [{"a":["b","c"], "id":1}, {"x":["y","z"], "id":2}] 78 │ OK │ Query $.*~ 79 │ OK │ Query $.*~.first() 80 │ OK │ Query $.services[?(@.servicegroup=="1002")]~ 81 │ OK │ Query $.books[?(@.category=="fiction")]~ 82 │ OK │ Query $.books[?(@.category=="reference")].price 83 │ OK │ Query $.books[1,1].title 84 │ OK │ Query $.books[1:10000].title 85 │ OK │ Query $.books[10000:1].title 86 │ OK │ Query $.books[1:2].title 87 │ OK │ Query $.books[1]["title","title"] 88 │ OK │ Query empty array 89 │ OK │ Query empty object 90 │ OK │ Query with json prefixed with whitespace 91 │ OK │ Query identical keys - path. 92 │ OK │ Query identical keys - path (last) 93 │ OK │ Query identical keys - path (first) 94 │ OK │ Query $[ ?( ' ' *'' )] 95 │ OK │ Query by comparing with null value ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_function_param_quote ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Testing integer overflow ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── macro_tr ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ converts all letters to uppercase 1 │ OK │ converts all letters to lowercase 2 │ OK │ replaces all numbers with * 3 │ OK │ replaces all numbers and uppercase latters with * 4 │ OK │ replaces all numbers and latters with * 5 │ OK │ converts all uppercase to lowercase and lowercase to uppercase 6 │ OK │ empty parameter 1 7 │ OK │ empty parameter 2 8 │ OK │ empty input data 9 │ OK │ wrong parameter 1 range 10 │ OK │ wrong parameter 2 range 11 │ OK │ escaped character backslash 12 │ OK │ escaped character " 13 │ OK │ escaped character ' 14 │ OK │ mixed long string with mixed patterns 15 │ OK │ mixed long string with mixed patterns extended 16 │ OK │ overridden pattern 17 │ OK │ unfinished range pattern 18 │ OK │ parameter 1 pattern overflow 19 │ OK │ parameter 2 pattern overflow 20 │ OK │ parameter range pattern finished with escaped char 21 │ OK │ parameter range pattern started with escaped char 22 │ OK │ replace escaped - to * 23 │ OK │ replace * to escaped - 24 │ OK │ triple range spechar usage 25 │ OK │ backslash at end of pattern 26 │ OK │ different characters 27 │ OK │ characters to newlines 28 │ OK │ characters to audible bell characters 29 │ OK │ characters to escape sequence characters 30 │ OK │ characters to form feed characters 31 │ OK │ characters to beginning of the current line characters 32 │ OK │ characters to tab characters 33 │ OK │ characters to vertical space characters ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_is_discovery_macro ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. {#MACRO} 1 │ OK │ 2. #MACRO 2 │ OK │ 3. {#MACRO 3 │ OK │ 4. {MACRO} ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_substitute_macros ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Empty data 1 │ OK │ Empty macro 2 │ OK │ Object id {0} should be skipped 3 │ OK │ LLD macro {#} should be skipped 4 │ OK │ LLD function macro {{#LLD}} should be skipped 5 │ OK │ Normal unindexed resolved macro {VALUE} 6 │ OK │ Normal unindexed unknown macro {VALUE} 7 │ OK │ Normal unindexed unresolved macro {VALUE} 8 │ OK │ Normal indexed resolved macro {ITEM.VALUE} 9 │ OK │ Normal indexed unknown macro {ITEM.VALUE} 10 │ OK │ Normal indexed unresolved macro {ITEM.VALUE} 11 │ OK │ Indexing unindexable macro {VALUE1} 12 │ OK │ Unindexed resolved function macro {{ITEM.VALUE}.fmtnum(2)} 13 │ OK │ Unindexed unresolved function macro {{ITEM.VALUE}.fmtnum(2)} 14 │ OK │ Indexed resolved function macro {{ITEM.VALUE}.fmtnum(2)} 15 │ OK │ Indexed unresolved function macro {{ITEM.VALUE1}.fmtnum(2)} {{ITEM.VALUE2}.fmtnum(2)} 16 │ OK │ Raw value in indexed function macro 17 │ OK │ Unsupported macros in function macro 18 │ OK │ User macro {$VALUE} 19 │ OK │ User macro {$VALUE} should not be indexed 20 │ OK │ Expression macros {?} are being ignored by basic search 21 │ OK │ Nested macros are not supported {VALUE2{VALUE1}} 22 │ OK │ Macro function 1 23 │ OK │ Macro function 2 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── macro_func ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ btoa simple 1 │ OK │ btoa short 2 │ OK │ btoa long 3 │ OK │ btoa with parameter 4 │ OK │ btoa with parameters 5 │ OK │ btoa empty data 6 │ OK │ urlencode long 7 │ OK │ urlencode short 8 │ OK │ urlencode with parameter 9 │ OK │ urlencode with parameters 10 │ OK │ urlencode empty data 11 │ OK │ urldecode long 12 │ OK │ urldecode short 13 │ OK │ urldecode with parameter 14 │ OK │ urldecode with parameters 15 │ OK │ urldecode empty data 16 │ OK │ lowercase long 17 │ OK │ lowercase short 18 │ OK │ lowercase with parameter 19 │ OK │ lowercase with parameters 20 │ OK │ lowercase empty data 21 │ OK │ uppercase long 22 │ OK │ uppercase short 23 │ OK │ uppercase with parameter 24 │ OK │ uppercase with parameters 25 │ OK │ uppercase empty data 26 │ OK │ htmlencode long 27 │ OK │ htmlencode short 28 │ OK │ htmlencode with parameter 29 │ OK │ htmlencode with parameters 30 │ OK │ htmlencode empty data 31 │ OK │ htmldecode long 32 │ OK │ htmldecode short 33 │ OK │ htmldecode with parameter 34 │ OK │ htmldecode with parameters 35 │ OK │ htmldecode empty data 36 │ OK │ htmldecode &lt; 37 │ OK │ htmldecode & 38 │ OK │ htmldecode ' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_interval_preproc ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ min 1 │ OK │ max 2 │ OK │ more than allowed 3 │ OK │ min seconds 4 │ OK │ max seconds 5 │ OK │ more than allowed seconds 6 │ OK │ min minutes 7 │ OK │ max minutes 8 │ OK │ more than allowed minutes 9 │ OK │ min hours 10 │ OK │ max hours 11 │ OK │ more than allowed hours 12 │ OK │ min/max days 13 │ OK │ more than allowed days 14 │ OK │ weeks not allowed 15 │ OK │ zero alone are not allowed 16 │ OK │ zero seconds alone are not allowed 17 │ OK │ custom intervals don't matter so we cannot determine if 0 is OK 18 │ OK │ custom intervals don't matter so we cannot determine if 0 seconds is OK 19 │ OK │ custom intervals don't matter even if are invalid 20 │ OK │ don't allow invalid custom intervals if matter 21 │ OK │ don't allow 0 update interval even if custom is used and still 0 22 │ OK │ don't allow 0 simple update interval if one of custom update intervals has 0 update interval 23 │ OK │ don't allow 0 update interval if one of custom update intervals has 0 update interval and scheduling 24 │ OK │ allow 0 update interval even if custom has non 0 25 │ OK │ allow 0 custom update interval even if custom is 0 26 │ OK │ allow 0 simple update interval if only scheduling is present 27 │ OK │ custom intervals are missing, there is only separator ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_token_find ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ successfully found low-level discovery function macros token 1 │ OK │ invalid low-level discovery function macros token 2 │ OK │ successfully found function macros token 3 │ OK │ invalid function macros token 4 │ OK │ successfully found user macros token 5 │ OK │ invalid user macros token 6 │ OK │ LLD macro with function 7 │ OK │ LLD macro with function, with text before 8 │ OK │ LLD macro with function, with text after 9 │ OK │ LLD macro with function with text around 10 │ OK │ Nested macro with spaces after param 11 │ OK │ LLD macro with spaces after param 12 │ OK │ LLD macro 13 │ OK │ LLD macro used as simple macro 14 │ OK │ Macro not started 15 │ OK │ Empty macro 16 │ OK │ Empty macro full 17 │ OK │ Invalid macro char 18 │ OK │ Invalid function delimiter 19 │ OK │ Ordinary LLD function macro 20 │ OK │ Ordinary LLD function macro 2 21 │ OK │ User macro with LLD function macro context 22 │ OK │ LLD function macro missing closing bracket 23 │ OK │ LLD function macro missing opening bracket 24 │ OK │ Success: {ABC.EFG} 25 │ OK │ Failure: {} 26 │ OK │ Failure: {abc} 27 │ OK │ Failure: {ABC } 28 │ OK │ Failure: {ABC.'xyz'} 29 │ OK │ Failure: {ABC."xyz} 30 │ OK │ Failure: {ABC.""} 31 │ OK │ Failure: {ABC."xyz" } 32 │ OK │ Failure: {ABC. "xyz"} 33 │ OK │ Failure: {ABC."xyz".EFG} 34 │ OK │ Failure: {ABC."x\yz"} 35 │ OK │ Failure: {ABC.x-z} 36 │ OK │ Failure: {ABC.} 37 │ OK │ Failure: {ABC..XYZ} 38 │ OK │ Success: {ABC.xyz} 39 │ OK │ Success: {ABC.DEF.xyz} 40 │ OK │ Success: {ABC."xyz"} 41 │ OK │ Success: {ABC."x-z"} 42 │ OK │ Success: {ABC."x\\/z"} 43 │ OK │ Success: {M123} 44 │ OK │ Success: {ABC."x\"\"z"} 45 │ OK │ Success: {{ABC.xyz}.regsub((.*),\1)} 46 │ OK │ Failure: {{#ABC.xyz}.regsub((.*),\1)} 47 │ OK │ Failure: {$ABC.xyz} 48 │ OK │ Failure: {.ABC} 49 │ OK │ Success: {M_1.M_2.M_3} 50 │ OK │ Success: {EVENT.TAGS.TAG123} 51 │ OK │ Success: {EVENT.TAGS.1TAG} 52 │ OK │ Success: {EVENT.TAGS."1TAG"} 53 │ OK │ Success: {?1 + 2} 54 │ OK │ Success: {?{$VALUE}*2} 55 │ OK │ Success: {?{$VALUE:"context{}"}*2} 56 │ OK │ Failure: {?} 57 │ OK │ Failure: {?"} 58 │ OK │ Failure: {?"\"} 59 │ OK │ Success: {?"abc"} 60 │ OK │ Success: {?"a\"b\"c"} 61 │ OK │ Success: {?"}"} 62 │ OK │ Success: {?{?}} 63 │ OK │ Success: {?{host:key.func()}} 64 │ OK │ Success: {?{HOST.HOST}} 65 │ OK │ Success: {?{$MACRO}} 66 │ OK │ Success: {{?1}.fmtnum(1)} 67 │ OK │ Success: {{? {{HOST.HOST}:key.last()} }.fmtnum(2)} 68 │ OK │ Success: {{? {? {?1 }.fmtnum(1)} 69 │ OK │ Success: with recursive expression macros 70 │ OK │ Success: no hang with lots of recursive expression macros 71 │ OK │ successfully found function macros token in user macro 72 │ OK │ Success: {?count(//trap[1],#5,"str\\arg", 0)} 73 │ OK │ Success: var: { {MACRO} 74 │ OK │ Success: var: {{variable}.func(param)} 75 │ OK │ Success: var: {{2}.func(param)} 76 │ OK │ Success: var: {{$2}.func(param)} 77 │ OK │ Success: var: {{#2}.func(param)} 78 │ OK │ Success: var: {{?2}.func(param)} 79 │ OK │ failed because of double backslash ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_get_function_type ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Trends 1 │ OK │ 2. Baseline 2 │ OK │ 3. Nodata 3 │ OK │ 4. Something -> history ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_function_param_parse_ext ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Parameters ' ' 1 │ OK │ Parameters 'a' 2 │ OK │ Parameters 'a,b)' 3 │ OK │ Parameters ' a , b ' 4 │ OK │ Parameters '{$M:a,b}' 5 │ OK │ Parameters '{$M:a,b}' with user macros 6 │ OK │ Parameters '"{$M:a,b}"' 7 │ OK │ Parameters '{{#L}.f(a,b)}' 8 │ OK │ Parameters '{{#L}.f(a,b)}' with lld macros 9 │ OK │ Parameters ' "a" ' 10 │ OK │ Parameters '"a,b"' 11 │ OK │ Parameters '"a\b",c' 12 │ OK │ Parameters '"a\"b",c' 13 │ OK │ Parameters '"a\\",b\\"",c' 14 │ OK │ Parameters '"a\b",c' with backslash escaping 15 │ OK │ Parameters '"a\"b",c' with backslash escaping 16 │ OK │ Parameters '"a\\",b\\"",c' 17 │ OK │ Parameters ' "a,b' 18 │ OK │ Parameters 'a",b' 19 │ OK │ Parameters '{$A, {$M:a,b}' 20 │ OK │ Parameters '{$A, {$M:a,b}' with user macros ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── calculate_item_nextcheck_unreachable ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Calculate nextcheck for unreachable host 1 │ OK │ Calculate nextcheck for unreachable host (2) 2 │ OK │ Calculate nextcheck for unreachable host (3) 3 │ OK │ Calculate nextcheck for unreachable host (4) 4 │ OK │ Calculate nextcheck for unreachable host (5) 5 │ OK │ Calculate nextcheck for unreachable host (6) 6 │ OK │ Calculate nextcheck for unreachable host (7) 7 │ OK │ Calculate nextcheck for unreachable host (8) 8 │ OK │ Calculate nextcheck for unreachable host (9) 9 │ OK │ Calculate nextcheck for unreachable host (10) 10 │ OK │ Calculate nextcheck for unreachable host (11) 11 │ OK │ Calculate nextcheck for unreachable host (12) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_url_decode ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Empty str 1 │ OK │ 2. Invalid Encoding 2 │ OK │ 3. Input With % Only 3 │ OK │ 4. Long Valid Input 4 │ OK │ 5. No Encoding 5 │ OK │ 6. Multiple Pluses ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── calculate_item_nextcheck ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Calculate active item nextcheck from simple delay 1 │ OK │ Calculate active item nextcheck from scheduled interval 2 │ OK │ Scheduled every 15m check when changing from summer time to winter 3 │ OK │ Scheduled every 1h check when changing from summer time to winter 4 │ OK │ Scheduled 9:00 check when changing from summer time to winter 5 │ OK │ Scheduled 15m check when changing from summer time to winter 6 │ OK │ Scheduled 3:30 check when changing from summer time to winter 7 │ OK │ Scheduled every 2h check when changing from summer time to winter 8 │ OK │ Scheduled every 15m check when changing from winter time to summer 9 │ OK │ Scheduled every 1h check when changing from winter time to summer 10 │ OK │ Scheduled 9:00 check when changing from winter time to summer 11 │ OK │ Scheduled 15m check when changing from winter time to summer 12 │ OK │ Scheduled 3:30 check when changing from winter time to summer 13 │ OK │ Scheduled every 2h check when changing from winter time to summer 14 │ OK │ Scheduled 3:00 check when changing from winter time to summer 15 │ OK │ Time zone 1:30 west of UTC 16 │ OK │ Time zone 0:45 west of UTC 17 │ OK │ Scheduling interval with month day and week day filters 18 │ OK │ Scheduling interval month day is outside of current month day range 19 │ OK │ Scheduling check every day at 2 a.m. when government decides drastically change the timezone 20 │ OK │ Scheduling check around DST change in the Southern Hemisphere 21 │ OK │ Scheduling check around DST change back in the Moscow 22 │ OK │ Scheduling check around DST change forward in the Moscow ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_check_time_period ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Time in range 1 │ OK │ 2. Time outside range 2 │ OK │ 3. Time outside range because of time zone 3 │ OK │ 4. Time period with typo ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_validate_interval ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ min 1 │ OK │ max 2 │ OK │ more than allowed 3 │ OK │ min seconds 4 │ OK │ max seconds 5 │ OK │ more than allowed seconds 6 │ OK │ min minutes 7 │ OK │ max minutes 8 │ OK │ more than allowed minutes 9 │ OK │ min hours 10 │ OK │ max hours 11 │ OK │ more than allowed hours 12 │ OK │ min/max days 13 │ OK │ more than allowed days 14 │ OK │ weeks not allowed 15 │ OK │ zero alone are not allowed 16 │ OK │ zero seconds alone are not allowed 17 │ OK │ simple interval with improper delimiter not allowed 18 │ OK │ invalid update interval 19 │ OK │ simple interval with only delimiter is not allowed 20 │ OK │ simple interval with double delimiter is not allowed 21 │ OK │ macro is allowed as simple interval 22 │ OK │ suffixes are not allowed with macro 23 │ OK │ macro with unexpected delimiter is not allowed 24 │ OK │ macro with unexpected delimiter is not allowed 25 │ OK │ macro as units is not allowed 26 │ OK │ only user macro is allowed 27 │ OK │ several macros not allowed 28 │ OK │ simple interval with only delimiter is not allowed 29 │ OK │ simple interval macro with double delimiter is not allowed 30 │ OK │ one flexible interval is allowed 31 │ OK │ more than one flexible intervals are allowed 32 │ OK │ invalid simple interval 33 │ OK │ invalid flexible interval 34 │ OK │ invalid flexible 35 │ OK │ flexible interval double semicolon 36 │ OK │ flexible interval double delimiter 37 │ OK │ flexible interval wrong delimiter 38 │ OK │ ends with unexpected semicolon 39 │ OK │ flexible update interval is missing 40 │ OK │ flexible period is missing 41 │ OK │ flexible period is missing but there is delimiter 42 │ OK │ macro in simple interval 43 │ OK │ macro in flexible interval 44 │ OK │ macro in flexible 45 │ OK │ macro flexible update interval only 46 │ OK │ macro flexible only 47 │ OK │ more than one flexible intervals are allowed 48 │ OK │ invalid simple interval even if all other is macro 49 │ OK │ invalid flexible interval even if other are macros 50 │ OK │ invalid flexible with all other macro 51 │ OK │ suffixes are not allowed in flexible update interval after macro 52 │ OK │ macro must be whole value in flexible, not just part 53 │ OK │ macro must be whole value in flexible, not just part in the end 54 │ OK │ invalid simple interval 55 │ OK │ invalid flexible interval 56 │ OK │ invalid flexible 57 │ OK │ flexible interval double delimiter 58 │ OK │ flexible interval wrong delimiter 59 │ OK │ flexible interval double semicolon 60 │ OK │ invalid in update interval 61 │ OK │ invalid in flexible update interval 62 │ OK │ invalid in flexible interval 63 │ OK │ context macro is correctly handled 64 │ OK │ context macro + real values 65 │ OK │ context macro + last macro is broken 66 │ OK │ context macro + invalid flexible 67 │ OK │ simple interval can be 0 in case flexible is non zero 68 │ OK │ simple interval can be 0 in case flexible intervals are non zero 69 │ OK │ flexible interval can be 0 in case simple interval is not 0 70 │ OK │ simple interval can be 0 in case flexible intervals are non zero 71 │ OK │ simple interval cannot be 0 in case flexible update interval is zero 72 │ OK │ simple interval cannot be 0 in case one of flexible intervals is zero 73 │ OK │ flexible interval can be 0 if simple interval is macro 74 │ OK │ simple interval can be 0 if flexible interval is macro 75 │ OK │ simple interval can be 0 if flexible update interval is non zero or macro 76 │ OK │ simple interval cannot be 0 if one of flexible intervals is macro while other is 0 77 │ OK │ within limits 78 │ OK │ simple interval is too high 79 │ OK │ flexible interval is too high 80 │ OK │ flexible interval overflow 81 │ OK │ simple interval too high but flexible is macro 82 │ OK │ flexible interval is too high but simple is macro 83 │ OK │ update interval + scheduling check 84 │ OK │ 0 update interval + scheduling check 85 │ OK │ scheduling check with slash 86 │ OK │ scheduling check with flexible check 87 │ OK │ update interval is invalid + scheduling check 88 │ OK │ invalid scheduling check 89 │ OK │ invalid scheduling check 90 │ OK │ scheduling double semicolon 91 │ OK │ scheduling ends with unexpected semicolon 92 │ OK │ update interval is missing 93 │ OK │ delimiter between scheduling macros 94 │ OK │ scheduling check as macro 95 │ OK │ scheduling check macro with macro update interval 96 │ OK │ simple update interval as macro 97 │ OK │ simple update interval as macro and one of scheduling 98 │ OK │ macro in update interval does not skip validation of scheduling 99 │ OK │ macro in one of scheduling does not skip validation of scheduling 100 │ OK │ macro in one of flexible does not skip validation of scheduling 101 │ OK │ macro in one of scheduling does not skip validation of flexible period 102 │ OK │ macro in one of scheduling does not skip validation of flexible interval 103 │ OK │ delimiter between scheduling macros must be present 104 │ OK │ delimiter between scheduling macros must be present 105 │ OK │ scheduling higher than upper limit 106 │ OK │ scheduling in limit 107 │ OK │ scheduling context macro 108 │ OK │ scheduling + flexible context macro 109 │ OK │ empty delay ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_user_macro_quote_context_dyn ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ macro_name 1 │ OK │ Space 2 │ OK │ Double quotes 3 │ OK │ end with \\ ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_user_macro_parse ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ space after single-character macro name 1 │ OK │ space before single-character macro name 2 │ OK │ macro without closing brace 3 │ OK │ macro without name 4 │ OK │ lower case single-character macro name 5 │ OK │ capitalized macro name" 6 │ OK │ no closing brace, empty context 7 │ OK │ no closing brace, one opening quote in context 8 │ OK │ one opening quote in context 9 │ OK │ one opening quote in before 1-digit context 10 │ OK │ quoted context with extra character after 11 │ OK │ one opening quote in before 1-digit context with space 12 │ OK │ valid single-character macro 13 │ OK │ valid multi-character macro 14 │ OK │ extra character after } 15 │ OK │ 1-digit context 16 │ OK │ multi-digit context 17 │ OK │ 1-digit context and space 18 │ OK │ space before 1-digit context 19 │ OK │ space before and after 1-digit context 20 │ OK │ quoted 1-digit context with 2 spaces before 21 │ OK │ quoted 1-digit context with 2 spaces before and after 22 │ OK │ two spaces before quoted context with escaped quotes 23 │ OK │ two spaces around quoted context with escaped quotes 24 │ OK │ quoted context with macro look-alike string, spaces around quotes 25 │ OK │ empty context 26 │ OK │ ignore regex prefix for nonregex match 27 │ OK │ unterminated regex prefix 28 │ OK │ empty regex match 29 │ OK │ simple regex match 30 │ OK │ simple regex match ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_parse_host_key ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. hostname:[test] 1 │ OK │ 2. Empty 2 │ OK │ 3. Newlines 3 │ OK │ 4. some ASCII ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_substitute_macros_um ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ No data 1 │ OK │ Substitution using default user macro cache 2 │ OK │ Substitution using secure user macro cache 3 │ OK │ Substitution using masked user macro cache ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_check_hostname ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. linux-w7x1 1 │ OK │ 2. $$$ 2 │ OK │ 3. linux with newline 3 │ OK │ 4. linux with quotes 4 │ OK │ 5. Long host name over ZBX_MAX_HOSTNAME_LEN 5 │ OK │ 6. Empty host name ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_make_hostname ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. linux-w7x1 1 │ OK │ 2. linux-w7x1$$ 2 │ OK │ 3. linux with newline 3 │ OK │ 4. linux with quotes ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_uint64match_condition ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. value:max uint64 pattern: max uint64 op:ZBX_CONDITION_OPERATOR_EQUAL 1 │ OK │ 2. value:max uint64 pattern: max uint64 op:ZBX_CONDITION_OPERATOR_NOT_EQUAL 2 │ OK │ 3. value:max uint64 pattern: 0 op:ZBX_CONDITION_OPERATOR_EQUAL 3 │ OK │ 4. value:max uint64 pattern: 0 op:ZBX_CONDITION_OPERATOR_NOT_EQUAL ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_substitute_macros1 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ No data 1 │ OK │ No data with parameter 2 │ OK │ Empty data 3 │ OK │ Empty value 4 │ OK │ Empty value 2 5 │ OK │ Value 6 │ OK │ Value and one 7 │ OK │ One value 8 │ OK │ Multiple values ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── is_double_suffix ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ succeed -1.0K 1 │ OK │ succeed -1.0M 2 │ OK │ succeed -1.0G 3 │ OK │ succeed -1.0T 4 │ OK │ succeed -1.0s 5 │ OK │ succeed -1.0m 6 │ OK │ succeed -1.0h 7 │ OK │ succeed -1.0d 8 │ OK │ succeed -1.0w 9 │ OK │ succeed 10K 10 │ OK │ succeed 10M 11 │ OK │ succeed 10G 12 │ OK │ succeed 10T 13 │ OK │ succeed 10s 14 │ OK │ succeed 10m 15 │ OK │ succeed 10h 16 │ OK │ succeed 10d 17 │ OK │ succeed 10w 18 │ OK │ succeed 1.0K 19 │ OK │ succeed 1.0M 20 │ OK │ succeed 1.0G 21 │ OK │ succeed 1.0T 22 │ OK │ succeed 1.0s 23 │ OK │ succeed 1.0m 24 │ OK │ succeed 1.0h 25 │ OK │ succeed 1.0d 26 │ OK │ succeed 1.0w 27 │ OK │ succeed -10K 28 │ OK │ succeed -10M 29 │ OK │ succeed -10G 30 │ OK │ succeed -10T 31 │ OK │ succeed -10s 32 │ OK │ succeed -10m 33 │ OK │ succeed -10h 34 │ OK │ succeed -10d 35 │ OK │ succeed -10w 36 │ OK │ succeed -1.0 37 │ OK │ succeed 1.0 38 │ OK │ succeed -1 39 │ OK │ succeed 1 40 │ OK │ succeed 1234567890.0987654321 41 │ OK │ succeed -1234567890.0987654321 42 │ OK │ succeed 1234567890.0987654321K 43 │ OK │ succeed -1234567890.0987654321K 44 │ OK │ fail . 45 │ OK │ fail -. 46 │ OK │ fail +. 47 │ OK │ fail .K 48 │ OK │ fail -.K 49 │ OK │ fail +.K 50 │ OK │ fail -1.0k 51 │ OK │ fail -1.0Kk 52 │ OK │ fail -1,0K 53 │ OK │ fail +1 54 │ OK │ fail +1.0 55 │ OK │ fail +.1 56 │ OK │ succeed 1.K 57 │ OK │ succeed .1K 58 │ OK │ succeed -1.K 59 │ OK │ succeed -.1K 60 │ OK │ succeed 1. 61 │ OK │ succeed -1. 62 │ OK │ succeed .1 63 │ OK │ succeed -.1 64 │ OK │ fail "1. " 65 │ OK │ fail "-1. " 66 │ OK │ fail " .1" 67 │ OK │ fail "- .1" 68 │ OK │ fail " -0.1" 69 │ OK │ fail "-0.1 " 70 │ OK │ fail "-0.1 K" 71 │ OK │ fail "1 K" 72 │ OK │ fail "1K " 73 │ OK │ fail "1 " 74 │ OK │ fail " 1" 75 │ OK │ fail ..1 76 │ OK │ fail .1. 77 │ OK │ fail 1.. 78 │ OK │ fail .1.2 79 │ OK │ fail 1..2 80 │ OK │ fail .. 81 │ OK │ succeed 1e+2 82 │ OK │ succeed 1E+2 83 │ OK │ fail --1 84 │ OK │ fail "- -1" ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_get_report_nextcheck ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Daily reports for day 1 │ OK │ Weekly reports every day 2 │ OK │ Weekly reports on workdays 3 │ OK │ Weekly reports on mondays 4 │ OK │ Monthly reports 5 │ OK │ Yearly reports 6 │ OK │ Daily reports for day (same day) 7 │ OK │ Daily reports for day (next day) 8 │ OK │ Daily reports for day (2) 9 │ OK │ Daily reports for day (3) 10 │ OK │ Daily reports for day (4) 11 │ OK │ Daily reports for day (5) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── parse_key ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ valid key with no parameters 1 │ OK │ valid key with empty brackets 2 │ OK │ valid key with quoted empty string in brackets 3 │ OK │ valid key with space in brackets 4 │ OK │ valid key with leading space before quoted empty string in brackets 5 │ OK │ valid key with leading and trailing spaces around quoted empty string in brackets 6 │ OK │ valid key with 'a' in brackets 7 │ OK │ valid key with leading space before 'a' in brackets 8 │ OK │ valid key with leading and trailing spaces around 'a' in brackets 9 │ OK │ valid key with quoted 'a' in brackets 10 │ OK │ valid key with quoted 'a' followed by comma in brackets 11 │ OK │ valid key with unquoted 'a' followed by comma in brackets 12 │ OK │ valid key with multiple unquoted parameters in brackets 13 │ OK │ valid key with multiple quoted parameters in brackets 14 │ OK │ valid key with first unquoted parameter and second array parameter containing two unquoted parameters 15 │ OK │ valid key with first unquoted parameter and second array parameter containing unquoted and empty parameter 16 │ OK │ valid key with two unquoted parameters where second parameter contains opening square bracket 17 │ OK │ valid key with multiple quoted parameters and array 18 │ OK │ valid key with multiple quoted parameters and multiple arrays 19 │ OK │ valid key, single parameter with unquoted string containing double quote characters 20 │ OK │ valid key, multiple different type parameters where one is unquoted string containing double quote characters 21 │ OK │ valid key with many quoted/unquoted parameters with/without trailing/leading spaces also featuring escaping 22 │ OK │ valid key in the beginning, invalid character for unquoted parameter, multiple parameter key 23 │ OK │ valid key in the beginning, unmatched closing bracket, parameter followed by trailing space 24 │ OK │ valid key in the beginning, unmatched closing bracket, parameter followed by leading space 25 │ OK │ valid key in the beginning, part of parameters list not enclosed in brackets 26 │ OK │ valid key in the beginning, comma is not allowed in key or parameters should be enclosed in brackets 27 │ OK │ valid key in the beginning, multiple square bracket pairs are not allowed 28 │ OK │ valid key in the beginning, multiple square bracket pairs containing parameters are not allowed 29 │ OK │ valid key in the beginning, followed by character ] 30 │ OK │ valid key in the beginning, character [ is allowed in unquoted parameter string 31 │ OK │ valid key in the beginning, followed by comma, key with multiple different type parameters 32 │ OK │ invalid key, unmatched opening bracket (1) 33 │ OK │ invalid key, unmatched opening bracket (2) 34 │ OK │ invalid key, invalid character (double quote) after array-closing bracket 35 │ OK │ invalid key, braces are not allowed in key 36 │ OK │ invalid key, multi-level arrays are not allowed 37 │ OK │ invalid key, multi-level arrays are not allowed, array consists of multiple different type parameters 38 │ OK │ invalid key, multi-level arrays are not allowed, array consists of single parameter which is another array 39 │ OK │ invalid key, quoted parameter cannot contain unquoted part 40 │ OK │ invalid key, second parameter of the array cannot contain unquoted part 41 │ OK │ invalid key, array type parameter cannot contain quoted parameter with unquoted part 42 │ OK │ invalid key, array type parameter cannot contain quoted part ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_custom_interval_is_scheduling ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Is custom interval 1 │ OK │ 2. No custom interval ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_function_find ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ successfully found simple function #1 1 │ OK │ successfully found simple function #2 2 │ OK │ function name not found #1 3 │ OK │ function name not found #2 4 │ OK │ function name not found #3 5 │ OK │ function name not found #4 6 │ OK │ function name not found #5 7 │ OK │ function name not found #6 8 │ OK │ function parameters not found #1 9 │ OK │ function parameters not found #2 10 │ OK │ function parameters not found #3 11 │ OK │ function parameters not found #4 12 │ OK │ function parameters not found #5 13 │ OK │ successfully found function that started after a space #1 14 │ OK │ successfully found function that started after a space #2 15 │ OK │ successfully found function that started after a space #3 16 │ OK │ successfully found the function #1 17 │ OK │ successfully found the function #2 18 │ OK │ successfully found the function #3 19 │ OK │ successfully found the function #4 20 │ OK │ function with a complex set of parameters was successfully found #1 21 │ OK │ function with a complex set of parameters was successfully found #2 22 │ OK │ function with LLD function 1 23 │ OK │ function with LLD function 2 24 │ OK │ function with LLD function 3 25 │ OK │ function with LLD function 4 26 │ OK │ function with LLD function in macro context 27 │ OK │ function with LLD function in macro context 28 │ OK │ function with LLD function double escaped 29 │ OK │ Check that opening of LLD function macro is skipped if no macro 30 │ OK │ Check that emptynested LLD function macro is skipped if no macro 31 │ OK │ Only opening of LLD macro function must fail #1 32 │ OK │ Only opening of LLD macro function must fail #2 33 │ OK │ Only opening of LLD macro function must fail #3 34 │ OK │ Only opening of LLD macro function must fail #4 35 │ OK │ Unit suffix support in calculated item formulas #1 36 │ OK │ Unit suffix support in calculated item formulas #2 37 │ OK │ Valid expression without function 38 │ OK │ successfully found simple function #1, string comparison 39 │ OK │ successfully found simple function #2, string comparison 40 │ OK │ function name not found #1, string comparison 41 │ OK │ function name not found #2, string comparison 42 │ OK │ function name not found #3, string comparison 43 │ OK │ function name not found #4, string comparison 44 │ OK │ function name not found #5, string comparison 45 │ OK │ function name not found #6, string comparison 46 │ OK │ function parameters not found #1, string comparison 47 │ OK │ function parameters not found #2, string comparison 48 │ OK │ function parameters not found #3, string comparison 49 │ OK │ function parameters not found #4, string comparison 50 │ OK │ function parameters not found #5, string comparison 51 │ OK │ successfully found function that started after a space #1, string comparison 52 │ OK │ successfully found function that started after a space #2, string comparison 53 │ OK │ successfully found function that started after a space #3, string comparison 54 │ OK │ successfully found the function #1, string comparison 55 │ OK │ successfully found the function #2, string comparison 56 │ OK │ successfully found the function #3, string comparison 57 │ OK │ successfully found the function #4, string comparison 58 │ OK │ function with a complex set of parameters was successfully found #1, string comparison 59 │ OK │ function with a complex set of parameters was successfully found #2, string comparison 60 │ OK │ function with LLD function, string comparison 61 │ OK │ function with LLD function in macro context, string comparison 62 │ OK │ function with LLD function double escaped, string comparison 63 │ OK │ Check that opening of LLD function macro is skipped if no macro, string comparison 64 │ OK │ Broken expression ending with inside quotes ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_function_validate_parameters ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. param1, param2, "param3" 1 │ OK │ 2. param1, param2, "param3 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_get_agent_item_nextcheck ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Delay 1s 1 │ OK │ 2. Delay 10s 2 │ OK │ 3. Delay 1d 3 │ OK │ 4. Delay 1w 4 │ OK │ 5. Delay 1s over Jan 2038 5 │ OK │ 6. Delay 10s over Jan 2038 6 │ OK │ 7. Delay 1d over Jan 2038 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── macro_fmttime ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Simple addition (+1h) 1 │ OK │ Simple subtraction (-1h) 2 │ OK │ Simple addition (+1d) 3 │ OK │ Simple subtraction (-1d) 4 │ OK │ Simple addition (+1w) 5 │ OK │ Simple subtraction (-1w) 6 │ OK │ Simple addition (+1M) 7 │ OK │ Simple subtraction (-1M) 8 │ OK │ Simple addition (+1y) 9 │ OK │ Simple subtraction (-1y) 10 │ OK │ Different macros formulas with subtraction (-1d-1h) 11 │ OK │ Different macros formulas with subtraction (-1w-1h) 12 │ OK │ Different macros formulas with subtraction (-1w-1d) 13 │ OK │ Different macros formulas with subtraction (-1M-1h) 14 │ OK │ Different macros formulas with subtraction (-1M-1d) 15 │ OK │ Different macros formulas with subtraction (-1M-1w) 16 │ OK │ Different macros formulas with subtraction (-1y-1h) 17 │ OK │ Different macros formulas with subtraction (-1y-1d) 18 │ OK │ Different macros formulas with subtraction (-1y-1w) 19 │ OK │ Different macros formulas with subtraction (-1y-1M) 20 │ OK │ Different macros formulas with subtraction (-1h-1h) 21 │ OK │ Different macros formulas with adding (-1d+1h) 22 │ OK │ Different macros formulas with adding (-1w+1h) 23 │ OK │ Different macros formulas with adding (-1w+1d) 24 │ OK │ Different macros formulas with adding (-1M+1h) 25 │ OK │ Different macros formulas with adding (-1M+1d) 26 │ OK │ Different macros formulas with adding (-1M+1w) 27 │ OK │ Different macros formulas with adding (-1y+1h) 28 │ OK │ Different macros formulas with adding (-1y+1d) 29 │ OK │ Different macros formulas with adding (-1y+1w) 30 │ OK │ Different macros formulas with adding (-1y+1M) 31 │ OK │ Different macros formulas with adding (-1d+1h) 32 │ OK │ Check end period date/time with + (+1M/M-1d) 33 │ OK │ Check end period date/time with + (+1M/M-1h) 34 │ OK │ Check end period date/time with + (+1d/d-1h) 35 │ OK │ Check end period date/time with + (+1w/w-1h) 36 │ OK │ Check end period date/time with + (+1w/w-1d) 37 │ OK │ Check end period date/time with + (+1M/M-1w) 38 │ OK │ Check end period date/time with + (+1y/y-1h) 39 │ OK │ Check end period date/time with + (+1y/y-1d) 40 │ OK │ Check end period date/time with + (+1y/y-1w) 41 │ OK │ Check end period date/time with + (+1y/y-1M) 42 │ OK │ Check start period date/time with - (-1M/M-1d) 43 │ OK │ Check start period date/time with - (-1M/M-1h) 44 │ OK │ Check start period date/time with - (-1d/d-1h) 45 │ OK │ Check start period date/time with - (-1w/w-1h) 46 │ OK │ Check start period date/time with - (-1w/w-1d) 47 │ OK │ Check start period date/time with - (-1M/M-1w) 48 │ OK │ Check start period date/time with - (-1y/y-1h) 49 │ OK │ Check start period date/time with - (-1y/y-1d) 50 │ OK │ Check start period date/time with - (-1y/y-1w) 51 │ OK │ Check start period date/time with - (-1y/y-1M) 52 │ OK │ Simple expression – invalid sign (*1h) 53 │ OK │ Simple expression – invalid time unit (+1q) 54 │ OK │ Simple expression – invalid time amount (+xh) 55 │ OK │ Simple expression – invalid character (x) 56 │ OK │ Invalid rounding sign (+1y.y-1h) 57 │ OK │ Invalid rounding time unit (+1y/X-1h) 58 │ OK │ Absent rounding time unit (+1M/-1d) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── macro_regrepl ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ simple replacement short value with longer value 1 │ OK │ simple replacement long value with shorter value 2 │ OK │ one parameter 3 │ OK │ two parameters 4 │ OK │ three parameters 5 │ OK │ four parameters 6 │ OK │ five parameters 7 │ OK │ six parameters 8 │ OK │ seven parameters 9 │ OK │ eight parameters 10 │ OK │ nine parameters 11 │ OK │ ten parameters 12 │ OK │ replacement with 1st group 13 │ OK │ replacement with 2d group 14 │ OK │ replace first accurance 15 │ OK │ replace first accurance as group 16 │ OK │ replace first accurance with pattern including group 17 │ OK │ replace all string 18 │ OK │ replace 2 matches using 2 groups 19 │ OK │ invalid regular expression 20 │ OK │ only first group 21 │ OK │ replace with empty value 22 │ OK │ empty regular expression "" 23 │ OK │ empty data 24 │ OK │ replace with escaped backslash 25 │ OK │ empty regular expression 26 │ OK │ empty regular expression and empty data 27 │ OK │ replace empty data 28 │ OK │ insertion test 29 │ OK │ replace end of string 30 │ OK │ output overflow ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_function_get_param_dyn ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ valid 1 parameter 1 │ OK │ valid 2 parameter 2 │ OK │ valid 2 empty parameter 3 │ OK │ valid last empty parameter 4 │ OK │ non-existent 4 parameter 5 │ OK │ valid 1 parameter with [] 6 │ OK │ valid 2 parameter with [] 7 │ OK │ invalid params with empty 1 value 8 │ OK │ invalid params with empty 2 value 9 │ OK │ valid param with quoted 'a' in brackets 10 │ OK │ valid param with quoted '[a]' in brackets 11 │ OK │ valid param with quoted 'a' followed by comma 12 │ OK │ valid param with quoted 'a' prefixed by comma 13 │ OK │ valid param with unquoted 'a' followed by comma 14 │ OK │ valid param with multiple quoted parameters 15 │ OK │ valid param with first unquoted parameter and second array parameter containing two unquoted parameters 16 │ OK │ valid param with first unquoted parameter and second array parameter containing unquoted and empty parameter 17 │ OK │ valid param with two unquoted parameters where second parameter contains opening square bracket 18 │ OK │ valid param with multiple quoted parameters and array 19 │ OK │ valid param with multiple quoted parameters and multiple arrays 20 │ OK │ valid param, single parameter with unquoted string containing double quote characters 21 │ OK │ valid param, multiple different type parameters where one is unquoted string containing double quote characters ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_vc_get_values ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Get numeric (float) type values 1 │ OK │ Get character type values 2 │ OK │ Get log type values 3 │ OK │ Get numeric (unsigned) type values 4 │ OK │ Get text type values 5 │ OK │ Get values in interval before data values leaving unread values in the middle 6 │ OK │ Get interval of already already data values 7 │ OK │ Get interval of already cached values ending with the last data value 8 │ OK │ Get interval of values larger than database history and caching last values 9 │ OK │ Get interval of already cached data values larger than database history 10 │ OK │ Get one value in the middle of uncached data 11 │ OK │ Get one value in the middle of cached data 12 │ OK │ Get two values in the middle of cached data 13 │ OK │ Get 4 values when only 3 values exists in database history and are not cached 14 │ OK │ Get 4 values when only 3 values exists in database history and are cached 15 │ OK │ Get one value from empty history interval 16 │ OK │ Get 100 values from 1 second interval with 3 history values 17 │ OK │ Get 2 values from already cached 1 second interval with 3 history values 18 │ OK │ Get 3 values from already cached 1 second interval with 3 history values 19 │ OK │ Get 4 values from already data 1 second interval with 3 history values 20 │ OK │ Get 1 value from 1 second interval with 3 history values past cached data 21 │ OK │ Get 4 values from partially cached 2 second interval with 6 history values 22 │ OK │ Get all history values by count when they were already cached by time based request 23 │ OK │ Get all data values from interval when they were already cached by count 24 │ OK │ Get interval of values from empty history 25 │ OK │ Get number of values from empty history 26 │ OK │ Get number of values in from interval of history 27 │ OK │ Get interval of values when item value type has been changed 28 │ OK │ Get number of values when item value type has been changed 29 │ OK │ Get number of uncached item values when cache working in low memory mode 30 │ OK │ Get interval of uncached item values when cache working in low memory mode 31 │ OK │ Get number of uncached item values from interval when cache working in low memory mode 32 │ OK │ Get number of data item values when cache working in low memory mode 33 │ OK │ Get interval of data item values when cache working in low memory mode 34 │ OK │ Get number of data item values from interval when cache working in low memory mode 35 │ OK │ Get values with not enough space in cache 36 │ OK │ Get values with not enough space in cache and a day+ passed since last request 37 │ OK │ Active range tracking during day 38 │ OK │ Active range change in next few days 39 │ OK │ Switch back to normal mode after working a day in low memory mode 40 │ OK │ Get interval of values when using nanoseconds in end time 41 │ OK │ Get number of values when using nanoseconds in end time 42 │ OK │ Get number of values during interval when using nanoseconds in end time 43 │ OK │ Get number of values during interval when using nanoseconds in end time and not enough data 44 │ OK │ Get 1 value during interval when using nanoseconds in end time 45 │ OK │ Get 1 value during interval when using nanoseconds in end time (2) 46 │ OK │ Get 10 values during interval when using nanoseconds in end time 47 │ OK │ Get number of uncached item values from interval when cache working in low memory mode 48 │ OK │ Get 1 item value when cache working in low memory mode 49 │ OK │ Value target time is with future timestamp 50 │ OK │ Get 1 value during interval when using nanoseconds in end time (3) 51 │ OK │ Value target time is with future timestamp and there are more values with future timestamp 52 │ OK │ Value target time is with future timestamp but count also requires value from past 53 │ OK │ Value target time is with future timestamp but count also requires present value 54 │ OK │ Value target time is with future timestamp but count also requires present value and no past values 55 │ OK │ Value target time is with future timestamp 56 │ OK │ Value target time is with future timestamp and there are more values with future timestamp for seconds 57 │ OK │ Value target time is with future timestamp but seconds also requires value from past 58 │ OK │ Value target time is with future timestamp but seconds also requires present value 59 │ OK │ Value target time is with future timestamp but seconds also requires present value and no past values 60 │ OK │ Active range change in next few days ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_vc_add_values ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Add numeric (float) type values 1 │ OK │ Add character type values 2 │ OK │ Add log type values 3 │ OK │ Add numeric (unsigned) type values 4 │ OK │ Add text type values 5 │ OK │ Try to add value without having cached it first 6 │ OK │ Add value at the end of the cached data 7 │ OK │ Add value at the beginning of the cached data 8 │ OK │ Add value at the beginning of the cached data matching the seconds value of first item 9 │ OK │ Add value in the middle of cached data 10 │ OK │ Add value at the end of cached data matching timestamp of the latest value 11 │ OK │ Add value at the end of fully cached data 12 │ OK │ Add value at the beginning of the fully cached data 13 │ OK │ Add value at the end of the cached data in low memory mode 14 │ OK │ Try adding value without enough space in cache 15 │ OK │ Add value with different value type 16 │ OK │ Add values after item was not accessed for a day 17 │ OK │ Test that adding single value does not cause old data to be dropped (previous value is used for active range). 18 │ OK │ Add values after time causing old data to be dropped ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_vc_get_value ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Get last value from second interval 1 │ OK │ Get middle value from second interval 2 │ OK │ Get first value from second interval ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_buf_readln ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Buffered read of an empty file 1 │ OK │ Buffered read of one line without line-end 2 │ OK │ Not big enough buffer 3 │ OK │ Buffered one read of one line 4 │ OK │ Multiple lines (1) 5 │ OK │ Multiple lines (2) 6 │ OK │ Multiple lines (3) 7 │ OK │ Infinite loop fix (1) 8 │ OK │ Infinite loop fix (2) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_trim_float ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 123 1 │ OK │ 123 2 │ OK │ 123 3 │ OK │ 123 4 │ OK │ 123 5 │ OK │ 123 6 │ OK │ 123 7 │ OK │ "123" 8 │ OK │ "123" 9 │ OK │ "123" 10 │ OK │ "123" 11 │ OK │ "123" 12 │ OK │ "123" 13 │ OK │ "123" 14 │ OK │ 15 │ OK │ " 16 │ OK │ "" 17 │ OK │ " " 18 │ OK │ " 19 │ OK │ "" 20 │ OK │ " " 21 │ OK │ " 22 │ OK │ "" 23 │ OK │ " " 24 │ OK │ " 25 │ OK │ "" 26 │ OK │ " " 27 │ OK │ "123 " 28 │ OK │ " 123" 29 │ OK │ " 123 " 30 │ OK │ "123 " 31 │ OK │ " 123" 32 │ OK │ " 123 " 33 │ OK │ "123 " 34 │ OK │ " 123" 35 │ OK │ " 123 " 36 │ OK │ "123 " 37 │ OK │ " 123" 38 │ OK │ " 123 " 39 │ OK │ + 40 │ OK │ ++ 41 │ OK │ +123 42 │ OK │ ++123 43 │ OK │ +"123" 44 │ OK │ "+123" 45 │ OK │ "+" 46 │ OK │ "+ " 47 │ OK │ " +" 48 │ OK │ " + " ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── is_double ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ fail -10w 1 │ OK │ succeed -1.0 2 │ OK │ succeed 1.0 3 │ OK │ succeed -1 4 │ OK │ succeed 1 5 │ OK │ succeed 1234567890.0987654321 6 │ OK │ succeed -1234567890.0987654321 7 │ OK │ fail 1234567890.0987654321K 8 │ OK │ fail -1234567890.0987654321K 9 │ OK │ fail . 10 │ OK │ fail -. 11 │ OK │ fail +. 12 │ OK │ fail --1 13 │ OK │ fail ++1 14 │ OK │ fail "- -1" 15 │ OK │ fail "+ +1" 16 │ OK │ fail .K 17 │ OK │ fail -.K 18 │ OK │ fail +.K 19 │ OK │ fail -1.0k 20 │ OK │ fail -1.0Kk 21 │ OK │ fail -1,0K 22 │ OK │ fail -1,0 23 │ OK │ succeed +1 24 │ OK │ succeed +1.0 25 │ OK │ succeed +.1 26 │ OK │ fail 1.K 27 │ OK │ fail .1K 28 │ OK │ fail -1.K 29 │ OK │ fail -.1K 30 │ OK │ succeed 1. 31 │ OK │ succeed -1. 32 │ OK │ succeed .1 33 │ OK │ succeed -.1 34 │ OK │ fail "1. " 35 │ OK │ fail "-1. " 36 │ OK │ fail " .1" 37 │ OK │ fail "- .1" 38 │ OK │ fail " -0.1" 39 │ OK │ fail "-0.1 " 40 │ OK │ fail "-0.1 K" 41 │ OK │ fail "1 K" 42 │ OK │ fail "1K " 43 │ OK │ fail "1 " 44 │ OK │ fail " 1" 45 │ OK │ fail ..1 46 │ OK │ fail .1. 47 │ OK │ fail 1.. 48 │ OK │ fail .1.2 49 │ OK │ fail 1..2 50 │ OK │ fail .. 51 │ OK │ succeed 1e+2 52 │ OK │ succeed 1E+2 53 │ OK │ succeed 1e-2 54 │ OK │ succeed 1E-2 55 │ OK │ succeed -1e+2 56 │ OK │ succeed -1E+2 57 │ OK │ succeed -1e-2 58 │ OK │ succeed -1E-2 59 │ OK │ succeed +1e+2 60 │ OK │ succeed +1E+2 61 │ OK │ succeed +1e-2 62 │ OK │ succeed +1E-2 63 │ OK │ succeed 0.1e+2 64 │ OK │ succeed 1.0e+2 65 │ OK │ succeed -0.1e+2 66 │ OK │ succeed -1.0e+2 67 │ OK │ succeed +0.1e+2 68 │ OK │ succeed +1.0e+2 69 │ OK │ succeed 0.1e-2 70 │ OK │ succeed 1.0e-2 71 │ OK │ succeed -0.1e-2 72 │ OK │ succeed -1.0e-2 73 │ OK │ succeed +0.1e-2 74 │ OK │ succeed +1.0e-2 75 │ OK │ succeed .1e+2 76 │ OK │ succeed 1.e+2 77 │ OK │ succeed -.1e+2 78 │ OK │ succeed -1.e+2 79 │ OK │ succeed +.1e+2 80 │ OK │ succeed +1.e+2 81 │ OK │ succeed .1e-2 82 │ OK │ succeed 1.e-2 83 │ OK │ succeed -.1e-2 84 │ OK │ succeed -1.e-2 85 │ OK │ succeed +.1e-2 86 │ OK │ succeed +1.e-2 87 │ OK │ succeed 1234567890.0123456789e-1234567890 88 │ OK │ succeed -1234567890.0123456789e-1234567890 89 │ OK │ succeed +1234567890.0123456789e-1234567890 90 │ OK │ succeed 1234567890.0123456789e+1234567890 91 │ OK │ succeed -1234567890.0123456789e+1234567890 92 │ OK │ succeed +1234567890.0123456789e+1234567890 93 │ OK │ fail 1.e-2K 94 │ OK │ fail "1.e-2 " 95 │ OK │ fail " 1.e-2 " 96 │ OK │ fail "1.e-2 K" 97 │ OK │ fail "1.e-2 ." 98 │ OK │ fail 1.e-2. 99 │ OK │ fail .e-2 100 │ OK │ fail e-2 101 │ OK │ fail "1.0e- 2" 102 │ OK │ fail "1.0e -2" 103 │ OK │ fail "1.0 e-2" 104 │ OK │ fail "1. 0e-2" 105 │ OK │ fail "1 .0e-2" 106 │ OK │ fail " 1.0e-2" 107 │ OK │ succeed 8E307 108 │ OK │ fail 8E310 109 │ OK │ num == DBL_MAX 110 │ OK │ num > DBL_MAX 111 │ OK │ num == -DBL_MAX 112 │ OK │ num < -DBL_MAX 113 │ OK │ num == DBL_MIN ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_trim_integer ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 123 1 │ OK │ 123 2 │ OK │ 123 3 │ OK │ 123 4 │ OK │ 123 5 │ OK │ 123 6 │ OK │ 123 7 │ OK │ "123" 8 │ OK │ "123" 9 │ OK │ "123" 10 │ OK │ "123" 11 │ OK │ "123" 12 │ OK │ "123" 13 │ OK │ "123" 14 │ OK │ 15 │ OK │ " 16 │ OK │ "" 17 │ OK │ " " 18 │ OK │ " 19 │ OK │ "" 20 │ OK │ " " 21 │ OK │ " 22 │ OK │ "" 23 │ OK │ " " 24 │ OK │ " 25 │ OK │ "" 26 │ OK │ " " 27 │ OK │ "123 " 28 │ OK │ " 123" 29 │ OK │ " 123 " 30 │ OK │ "123 " 31 │ OK │ " 123" 32 │ OK │ " 123 " 33 │ OK │ "123 " 34 │ OK │ " 123" 35 │ OK │ " 123 " 36 │ OK │ "123 " 37 │ OK │ " 123" 38 │ OK │ " 123 " 39 │ OK │ + 40 │ OK │ ++ 41 │ OK │ +123 42 │ OK │ ++123 43 │ OK │ +"123" 44 │ OK │ "+123" 45 │ OK │ "+" 46 │ OK │ "+ " 47 │ OK │ " +" 48 │ OK │ " + " ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_variant_compare ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ none == none 1 │ OK │ none < value 2 │ OK │ value > none 3 │ OK │ string < string 4 │ OK │ string > string 5 │ OK │ string == string 6 │ OK │ string < floating 7 │ OK │ floating < string 8 │ OK │ string > floating 9 │ OK │ floating > string 10 │ OK │ string == floating 11 │ OK │ floating == string 12 │ OK │ floating < uint64 13 │ OK │ uint64 < floating 14 │ OK │ floating > uint64 15 │ OK │ uint64 > floating 16 │ OK │ floating == uint64 17 │ OK │ uint64 == floating 18 │ OK │ uint64 < uint64 19 │ OK │ uint64 > uint64 20 │ OK │ uint64 == uint64 21 │ OK │ floating == floating 22 │ OK │ floating == floating 23 │ OK │ floating > floating 24 │ OK │ floating < floating 25 │ OK │ binary == binary 26 │ OK │ binary == binary 27 │ OK │ binary > binary 28 │ OK │ binary > binary 29 │ OK │ binary < binary 30 │ OK │ binary > none 31 │ OK │ none < binary 32 │ OK │ binary > string 33 │ OK │ string < binary 34 │ OK │ binary > floating 35 │ OK │ floating < binary 36 │ OK │ binary > uint64 37 │ OK │ uint64 < binary 38 │ OK │ none < uint64 39 │ OK │ uint64 > none ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_variant_to_value_type ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. String to float, emoji truncation 1 │ OK │ 2. String to float 2 │ OK │ 3. String to float String with tabs 3 │ OK │ 4. String to float Text with newlines 4 │ OK │ 5. String to float Newlines, tabs and truncation 5 │ OK │ 6. Empty line ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── wildcard_match ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ String match 1 │ OK │ Match all 2 │ OK │ Empty 3 │ OK │ Wildcard lo*ip*m 4 │ OK │ Wildcard a*bc 5 │ OK │ Wildcard a*bc*d 6 │ OK │ Wildcard abc* 7 │ OK │ Wildcard *abc 8 │ OK │ Wildcard *abc* 9 │ OK │ Wildcard a***c 10 │ OK │ Wildcard ***c*e 11 │ OK │ Wildcard a*c*** ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_check_key_access_rules ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ No rules (all allowed) 1 │ OK │ No allowed keys 2 │ OK │ No arguments 3 │ OK │ Empty parameter list 4 │ OK │ Any arguments 5 │ OK │ Any arguments double asterisk 6 │ OK │ Specific first parameter 7 │ OK │ First argument pattern 8 │ OK │ Any second parameter value 9 │ OK │ First argument pattern and any following arguments 10 │ OK │ Any first parameter value 11 │ OK │ Empty second parameter value 12 │ OK │ Any second parameter value 13 │ OK │ Specific parameters 14 │ OK │ Quoted parameters 15 │ OK │ Key pattern without arguments 16 │ OK │ Key pattern with any arguments 17 │ OK │ Whitelist 18 │ OK │ Blacklist 19 │ OK │ Combined wildcard in key 20 │ OK │ Duplicate rules 21 │ OK │ No rules after AllowKey=* 22 │ OK │ No rules after DenyKey=* 23 │ OK │ Incomplete whitelist (no deny all at the end) 24 │ OK │ No trailing AllowKey rules 25 │ OK │ Empty parameters match ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_check_service_default_addr ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Both interface and key parameter are present 1 │ OK │ Only interface is present 2 │ OK │ Only key parameter is present 3 │ OK │ Both interface and key parameter are missing ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_execute_agent_check ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ successfully called system_localtime function 1 │ OK │ successfully called vfs_file_size function 2 │ OK │ successfully called vfs_file_time function 3 │ OK │ successfully called vfs_file_exists function 4 │ OK │ successfully called vfs_file_contents function 5 │ OK │ successfully called vfs_file_regmatch function 6 │ OK │ successfully called vfs_file_md5sum function 7 │ OK │ successfully called vfs_file_cksum function 8 │ OK │ successfully called vfs_dir_size function 9 │ OK │ successfully called vfs_dev_discovery function 10 │ OK │ successfully called vfs_dev_read function 11 │ OK │ successfully called vfs_dev_write function 12 │ OK │ successfully called vfs_dir_count function 13 │ OK │ successfully called vfs_dir_get function 14 │ OK │ successfully called vfs_dir_size function 15 │ OK │ successfully called vfs_file_cksum function 16 │ OK │ successfully called vfs_file_contents function 17 │ OK │ successfully called vfs_file_exists function 18 │ OK │ successfully called vfs_file_get function 19 │ OK │ successfully called vfs_file_md5sum function 20 │ OK │ successfully called vfs_file_owner function 21 │ OK │ successfully called vfs_file_permissions function 22 │ OK │ successfully called vfs_file_regexp function 23 │ OK │ successfully called vfs_file_regmatch function 24 │ OK │ successfully called vfs_file_size function 25 │ OK │ successfully called vfs_file_time function 26 │ OK │ successfully called vfs_fs_discovery function 27 │ OK │ successfully called vfs_fs_get function 28 │ OK │ successfully called vfs_fs_inode function 29 │ OK │ successfully called vfs_fs_size function 30 │ OK │ successfully called net_dns function 31 │ OK │ successfully called net_dns_record function 32 │ OK │ successfully called net_dns_perf function 33 │ OK │ successfully called net_tcp_port function 34 │ OK │ successfully called system_users_num function ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_parse_item_key ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ valid key with no parameters 1 │ OK │ valid key with empty brackets 2 │ OK │ valid key with quoted empty string in brackets 3 │ OK │ valid key with space in brackets 4 │ OK │ valid key with leading space before quoted empty string in brackets 5 │ OK │ valid key with leading and trailing spaces around quoted empty string in brackets 6 │ OK │ valid key with 'a' in brackets 7 │ OK │ valid key with leading space before 'a' in brackets 8 │ OK │ valid key with leading and trailing spaces around 'a' in brackets 9 │ OK │ valid key with quoted 'a' in brackets 10 │ OK │ valid key with quoted 'a' followed by comma in brackets 11 │ OK │ valid key with unquoted 'a' followed by comma in brackets 12 │ OK │ valid key with multiple unquoted parameters in brackets 13 │ OK │ valid key with multiple quoted parameters in brackets 14 │ OK │ valid key with first unquoted parameter and second array parameter containing two unquoted parameters 15 │ OK │ valid key with first unquoted parameter and second array parameter containing unquoted and empty parameter 16 │ OK │ valid key with two unquoted parameters where second parameter contains opening square bracket 17 │ OK │ valid key with multiple quoted parameters and array 18 │ OK │ valid key with multiple quoted parameters and multiple arrays 19 │ OK │ valid key, single parameter with unquoted string containing double quote characters 20 │ OK │ valid key, multiple different type parameters where one is unquoted string containing double quote characters 21 │ OK │ valid key with many quoted/unquoted parameters with/without trailing/leading spaces also featuring escaping 22 │ OK │ valid key with quoted and unquoted arrays 23 │ OK │ invalid key, unmatched opening bracket (1) 24 │ OK │ invalid key, unmatched opening bracket (2) 25 │ OK │ invalid key, unmatched opening bracket (3) 26 │ OK │ invalid key, invalid character for unquoted parameter, multiple parameter key 27 │ OK │ invalid key, unmatched closing bracket, parameter followed by trailing space 28 │ OK │ invalid key, unmatched closing bracket, parameter followed by leading space 29 │ OK │ invalid key, part of parameters list not enclosed in brackets 30 │ OK │ invalid key, braces are not allowed in key 31 │ OK │ invalid key, comma is not allowed in key or parameters should be enclosed in brackets 32 │ OK │ invalid key, multiple square bracket pairs are not allowed 33 │ OK │ invalid key, multiple square bracket pairs containing parameters are not allowed 34 │ OK │ invalid key, multi-level arrays are not allowed 35 │ OK │ invalid key, multi-level arrays are not allowed, array consists of multiple different type parameters 36 │ OK │ invalid key, multi-level arrays are not allowed, array consists of single parameter which is another array 37 │ OK │ invalid key, character ] is not allowed in unquoted parameter string 38 │ OK │ invalid key, character [ is allowed in unquoted parameter string but character ] is not 39 │ OK │ invalid key, character ] is not allowed in unquoted parameter string, key with multiple different type parameters 40 │ OK │ invalid key, quoted parameter cannot contain unquoted part 41 │ OK │ invalid key, second parameter of the array cannot contain unquoted part 42 │ OK │ invalid key, array type parameter cannot contain quoted parameter with unquoted part 43 │ OK │ invalid key, array type parameter cannot contain quoted part ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_execute_agent_check_http ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ successfully called web_page_get function 1 │ OK │ successfully called web_page_perf function 2 │ OK │ successfully called web_page_regexp function ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_parse_item_key_check_get_fqdn ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Hostname and fqdn can be fetched 1 │ OK │ Hostname cannot be fetched, fqdn can be fetched 2 │ OK │ Hostname can be fetched, fqdn cannot be fetched 3 │ OK │ Hostname and fqdn cannot be fetched ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_item_preproc ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ string(10) * 10 1 │ OK │ string(10x) * 10 2 │ OK │ string(10) * abc 3 │ OK │ string(1.5) * 3 4 │ OK │ uint64(1.5) * 3 5 │ OK │ uint64(3) * 1.5 6 │ OK │ float(1.5) * 3 7 │ OK │ float(3) * 1.5 8 │ OK │ rtrim(01abc01, 01) 9 │ OK │ rtrim(01abc01, abc) 10 │ OK │ ltrim(01abc01, 01) 11 │ OK │ ltrim(01abc01, abc) 12 │ OK │ trim(01abc01, 01) 13 │ OK │ trim(01abc01, abc) 14 │ OK │ trim(\\s, abc) 15 │ OK │ regsub("test 123 number", "([0-9]+", 1) 16 │ OK │ regsub("test 123 number", "([0-9]+)", \1) 17 │ OK │ regsub("test 123 number", "([0-9]+)", x\1y) 18 │ OK │ regsub("test 123 number", "([0-9]+)", ) 19 │ OK │ regsub("test abc number", "([0-9]+)", \1) 20 │ OK │ regsub("", "([0-9]+)", \1) 21 │ OK │ regsub("", "^$", ok) 22 │ OK │ bool2dec() 23 │ OK │ bool2dec(abc) 24 │ OK │ bool2dec(1) 25 │ OK │ bool2dec(0) 26 │ OK │ bool2dec(true) 27 │ OK │ bool2dec(t) 28 │ OK │ bool2dec(yes) 29 │ OK │ bool2dec(y) 30 │ OK │ bool2dec(ok) 31 │ OK │ bool2dec(on) 32 │ OK │ bool2dec(false) 33 │ OK │ bool2dec(f) 34 │ OK │ bool2dec(no) 35 │ OK │ bool2dec(n) 36 │ OK │ bool2dec(err) 37 │ OK │ bool2dec(off) 38 │ OK │ oct2dec(0) 39 │ OK │ oct2dec(7) 40 │ OK │ oct2dec(10) 41 │ OK │ oct2dec(8) 42 │ OK │ hex2dec(F) 43 │ OK │ hex2dec(a) 44 │ OK │ hex2dec(10) 45 │ OK │ hex2dec(g) 46 │ OK │ hex2dec(ff ff) 47 │ OK │ deltavalue(5, 10) 48 │ OK │ deltavalue(-4.5, 5.5) 49 │ OK │ deltavalue(10, 10) 50 │ OK │ deltavalue(10, 9) 51 │ OK │ deltavalue(0, 1.5) 52 │ OK │ deltaspeed(2, 1, 10s) 53 │ OK │ deltaspeed(1, 2, -10s) 54 │ OK │ deltaspeed(1, 2, 10s) 55 │ OK │ deltaspeed(2, 3, 10s) 56 │ OK │ deltaspeed(2, 3, 1s) 57 │ OK │ xpath1 58 │ OK │ xpath2 59 │ OK │ xpath3 60 │ OK │ xpath4 61 │ OK │ xpath5 62 │ OK │ xpath6 63 │ OK │ xpath7 64 │ OK │ xpath8 65 │ OK │ xpath9 66 │ OK │ xpath10 67 │ OK │ xpath11 68 │ OK │ xpath12 69 │ OK │ jsonpath1 70 │ OK │ jsonpath2 71 │ OK │ jsonpath3 72 │ OK │ jsonpath4 73 │ OK │ jsonpath5 74 │ OK │ jsonpath6 75 │ OK │ jsonpath7 76 │ OK │ jsonpath8 77 │ OK │ jsonpath9 78 │ OK │ jsonpath10 79 │ OK │ jsonpath11 80 │ OK │ jsonpath12 81 │ OK │ jsonpath13 82 │ OK │ validate_range(1, 5, 10) 83 │ OK │ validate_range(5, 5, 10) 84 │ OK │ validate_range(10, 5, 10) 85 │ OK │ validate_range(10.1, 5, 10) 86 │ OK │ validate_regex(abc 123 xyz, ([0-9+)) 87 │ OK │ validate_regex(abc opq xyz, ([0-9]+)) 88 │ OK │ validate_regex(abc 123 xyz, ([0-9]+)) 89 │ OK │ validate_regex(abc 123 xyz, ([0-9+)) 90 │ OK │ validate_regex(abc opq xyz, ([0-9]+)) 91 │ OK │ validate_regex(abc 123 xyz, ([0-9]+)) 92 │ OK │ string(10) * 10 (discard) 93 │ OK │ string(10) * 10 (set value) 94 │ OK │ string(10) * 10 (set error) 95 │ OK │ jsonerror(x, $.error) 96 │ OK │ jsonerror({"error":"error message"}, $error) 97 │ OK │ jsonerror({"data":"123"}, $.error) 98 │ OK │ jsonerror({"error":"error message"}, $.error) 99 │ OK │ xmlerror(x, //error) 100 │ OK │ xmlerror(custom error, "//text(") 101 │ OK │ xmlerror(custom error, "//error/text()") 102 │ OK │ xmlerror(1, "//error/text()") 103 │ OK │ regexerror("error:123, "error:([0-9+)") 104 │ OK │ regexerror("error:123, "error:([0-9]+)") 105 │ OK │ regexerror("value:123, "error:([0-9]+)") 106 │ OK │ throttle(1, 123) 107 │ OK │ throttle(, 123) 108 │ OK │ throttle(123, 123) 109 │ OK │ throttle_timed(, abc) 110 │ OK │ throttle_timed(xyz, abc) 111 │ OK │ throttle_timed(abc, abc, 30s) 112 │ OK │ throttle_timed(abc, abc, 1m) 113 │ OK │ float(1.5e0) * 1 114 │ OK │ float(1) * 1.5e0 115 │ OK │ float(1.5e0) * 1.5e0 116 │ OK │ float(1.5e1) * 1 117 │ OK │ float(1) * 1.5e1 118 │ OK │ float(1.5e1) * 1.5e1 119 │ OK │ float(1.5e10) * 1 120 │ OK │ float(1) * 1.5e10 121 │ OK │ float(1.5e10) * 1.5e10 122 │ OK │ prometheus_getmetric1 123 │ OK │ prometheus_getmetric2 124 │ OK │ prometheus_getmetric3 125 │ OK │ prometheus_getmetric4 126 │ OK │ prometheus_getmetric5 127 │ OK │ prometheus_getmetric6 128 │ OK │ prometheus_getmetric7 129 │ OK │ prometheus_getmetric8 130 │ OK │ prometheus_getmetric9 131 │ OK │ prometheus_getmetric10 132 │ OK │ prometheus_getmetric11 133 │ OK │ prometheus_getmetric12 134 │ OK │ prometheus_getmetric13 135 │ OK │ prometheus_to_json1 136 │ OK │ prometheus_to_json2 137 │ OK │ prometheus_to_json3 138 │ OK │ prometheus_to_json4 139 │ OK │ prometheus_to_json5 140 │ OK │ csv_to_json1 141 │ OK │ csv_to_json2 142 │ OK │ csv_to_json3 143 │ OK │ csv_to_json4 144 │ OK │ replace a to b 145 │ OK │ replace a to bbb 146 │ OK │ replace a to a 147 │ OK │ replace a to nothing 148 │ OK │ replace a to nothing in between 149 │ OK │ replace non printable characters 150 │ OK │ replace non printable characters mixed 151 │ OK │ replace non printable characters 2 152 │ OK │ replace non printable characters in both search and replace 153 │ OK │ replace \ 154 │ OK │ replace 2 characters "\t" to OK 155 │ OK │ Missing second parameter 156 │ OK │ Missing first parameter 157 │ OK │ Single slash in search 158 │ OK │ Single slash in replace 159 │ OK │ No match 160 │ OK │ SNMP walk to value - bad data 161 │ OK │ SNMP walk to value - bad param 162 │ OK │ SNMP walk to value - string 163 │ OK │ SNMP walk to value - NULL 164 │ OK │ SNMP walk to value - Arbitrary number 165 │ OK │ SNMP walk to value - INTEGER 166 │ OK │ SNMP walk to value - IpAddress 167 │ OK │ SNMP walk to value - Hex-STRING 168 │ OK │ SNMP walk to value - Hex-STRING (multiline) 169 │ OK │ SNMP walk to value - Hex-STRING (multiline) - space on the last line 170 │ OK │ SNMP walk to value - Hex-STRING (multiline) - with succeeding string 171 │ OK │ SNMP walk to value - Hex-STRING - to UTF8 172 │ OK │ SNMP walk to value - Hex-STRING - to UTF8 (null terminated) 173 │ OK │ SNMP walk to value - Hex-STRING - to UTF8 - invalid hex string 174 │ OK │ SNMP walk to value - Hex-STRING - to UTF8 - invalid hex string (2) 175 │ OK │ SNMP walk to value - Hex-STRING - to UTF8 - invalid sequence 176 │ OK │ SNMP walk to value - Hex-STRING - to MAC 177 │ OK │ SNMP walk to value - Hex-STRING - to MAC - invalid hex string 178 │ OK │ SNMP walk to value - BITS to integer - 1 179 │ OK │ SNMP walk to value - BITS to integer - 2 180 │ OK │ SNMP walk to value - BITS to integer - 3 181 │ OK │ SNMP walk to value - BITS to integer - 4 182 │ OK │ SNMP walk to value - BITS to integer - 5 183 │ OK │ SNMP walk to value - BITS to integer - 6 184 │ OK │ SNMP walk to value - BITS to integer - 7 185 │ OK │ SNMP walk to value - Opaque wrapped type 186 │ OK │ SNMP walk to value - Counter32 187 │ OK │ SNMP walk to value - STRING with newline 188 │ OK │ SNMP walk to value - unquoted STRING with newline 189 │ OK │ SNMP walk to value - unquoted STRING with newline and empty string 190 │ OK │ SNMP walk to value - quoted STRING with quoted substring 191 │ OK │ SNMP walk to value - quoted STRING with broken quoting 192 │ OK │ SNMP walk to value - backslashes in quoted string 193 │ OK │ SNMP walk to value - backslashes in unquoted string 194 │ OK │ SNMP walk to value - Empty type 195 │ OK │ SNMP walk to value - OID without prepending dot 196 │ OK │ SNMP walk to value - MIB translation 1 197 │ OK │ SNMP walk to value - MIB translation 2 198 │ OK │ SNMP walk to value - bad param 199 │ OK │ SNMP get to value - Hex-STRING - to UTF8 200 │ OK │ SNMP get to value - Hex-STRING - to UTF8 (null terminated) 201 │ OK │ SNMP get to value - Hex-STRING - to UTF8 - invalid hex string 202 │ OK │ SNMP get to value - Hex-STRING - to UTF8 - invalid hex string (2) 203 │ OK │ SNMP get to value - Hex-STRING - to UTF8 - invalid sequence 204 │ OK │ SNMP get to value - Hex-STRING - to MAC 205 │ OK │ SNMP get to value - Hex-STRING - to MAC - invalid hex string 206 │ OK │ SNMP get to value - BITS to integer - 1 207 │ OK │ SNMP get to value - BITS to integer - 2 208 │ OK │ SNMP get to value - BITS to integer - 3 209 │ OK │ SNMP get to value - BITS to integer - 4 210 │ OK │ SNMP get to value - BITS to integer - 5 211 │ OK │ SNMP get to value - BITS to integer - 6 212 │ OK │ SNMP get to value - BITS to integer - 7 213 │ OK │ SNMP walk to JSON - bad data 214 │ OK │ SNMP walk to JSON - no data 215 │ OK │ SNMP walk to JSON - STRING type 216 │ OK │ SNMP walk to JSON - Counter/Gauge types 217 │ OK │ SNMP walk to JSON - NULL 218 │ OK │ SNMP walk to JSON - Empty type 219 │ OK │ SNMP walk to JSON - Empty type 220 │ OK │ SNMP walk to JSON - Integer/Timetick 221 │ OK │ SNMP walk to JSON - IpAddress 222 │ OK │ SNMP walk to JSON - STRING type with newline 223 │ OK │ SNMP walk to JSON - Opaque wrapped type 224 │ OK │ SNMP walk to JSON - OID is wanted without prepending dot - 1 225 │ OK │ SNMP walk to JSON - OID is wanted without prepending dot - 2 226 │ OK │ SNMP walk to JSON - MIB translation 1 227 │ OK │ SNMP walk to JSON - No more variables 1 228 │ OK │ SNMP walk to JSON - No more variables 2 229 │ OK │ SNMP walk to JSON - Duplicate OIDs 230 │ OK │ SNMP walk to JSON - Hex-STRING type - unchanged 231 │ OK │ SNMP walk to JSON - Hex-STRING type - to UTF8 232 │ OK │ SNMP walk to JSON - Hex-STRING type - to UTF8 - invalid sequence 233 │ OK │ SNMP walk to JSON - Hex-STRING type - to UTF8 - invalid hex string 234 │ OK │ SNMP walk to JSON - Hex-STRING type - to UTF8 - null terminated 235 │ OK │ SNMP walk to JSON - Hex-STRING type - to MAC 236 │ OK │ SNMP walk to JSON - Hex-STRING type - to MAC - invalid MAC, invalid hex string 237 │ OK │ SNMP walk to JSON - Hex-STRING type - mixed 'treat-as' values 238 │ OK │ SNMP walk to value - Hex-STRING (multiline) 239 │ OK │ SNMP walk to value - Hex-STRING (multiline) - to MAC 240 │ OK │ SNMP walk to value - Hex-STRING (multiline) - space on the last line 241 │ OK │ SNMP walk to JSON - BITS - unchanged 242 │ OK │ SNMP walk to JSON - BITS - unchanged 243 │ OK │ SNMP walk to JSON - suppressed output of chosen oids that are longer than prefix 1 - prefix without dot 244 │ OK │ SNMP walk to JSON - suppressed output of chosen oids that are longer than prefix 1 245 │ OK │ SNMP walk to JSON - suppressed output of chosen oids that are longer than prefix 2 - prefix without dot 246 │ OK │ SNMP walk to JSON - suppressed output of chosen oids that are longer than prefix 2 247 │ OK │ SNMP walk to JSON - suppressed output of chosen oids that are longer than prefix 3 (dot at the end of param) 248 │ OK │ SNMP walk to JSON - suppressed output of chosen oids that are longer than prefix 4 (dot at the end of param) 249 │ OK │ SNMP walk to JSON - oid to be walked is a leaf and index cannot be chosen 250 │ OK │ SNMP walk to JSON - param with dot at the end - 1 251 │ OK │ SNMP walk to JSON - param with dot at the end - 2 252 │ OK │ SNMP walk to JSON - param with dot at the end - 3 253 │ OK │ SNMP walk to JSON - param with dot at the end - 4 254 │ OK │ SNMP walk to JSON - invalid params - 1 255 │ OK │ SNMP walk to JSON - invalid params - 2 256 │ OK │ SNMP walk to JSON - invalid params - 3 257 │ OK │ SNMP walk to JSON - invalid params - 4 258 │ OK │ SNMP walk to JSON - invalid params - 5 259 │ OK │ HMAC in JavaScript - Invalid algorithm 260 │ OK │ HMAC in JavaScript - MD5 261 │ OK │ HMAC in JavaScript - SHA-256 262 │ OK │ HMAC in JavaScript - Invalid key 263 │ OK │ HMAC in JavaScript - Missing key 264 │ OK │ HMAC in JavaScript - Invalid data 265 │ OK │ HMAC in JavaScript - Missing data 266 │ OK │ RS256 in JavaScript - single line pkey w/o newlines 267 │ OK │ RS256 in JavaScript - single line pkey with newlines 268 │ OK │ RS256 in JavaScript - single line pkey with missing newline before END block 269 │ OK │ RS256 in JavaScript - single line pkey with missing newline before BEGIN block 270 │ OK │ RS256 in JavaScript - spaces instead of newlines 271 │ OK │ RS256 in JavaScript - PKCS#8 272 │ OK │ RS256 in JavaScript - data as Uint8Array 273 │ OK │ RS256 in JavaScript - Invalid algorithm 274 │ OK │ RS256 in JavaScript - Invalid pkey 275 │ OK │ RS256 in JavaScript - Missing pkey 276 │ OK │ RS256 in JavaScript - Invalid data 277 │ OK │ RS256 in JavaScript - Missing data 278 │ OK │ Check for not supported without parameter (false) 279 │ OK │ Check for not supported without parameter 280 │ OK │ Check for not supported with parameter (false) 281 │ OK │ Check for not supported with parameter 282 │ OK │ Check for not supported with parameter and capturing group 283 │ OK │ btoa in JavaScript - binary 284 │ OK │ Crash by accessing internal object pointer in JavaScript 285 │ OK │ Memory leak with global variable and exception 286 │ OK │ Memory leak with finalizer ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── item_preproc_csv_to_json ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ missing second parameter 1 │ OK │ missing third parameter 2 │ OK │ invalid first parameter 3 │ OK │ invalid second parameter 4 │ OK │ empty input (1) 5 │ OK │ empty input (2) 6 │ OK │ single char (1) 7 │ OK │ single char (2) 8 │ OK │ single UTF8 4-bytes character (1) 9 │ OK │ single UTF8 4-bytes character (2) 10 │ OK │ empty line (1) 11 │ OK │ empty line (2) 12 │ OK │ multiple empty lines (1) 13 │ OK │ multiple empty lines (2) 14 │ OK │ single column (1) 15 │ OK │ single column (2) 16 │ OK │ single line (1) 17 │ OK │ single line (2) 18 │ OK │ no trailing line break (1) 19 │ OK │ no trailing line break (2) 20 │ OK │ no trailing line break (3) 21 │ OK │ empty fields (1) 22 │ OK │ empty fields (2) 23 │ OK │ empty fields (3) 24 │ OK │ delimiter in quoted field 25 │ OK │ quotation character in unquoted field 26 │ OK │ quotation character in unquoted field (2) 27 │ OK │ escaped quotation character 28 │ OK │ delimiter set in sep line 29 │ OK │ cr/nl line breaks 30 │ OK │ various length rows 31 │ OK │ equal delimiter and quotation characters 32 │ OK │ UTF8 2-byte delimiter 33 │ OK │ UTF8 3-byte delimiter set in sep line 34 │ OK │ UTF8 4-byte delimiter 35 │ OK │ UTF8 2-byte quotation character 36 │ OK │ UTF8 3-byte quotation character 37 │ OK │ UTF8 multi-byte delimiter and quotation characters 38 │ OK │ delimiter set to space 39 │ OK │ quotation character set to space 40 │ OK │ sep line only (1) 41 │ OK │ sep line only (2) 42 │ OK │ sep line only (3) 43 │ OK │ sep line only (4) 44 │ OK │ unsupported sep line (1) 45 │ OK │ unsupported sep line (2) 46 │ OK │ duplicated column names (1) 47 │ OK │ duplicated column names (2) 48 │ OK │ more fields in data row than in header 49 │ OK │ unclosed quoted field 50 │ OK │ unclosed quoted field (UTF8-2) 51 │ OK │ unclosed quoted field (UTF8-3) 52 │ OK │ unclosed quoted field (UTF8-4) 53 │ OK │ escaped quotation character in unclosed quoted field (UTF8-3) 54 │ OK │ missing delimiter or line break after quoted field 55 │ OK │ unsupported line break 56 │ OK │ CSV sample input (1) 57 │ OK │ CSV sample input (2) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── item_preproc_xpath ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ empty input parameters 1 │ OK │ single start tag 2 │ OK │ single end tag 3 │ OK │ wrong operation format 4 │ OK │ wrong operation expression 5 │ OK │ wrong operation format 2 6 │ OK │ empty output 7 │ OK │ successful expression 8 │ OK │ return end tag 9 │ OK │ return text 10 │ OK │ return string 11 │ OK │ return attribute 12 │ OK │ return pattern ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── odbc_pass ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ password 1 │ OK │ pass;word 2 │ OK │ backward compatibility for already enclosed {} with ; 3 │ OK │ in }{ with ; 4 │ OK │ pass;}word 5 │ OK │ pass;}}word 6 │ OK │ Zj;Fp&f`2BjWIX|YhWC9*PS!$c0obJR5 7 │ OK │ Zj;Fp&f`2BjWIX|}YhWC9*PS!$c0obJR5 8 │ OK │ connection without ; 9 │ OK │ ; after }}} 10 │ OK │ pass word 11 │ OK │ pass= word 12 │ OK │ password;} 13 │ OK │ only } 14 │ OK │ only { 15 │ OK │ ; 16 │ OK │ semicolon at the end {pass}; 17 │ OK │ semicolon at the end {pa;ss}; 18 │ OK │ = ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── replace_key_params_dyn ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ valid key with no parameters 1 │ OK │ valid key with empty brackets 2 │ OK │ valid key with quoted empty string in brackets 3 │ OK │ valid key with space in brackets 4 │ OK │ valid key with leading space before quoted empty string in brackets 5 │ OK │ valid key with leading and trailing spaces around quoted empty string in brackets 6 │ OK │ valid key with 'a' in brackets 7 │ OK │ valid key with leading space before 'a' in brackets 8 │ OK │ valid key with leading and trailing spaces around 'a' in brackets 9 │ OK │ valid key with quoted 'a' in brackets 10 │ OK │ valid key with quoted 'a' followed by comma in brackets 11 │ OK │ valid key with unquoted 'a' followed by comma in brackets 12 │ OK │ valid key with multiple unquoted parameters in brackets 13 │ OK │ valid key with multiple quoted parameters in brackets 14 │ OK │ valid key with first unquoted parameter and second array parameter containing two unquoted parameters 15 │ OK │ valid key with first unquoted parameter and second array parameter containing unquoted and empty parameter 16 │ OK │ valid key with two unquoted parameters where second parameter contains opening square bracket 17 │ OK │ valid key with multiple quoted parameters and array 18 │ OK │ valid key with multiple quoted parameters and multiple array parameters 19 │ OK │ valid key, single parameter with unquoted string containing double quote characters 20 │ OK │ valid key, multiple different type parameters where one is unquoted string containing double quote characters 21 │ OK │ valid key with many quoted/unquoted parameters with/without trailing/leading spaces also featuring escaping 22 │ OK │ invalid key, unmatched opening bracket (1) 23 │ OK │ invalid key, unmatched opening bracket (2) 24 │ OK │ invalid key, unmatched opening bracket (3) 25 │ OK │ invalid key, invalid character for unquoted parameter, multiple parameter key 26 │ OK │ invalid key, invalid character for unquoted parameter, multiple parameter key 27 │ OK │ invalid key, unmatched closing bracket, parameter followed by trailing space 28 │ OK │ invalid key, part of parameters list not enclosed in brackets 29 │ OK │ invalid key, braces are not allowed in key 30 │ OK │ invalid key, comma is not allowed in key or parameters should be enclosed in brackets 31 │ OK │ invalid key, multiple square bracket pairs are not allowed 32 │ OK │ invalid key, multiple square bracket pairs containing parameters are not allowed 33 │ OK │ invalid key, multi-level arrays are not allowed 34 │ OK │ invalid key, multi-level arrays are not allowed, array consists of multiple different type parameters 35 │ OK │ invalid key, multi-level arrays are not allowed, array consists of single parameter which is another array 36 │ OK │ invalid key, character ] is not allowed in unquoted parameter string 37 │ OK │ invalid key, character [ is allowed in unquoted parameter string but character ] is not 38 │ OK │ invalid key, character ] is not allowed in unquoted parameter string, key with multiple different type parameters 39 │ OK │ invalid key, quoted parameter cannot contain unquoted part 40 │ OK │ invalid key, second parameter of the array cannot contain unquoted part 41 │ OK │ invalid key, array type parameter cannot contain quoted parameter with unquoted part 42 │ OK │ invalid key, array type parameter cannot contain quoted part ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_get_percentage_of_deviations_in_stl_remainder ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ mad, 2 dc, 1 entry is excluded from the detection period 1 │ OK │ mad, 2 dc, no entries excluded from the detection period 2 │ OK │ mad, 0 dc 3 │ OK │ mad, 1 dc, stable series 4 │ OK │ mad, 4 dc 5 │ OK │ mad, time shift, 4 dc, small detection period 6 │ OK │ mad, 4 dc, detection period removes all remainder ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_calculate_macro_function ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Simple addition (+1h) 1 │ OK │ Simple subtraction (-1h) 2 │ OK │ Simple addition (+1d) 3 │ OK │ Simple subtraction (-1d) 4 │ OK │ Simple addition (+1w) 5 │ OK │ Simple subtraction (-1w) 6 │ OK │ Simple addition (+1M) 7 │ OK │ Simple subtraction (-1M) 8 │ OK │ Simple addition (+1y) 9 │ OK │ Simple subtraction (-1y) 10 │ OK │ Different macros formulas with subtraction (-1d-1h) 11 │ OK │ Different macros formulas with subtraction (-1w-1h) 12 │ OK │ Different macros formulas with subtraction (-1w-1d) 13 │ OK │ Different macros formulas with subtraction (-1M-1h) 14 │ OK │ Different macros formulas with subtraction (-1M-1d) 15 │ OK │ Different macros formulas with subtraction (-1M-1w) 16 │ OK │ Different macros formulas with subtraction (-1y-1h) 17 │ OK │ Different macros formulas with subtraction (-1y-1d) 18 │ OK │ Different macros formulas with subtraction (-1y-1w) 19 │ OK │ Different macros formulas with subtraction (-1y-1M) 20 │ OK │ Different macros formulas with subtraction (-1h-1h) 21 │ OK │ Different macros formulas with adding (-1d+1h) 22 │ OK │ Different macros formulas with adding (-1w+1h) 23 │ OK │ Different macros formulas with adding (-1w+1d) 24 │ OK │ Different macros formulas with adding (-1M+1h) 25 │ OK │ Different macros formulas with adding (-1M+1d) 26 │ OK │ Different macros formulas with adding (-1M+1w) 27 │ OK │ Different macros formulas with adding (-1y+1h) 28 │ OK │ Different macros formulas with adding (-1y+1d) 29 │ OK │ Different macros formulas with adding (-1y+1w) 30 │ OK │ Different macros formulas with adding (-1y+1M) 31 │ OK │ Different macros formulas with adding (-1d+1h) 32 │ OK │ Check end period date/time with + (+1M/M-1d) 33 │ OK │ Check end period date/time with + (+1M/M-1h) 34 │ OK │ Check end period date/time with + (+1d/d-1h) 35 │ OK │ Check end period date/time with + (+1w/w-1h) 36 │ OK │ Check end period date/time with + (+1w/w-1d) 37 │ OK │ Check end period date/time with + (+1M/M-1w) 38 │ OK │ Check end period date/time with + (+1y/y-1h) 39 │ OK │ Check end period date/time with + (+1y/y-1d) 40 │ OK │ Check end period date/time with + (+1y/y-1w) 41 │ OK │ Check end period date/time with + (+1y/y-1M) 42 │ OK │ Check start period date/time with - (-1M/M-1d) 43 │ OK │ Check start period date/time with - (-1M/M-1h) 44 │ OK │ Check start period date/time with - (-1d/d-1h) 45 │ OK │ Check start period date/time with - (-1w/w-1h) 46 │ OK │ Check start period date/time with - (-1w/w-1d) 47 │ OK │ Check start period date/time with - (-1M/M-1w) 48 │ OK │ Check start period date/time with - (-1y/y-1h) 49 │ OK │ Check start period date/time with - (-1y/y-1d) 50 │ OK │ Check start period date/time with - (-1y/y-1w) 51 │ OK │ Check start period date/time with - (-1y/y-1M) 52 │ OK │ Simple expression – invalid sign (*1h) 53 │ OK │ Simple expression – invalid time unit (+1q) 54 │ OK │ Simple expression – invalid time amount (+xh) 55 │ OK │ Simple expression – invalid character (x) 56 │ OK │ Invalid rounding sign (+1y.y-1h) 57 │ OK │ Invalid rounding time unit (+1y/X-1h) 58 │ OK │ Absent rounding time unit (+1M/-1d) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_evaluate_function ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Evaluate last() <- 0.1, 0.2 1 │ OK │ Evaluate last(#2) <- 0.1, 0.2 2 │ OK │ Evaluate last() <- 'xyz' 3 │ OK │ Evaluate last() <- '😓...' 4 │ OK │ Evaluate last() <- '123' 5 │ OK │ Evaluate last() <- ' a b ' 6 │ OK │ Evaluate last() <- '\"c:\\\"' 7 │ OK │ Evaluate last(:now-10m) <- 0.1, 0.2 8 │ OK │ Evaluate avg(#2) 9 │ OK │ Evaluate avg(3m) 10 │ OK │ Evaluate avg(180) 11 │ OK │ Evaluate avg(#2:now-1m) 12 │ OK │ Evaluate bitand(#1,1) 13 │ OK │ Evaluate bitand(#2,1) 14 │ OK │ Evaluate bitand(#2:now-1m,2) 15 │ OK │ Evaluate count(#3,ge,4) 16 │ OK │ Evaluate count(5m,like,"o") 17 │ OK │ Evaluate count(300,like,"o") 18 │ OK │ Evaluate count(5m,regexp,"o$") 19 │ OK │ Evaluate count(5m,iregexp,"o") 20 │ OK │ Evaluate count(5m,iregexp) 21 │ OK │ Evaluate count(5m,eq) 22 │ OK │ Evaluate count(5m,bitand,1/3) 23 │ OK │ Evaluate count(5m,bitand,"2/3") 24 │ OK │ Evaluate bitand(#1,0) 25 │ OK │ Evaluate bitand(#0,1) 26 │ OK │ Evaluate bitand(#1,) 27 │ OK │ Evaluate bitand(,1) 28 │ OK │ Evaluate bitand(#-1,-1) 29 │ OK │ Evaluate bitand(-#1,1) 30 │ OK │ Evaluate count(#3,ge) 31 │ OK │ Evaluate countunique(5m) FLOAT 5 3 3 1 2 32 │ OK │ Evaluate countunique(5m) FLOAT 1 1 1 1 1 33 │ OK │ Evaluate countunique(5m) UINT64 5 3 3 1 2 34 │ OK │ Evaluate countunique(5m) UINT64 1 1 1 1 1 35 │ OK │ Evaluate countunique(5m) STR One One One One One 36 │ OK │ Evaluate countunique(5m) STR One Two Three Four One 37 │ OK │ Evaluate countunique(11m) LOG 'abc', 'abc' no sources 38 │ OK │ Evaluate countunique(11m) LOG 'qwerty' 'abc' no sources 39 │ OK │ Evaluate countunique(11m) LOG 'abc' 'abc' different sources 40 │ OK │ Evaluate countunique(11m) LOG 'abc' 'abc' only source 1 41 │ OK │ Evaluate countunique(11m) LOG 'abc' 'abc' only source 2 42 │ OK │ Evaluate forecast(#5,1h) 43 │ OK │ Evaluate forecast(#5:now-1h,1h) 44 │ OK │ Evaluate forecast(#5:now-1h,1h,test) 45 │ OK │ Evaluate fuzzytime(1s) < @uint64 46 │ OK │ Evaluate fuzzytime(1s) < @float 47 │ OK │ Evaluate find(#5,"iregexp","^o") 48 │ OK │ Evaluate find(#5,"regexp","^o") 49 │ OK │ Evaluate find(#5,"like","o") 50 │ OK │ Evaluate logeventid(,"^12") 51 │ OK │ Evaluate logeventid(,"^34") 52 │ OK │ Evaluate logseverity() 53 │ OK │ Evaluate logsource(,"(Application|System)") <- Application 54 │ OK │ Evaluate logsource(,"(Application|System)") <- Security 55 │ OK │ Evaluate max(5m) 56 │ OK │ Evaluate max(5m,2m) 57 │ OK │ Evaluate min(4m) 58 │ OK │ Evaluate min(4m,2m) 59 │ OK │ Evaluate nodata(1m) 60 │ OK │ Evaluate nodata(5m) 61 │ OK │ Evaluate percentile(5m,100) 62 │ OK │ Evaluate percentile(5m,50) 63 │ OK │ Evaluate sum(#4) 64 │ OK │ Evaluate sum(4m:now-1m) 65 │ OK │ Evaluate sum(2m) 66 │ OK │ Evaluate sum(#2) 67 │ OK │ Evaluate sum(2m:now-1m) 68 │ OK │ Evaluate sum(#2:now-1m) 69 │ OK │ Evaluate timeleft(5m,65) 70 │ OK │ Evaluate timeleft(5m,65,test) 71 │ OK │ Evaluate change() <- 0.1, 0.2 72 │ OK │ Evaluate change() <- 10, 7 73 │ OK │ Evaluate change() <- 'a', 'b' 74 │ OK │ Evaluate change() <- 'x', 'x' 75 │ OK │ Evaluate change() <- @log 'a', 'b' 76 │ OK │ Evaluate change() <- @log 'x', 'x' 77 │ OK │ Evaluate change() <- 18446744073709551610, 18446744073709551615 78 │ OK │ Evaluate change() <- 18446744073709551615, 18446744073709551610 79 │ OK │ Evaluate first() <- 0.1, 0.2. It should FAIL because no argument is specified. 80 │ OK │ Evaluate first(#2) <- 0.1, 0.2. It should FAIL because number of value is specified. 81 │ OK │ Evaluate first(600) <- 'xyz'. It should FAIL because not enough data. 82 │ OK │ Evaluate first(601) <- 'xyz' 83 │ OK │ Evaluate first(:now-10m) <- 0.1, 0.2. It should FAIL because no time interval is specified. 84 │ OK │ Evaluate first(60:now-10m) <- 0.1, 0.2, 0.3 85 │ OK │ Evaluate first(61:now-10m) <- 0.1, 0.2, 0.3 86 │ OK │ Evaluate kurtosis(3m) FLOAT 0 87 │ OK │ Evaluate kurtosis(3m) UINT64 0 88 │ OK │ Evaluate kurtosis(3m) FLOAT 0, 1, 2 89 │ OK │ Evaluate kurtosis(3m) UINT64 0, 1, 2 90 │ OK │ Evaluate kurtosis(6m) FLOAT 26, 12, 16, 56, 112, 24 91 │ OK │ Evaluate kurtosis(6m) UINT64 26, 12, 16, 56, 112, 24 92 │ OK │ Evaluate mad(7m) FLOAT 1, 1, 2, 2, 4, 6, 9 - odd number of values 93 │ OK │ Evaluate mad(7m) UINT64 1, 1, 2, 2, 4, 6, 9 - odd number of values 94 │ OK │ Evaluate mad(6m) FLOAT 26, 12, 16, 56, 112, 24 - even number of values 95 │ OK │ Evaluate mad(6m) UINT64 26, 12, 16, 56, 112, 24 - even number of values 96 │ OK │ Evaluate skewness(3m) FLOAT 0, 1, 2 97 │ OK │ Evaluate skewness(3m) UINT64 0, 1, 2 98 │ OK │ Evaluate skewness(6m) FLOAT 26, 12, 16, 56, 112, 24 99 │ OK │ Evaluate skewness(6m) UINT64 26, 12, 16, 56, 112, 24 100 │ OK │ Evaluate stddevpop(3m) FLOAT 0, 1, 2 101 │ OK │ Evaluate stddevpop(3m) UINT64 0, 1, 2 102 │ OK │ Evaluate stddevpop(6m) FLOAT 26, 12, 16, 56, 112, 24 103 │ OK │ Evaluate stddevpop(6m) FLOAT 135.190000 104 │ OK │ Evaluate stddevpop(6m) UINT64 26, 12, 16, 56, 112, 24 105 │ OK │ Evaluate stddevsamp(3m) FLOAT 0, 1, 2 106 │ OK │ Evaluate stddevsamp(3m) UINT64 0, 1, 2 107 │ OK │ Evaluate stddevsamp(6m) FLOAT 26, 12, 16, 56, 112, 24 108 │ OK │ Evaluate stddevsamp(6m) UINT64 26, 12, 16, 56, 112, 24 109 │ OK │ Evaluate sumofsquares(3m) FLOAT 0, 1, 2 110 │ OK │ Evaluate sumofsquares(3m) UINT64 0, 1, 2 111 │ OK │ Evaluate sumofsquares(6m) FLOAT 26, 12, 16, 56, 112, 24 112 │ OK │ Evaluate sumofsquares(6m) UINT64 26, 12, 16, 56, 112, 24 113 │ OK │ Evaluate varpop(3m) FLOAT 0, 1, 2 114 │ OK │ Evaluate varpop(3m) UINT64 0, 1, 2 115 │ OK │ Evaluate varpop(6m) FLOAT 26, 12, 16, 56, 112, 24 116 │ OK │ Evaluate varpop(6m) UINT64 26, 12, 16, 56, 112, 24 117 │ OK │ Evaluate varsamp(3m) FLOAT 0, 1, 2 118 │ OK │ Evaluate varsamp(3m) UINT64 0, 1, 2 119 │ OK │ Evaluate varsamp(6m) FLOAT 26, 12, 16, 56, 112, 24 120 │ OK │ Evaluate varsamp(6m) UINT64 26, 12, 16, 56, 112, 24 121 │ OK │ Evaluate default weak, monoinc() is true 122 │ OK │ Evaluate default weak monoinc() is false 123 │ OK │ Evaluate specific weak monoinc() is true 124 │ OK │ Evaluate specific weak monoinc() is false 125 │ OK │ Evaluate strict monoinc() is true 126 │ OK │ Evaluate strict monoinc() is false 127 │ OK │ Evaluate weak monoinc() is true for single element 128 │ OK │ Evaluate strict monoinc() is true for single element 129 │ OK │ Evaluate strict monoinc() is true, breaking element is too old 130 │ OK │ Evaluate strict monoinc() is true, using time 131 │ OK │ Evaluate strict monoinc() is false, using time 132 │ OK │ Evaluate strict monoinc() is true, breaking element is ignored by time shift 133 │ OK │ Evaluate strict monoinc() is false, breaking element is NOT ignored by time shift 134 │ OK │ Evaluate weak monoinc() is true DOUBLE 135 │ OK │ Evaluate weak monoinc() is false DOUBLE 136 │ OK │ Evaluate weak monoinc() is true, due to lack precision DOUBLE 137 │ OK │ Evaluate strict monoinc() is false DOUBLE 138 │ OK │ Evaluate strict monoinc() is true, precision is enough to pass DOUBLE 139 │ OK │ Evaluate strict monoinc() is true, precision is still enough to pass DOUBLE 140 │ OK │ Evaluate strict monoinc() is false, precision is NOT enough to pass DOUBLE 141 │ OK │ Evaluate default weak, monodec() is false 142 │ OK │ Evaluate default weak monodec() is false 143 │ OK │ Evaluate specific weak monodec() is true 144 │ OK │ Evaluate specific weak monodec() is true 145 │ OK │ Evaluate strict monodec() is true 146 │ OK │ Evaluate strict monodec() is false 147 │ OK │ Evaluate weak monodec() is true for single element 148 │ OK │ Evaluate strict monodec() is true for single element 149 │ OK │ Evaluate strict monodec() is true, breaking element is too old 150 │ OK │ Evaluate strict monodec() is true, using time 151 │ OK │ Evaluate strict monodec() is false, using time 152 │ OK │ Evaluate strict monodec() is true, breaking element is ignored by time shift 153 │ OK │ Evaluate strict monodec() is false, breaking element is NOT ignored by time shift 154 │ OK │ Evaluate weak monodec() is true DOUBLE 155 │ OK │ Evaluate weak monodec() is false DOUBLE 156 │ OK │ Evaluate weak monodec() is true, due to lack precision DOUBLE 157 │ OK │ Evaluate strict monodec() is false DOUBLE 158 │ OK │ Evaluate strict monodec() is true, precision is enough to pass DOUBLE 159 │ OK │ Evaluate strict monodec() is true, precision is still enough to pass DOUBLE 160 │ OK │ Evaluate strict monodec() is false, precision is NOT enough to pass DOUBLE 161 │ OK │ Evaluate default weak, monoinc(), not enough data, but there is some data 162 │ OK │ Evaluate default weak, monodec(), not enough data 163 │ OK │ Evaluate rate(), with DOUBLE data 164 │ OK │ Evaluate rate(), with UINT64 data 165 │ OK │ Evaluate rate() extrapolation, with DOUBLE data 166 │ OK │ Evaluate rate() extrapolation, with UINT64 data 167 │ OK │ Evaluate rate() with reset and DOUBLE data 168 │ OK │ Evaluate rate() with reset and UINT64 data 169 │ OK │ Evaluate rate() extrapolation without change UINT64 data 170 │ OK │ Evaluate rate() extrapolation without change DOUBLE data 171 │ OK │ Evaluate rate() without DOUBLE data 172 │ OK │ Evaluate rate() without 2 DOUBLE bucket 173 │ OK │ Evaluate rate() with STR data 174 │ OK │ Evaluate rate() with negative reset 175 │ OK │ Evaluate default all changecount() with UINT64 data (all values different) 176 │ OK │ Evaluate default all changecount() with UINT64 data (some adjacent values are equal) 177 │ OK │ Evaluate inc changecount() with UINT64 data 178 │ OK │ Evaluate dec changecount() with UINT64 data 179 │ OK │ Evaluate explicit all changecount() with UINT64 data 180 │ OK │ Evaluate default all changecount() with DOUBLE data and time period 181 │ OK │ Evaluate explicit all changecount() with DOUBLE data 182 │ OK │ Evaluate inc changecount() with DOUBLE data 183 │ OK │ Evaluate dec changecount() with DOUBLE data 184 │ OK │ Evaluate changecount() with STR data (all values are different) 185 │ OK │ Evaluate changecount() with STR data (some adjacent values are same) 186 │ OK │ Evaluate changecount() with TEXT data (some adjacent values are same) 187 │ OK │ Evaluate changecount() with LOG data 188 │ OK │ Evaluate changecount() with not enough data 189 │ OK │ Evaluate changecount() with wrong count of arguments 190 │ OK │ Evaluate changecount() without arguments 191 │ OK │ Evaluate changecount() with wrong first argument 192 │ OK │ Evaluate changecount() with wrong second argument 193 │ OK │ Evaluate forecast (1h,30m,"logarithmic","max") 194 │ OK │ Evaluate forecast (1h,30m,"polynomial1","avg") 195 │ OK │ Evaluate forecast (1h,30m,"polynomial2","min") 196 │ OK │ Evaluate forecast (1h,30m,"polynomial3","max") 197 │ OK │ Evaluate forecast (1h,30m,"polynomial4","delta") 198 │ OK │ Evaluate forecast (1h,30m,"linear","avg") 199 │ OK │ Evaluate forecast (1h,30m,"logarithmic","avg") 200 │ OK │ Evaluate forecast (1h,30m,"power","avg") 201 │ OK │ Evaluate timeleft(5m,65,power) 202 │ OK │ Evaluate timeleft(5m,65,linear) 203 │ OK │ Evaluate timeleft(5m,65,polynomial2) 204 │ OK │ Evaluate timeleft(5m,65,exponential) 205 │ OK │ Evaluate timeleft(5m,65,logarithmic) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_STL ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Evaluate STL reduced set 1 │ OK │ Evaluate STL reduced set, season is wrong 2 │ OK │ Evaluate STL reduced set, not enough data 3 │ OK │ Evaluate STL full set ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_evaluate_unknown ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Valid expression "1 and not(0 or 1)" 1 │ OK │ Unknown comparison 2 │ OK │ Unknown comparison 3 │ OK │ Expression with unknown element "1 or ZBX_UNKNOWN0" 4 │ OK │ Expression with unknown element "1 or not(ZBX_UNKNOWN0)" 5 │ OK │ Expression with unknown result "1 and not(ZBX_UNKNOWN0)" 6 │ OK │ Expression with unknown result "1 > ZBX_UNKNOWN0" 7 │ OK │ Expression with unknown result "1 - ZBX_UNKNOWN0" ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── evaluate_value_by_map ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ exact match 1 │ OK │ exact match with conversion 2 │ OK │ exact match string 3 │ OK │ regexp ignored 4 │ OK │ regexp 5 │ OK │ range <= 3 6 │ OK │ range 5-7 7 │ OK │ range 5-7 ignored 8 │ OK │ range > 10 9 │ OK │ default 10 │ OK │ no mapping 11 │ OK │ order 12 │ OK │ scientific ranges 13 │ OK │ complex range 14 │ OK │ complex range 2 15 │ OK │ range with suffix ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_substitute_lld_macros ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Expand '={?{last(/{HOST.KEY}/key[{#A}]}}=' with {#A}=[] 1 │ OK │ Expand 'Expression:{?last(/host/key) = "{#A}" }.' with {#A}=value:"xyz" 2 │ OK │ Expand '={?last(/host/key[{#A}],,{#A})}=' with {#A}=() 3 │ OK │ Expand '={?func({#A})}=' with {#A}=() 4 │ OK │ Expand '{?{$MACRO:"{#A}"} {?last(/host/key[{#B1},{#B2}],{#B1},{#B2})}' with {#A}=x"z, {#B1}=[], {#B2}=() 5 │ OK │ Expand '{?last(/host/key[{#B1},{#B2}],{#B1},{#B2})} last(/host/key[{#B1},{#B2}],{#B1},{#B2})' with {#B1}=[], {#B2}=() 6 │ OK │ Expand '{?last(/host/key[{#B1},{#B2}],{#B1},{#B2})} {?last(/host/key[{#B2},{#B1}],{#B2},{#B1})}' with {#B1}=[], {#B2}=() 7 │ OK │ Expand 'Expression:{?last(/host/key) {#A} }.' with {#A}='= "xyz"' 8 │ OK │ Expand '={?{last(/{HOST.KEY}/key[{{#A}.regsub("2","\0")}]}}=' with {#A}=123 9 │ OK │ Expand '={?{last(/{HOST.KEY}/key[{{#A}.iregsub("a","\0")}]}}=' with {#A}=ABC 10 │ OK │ Expand '={?{last(/{HOST.KEY}/key[{{#A}.fmtnum(1)}]}}=' with {#A}=123.456 11 │ OK │ Expand '{{ITEM.VALUE}.regsub({#A}, \1, "\1")}' with {#A}=(.*) and no macro function support 12 │ OK │ Expand '{{ITEM.VALUE}.regsub({#A}, \1, "\1")}' with {#A}=(.*) 13 │ OK │ Expand '{{$MACRO}.regsub({#A}, \1, "\1")}' with {#A}=(.*) 14 │ OK │ Expand '{{$MACRO}.regsub({#A}, \\1, "\\1")}' with {#A}=(.*) 15 │ OK │ Expand '{?concat(/host/key[{#A}],"\\{#A}")}' with {#A}=\ ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_substitute_simple_macros ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Expand '{{HOST.HOST}.regsub([0-9]+, \0)}' 1 │ OK │ Expand 'ABC{{HOST.HOST}.regsub([0-9]+, \0)}' 2 │ OK │ Expand '{{HOST.HOST}.iregsub([a-z]+, \0)}' 3 │ OK │ Expand '{{HOST.HOST}.fmtnum(2)}' 4 │ OK │ Expand '{{$USERMACRO}.regsub([0-9]+, \0)}' 5 │ OK │ Expand '{{$USERMACRO}.iregsub([a-z]+, \0)}' 6 │ OK │ Expand '{{$USERMACRO}.fmtnum(2)}' 7 │ OK │ Expand '{{$USERMACRO}.fmttime(%H:%M:%S)} 1' 8 │ OK │ Expand '{{$USERMACRO}.fmttime(%H:%M:%S)} 2' 9 │ OK │ Expand '{{$USERMACRO}.fmttime(%H:%M:%S)} 3' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_evaluate ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ strings comparison, brackets outside of the first operand 1 │ OK │ strings comparison, broken expression 2 │ OK │ strings comparison, location of brackets around operands is different 3 │ OK │ strings comparison, brackets inside of the second operand 4 │ OK │ strings comparison, castable to ints 5 │ OK │ strings comparison, single bracket 6 │ OK │ strings comparison 7 │ OK │ strings that are ints comparison 8 │ OK │ strings empty space 1 9 │ OK │ strings empty space 2 10 │ OK │ strings null terminators 11 │ OK │ strings are quotes 1 12 │ OK │ strings are quotes 2 13 │ OK │ strings are escapes 1 14 │ OK │ strings are escapes 2 15 │ OK │ strings are escapes 3 16 │ OK │ strings are escapes 4 17 │ OK │ strings comparison, carriage return 1 18 │ OK │ strings comparison, carriage return 2 19 │ OK │ strings comparison, carriage return 3 20 │ OK │ strings comparison, carriage return 4 21 │ OK │ strings comparison, carriage return 5 22 │ OK │ strings comparison, operands are different 23 │ OK │ strings comparison, empty strings 24 │ OK │ strings comparison, brackets are outside of the second operand 25 │ OK │ strings comparison, brackets are outside of both operands 26 │ OK │ strings comparison, empty operands 1 27 │ OK │ strings comparison, empty operands 2 28 │ OK │ strings comparison, empty operands 3 29 │ OK │ strings comparison, empty operands 3 30 │ OK │ strings comparison, operands are are brackets 31 │ OK │ string castable 32 │ OK │ not_castable_str 1 33 │ OK │ not_castable_str 2 34 │ OK │ not_castable_str 3 35 │ OK │ string castable negative 36 │ OK │ string castable with suffix 37 │ OK │ string castable with suffix str comparison 1 38 │ OK │ string castable with suffix str comparison 2 39 │ OK │ string castable with suffix str comparison 3 40 │ OK │ string castable with suffix int comparison 1 41 │ OK │ string castable with suffix int comparison 2 42 │ OK │ string castable with suffix, suffix comparison 1 43 │ OK │ string castable with suffix, suffix comparison 2 44 │ OK │ unicode 1 45 │ OK │ unicode 2 46 │ OK │ scientific notation, simple comparison 47 │ OK │ scientific notation, large int number 48 │ OK │ scientific notation, large string number 49 │ OK │ scientific notation, negative exponent 50 │ OK │ scientific notation, precision limit holds 51 │ OK │ scientific notation, precision limit does not hold 52 │ OK │ scientific notation, precision limit does not hold 2 53 │ OK │ scientific notation, negative number 54 │ OK │ scientific notation, negative number 2 55 │ OK │ scientific notation, addition 56 │ OK │ term 8, one on its own 57 │ OK │ term 8, one with brackets 58 │ OK │ term 8, not_castable_str negative 1 59 │ OK │ term 8, not_castable_str negative 2 60 │ OK │ term 8, not_castable_str quotes 61 │ OK │ term 8, not_castable_str quotes 2 62 │ OK │ term 8, not_castable_str quotes 3 63 │ OK │ term 8, not_castable_str quotes 4 64 │ OK │ term 8, not_castable_str quotes 5 65 │ OK │ term 8, not_castable_str quotes 6 66 │ OK │ term 7, one 67 │ OK │ term 7, zero 68 │ OK │ term 7, negative 69 │ OK │ term 7, no space 70 │ OK │ term 7, not_castable_str 71 │ OK │ term 6 / str and str 72 │ OK │ term 6 / int and str 73 │ OK │ term 6 / str and int 74 │ OK │ term 6 / not_castable_str and int 75 │ OK │ term 6 / int and not_castable_str 76 │ OK │ term 6 / int and not_castable_string negative 77 │ OK │ term 6 / not_castable_str and not_castable_str 78 │ OK │ term 6 / castable_str and not_castable_str 79 │ OK │ term 6 / not_castable_str and zero int 80 │ OK │ term 6 / not_castable_str and zero str 81 │ OK │ term 6 / str and zero str 82 │ OK │ term 6 * str and str 83 │ OK │ term 6 * str and int 84 │ OK │ term 6 * int and str 85 │ OK │ term 6 * int and not_castable_str 86 │ OK │ term 6 * not_castable_str and int 87 │ OK │ term 6 * not_castable_str and not_castable_str 88 │ OK │ term 5 + str and str 89 │ OK │ term 5 + str and int 90 │ OK │ term 5 + int and str 91 │ OK │ term 5 + int and not_castable_str 92 │ OK │ term 5 + not_castable_str and int 93 │ OK │ term 5 + castable_str and not_castable_str 94 │ OK │ term 5 - str and str 95 │ OK │ term 5 - int and str 96 │ OK │ term 5 - str and int 97 │ OK │ term 5 - not_castable_str and int 98 │ OK │ term 5 - int and not_castable_str 99 │ OK │ term 4 <= str and str 1 100 │ OK │ term 4 <= str and str 2 101 │ OK │ term 4 <= str and int 102 │ OK │ term 4 <= str and int 103 │ OK │ term 4 <= int and not_castable_str 104 │ OK │ term 4 <= not_castable_str and castable_str 105 │ OK │ term 4 >= str and str 1 106 │ OK │ term 4 >= not_castable_str and int 107 │ OK │ term 4 >= int and not_castable_str 108 │ OK │ term 4 >= str and str 2 109 │ OK │ term 4 >= str and int 110 │ OK │ term 4 >= str and int 111 │ OK │ term 4 < str and str 1 112 │ OK │ term 4 < str and str 2 113 │ OK │ term 4 < str and int 114 │ OK │ term 4 < str and int 115 │ OK │ term 4 < not_castable_str and int 116 │ OK │ term 4 < str and not_castable_str 117 │ OK │ term 4 > str and str 1 118 │ OK │ term 4 > str and str 2 119 │ OK │ term 4 > str and int 120 │ OK │ term 4 > str and int 121 │ OK │ term 4 > str and not_castable_str 122 │ OK │ term 4 > not_castable_str and int 123 │ OK │ term 3 = str and str 1 124 │ OK │ term 3 = str and str 2 125 │ OK │ term 3 = str and str 2, empty space 126 │ OK │ term 3 = not_castable_str and not_castable_str 1 127 │ OK │ term 3 = not_castable_str and not_castable_str 2 128 │ OK │ term 3 = not_castable_str and not_castable_str 3 129 │ OK │ term 3 = str and int 1 130 │ OK │ term 3 = str and int 2 131 │ OK │ term 3 = str and int empty space 132 │ OK │ term 3 = int and str 1 133 │ OK │ term 3 = int and str 2 134 │ OK │ term 3 = int and str empty space 135 │ OK │ term 3 = int and not_castable_str 136 │ OK │ term 3 <> str and str 1 137 │ OK │ term 3 <> str and str 2 138 │ OK │ term 3 <> not_castable_str and not_castable_str 1 139 │ OK │ term 3 <> not_castable_str and not_castable_str 2 140 │ OK │ term 3 <> not_castable_str and not_castable_str 3 141 │ OK │ term 3 <> str and int 1 142 │ OK │ term 3 <> str and int 2 143 │ OK │ term 3 <> int and str 1 144 │ OK │ term 3 <> int and str 2 145 │ OK │ term 3 <> not_castable_str and int 146 │ OK │ term 2 and str and str 1 147 │ OK │ term 2 and str and str 2 148 │ OK │ term 2 and str and not_castable_str 149 │ OK │ term 2 and not_castable_str and int 150 │ OK │ term 2 and not_castable_str and not_castable_str 151 │ OK │ term 2 and str and int 1 152 │ OK │ term 2 and str and int 2 153 │ OK │ term 2 and int and str 1 154 │ OK │ term 2 and int and str 1 155 │ OK │ term 1 or str and str 1 156 │ OK │ term 1 or str and str 2 157 │ OK │ term 1 or str and not_castable_str 158 │ OK │ term 1 or not_castable_str and int 159 │ OK │ term 1 or not_castable_str and not_castable_str 1 160 │ OK │ term 1 or not_castable_str and not_castable_str 2 161 │ OK │ term 1 or str and int 1 162 │ OK │ term 1 or str and int 2 163 │ OK │ term 1 or int and str 1 164 │ OK │ term 1 or int and str 1 165 │ OK │ Valid expression "-1" 166 │ OK │ Valid expression "- 1" 167 │ OK │ Valid expression " - 1K " 168 │ OK │ Valid expression "not -1" 169 │ OK │ Valid expression "not 1" 170 │ OK │ Valid expression "not 0" 171 │ OK │ Valid expression "1.5 * 4" 172 │ OK │ Valid expression "1024K/4M" 173 │ OK │ Valid expression "1+2 174 │ OK │ Valid expression "1-2" 175 │ OK │ Valid expression "1<2" 176 │ OK │ Valid expression "1<1" 177 │ OK │ Valid expression "2<1" 178 │ OK │ Valid expression "1<=2" 179 │ OK │ Valid expression "2<=2" 180 │ OK │ Valid expression "3<=2" 181 │ OK │ Valid expression "2>=1" 182 │ OK │ Valid expression "2>=2" 183 │ OK │ Valid expression "1>=2" 184 │ OK │ Valid expression "2>1" 185 │ OK │ Valid expression "1>1" 186 │ OK │ Valid expression "1>2" 187 │ OK │ Valid expression "1=1" 188 │ OK │ Valid expression "1=2" 189 │ OK │ Valid expression "1<>1" 190 │ OK │ Valid expression "1<>2" 191 │ OK │ Valid expression "1 and 1" 192 │ OK │ Valid expression "0 and 1" 193 │ OK │ Valid expression "1 and 0" 194 │ OK │ Valid expression "0 and 0" 195 │ OK │ Valid expression "1 or 1" 196 │ OK │ Valid expression "0 or 1" 197 │ OK │ Valid expression "1 or 0" 198 │ OK │ Valid expression "0 or 0" 199 │ OK │ Valid expression "not 1 or 1" int int 200 │ OK │ Valid expression "not 1 or 1" str str 201 │ OK │ Valid expression "not 1 or 1" str int 202 │ OK │ Valid expression "not 0 and 0" int str 203 │ OK │ Valid expression "-1-2-3-4" int int int int 204 │ OK │ Valid expression "-1-2-3-4" int str str str 205 │ OK │ Valid expression "-1-2-3-4" int str not_castable_str str 206 │ OK │ Valid expression "-1-(2-3-4)" 207 │ OK │ Valid expression "-1-(2-(3-4))" 208 │ OK │ Valid expression "-1/2/3/4" 209 │ OK │ Valid expression "-1/(2/3/4)" 210 │ OK │ Valid expression "1/(2/(3/4))" int int int int 211 │ OK │ Valid expression "1/(2/(3/4))" int str int str 212 │ OK │ Valid expression "5 + 10 / 3 * (not 0 + (1 or 0) + (1K and 1M))" all ints 213 │ OK │ Valid expression "5 + 10 / 3 * (not 0 + (1 or 0) + (1K and 1M))" ints and strings 214 │ OK │ Valid expression "3 * not 1 + (5 = 2 + 3) / 1000000000G + (1/10/100/1000 <> 1/1000000)" 215 │ OK │ Valid expression "2 * 3 * 5 * 7 = 300 + 4 * -30 - -20 + 10" all ints 216 │ OK │ Valid expression "2 * 3 * 5 * 7 = 300 + 4 * -30 - -20 + 10" all strings 217 │ OK │ Valid expression "-5 + 10 * -6 + 1e+2 + "1e+3" - 700 / (49 * (1 / (2 + 5))) = 935" 218 │ OK │ Valid expression "1<2=2<1" 219 │ OK │ Valid expression "1<2<>2<1" 220 │ OK │ Valid expression "0<>1<2<>0" 221 │ OK │ Valid expression "0<1<=1>=1>0" 222 │ OK │ Valid expression "1/0.2" 223 │ OK │ Valid expression "(1-(2=2))or(1/100000)" 224 │ OK │ Valid expression "(1-(2=2))or(1/1000000)" 225 │ OK │ Valid expression "(1-(2=2))or(1/2000000)" 226 │ OK │ Valid expression "1K-1 < 2 * 512 and not(0000000000000000000000000000000000000000000000000000000000000000000000000)" 227 │ OK │ Valid expression "2.5K = 256 * 10 and (not(1)or(1))" all ints 228 │ OK │ Valid expression "2.5K = 256 * 10 and (not(1)or(1))" all strings 229 │ OK │ Valid expression "not(not(not(not(not(not 1)))))" 230 │ OK │ Valid expression "-(-(-(-(-(-2.G)))))" int 231 │ OK │ Valid expression "-(-(-(-(-(-2.G)))))" string 232 │ OK │ Valid expression "-(-(-(-(-(-.1T)))))" 233 │ OK │ Valid expression "not 0 <> not 1" 234 │ OK │ Valid expression "not 0K >= not 1" 235 │ OK │ Valid expression "not 00.M > not 1" 236 │ OK │ Valid expression "not .000G > not 1" all ints 237 │ OK │ Valid expression "not .000G > not 1" all strings 238 │ OK │ Valid expression " 1 + 2 * 3 = 7 and ( - 1 or - 2 ) and not 0 " 239 │ OK │ Valid expression "(1+((2)*(3))=(7)and(-(1)or(-(2)))and(not(0)))" 240 │ OK │ Valid expression "\t1\t+\t2\t*\t3\t=\t7\tand\t(\t-\t1\tor\t-\t2\t)\tand\tnot\t0\t" all ints 241 │ OK │ Valid expression "\t1\t+\t2\t*\t3\t=\t7\tand\t(\t-\t1\tor\t-\t2\t)\tand\tnot\t0\t" all strings 242 │ OK │ Valid expression "\r1\r+\r2\r*\r3\r=\r7\rand\r(\r-\r1\ror\r-\r2\r)\rand\rnot\r0\r" 243 │ OK │ Valid expression "\n1\n+\n2\n*\n3\n=\n7\nand\n(\n-\n1\nor\n-\n2\n)\nand\nnot\n0\n" all ints 244 │ OK │ Valid expression "\n1\n+\n2\n*\n3\n=\n7\nand\n(\n-\n1\nor\n-\n2\n)\nand\nnot\n0\n" some ints some strings 245 │ OK │ Valid expression "(((((((((((((((((((((((((((((((1)))))))))))))))))))))))))))))))" int 246 │ OK │ Valid expression "(((((((((((((((((((((((((((((((1)))))))))))))))))))))))))))))))" string 247 │ OK │ Valid expression "-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-1)))))))))))))))))))))))))))))))" int 248 │ OK │ Valid expression "-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-1)))))))))))))))))))))))))))))))" str 249 │ OK │ Valid expression "-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-1)))))))))))))))))))))))))))))))" not_castable_str 250 │ OK │ Valid expression "17179869184 > 17179869184" 251 │ OK │ Valid expression "17179869184 < 17179869184" 252 │ OK │ Valid expression "17179869184 = 17179869184" 253 │ OK │ Valid expression "1 > 1 or 1 < 1 or 1 = 1" 254 │ OK │ Valid expression "0 > 0 or 0 < 0 or 0 = 0" all ints 255 │ OK │ Valid expression "0 > 0 or 0 < 0 or 0 = 0" some ints some strings 256 │ OK │ Valid expression "0 > 0 or 0 < 0 or 0 = 0" all strings 257 │ OK │ Valid expression "17179869184 > 17179869184 or 17179869184 < 17179869184 or 17179869184 = 17179869184" 258 │ OK │ Valid expression "17179869184.000001 > 17179869184 or 17179869184.000001 < 17179869184 or 17179869184.000001 = 17179869184" 259 │ OK │ Valid expression "17179869184 > 17179869184.000001 or 17179869184 < 17179869184.000001 or 17179869184 = 17179869184.000001" all ints 260 │ OK │ Valid expression "17179869184 > 17179869184.000001 or 17179869184 < 17179869184.000001 or 17179869184 = 17179869184.000001" some ints some strings 261 │ OK │ Valid expression "17179869184.000001 > 17179869184" 262 │ OK │ Valid expression "17179869184.000001 = 17179869184" all ints 263 │ OK │ Valid expression "17179869184.000001 = 17179869184" some ints some strings 264 │ OK │ Valid expression "17179869184.000001 < 17179869184" 265 │ OK │ Valid expression "17179869184.000001 <= 17179869184" 266 │ OK │ Valid expression "17179869184.000001 >= 17179869184" ints 267 │ OK │ Valid expression "17179869184.000001 >= 17179869184" string and int 268 │ OK │ Invalid expression "" 269 │ OK │ Invalid expression "" string 270 │ OK │ Invalid expression "+1" 271 │ OK │ Invalid expression "+1" string 272 │ OK │ Invalid expression "--1" 273 │ OK │ Invalid expression "--1" string 274 │ OK │ Expression "-"-1"" is valid 275 │ OK │ Invalid expression "--1" string 3 276 │ OK │ Invalid expression "not1" 277 │ OK │ Invalid expression "1not" 278 │ OK │ Invalid expression "not-1" 279 │ OK │ Invalid expression "not-1" string 280 │ OK │ Invalid expression "-not 1" 281 │ OK │ Invalid expression "-not 1" string 282 │ OK │ Invalid expression "- not(1)" 283 │ OK │ Invalid expression "not not 1" 284 │ OK │ Invalid expression "not not 1" string 285 │ OK │ Invalid expression "1and 1" 286 │ OK │ Invalid expression "1and 1" str 1 287 │ OK │ Invalid expression "1and 1" str 2 288 │ OK │ Invalid expression "1or 1" 289 │ OK │ Invalid expression "1or 1" str 290 │ OK │ Invalid expression "1 or1" 291 │ OK │ Invalid expression "1or 1" str 292 │ OK │ Invalid expression "1 or1" string 293 │ OK │ Invalid expression "1..2" 294 │ OK │ Invalid expression "1..2" string 1 295 │ OK │ Invalid expression "1..2" string 2 296 │ OK │ Invalid expression "1..2" string 3 297 │ OK │ Invalid expression "1.K2" 298 │ OK │ Invalid expression "1.K2" string 1 299 │ OK │ Invalid expression "1.K2" string 2 300 │ OK │ Invalid expression "1.K2" string 3 301 │ OK │ Invalid expression "1.K2" string 4 302 │ OK │ Invalid expression "1.2Kand 1" 303 │ OK │ Invalid expression "1 andnot 1" 304 │ OK │ Invalid expression "1 andnot 1" string 305 │ OK │ Invalid expression "1 andor 1" 306 │ OK │ Invalid expression "1/(5-10/2)" 307 │ OK │ Invalid expression "1/(5-10/2)" string 308 │ OK │ Invalid expression "1/(5-10/2)" string 2 309 │ OK │ Invalid expression "1/(5-10/2)" string 3 310 │ OK │ Invalid expression "1/(5-10/2)" all strings 311 │ OK │ Invalid expression "((((((((((((((((((((((((((((((((1))))))))))))))))))))))))))))))))" 312 │ OK │ Invalid expression "((((((((((((((((((((((((((((((((1))))))))))))))))))))))))))))))))" string 313 │ OK │ Invalid expression "-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-1))))))))))))))))))))))))))))))))" 314 │ OK │ Invalid expression "-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-1))))))))))))))))))))))))))))))))" string 315 │ OK │ Invalid expression "-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-1))))))))))))))))))))))))))))))))" string 2 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_poller_test ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ (SSH) Both interface and key parameter are present 1 │ OK │ (SSH) Only interface is present 2 │ OK │ (SSH) Only key parameter is present 3 │ OK │ (SSH) Both interface and key parameter are missing 4 │ OK │ (SSH) Has one additional parameter with one value 5 │ OK │ (SSH) Has one additional parameter with many values 6 │ OK │ (SSH) Has many additional parameters with many values (I) 7 │ OK │ (SSH) Has many additional parameters with many values (II) 8 │ OK │ (SSH) Has empty additional option key 9 │ OK │ (SSH) Has only additional option key 10 │ OK │ (SSH) Has unsupported additional option key 11 │ OK │ (SSH) Has unsupported additional option KexAlgorithms value 12 │ OK │ (SSH) Has unsupported additional option HostkeyAlgorithms value 13 │ OK │ (SSH) Has unsupported additional option Ciphers value 14 │ OK │ (SSH) Has unsupported additional option MACs value 15 │ OK │ (TELNET) Both interface and key parameter are present 16 │ OK │ (TELNET) Only interface is present 17 │ OK │ (TELNET) Only key parameter is present 18 │ OK │ (TELNET) Both interface and key parameter are missing ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── tagfilter_match_tags ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ No match tags, no event tags (1) 1 │ OK │ No match tags, no event tags (2) 2 │ OK │ No match tags, one event tag (1) 3 │ OK │ No match tags, one event tag (2) 4 │ OK │ One match tag, no event tags (1) 5 │ OK │ One match tag, no event tags (2) 6 │ OK │ One match tag, no event tags (3) 7 │ OK │ One match tag, no event tags (4) 8 │ OK │ One match tag, no event tags (5) 9 │ OK │ One match tag, no event tags (6) 10 │ OK │ One match tag, no event tags (7) 11 │ OK │ One match tag, no event tags (8) 12 │ OK │ One match tag, no event tags (9) 13 │ OK │ One match tag, no event tags (10) 14 │ OK │ One match tag, no event tags (11) 15 │ OK │ One match tag, no event tags (12) 16 │ OK │ Match tags with matching event tags (1) 17 │ OK │ Match tags with matching event tags (2) 18 │ OK │ Match tags with matching event tags (3) 19 │ OK │ Match tags with matching event tags (4) 20 │ OK │ Match tags with matching event tags (5) 21 │ OK │ Match tags with matching event tags (6) 22 │ OK │ Match tags with matching event tags (7) 23 │ OK │ Match tags with matching event tags (8) 24 │ OK │ Match tags with matching event tags (9) 25 │ OK │ Match tags with matching event tags (10) 26 │ OK │ Match tags with matching event tags (11) 27 │ OK │ Match tags with matching event tags (12) 28 │ OK │ Match tags with matching event tags (13) 29 │ OK │ Match tags with matching event tags (14) 30 │ OK │ Match tags with matching event tags (15) 31 │ OK │ Match tags with matching event tags (16) 32 │ OK │ Match tags with matching event tags (17) 33 │ OK │ Match tags with matching event tags (18) 34 │ OK │ Match tags with not matching event tags (1) 35 │ OK │ Match tags with not matching event tags (2) 36 │ OK │ Match tags with not matching event tags (3) 37 │ OK │ Match tags with not matching event tags (4) 38 │ OK │ Match tags with not matching event tags (5) 39 │ OK │ Match tags with not matching event tags (6) 40 │ OK │ Match tags with not matching event tags (7) 41 │ OK │ Match tags with matching event tags (8) 42 │ OK │ Match not equal (1) 43 │ OK │ Match not equal (2) 44 │ OK │ Match not equal (3) 45 │ OK │ Match not equal (4) 46 │ OK │ Match exist (1) 47 │ OK │ Match exist (2) 48 │ OK │ Match exist (3) 49 │ OK │ Match exist (4) 50 │ OK │ Match exist (5) 51 │ OK │ Match exist (6) 52 │ OK │ Match exist (7) 53 │ OK │ Match exist (8) 54 │ OK │ Match not exist (1) 55 │ OK │ Match not exist (2) 56 │ OK │ Match not exist (3) 57 │ OK │ Match not exist (4) 58 │ OK │ Match not exist (5) 59 │ OK │ Match not exist (6) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tm_sub ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 2020-09-01 12:00:00 +03:00 - 1h 1 │ OK │ 2020-09-01 12:00:00 +03:00 - 12h 2 │ OK │ 2020-09-01 12:00:00 +03:00 - 13h 3 │ OK │ 2020-03-01 12:00:00 +02:00 - 24h 4 │ OK │ 2020-03-02 00:00:00 +02:00 - 24h 5 │ OK │ 2020-09-01 12:00:00 +03:00 - 720h 6 │ OK │ 2019-09-01 00:00:00 +03:00 - 8760h 7 │ OK │ 2020-09-01 00:00:00 +03:00 - 8784h 8 │ OK │ 2020-10-25 12:00:00 +02:00 - 24h 9 │ OK │ 2020-10-25 03:00:00 +02:00 - 1h 10 │ OK │ 2020-03-29 12:00:00 +03:00 - 24h 11 │ OK │ 2020-03-29 03:00:00 +03:00 - 1h 12 │ OK │ 2020-09-02 00:00:00 +03:00 - 1d 13 │ OK │ 2020-09-30 00:00:00 +03:00 - 10d 14 │ OK │ 2020-10-26 00:00:00 +02:00 - 1d 15 │ OK │ 2020-09-01 00:00:00 +03:00 - 366d 16 │ OK │ 2019-09-01 00:00:00 +03:00 - 365d 17 │ OK │ 2020-09-10 00:00:00 +03:00 - 1w 18 │ OK │ 2020-09-01 00:00:00 +03:00 - 1M 19 │ OK │ 2020-09-01 00:00:00 +03:00 - 2M 20 │ OK │ 2020-09-01 00:00:00 +03:00 - 1y 21 │ OK │ 2020-01-01 00:00:00 +02:00 - 1h 22 │ OK │ 2020-09-01 12:00:00 +03:00 - 1m 23 │ OK │ 2020-10-25 03:00:00 +02:00 - 1m 24 │ OK │ 2020-09-01 12:00:00 +03:00 - 1s 25 │ OK │ 2020-10-25 03:00:00 +02:00 - 1s 26 │ OK │ 2021-11-09 03:00:00 +02:00 - 1i 27 │ OK │ 2020-12-30 03:00:00 +02:00 - 1i 28 │ OK │ 2021-01-04 03:00:00 +02:00 - 1i 29 │ OK │ 2021-03-31 03:00:00 +03:00 - 1M 30 │ OK │ 2021-03-31 03:00:00 +03:00 - 13M 31 │ OK │ 2020-02-29 03:00:00 +03:00 - 1y ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tm_add ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 2020-09-01 00:00:00 +03:00 + 1h 1 │ OK │ 2020-09-01 23:00:00 +03:00 + 1h 2 │ OK │ 2020-09-01 00:00:00 +03:00 + 10h 3 │ OK │ 2020-09-01 00:00:00 +03:00 + 24h 4 │ OK │ 2020-09-01 00:00:00 +03:00 + 720h 5 │ OK │ 2020-09-01 00:00:00 +03:00 + 1440h 6 │ OK │ 2020-10-25 03:00:00 +03:00 + 1h 7 │ OK │ 2020-03-29 02:00:00 +02:00 + 1h 8 │ OK │ 2020-09-01 00:00:00 +03:00 + 8760h 9 │ OK │ 2019-09-01 00:00:00 +03:00 + 8784h 10 │ OK │ 2020-09-01 00:00:00 +03:00 + 1d 11 │ OK │ 2020-09-01 00:00:00 +03:00 + 10d 12 │ OK │ 2020-10-25 00:00:00 +03:00 + 1d 13 │ OK │ 2020-09-01 00:00:00 +03:00 + 365d 14 │ OK │ 2019-09-01 00:00:00 +03:00 + 366d 15 │ OK │ 2020-09-01 00:00:00 +03:00 + 1w 16 │ OK │ 2020-09-01 00:00:00 +03:00 + 1M 17 │ OK │ 2020-09-01 00:00:00 +03:00 + 2M 18 │ OK │ 2020-09-01 00:00:00 +03:00 + 1y 19 │ OK │ 2020-12-31 23:00:00 +02:00 + 1h 20 │ OK │ 2020-01-29 00:00:00 +00:00 + 1d 21 │ OK │ 2020-09-01 00:00:00 +03:00 + 1m 22 │ OK │ 2020-09-01 00:59:00 +03:00 + 1m 23 │ OK │ 2020-03-29 02:59:00 +02:00 + 1m 24 │ OK │ 2020-09-01 00:00:00 +03:00 + 1s 25 │ OK │ 2020-09-01 00:00:59 +03:00 + 1s 26 │ OK │ 2020-03-29 02:59:59 +02:00 + 1s 27 │ OK │ 2019-01-31 03:00:00 +02:00 + 1M 28 │ OK │ 2019-01-31 03:00:00 +02:00 + 13M 29 │ OK │ 2020-02-29 03:00:00 +02:00 + 1y ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_get_week_number ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 2010-01-01 12:00:00 +02:00 1 │ OK │ 2010-01-02 12:00:00 +02:00 2 │ OK │ 2010-01-03 12:00:00 +02:00 3 │ OK │ 2010-01-04 12:00:00 +02:00 4 │ OK │ 2010-01-05 12:00:00 +02:00 5 │ OK │ 2010-01-06 12:00:00 +02:00 6 │ OK │ 2010-01-07 12:00:00 +02:00 7 │ OK │ 2010-01-08 12:00:00 +02:00 8 │ OK │ 2010-01-09 12:00:00 +02:00 9 │ OK │ 2010-01-10 12:00:00 +02:00 10 │ OK │ 2010-01-11 12:00:00 +02:00 11 │ OK │ 2010-12-21 12:00:00 +02:00 12 │ OK │ 2010-12-22 12:00:00 +02:00 13 │ OK │ 2010-12-23 12:00:00 +02:00 14 │ OK │ 2010-12-24 12:00:00 +02:00 15 │ OK │ 2010-12-25 12:00:00 +02:00 16 │ OK │ 2010-12-26 12:00:00 +02:00 17 │ OK │ 2010-12-27 12:00:00 +02:00 18 │ OK │ 2010-12-28 12:00:00 +02:00 19 │ OK │ 2010-12-29 12:00:00 +02:00 20 │ OK │ 2010-12-30 12:00:00 +02:00 21 │ OK │ 2010-12-31 12:00:00 +02:00 22 │ OK │ 2011-01-01 12:00:00 +02:00 23 │ OK │ 2011-01-02 12:00:00 +02:00 24 │ OK │ 2011-01-03 12:00:00 +02:00 25 │ OK │ 2011-01-04 12:00:00 +02:00 26 │ OK │ 2011-01-05 12:00:00 +02:00 27 │ OK │ 2011-01-06 12:00:00 +02:00 28 │ OK │ 2011-01-07 12:00:00 +02:00 29 │ OK │ 2011-01-08 12:00:00 +02:00 30 │ OK │ 2011-01-09 12:00:00 +02:00 31 │ OK │ 2011-01-10 12:00:00 +02:00 32 │ OK │ 2011-01-11 12:00:00 +02:00 33 │ OK │ 2011-12-21 12:00:00 +02:00 34 │ OK │ 2011-12-22 12:00:00 +02:00 35 │ OK │ 2011-12-23 12:00:00 +02:00 36 │ OK │ 2011-12-24 12:00:00 +02:00 37 │ OK │ 2011-12-25 12:00:00 +02:00 38 │ OK │ 2011-12-26 12:00:00 +02:00 39 │ OK │ 2011-12-27 12:00:00 +02:00 40 │ OK │ 2011-12-28 12:00:00 +02:00 41 │ OK │ 2011-12-29 12:00:00 +02:00 42 │ OK │ 2011-12-30 12:00:00 +02:00 43 │ OK │ 2011-12-31 12:00:00 +02:00 44 │ OK │ 2012-01-01 12:00:00 +02:00 45 │ OK │ 2012-01-02 12:00:00 +02:00 46 │ OK │ 2012-01-03 12:00:00 +02:00 47 │ OK │ 2012-01-04 12:00:00 +02:00 48 │ OK │ 2012-01-05 12:00:00 +02:00 49 │ OK │ 2012-01-06 12:00:00 +02:00 50 │ OK │ 2012-01-07 12:00:00 +02:00 51 │ OK │ 2012-01-08 12:00:00 +02:00 52 │ OK │ 2012-01-09 12:00:00 +02:00 53 │ OK │ 2012-01-10 12:00:00 +02:00 54 │ OK │ 2012-01-11 12:00:00 +02:00 55 │ OK │ 2012-12-21 12:00:00 +02:00 56 │ OK │ 2012-12-22 12:00:00 +02:00 57 │ OK │ 2012-12-23 12:00:00 +02:00 58 │ OK │ 2012-12-24 12:00:00 +02:00 59 │ OK │ 2012-12-25 12:00:00 +02:00 60 │ OK │ 2012-12-26 12:00:00 +02:00 61 │ OK │ 2012-12-27 12:00:00 +02:00 62 │ OK │ 2012-12-28 12:00:00 +02:00 63 │ OK │ 2012-12-29 12:00:00 +02:00 64 │ OK │ 2012-12-30 12:00:00 +02:00 65 │ OK │ 2012-12-31 12:00:00 +02:00 66 │ OK │ 2013-01-01 12:00:00 +02:00 67 │ OK │ 2013-01-02 12:00:00 +02:00 68 │ OK │ 2013-01-03 12:00:00 +02:00 69 │ OK │ 2013-01-04 12:00:00 +02:00 70 │ OK │ 2013-01-05 12:00:00 +02:00 71 │ OK │ 2013-01-06 12:00:00 +02:00 72 │ OK │ 2013-01-07 12:00:00 +02:00 73 │ OK │ 2013-01-08 12:00:00 +02:00 74 │ OK │ 2013-01-09 12:00:00 +02:00 75 │ OK │ 2013-01-10 12:00:00 +02:00 76 │ OK │ 2013-01-11 12:00:00 +02:00 77 │ OK │ 2013-12-21 12:00:00 +02:00 78 │ OK │ 2013-12-22 12:00:00 +02:00 79 │ OK │ 2013-12-23 12:00:00 +02:00 80 │ OK │ 2013-12-24 12:00:00 +02:00 81 │ OK │ 2013-12-25 12:00:00 +02:00 82 │ OK │ 2013-12-26 12:00:00 +02:00 83 │ OK │ 2013-12-27 12:00:00 +02:00 84 │ OK │ 2013-12-28 12:00:00 +02:00 85 │ OK │ 2013-12-29 12:00:00 +02:00 86 │ OK │ 2013-12-30 12:00:00 +02:00 87 │ OK │ 2013-12-31 12:00:00 +02:00 88 │ OK │ 2014-01-01 12:00:00 +02:00 89 │ OK │ 2014-01-02 12:00:00 +02:00 90 │ OK │ 2014-01-03 12:00:00 +02:00 91 │ OK │ 2014-01-04 12:00:00 +02:00 92 │ OK │ 2014-01-05 12:00:00 +02:00 93 │ OK │ 2014-01-06 12:00:00 +02:00 94 │ OK │ 2014-01-07 12:00:00 +02:00 95 │ OK │ 2014-01-08 12:00:00 +02:00 96 │ OK │ 2014-01-09 12:00:00 +02:00 97 │ OK │ 2014-01-10 12:00:00 +02:00 98 │ OK │ 2014-01-11 12:00:00 +02:00 99 │ OK │ 2014-12-21 12:00:00 +02:00 100 │ OK │ 2014-12-22 12:00:00 +02:00 101 │ OK │ 2014-12-23 12:00:00 +02:00 102 │ OK │ 2014-12-24 12:00:00 +02:00 103 │ OK │ 2014-12-25 12:00:00 +02:00 104 │ OK │ 2014-12-26 12:00:00 +02:00 105 │ OK │ 2014-12-27 12:00:00 +02:00 106 │ OK │ 2014-12-28 12:00:00 +02:00 107 │ OK │ 2014-12-29 12:00:00 +02:00 108 │ OK │ 2014-12-30 12:00:00 +02:00 109 │ OK │ 2014-12-31 12:00:00 +02:00 110 │ OK │ 2015-01-01 12:00:00 +02:00 111 │ OK │ 2015-01-02 12:00:00 +02:00 112 │ OK │ 2015-01-03 12:00:00 +02:00 113 │ OK │ 2015-01-04 12:00:00 +02:00 114 │ OK │ 2015-01-05 12:00:00 +02:00 115 │ OK │ 2015-01-06 12:00:00 +02:00 116 │ OK │ 2015-01-07 12:00:00 +02:00 117 │ OK │ 2015-01-08 12:00:00 +02:00 118 │ OK │ 2015-01-09 12:00:00 +02:00 119 │ OK │ 2015-01-10 12:00:00 +02:00 120 │ OK │ 2015-01-11 12:00:00 +02:00 121 │ OK │ 2015-12-21 12:00:00 +02:00 122 │ OK │ 2015-12-22 12:00:00 +02:00 123 │ OK │ 2015-12-23 12:00:00 +02:00 124 │ OK │ 2015-12-24 12:00:00 +02:00 125 │ OK │ 2015-12-25 12:00:00 +02:00 126 │ OK │ 2015-12-26 12:00:00 +02:00 127 │ OK │ 2015-12-27 12:00:00 +02:00 128 │ OK │ 2015-12-28 12:00:00 +02:00 129 │ OK │ 2015-12-29 12:00:00 +02:00 130 │ OK │ 2015-12-30 12:00:00 +02:00 131 │ OK │ 2015-12-31 12:00:00 +02:00 132 │ OK │ 2016-01-01 12:00:00 +02:00 133 │ OK │ 2016-01-02 12:00:00 +02:00 134 │ OK │ 2016-01-03 12:00:00 +02:00 135 │ OK │ 2016-01-04 12:00:00 +02:00 136 │ OK │ 2016-01-05 12:00:00 +02:00 137 │ OK │ 2016-01-06 12:00:00 +02:00 138 │ OK │ 2016-01-07 12:00:00 +02:00 139 │ OK │ 2016-01-08 12:00:00 +02:00 140 │ OK │ 2016-01-09 12:00:00 +02:00 141 │ OK │ 2016-01-10 12:00:00 +02:00 142 │ OK │ 2016-01-11 12:00:00 +02:00 143 │ OK │ 2016-12-21 12:00:00 +02:00 144 │ OK │ 2016-12-22 12:00:00 +02:00 145 │ OK │ 2016-12-23 12:00:00 +02:00 146 │ OK │ 2016-12-24 12:00:00 +02:00 147 │ OK │ 2016-12-25 12:00:00 +02:00 148 │ OK │ 2016-12-26 12:00:00 +02:00 149 │ OK │ 2016-12-27 12:00:00 +02:00 150 │ OK │ 2016-12-28 12:00:00 +02:00 151 │ OK │ 2016-12-29 12:00:00 +02:00 152 │ OK │ 2016-12-30 12:00:00 +02:00 153 │ OK │ 2016-12-31 12:00:00 +02:00 154 │ OK │ 2017-01-01 12:00:00 +02:00 155 │ OK │ 2017-01-02 12:00:00 +02:00 156 │ OK │ 2017-01-03 12:00:00 +02:00 157 │ OK │ 2017-01-04 12:00:00 +02:00 158 │ OK │ 2017-01-05 12:00:00 +02:00 159 │ OK │ 2017-01-06 12:00:00 +02:00 160 │ OK │ 2017-01-07 12:00:00 +02:00 161 │ OK │ 2017-01-08 12:00:00 +02:00 162 │ OK │ 2017-01-09 12:00:00 +02:00 163 │ OK │ 2017-01-10 12:00:00 +02:00 164 │ OK │ 2017-01-11 12:00:00 +02:00 165 │ OK │ 2017-12-21 12:00:00 +02:00 166 │ OK │ 2017-12-22 12:00:00 +02:00 167 │ OK │ 2017-12-23 12:00:00 +02:00 168 │ OK │ 2017-12-24 12:00:00 +02:00 169 │ OK │ 2017-12-25 12:00:00 +02:00 170 │ OK │ 2017-12-26 12:00:00 +02:00 171 │ OK │ 2017-12-27 12:00:00 +02:00 172 │ OK │ 2017-12-28 12:00:00 +02:00 173 │ OK │ 2017-12-29 12:00:00 +02:00 174 │ OK │ 2017-12-30 12:00:00 +02:00 175 │ OK │ 2017-12-31 12:00:00 +02:00 176 │ OK │ 2018-01-01 12:00:00 +02:00 177 │ OK │ 2018-01-02 12:00:00 +02:00 178 │ OK │ 2018-01-03 12:00:00 +02:00 179 │ OK │ 2018-01-04 12:00:00 +02:00 180 │ OK │ 2018-01-05 12:00:00 +02:00 181 │ OK │ 2018-01-06 12:00:00 +02:00 182 │ OK │ 2018-01-07 12:00:00 +02:00 183 │ OK │ 2018-01-08 12:00:00 +02:00 184 │ OK │ 2018-01-09 12:00:00 +02:00 185 │ OK │ 2018-01-10 12:00:00 +02:00 186 │ OK │ 2018-01-11 12:00:00 +02:00 187 │ OK │ 2018-12-21 12:00:00 +02:00 188 │ OK │ 2018-12-22 12:00:00 +02:00 189 │ OK │ 2018-12-23 12:00:00 +02:00 190 │ OK │ 2018-12-24 12:00:00 +02:00 191 │ OK │ 2018-12-25 12:00:00 +02:00 192 │ OK │ 2018-12-26 12:00:00 +02:00 193 │ OK │ 2018-12-27 12:00:00 +02:00 194 │ OK │ 2018-12-28 12:00:00 +02:00 195 │ OK │ 2018-12-29 12:00:00 +02:00 196 │ OK │ 2018-12-30 12:00:00 +02:00 197 │ OK │ 2018-12-31 12:00:00 +02:00 198 │ OK │ 2019-01-01 12:00:00 +02:00 199 │ OK │ 2019-01-02 12:00:00 +02:00 200 │ OK │ 2019-01-03 12:00:00 +02:00 201 │ OK │ 2019-01-04 12:00:00 +02:00 202 │ OK │ 2019-01-05 12:00:00 +02:00 203 │ OK │ 2019-01-06 12:00:00 +02:00 204 │ OK │ 2019-01-07 12:00:00 +02:00 205 │ OK │ 2019-01-08 12:00:00 +02:00 206 │ OK │ 2019-01-09 12:00:00 +02:00 207 │ OK │ 2019-01-10 12:00:00 +02:00 208 │ OK │ 2019-01-11 12:00:00 +02:00 209 │ OK │ 2019-12-21 12:00:00 +02:00 210 │ OK │ 2019-12-22 12:00:00 +02:00 211 │ OK │ 2019-12-23 12:00:00 +02:00 212 │ OK │ 2019-12-24 12:00:00 +02:00 213 │ OK │ 2019-12-25 12:00:00 +02:00 214 │ OK │ 2019-12-26 12:00:00 +02:00 215 │ OK │ 2019-12-27 12:00:00 +02:00 216 │ OK │ 2019-12-28 12:00:00 +02:00 217 │ OK │ 2019-12-29 12:00:00 +02:00 218 │ OK │ 2019-12-30 12:00:00 +02:00 219 │ OK │ 2019-12-31 12:00:00 +02:00 220 │ OK │ 2020-01-01 12:00:00 +02:00 221 │ OK │ 2020-01-02 12:00:00 +02:00 222 │ OK │ 2020-01-03 12:00:00 +02:00 223 │ OK │ 2020-01-04 12:00:00 +02:00 224 │ OK │ 2020-01-05 12:00:00 +02:00 225 │ OK │ 2020-01-06 12:00:00 +02:00 226 │ OK │ 2020-01-07 12:00:00 +02:00 227 │ OK │ 2020-01-08 12:00:00 +02:00 228 │ OK │ 2020-01-09 12:00:00 +02:00 229 │ OK │ 2020-01-10 12:00:00 +02:00 230 │ OK │ 2020-01-11 12:00:00 +02:00 231 │ OK │ 2020-12-21 12:00:00 +02:00 232 │ OK │ 2020-12-22 12:00:00 +02:00 233 │ OK │ 2020-12-23 12:00:00 +02:00 234 │ OK │ 2020-12-24 12:00:00 +02:00 235 │ OK │ 2020-12-25 12:00:00 +02:00 236 │ OK │ 2020-12-26 12:00:00 +02:00 237 │ OK │ 2020-12-27 12:00:00 +02:00 238 │ OK │ 2020-12-28 12:00:00 +02:00 239 │ OK │ 2020-12-29 12:00:00 +02:00 240 │ OK │ 2020-12-30 12:00:00 +02:00 241 │ OK │ 2020-12-31 12:00:00 +02:00 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tm_round_down ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 2020-09-01 00:00:00 +03:00 / h 1 │ OK │ 2020-09-01 00:00:01 +03:00 / h 2 │ OK │ 2020-09-01 23:00:01 +03:00 / h 3 │ OK │ 2020-09-01 00:00:01 +03:00 / d 4 │ OK │ 2020-09-01 00:00:00 +03:00 / d 5 │ OK │ 2020-12-31 23:59:59 +02:00 / d 6 │ OK │ 2020-09-08 16:23:00 +03:00 / w 7 │ OK │ 2020-09-07 16:23:00 +03:00 / w 8 │ OK │ 2020-09-13 16:23:00 +03:00 / w 9 │ OK │ 2020-09-08 16:23:00 +03:00 / M 10 │ OK │ 2020-09-08 16:23:00 +03:00 / y 11 │ OK │ 2020-09-07 16:23:00 +03:00 / w 12 │ OK │ 2020-09-01 00:00:00 +03:00 / m 13 │ OK │ 2020-09-01 00:01:01 +03:00 / m 14 │ OK │ 2021-01-01 12:00:00 +02:00 / i 15 │ OK │ 2021-01-10 12:00:00 +02:00 / i 16 │ OK │ 2021-07-01 12:00:00 +03:00 / i 17 │ OK │ 2021-12-31 12:00:00 +02:00 / i 18 │ OK │ 2022-01-02 12:00:00 +02:00 / i 19 │ OK │ 2022-01-03 12:00:00 +02:00 / i ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tm_round_up ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 2020-09-01 00:00:00 +03:00 / h 1 │ OK │ 2020-09-01 00:00:01 +03:00 / h 2 │ OK │ 2020-09-01 23:00:01 +03:00 / h 3 │ OK │ 2020-09-01 00:00:01 +03:00 / d 4 │ OK │ 2020-09-01 00:00:00 +03:00 / d 5 │ OK │ 2020-12-31 23:59:59 +02:00 / d 6 │ OK │ 2020-09-08 16:23:00 +03:00 / w 7 │ OK │ 2020-09-08 16:23:00 +03:00 / M 8 │ OK │ 2020-09-08 16:23:00 +03:00 / y 9 │ OK │ 2020-09-01 00:00:00 +03:00 / m 10 │ OK │ 2020-09-01 00:00:01 +03:00 / m ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_iso8601_utc ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Invalid value '' 1 │ OK │ Invalid value 'xxx' 2 │ OK │ Invalid value '123' 3 │ OK │ Invalid value '2022x09-12T14:46:15' 4 │ OK │ Invalid value '2022-09x12T14:46:15' 5 │ OK │ Invalid value '2022-09-12x14:46:15' 6 │ OK │ Invalid value '2022-09-12T14x46:15' 7 │ OK │ Invalid value '2022-09-12T14:46x15' 8 │ OK │ Valid yyyy-mm-ddThh:mm:ss 9 │ OK │ Valid yyyy-mm-ddThh:mm:ssZ 10 │ OK │ Valid yyyy-mm-ddThh:mm:ss+hh:mm 11 │ OK │ Valid yyyy-mm-ddThh:mm:ss-hh:mm 12 │ OK │ Valid yyyy-mm-ddThh:mm:ss +hh:mm 13 │ OK │ Valid yyyy-mm-ddThh:mm:ss -hh:mm 14 │ OK │ Valid yyyy-mm-ddThh:mm:ss.ccc 15 │ OK │ Valid yyyy-mm-ddThh:mm:ss.cccZ 16 │ OK │ Valid yyyy-mm-ddThh:mm:ss.ccc+hh:mm 17 │ OK │ Valid yyyy-mm-ddThh:mm:ss.ccc-hh:mm 18 │ OK │ Valid yyyy-mm-ddThh:mm:ss.ccc +hh:mm 19 │ OK │ Valid yyyy-mm-ddThh:mm:ss.ccc -hh:mm 20 │ OK │ Valid yyyy-mm-dd hh:mm:ss 21 │ OK │ Valid yyyy-mm-dd hh:mm:ssZ 22 │ OK │ Valid yyyy-mm-dd hh:mm:ss+hh:mm 23 │ OK │ Valid yyyy-mm-dd hh:mm:ss-hh:mm 24 │ OK │ Valid yyyy-mm-dd hh:mm:ss +hh:mm 25 │ OK │ Valid yyyy-mm-dd hh:mm:ss -hh:mm 26 │ OK │ Valid yyyy-mm-dd hh:mm:ss.ccc 27 │ OK │ Valid yyyy-mm-dd hh:mm:ss.cccZ 28 │ OK │ Valid yyyy-mm-dd hh:mm:ss.ccc+hh:mm 29 │ OK │ Valid yyyy-mm-dd hh:mm:ss.ccc-hh:mm 30 │ OK │ Valid yyyy-mm-dd hh:mm:ss.ccc +hh:mm 31 │ OK │ Valid yyyy-mm-dd hh:mm:ss.ccc -hh:mm 32 │ OK │ Valid yyyy-mm-ddThh:mm:ss+hhmm ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_history_get_values ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Test count based request spanning over month+ 1 │ OK │ Test count based request spanning over a day 2 │ OK │ Test count based request over short period 3 │ OK │ Test time based request 4 │ OK │ Test time and count based request with data less than requested number 5 │ OK │ Test time and count based request with data matching the requested number 6 │ OK │ Test time and count based request with data less by one than requested number 7 │ OK │ Test time and count based request with data less by one than requested number and different ns ordering 8 │ OK │ Test time and count based request with data less by 3 than requested number 9 │ OK │ Test count based request on empty data 10 │ OK │ Test time based request on empty data 11 │ OK │ Test time and count based request on empty data 12 │ OK │ Test binary value type empty 13 │ OK │ Test binary value type single value 14 │ OK │ Test binary value type misc ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── get_interval_option ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ fping 2.4 and 3.0 <= X < 3.14; root; safe limits: N/A; redirect: NO 1 │ OK │ fping 2.4 and 3.0 <= X < 3.14; non-root; safe limits: N/A; redirect: NO 2 │ OK │ fping 3.14 <= X < 4.0; root; safe limits: N/A; redirect: NO 3 │ OK │ fping 3.14 <= X < 4.0; non-root; safe limits: N/A; redirect: NO 4 │ OK │ fping 4.0 <= X <= 5.1; root; safe limits: YES; redirect: NO 5 │ OK │ fping 4.0 <= X <= 5.1; non-root; safe limits: YES; redirect: NO 6 │ OK │ fping 4.0 <= X <= 5.1; root or non-root; safe limits: NO; redirect: NO 7 │ OK │ fping 2.4 and 3.0 <= X < 3.11; non-root; safe limits: N/A; redirect: YES 8 │ OK │ fping 3.11 <= X < 3.14; non-root; safe limits: N/A; redirect: YES 9 │ OK │ fping 3.14 <= X < 4.0; non-root; safe limits: N/A; redirect: YES 10 │ OK │ fping 4.0 <= X <= 5.1; non-root; safe limits: NO; redirect: YES ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── line_process ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Test statistics, all replies received 1 │ OK │ Test statistics, no replies received 2 │ OK │ Response was received directly from the ping target host 3 │ OK │ Redirected response fping v2.4 and from v3.0 till 3.10 inclusive (allow_redirect=YES) 4 │ OK │ Redirected response fping v2.4 and from v3.0 till 3.10 inclusive (allow_redirect=NO) 5 │ OK │ Redirected response fping from v3.11 till 5.1 inclusive (allow_redirect=YES) 6 │ OK │ Redirected response fping from v3.11 till 5.1 inclusive (allow_redirect=NO) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_list ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Test list range "1, 0" 1 │ OK │ 2. Test list range "1, 2, 0" 2 │ OK │ 3. Test list range "1, 2, 3, 0" 3 │ OK │ 4. Test iterators equal 4 │ OK │ 5. Test iterators not equal 5 │ OK │ 6. Init iterator to list head item 6 │ OK │ 7. Init iterator to list third item 7 │ OK │ 8. Iterator next 1 step 8 │ OK │ 9. Iterator next 2 steps 9 │ OK │ 10. Iteration to next after last item 10 │ OK │ 11. Peek head element 11 │ OK │ 12. Peek fifth element 12 │ OK │ 13. Remove next after first element 13 │ OK │ 14. Remove next after third element 14 │ OK │ 15. Peek list 15 │ OK │ 16. Peek empty list 16 │ OK │ 17. Simple linked list ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── queue ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ test queue range "1, 0" 1 │ OK │ test queue range "1, 2, 0" 2 │ OK │ test queue range "1, 2, 3, 0" 3 │ OK │ test queue range "1, 2, 3, 4, 0" 4 │ OK │ test queue range "1, 2, 3, 4, 5, 0" 5 │ OK │ test queue range "1, 2, 3, 4, 5, 6, 0" 6 │ OK │ test queue range "1, 2, 3, 4, 5, 6, 7, 0" 7 │ OK │ test queue range "1, 2, 3, 4, 5, 6, 7, 8, 0" 8 │ OK │ test queue range "1, 2, 3, 4, 5, 6, 7, 8, 9, 0" 9 │ OK │ test compacting when tail is before head (no data wraparound) "1, 2, 3, 4, 5, 6, 7" 10 │ OK │ test compacting when head is before tail (data wraparound) with empty space in the middle "1, 2, 3, 4, 5, 6, 7" 11 │ OK │ test removal when tail is before head (no data wraparound) "1, 2, 3, 4, 5, 6, 7" 12 │ OK │ test removal when tail is after head (data wraparound) "1, 2, 3, 4, 5, 6, 7" ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_vector ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. uint32 insert 1 │ OK │ 2. uint32 insert empty vector 2 │ OK │ 3. uint32 append_array 3 │ OK │ 4. uint32 append_array empty vector 4 │ OK │ 5. uint32 noorder 5 │ OK │ 6. uint32 noorder empty vector 6 │ OK │ 7. uint32 remove 7 │ OK │ 8. uint32 remove empty vector 8 │ OK │ 9. uint32 sort 9 │ OK │ 10. uint32 sort empty vector 10 │ OK │ 11. uint32 uniq 11 │ OK │ 12. uint32 uniq empty vector 12 │ OK │ 13. uint32 nearestindex 13 │ OK │ 14. uint32 nearestindex empty vector 14 │ OK │ 15. uint32 bsearch 15 │ OK │ 16. uint32 bsearch empty vector 16 │ OK │ 17. uint32 lsearch 17 │ OK │ 18. uint32 lsearch empty vector 18 │ OK │ 19. uint32 search 19 │ OK │ 20. uint32 search empty vector 20 │ OK │ 21. int32 insert 21 │ OK │ 22. int32 append_array 22 │ OK │ 23. int32 noorder 23 │ OK │ 24. int32 remove 24 │ OK │ 25. int32 sort 25 │ OK │ 26. int32 uniq 26 │ OK │ 27. int32 nearestindex 27 │ OK │ 28. int32 bsearch 28 │ OK │ 29. int32 lsearch 29 │ OK │ 30. int32 search 30 │ OK │ 31. zbx_tag insert 31 │ OK │ 32. zbx_tag append_array 32 │ OK │ 33. zbx_tag remove 33 │ OK │ 34. zbx_tag noorder 34 │ OK │ 35. zbx_tag sort 35 │ OK │ 36. zbx_tag sort some ASCII 36 │ OK │ 37. zbx_tag uniq 37 │ OK │ 38. zbx_tag nearestindex 38 │ OK │ 39. zbx_tag nearestindex some ASCII 39 │ OK │ 40. zbx_tag bsearch some ASCII 40 │ OK │ 41. zbx_tag bsearch 41 │ OK │ 42. zbx_tag lsearch 42 │ OK │ 43. zbx_tag lsearch some ASCII 43 │ OK │ 44. zbx_tag search 44 │ OK │ 45. zbx_tag search some ASCII ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_binary_heap ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Find min 1 │ OK │ 2. Remove min 2 │ OK │ 3. Find min all elements are same 3 │ OK │ 4. Remove min all elements are same ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_int128 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. udiv128_64 division 1 │ OK │ 2. udiv128_64 division hi and lo 2 │ OK │ 3. uinc128_64 max lo + 1 3 │ OK │ 4. uinc128_128 basic increment 4 │ OK │ 5. umul64_64 basic multiplication 5 │ OK │ 6. umul64_64 multiplication over uint64 value ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_mode_code ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Case value 1 │ OK │ 2. Case max 2 │ OK │ 3. Case min 3 │ OK │ 4. Case delta 4 │ OK │ 5. Case avg ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_binary_heap_direct ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ update single entry 1 │ OK │ update last entry 2 │ OK │ update to the same value 3 │ OK │ update non-existing entry 4 │ OK │ update empty vector 5 │ OK │ invalid heap 6 │ OK │ over 512 elements in heap ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_compare_tags_natural ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Different tags 1 │ OK │ 2. Identical tags and values 2 │ OK │ 3. Identical tags and different values 3 │ OK │ 4. Long identical values (255) 4 │ OK │ 5. Empty tags and values 5 │ OK │ 6. Newline in tags 6 │ OK │ 7. Backslash in value ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_is_ascii_string ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. All printable ASCII characters 1 │ OK │ 2. ы 2 │ OK │ 3. abcыsss 3 │ OK │ 4. 诶 4 │ OK │ 5. empty string 5 │ OK │ 6. newline 6 │ OK │ 7. Apostrophe ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_is_utf8 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Invalid UTF-8 character 1 │ OK │ 2. Invalid UTF-8 character 2 │ OK │ 3. a 3 │ OK │ 4. Hello world 4 │ OK │ 5. Empty buffer ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_charcount_utf8_nbytes ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Hello 1 │ OK │ 2. €uro 2 │ OK │ 3. 𐍈A 3 │ OK │ 4. empty string 4 │ OK │ 5. Newline 5 │ OK │ 6. Newlines and spaces ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_str_linefeed ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Delimiter (|) 1 │ OK │ 2. Wrapping a Short String (No Wrapping Needed) 2 │ OK │ 3. Empty String 3 │ OK │ 4. Delimiter (%) 4 │ OK │ 5. Delimiter (' ') 5 │ OK │ 6. Emoji 6 │ OK │ 7. Newlines 7 │ OK │ 8. Backslashes 8 │ OK │ 9. Quotation marks 9 │ OK │ 8. Delimiter Newline ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strsplit_last ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ /path/to/file.txt - / 1 │ OK │ 1111!1111!11- ! 2 │ OK │ 00000/////0000 - / 3 │ OK │ 00000///// - / 4 │ OK │ !11111 5 │ OK │ Special characters 6 │ OK │ Newlines ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strsplit_first ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ user@example.com - @ 1 │ OK │ usr/test/smth - / 2 │ OK │ 00000/////0000 - / 3 │ OK │ /usr/bin - / 4 │ OK │ usr|bin/ - / 5 │ OK │ Special characters 6 │ OK │ Newlines 7 │ OK │ Emoji and Quotation marks ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_str_printable_dyn ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Input with Tab 1 │ OK │ 2. Input with Newline 2 │ OK │ 3. Input with Carriage Return 3 │ OK │ 4. Input with Mixed Special Characters 4 │ OK │ 5. Input with No Special Characters 5 │ OK │ 6. Empty String 6 │ OK │ 7. Big text 7 │ OK │ 9. Subscript and superscript with tabs 8 │ OK │ 8. Backslashes and Quotation marks ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_escape_string ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Common string 1 │ OK │ 2. Numeric string 2 │ OK │ 3. Special characters string 3 │ OK │ 4. Empty string 4 │ OK │ 5. Common string with newline 5 │ OK │ 6. Common string with escapings 6 │ OK │ 7. Common string with quotation marks 7 │ OK │ 8. Charlist is backslash ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strlen_utf8_nchars ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Hello 1 │ OK │ €uro 2 │ OK │ 𐍈A 3 │ OK │ Empty 4 │ OK │ Newlines 5 │ OK │ Three-Byte Characters 6 │ OK │ Emoji ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strlcat ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Simple string 1 │ OK │ 2. Numeric string 2 │ OK │ 3. Empty string 3 │ OK │ 4. Numeric string 4 │ OK │ 5. Numeric string with truncation ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_str_extract ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Success: abcd, 4 1 │ OK │ Success: abcd, 1 2 │ OK │ Success: abcd, 0 3 │ OK │ Success: "abcd", 6 4 │ OK │ Success: "ab\\/cd", 9 5 │ OK │ Success: "\\", 4 6 │ OK │ Success: "a\"bc\"d", 10 7 │ OK │ Success: "", 2 8 │ OK │ Failure: "", 1 9 │ OK │ Failure: "\a", 4 10 │ OK │ Failure: "abcd", 7 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── convert_to_utf8 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ empty text nothing happens 1 │ OK │ bom is not added to plain data utf8 assumed 2 │ OK │ utf8 bom is removed 3 │ OK │ utf8 bom is removed2 4 │ OK │ utf8 bom is removed with encoding specified 5 │ OK │ utf8 bom is removed empty text 6 │ OK │ utf16 LE bom is removed 7 │ OK │ utf16 LE noBOM with encoding 8 │ OK │ utf16 LE bom is removed empty text 9 │ OK │ utf16 BE bom is removed 10 │ OK │ utf16 BE noBOM with encoding 11 │ OK │ utf16 BE bom is removed empty text 12 │ OK │ utf32 LE bom is removed incorrect guess conversion to utf16 13 │ OK │ invalid encoding supplied 1 14 │ OK │ invalid encoding supplied 2 15 │ OK │ invalid encoding supplied, but iconv cannot detect this 16 │ OK │ invalid encoding supplied, but iconv cannot detect this 2 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_get_escape_string_len ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Hello 1 │ OK │ 2. 123 !!! 2 │ OK │ 3. Whitespace 3 │ OK │ 4. abbcccdddd 4 │ OK │ 5. Empty string 5 │ OK │ 6. Empty charlist 6 │ OK │ 7. Special Characters 7 │ OK │ 8. Newlines 8 │ OK │ 9. Apostrophe ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strcasestr ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Default string 1 │ OK │ 2. Empty string 2 │ OK │ 3. Numeric string 3 │ OK │ 5. Special characters string 4 │ OK │ 6. Backslash 5 │ OK │ 7. Quotation mark 6 │ OK │ 8. Newline ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strdcatf ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. One argument 1 │ OK │ 2. Two different arguments 2 │ OK │ 3. Three different arguments ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_utf8_char_len ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ ASCII Character - H 1 │ OK │ 2-Byte UTF-8 Character - © 2 │ OK │ 3-Byte UTF-8 Character - € 3 │ OK │ 4-Byte UTF-8 Character - 𐍈 4 │ OK │ Not valid 5 │ OK │ Empty buffer 6 │ OK │ Newline ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_replace_mem_dyn ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Replacing with a Block of the Same Size 1 │ OK │ 2. Replacing with a Larger Block (No Reallocation Needed) 2 │ OK │ 3. Replacing with a Larger Block (Reallocation Needed) 3 │ OK │ 4. Replacing with a Smaller Block 4 │ OK │ 5. Replacing with an Empty Block 5 │ OK │ 6. Empty string 6 │ OK │ 7. Newline 7 │ OK │ 8. Long string ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_truncate_value ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ #0 condition 1.1 1 │ OK │ #1 condition 1.2 2 │ OK │ #2 condition 4.1 3 │ OK │ #3 condition 4.2 4 │ OK │ #4 condition 4.3 5 │ OK │ #5 condition 4.4 6 │ OK │ #6 condition 4.5 7 │ OK │ #0 ru condition 1.1 8 │ OK │ #1 ru condition 1.2 9 │ OK │ #2 ru condition 4.1 10 │ OK │ #3 ru condition 4.2 11 │ OK │ #4 ru condition 4.3 12 │ OK │ #5 ru condition 4.4 13 │ OK │ #6 ru condition 4.5 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_rtrim_utf8 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ rtrim(123, 3) 1 │ OK │ rtrim(123, x) 2 │ OK │ rtrim(123, 123) 3 │ OK │ rtrim(123, 321) 4 │ OK │ rtrim(123, ) 5 │ OK │ rtrim(, 123) 6 │ OK │ rtrim(, ) 7 │ OK │ rtrim(Заббикса, а) 8 │ OK │ rtrim(Заббикса, a) 9 │ OK │ rtrim(Заббикс, икс) 10 │ OK │ rtrim(Заббикса, а) 11 │ OK │ rtrim(Заббикса, а) 12 │ OK │ rtrim(Заббикса, а) 13 │ OK │ rtrim(Заббикса, а) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_truncate_itemkey ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ #0 condition 1.1 1 │ OK │ #1 condition 1.2 2 │ OK │ #2 condition 1.3 3 │ OK │ #3 condition 1.4 4 │ OK │ #4 condition 1.5 5 │ OK │ #5 condition 1.6 6 │ OK │ #6 condition 2.1 7 │ OK │ #7 condition 2.2 8 │ OK │ #8 condition 3.1 9 │ OK │ #9 condition 3.2 10 │ OK │ #10 condition 3.3 11 │ OK │ #11 condition 3.4 12 │ OK │ #12 condition 3.5 13 │ OK │ #13 condition 3.6 14 │ OK │ #14 condition 4.1 15 │ OK │ #15 condition 4.2 16 │ OK │ #16 condition 4.3 17 │ OK │ #17 condition 4.4 18 │ OK │ #18 condition 4.5 19 │ OK │ #0 ru condition 1.1 20 │ OK │ #1 ru condition 1.2 21 │ OK │ #2 ru condition 1.3 22 │ OK │ #3 ru condition 1.4 23 │ OK │ #4 ru condition 1.5 24 │ OK │ #5 ru condition 1.6 25 │ OK │ #6 ru condition 2.1 26 │ OK │ #7 ru condition 2.2 27 │ OK │ #8 ru condition 3.1 28 │ OK │ #9 ru condition 3.2 29 │ OK │ #10 ru condition 3.3 30 │ OK │ #11 ru condition 3.4 31 │ OK │ #12 ru condition 3.5 32 │ OK │ #13 ru condition 3.6 33 │ OK │ #14 ru condition 4.1 34 │ OK │ #15 ru condition 4.2 35 │ OK │ #16 ru condition 4.3 36 │ OK │ #17 ru condition 4.4 37 │ OK │ #18 ru condition 4.5 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_dyn_escape_string ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ double quotes 1 │ OK │ backslash ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_ltrim_utf8 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ ltrim(123, 1) 1 │ OK │ ltrim(123, x) 2 │ OK │ ltrim(123, 123) 3 │ OK │ ltrim(123, 321) 4 │ OK │ ltrim(123, ) 5 │ OK │ ltrim(, 123) 6 │ OK │ ltrim(, ) 7 │ OK │ ltrim(аЗаббикс, а) 8 │ OK │ ltrim(аЗаббикс, a) 9 │ OK │ ltrim(аЗаббикс, аЗб) 10 │ OK │ ltrim(123, 1) 11 │ OK │ ltrim(аЗаббикс, а) 12 │ OK │ ltrim(аЗаббикс, а) 13 │ OK │ ltrim(аЗаббикс, а) 14 │ OK │ ltrim(аЗаббикс, а) 15 │ OK │ ltrim(аЗаббикс, а) with BOM ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strcmp_null ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. aaaa & bbbb 1 │ OK │ 2. aaaa & aaaa 2 │ OK │ 3. 123 & 123 3 │ OK │ 4. !@# & !@# 4 │ OK │ 5. Newline & Newline 5 │ OK │ 6. Apostrophe 6 │ OK │ 7. Backslash 7 │ OK │ 8. NULL & NULL 8 │ OK │ 9. NULL & abc 9 │ OK │ 10. abc & NULL 10 │ OK │ 11. empty & NULL 11 │ OK │ 12. NULL & empty 12 │ OK │ 13. Strings are different on a second newline less 13 │ OK │ 14. Strings are different on a second newline greater 14 │ OK │ 15. 3-bytes special characters 15 │ OK │ 16. Empty and backslash 16 │ OK │ 17. Newline and empty 17 │ OK │ 18. Newline and 2 newlines 18 │ OK │ 19. Newline and NULL 19 │ OK │ 20. Single quote with empty ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_substr ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Hello, World! -> W 1 │ OK │ Hello, World! -> Hello 2 │ OK │ Hello, World! -> World 3 │ OK │ !@#$%^&*() -> @#$%^& 4 │ OK │ Newlines 5 │ OK │ Quotation marks ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_del_zeros ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. 10.0100 -> 10.01 1 │ OK │ 2. 10. -> 10 2 │ OK │ 3. 1.000e10 -> 1.000e10 3 │ OK │ 4. 1000 -> 1000 4 │ OK │ 5. 0 -> 0 5 │ OK │ 6. -0 -> -0 6 │ OK │ 7. +0 -> +0 7 │ OK │ 8. empty -> empty 8 │ OK │ 9. \\100.100 -> \\100.1 9 │ OK │ 10. \n-100.200 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_str_in_list ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. a,b,ccc,ddd - succeed 1 │ OK │ 2. a,b,cc,ddd - fail 2 │ OK │ 3. aa.aaa.aaaa.aaaaa - succeed 3 │ OK │ 4. NULL 4 │ OK │ 5. empty list 5 │ OK │ 6. empty charlist 6 │ OK │ 7. Special characters 7 │ OK │ 8. 2-bytes characters 8 │ OK │ 9. Newlines ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strlcpy_utf8 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Copy simple ASCII string 1 │ OK │ Copy UTF-8 string 2 │ OK │ Copy UTF-8 string with truncation 3 │ OK │ Copy empty string 4 │ OK │ Copy Emoji 5 │ OK │ Copy Newlines ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_dyn_escape_shell_single_quote ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Regular string 1 │ OK │ 2. Empty string 2 │ OK │ 3. No quotes here 3 │ OK │ 4. 2-bytes characters 4 │ OK │ 5. Unicode symbols 5 │ OK │ 6. Backslashes 6 │ OK │ 7. Quote on second line ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_trim_str_list ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ apple , banana , cherry , date 1 │ OK │ apple . banana . cherry . date 2 │ OK │ One letter 3 │ OK │ Two-Byte Characters 4 │ OK │ Newlines and Tabs ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_str_n_in_list ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. a,b,ccc,ddd - succeed 1 │ OK │ 2. a,b,ccc,ddd - fail 2 │ OK │ 3. aa.aaa.aaaa.aaaaa - succeed 3 │ OK │ 4. a,b,ccc,ddd - value limited to few initial characters 4 │ OK │ 5. %%%!%%%%%!%%%%%!%%% - succeed 5 │ OK │ 6. aa.bbb.bbbb.bbbbb - value limited to few initial characters 6 │ OK │ 7. 3-bytes characters 7 │ OK │ 8. Unicode characters 8 │ OK │ 9. Space as delimiter 9 │ OK │ 10. Single quote as delimiter ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_strcmp_natural ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. empty strings 1 │ OK │ 2. apple apple 2 │ OK │ 3. appl apple 3 │ OK │ 4. 1 2 4 │ OK │ 4. 2 1 5 │ OK │ 5. Ω ≈ 6 │ OK │ 6. string.234 string.432 7 │ OK │ 7. 製 和 8 │ OK │ 8. Первый Второй 9 │ OK │ 8. ❤ 😅 10 │ OK │ 9. Strings are different on a second newline less 11 │ OK │ 10. Strings are different on a second newline greater 12 │ OK │ 11. 4 and 2 bytes 13 │ OK │ 12. Empty and backslash 14 │ OK │ 13. Newline and empty 15 │ OK │ 14. Newline and 2 newlines 16 │ OK │ 15. Single quote with empty 17 │ OK │ 16. Apostrophe 18 │ OK │ 17. Newline & Newline 19 │ OK │ 18. Backslash ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_replace_string ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Replacement with Same Length: Hello, World! -> Hello, Earth! 1 │ OK │ 2. Replacement with a Longer String: Hello, World! -> Hello, Universe! 2 │ OK │ 3. Replacement with a Shorter String: Hello, Universe! -> Hello, World! 3 │ OK │ 4. Replacement with an Empty String: Hello, World! -> Hello, ! 4 │ OK │ 5. Replacement with a String Larger than the Original Data: Hi! -> Greetings, everyone! 5 │ OK │ 6. Special characters replace 6 │ OK │ 8. Newlines replace 7 │ OK │ 9. Backslash and quotation mark replace ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_remove_chars ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. abc c 1 │ OK │ 2. $123$ $ 2 │ OK │ 3. empty string 3 │ OK │ 4. Unicode Symbols 4 │ OK │ 5. Newlines 5 │ OK │ 6. Backslashes 6 │ OK │ 7. Quotation mark ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_replace_invalid_utf8 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Replaced invalid UTF-8 characters 1 │ OK │ 2. null terminated 2 │ OK │ 3. Hello world! - with invalid 3 │ OK │ 4. test without invalid ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_iprange_uniq_iter ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. ipv4 - ip in first ip from range 1 │ OK │ 2. ipv4 - ip in ip from middle of range 2 │ OK │ 3. ipv4 - idx to 2nd range 3 │ OK │ 4. ipv6 - ip in first ip from range 4 │ OK │ 5. ipv6 - ip in ip from middle of range 5 │ OK │ 6. ipv6 - ip in ip from middle of range ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_portrange_uniq_next ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Two groups port range 1 │ OK │ 2. Two ranges single value min max 2 │ OK │ 3. One range above max port(65534) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_is_supported_ip ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Empty string 1 │ OK │ 2. Random private ipv4 2 │ OK │ 3. Random private ipv6 3 │ OK │ 4. Definitely not ip 4 │ OK │ 5. DNS ipv6 5 │ OK │ 6. Invalid ipv4 6 │ OK │ 6. Invalid ipv6 7 │ OK │ 7. ipv4 with with newline ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_is_ip ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Empty string 1 │ OK │ 2. 127.0.0.1 2 │ OK │ 3. Random private ipv4 3 │ OK │ 4. Random private ipv6 4 │ OK │ 5. DNS ipv6 5 │ OK │ 6. Definitely not ip 6 │ OK │ 7. --------------------------------------- 7 │ OK │ 8. ipv4 wildcard-unspecified address 8 │ OK │ 9. ipv6 double "::" usage 9 │ OK │ 10. ipv6 null address 10 │ OK │ 11. 256.256.256.256 11 │ OK │ 12. invalid ipv6 12 │ OK │ 13. ipv4 with subnet mask 13 │ OK │ 13. ipv4 with with newline ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_iprange_parse ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. ipv4 1 │ OK │ 2. Definitely not ip 2 │ OK │ 3. ipv4 with letter 3 │ OK │ 4. ipv6 4 │ OK │ 5. ipv6 5 characters 5 │ OK │ 6. 0.0.0.0-1 6 │ OK │ 7. ::/65 7 │ OK │ 8. 123 123 8 │ OK │ 9. ipv6 / - without mask 9 │ OK │ 10. ipv6 / with quote 10 │ OK │ 11. ipv6 / with quote double quotes 11 │ OK │ 12. 192.168.0.1 with newline 12 │ OK │ 13. ipv6 subnet mask /641 13 │ OK │ 14. ipv6 with g letter ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_iprange_ip2str ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. ipv4 1 │ OK │ 2. ipv6 2 │ OK │ 3. ipv4 3 │ OK │ 4. ipv6 4 │ OK │ 5. ipv6 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_iprange_uniq_next ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. ipV4 range 1 │ OK │ 2. ipV6 range - one range structure 2 │ OK │ 3. ipV6 range - one range structure with zero compression 3 │ OK │ 4. ipV4 range - subnet mask 4 │ OK │ 5. ipV6 range - subnet mask 5 │ OK │ 6. Two range groups ipV4 and ipV6 6 │ OK │ 7. Two ranges min max ipv4 7 │ OK │ 8. Two ranges min max ipv6 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_ip_in_list ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. Empty string 1 │ OK │ 2. In range 192.168.0.1-64,192.168.0.128,10.10.0.0/24 2 │ OK │ 3. Not in range 192.168.0.1-64,192.168.0.128,10.10.0.0/24 3 │ OK │ 4. IPv6 12fc::21,192.168.1.1 4 │ OK │ 5. CIDR 192.168.1.0/24,10.10.0.0/24 5 │ OK │ 6. 8000:0000:0000:0000:0000:0000:0000:0000/1 6 │ OK │ 7. 0:0:0:0:0:0:0:1-3 7 │ OK │ 8. 0.0.0.0/1 max 8 │ OK │ 8. 0.0.0.0/1 min ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_parse_serveractive_element ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. 192.168.0.1:10051 1 │ OK │ 2. 192.168.0.1 2 │ OK │ 3. [::1]:10051 3 │ OK │ 4. [::1] 4 │ OK │ 5. 3f4b:12a9:89cd:64ef:9a72:1d3c:ba54:ff23 5 │ OK │ 4. ::ZZ ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_iprange_volume ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 1. ipv4 CIDR /24 1 │ OK │ 2. ipv6 CIDR /120 2 │ OK │ 3. ipv4 CIDR /8 3 │ OK │ 4. ipv4 CIDR /16 4 │ OK │ 5. ipv6 CIDR /126 5 │ OK │ 6. ipv4 127.0.0.0-10 6 │ OK │ 7. ipv6 0000:0000:0000-0002:0000:0000:0000:0000:0000-0002 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── server_module_load ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Dummy module ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── proxy_module_load ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Dummy module ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── agent_module_load ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Dummy module ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_baseline_get_data ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ 2021-11-10 12:30:00 +02:00 baseline(1h:now/h, 4h, 0) 1 │ OK │ 2021-11-10 12:30:00 +02:00 baseline(1h:now/h, 4h, 1) 2 │ OK │ 2021-11-10 12:30:00 +02:00 baseline(1h:now/h, 4h, 2) 3 │ OK │ 2021-11-10 12:30:00 +02:00 baseline(2h:now/h, 2h, 0) 4 │ OK │ 2021-11-10 12:30:00 +02:00 baseline(9h:now/d-6h, 2d, 0) 5 │ OK │ 2021-11-10 12:30:00 +02:00 baseline(1d:now/d, 2w, 0) 6 │ OK │ 2021-11-10 12:30:00 +02:00 baseline(2d:now/w, 2w, 0) 7 │ OK │ 2021-03-31 12:30:00 +02:00 baseline(1d:now/d, 2M, 0) 8 │ OK │ 2021-03-31 12:30:00 +02:00 baseline(1M:now/M, 2M, 0) 9 │ OK │ 2021-03-31 12:30:00 +02:00 baseline(1M:now/M, 2y, 0) 10 │ OK │ 2021-03-31 12:30:00 +02:00 baseline(1y:now/y, 2y, 0) 11 │ OK │ 2021-11-11 12:30:00 +02:00 baseline(1w:now/w, 2y, 0) 12 │ OK │ 2021-01-11 12:30:00 +02:00 baseline(1w:now/w, 2y, 0) 13 │ OK │ 2021-01-10 12:30:00 +02:00 baseline(1w:now/w, 2y, 0) ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_trends_parse_range ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Invalid period '' 1 │ OK │ Invalid period 'h' 2 │ OK │ Invalid period '1' 3 │ OK │ Invalid period '1H' 4 │ OK │ Invalid period '0h' 5 │ OK │ Invalid period '12345678901234567890h' 6 │ OK │ Valid period '1h' 7 │ OK │ Invalid period shift '/h' 8 │ OK │ Invalid period shift 'now-1' 9 │ OK │ Invalid period shift 'now/h - 1' 10 │ OK │ Invalid period shift 'now/h-1' 11 │ OK │ Invalid period shift 'now/h - 1h' 12 │ OK │ Invalid period shift 'now/m-1m' 13 │ OK │ Valid parameters '1h,now/h-1h' 14 │ OK │ Valid parameters '1h,now/d' 15 │ OK │ Valid parameters '1h,now/h' from 2020-09-01 10:00:00.000000000 +03:00 16 │ OK │ Valid parameters '1h,now/d' from 2020-09-01 10:00:00.000000000 +03:00 17 │ OK │ Valid parameters '1h,now/h-1d' from 2020-09-01 10:00:00.000000000 +03:00 18 │ OK │ Valid parameters '1d,now/w-6d' from 2020-09-01 10:00:00.000000000 +03:00 19 │ OK │ Valid parameters '1d,now/M-1M+6d/w+1d' from 2020-09-18 10:00:00.000000000 +03:00 20 │ OK │ Valid parameters '1w,now/M' from 2020-09-18 10:00:00.000000000 +03:00 21 │ OK │ Valid parameters '1M,now/M' from 2020-09-18 10:00:00.000000000 +03:00 22 │ OK │ Valid parameters '1M,now/M-1M' from 2020-09-18 10:00:00.000000000 +03:00 23 │ OK │ Valid parameters '1M,now/M-2M' from 2020-09-18 10:00:00.000000000 +03:00 24 │ OK │ Valid parameters '1d,now/y' from 2020-09-18 10:00:00.000000000 +03:00 25 │ OK │ Valid parameters '1h,now-1d' from 2020-09-01 10:00:00.000000000 +03:00 26 │ OK │ Valid parameters '3h,now-1d/h' from 2020-09-01 10:30:00.000000000 +03:00 27 │ OK │ Valid parameters '3h,now+1d-3d/w' from 2020-09-01 10:30:00.000000000 +03:00 28 │ OK │ Invalid parameters '1M,now/h' from 2020-09-18 10:00:00.000000000 +03:00 29 │ OK │ Invalid parameters '1M,now/d' from 2020-09-18 10:00:00.000000000 +03:00 30 │ OK │ Invalid parameters '1M,now/w' from 2020-09-18 10:00:00.000000000 +03:00 31 │ OK │ Invalid parameters '1M,now/M-1h' from 2020-09-18 10:00:00.000000000 +03:00 32 │ OK │ Invalid parameters '1M,now/M-1d' from 2020-09-18 10:00:00.000000000 +03:00 33 │ OK │ Valid period '1y' 34 │ OK │ Valid period '12M' 35 │ OK │ Valid period '366d' 36 │ OK │ Valid period '8784h' 37 │ OK │ Invalid period '2y' 38 │ OK │ Invalid period '13M' 39 │ OK │ Invalid period '367d' 40 │ OK │ Invalid period '8785h' 41 │ OK │ Invalid shift '26y' 42 │ OK │ Valid shift '25y' 43 │ OK │ Valid parameters '1h:now/M+6d/w+1h' from 2020-09-23 00:59:46.000000000 +03:00 44 │ OK │ Valid shift '0h' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tcp_check_allowed_peers ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ IPv4 match 1 │ OK │ Second IPv4 from list matches 2 │ OK │ Peer IP is different 3 │ OK │ Peer IP is different 4 │ OK │ IPv6 match 5 │ OK │ IPv6 from list matches 6 │ OK │ Peer IPv6 is different 7 │ OK │ Peer IPv6 is different at start 8 │ OK │ Peer IP is not in list 9 │ OK │ IPv6 compatible peer is connected 10 │ OK │ IPv6 compatible expanded peer is connected 11 │ OK │ IPv6 mapped peer is connected 12 │ OK │ IPv6 mapped peer expanded is connected 13 │ OK │ IPv6 compatible peer mismatch IP 14 │ OK │ IPv6 compatible expanded mismatch 15 │ OK │ IPv6 mapped peer mismatch IP 16 │ OK │ IPv6 mapped peer expanded mismatch IP 17 │ OK │ IPv6 peer partially compatible 18 │ OK │ IPv6 peer does not match IPv4 19 │ OK │ IPv6 compatible expanded peer is connected, not in list 20 │ OK │ IPv6 compatible expanded peer is connected mismatch 21 │ OK │ IPv6 mapped expanded is connected mismatch 22 │ OK │ IPv6 local ip mismatch IPv4 local IP 23 │ OK │ IPv4 local IP expected, but IPv6 local IP expanded connected 24 │ OK │ IPv4 compatible peer is connected 25 │ OK │ IPv4 compatible expanded peer is connected 26 │ OK │ IPv4 mapped peer is connected 27 │ OK │ IPv4 mapped peer expanded is connected 28 │ OK │ IPv4 compatible peer mismatch IP 29 │ OK │ IPv4 compatible expanded mismatch 30 │ OK │ IPv4 mapped peer mismatch IP 31 │ OK │ IPv4 mapped peer expanded mismatch IP 32 │ OK │ IPv4 peer partially compatible 33 │ OK │ IPv4 peer does not match IPv6 34 │ OK │ IPv4 compatible expanded peer is connected, not in list 35 │ OK │ IPv4 compatible expanded peer is connected mismatch 36 │ OK │ IPv4 mapped expanded is connected mismatch 37 │ OK │ IPv4 local IP mismatch IPv6 local IP 38 │ OK │ IPv6 local expanded IP expected, but IPv4 local IP connected 39 │ OK │ Compare only first 3 octets 40 │ OK │ Compare all 4 octets sanity check 41 │ OK │ IPv4 does not match address that is not compatible or mapped 42 │ OK │ IPv4 does not match address that is not compatible or mapped 2 43 │ OK │ IPv4 match address that is compatible or mapped 44 │ OK │ Compare only first 96 bits 45 │ OK │ Compare 128 bits 46 │ OK │ Compare only the first 3 octets where the first one does not match 47 │ OK │ Compare only the first 96 bits where the first one does not match 48 │ OK │ IPv4 in list 49 │ OK │ IPv6 in list 50 │ OK │ Any IPv4 51 │ OK │ Any IPv6 52 │ OK │ Any IPv6 allows also any IPv4 53 │ OK │ IPv4 first CIDR value is not saved on next value in list 54 │ OK │ Long list of allowed peers and no match 55 │ OK │ Long list of allowed peers and no match IPv6 56 │ OK │ Long list of allowed peers but there is match 57 │ OK │ Long list of allowed peers but there is match IPv6 58 │ OK │ IPv6 unspecified address in list, connection from IPv6 59 │ OK │ IPv6 unspecified address in list, connection from IPv4 ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_tcp_check_allowed_peers_ipv4 ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ SKIPPED │ IPv4 match 1 │ SKIPPED │ Second IPv4 from list matches 2 │ SKIPPED │ Peer IP is different 3 │ SKIPPED │ Peer IP is different 4 │ SKIPPED │ Compare only first 3 octets 5 │ SKIPPED │ Compare all 4 octets sanity check 6 │ SKIPPED │ Compare only the first 3 octets where the first one does not match 7 │ SKIPPED │ IPv4 in list 8 │ SKIPPED │ Any IPv4 9 │ SKIPPED │ IPv4 first CIDR value is not saved on next value in list 10 │ SKIPPED │ Long list of allowed peers and no match 11 │ SKIPPED │ Long list of allowed peers but there is match ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── zbx_ip_reverse ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Valid ipv4 1 │ OK │ Valid ip4 zeros 2 │ OK │ Valid ip 255s 3 │ OK │ Valid ipv6 4 │ OK │ Valid ipv6 empty 5 │ OK │ Valid ipv6 middle compression 6 │ OK │ Valid ipv6 right compression 7 │ OK │ Valid ipv6 left compression 8 │ OK │ Valid ipv6 middle compression '0::0' 9 │ OK │ Invalid value 'aaaa' 10 │ OK │ Invalid value 'aaaa' 11 │ OK │ Invalid value '' 12 │ OK │ Invalid value many 'Ъ' 13 │ OK │ Invalid value '🌭' 14 │ OK │ Invalid value many '🌭' 15 │ OK │ Invalid value '-23427938091862345091864239809237809' 16 │ OK │ Invalid value '!@£$%^&*()_+'<>?!#/\\' 17 │ OK │ Already converted ipv4 18 │ OK │ Almost already converted ipv4 19 │ OK │ Already converted ipv4 but has invalid text appended 20 │ OK │ Already converted ipv4, empty, no dot 21 │ OK │ Already converted ipv4, empty 22 │ OK │ Already converted ipv6 23 │ OK │ Amost already converted ipv6 24 │ OK │ Already converted ipv6, empty, no dot 25 │ OK │ Already converted ipv6, empty ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system_localtime ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ timestamp check without params 1 │ OK │ timestamp check with empty params 2 │ OK │ timestamp check with UTC type param 3 │ OK │ localtime check 4 │ OK │ input parameter count check 5 │ OK │ input parameter value check ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── vfs_file_exists ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ file exists 1 │ OK │ file exists, include all 2 │ OK │ file exists, exclude sockets 3 │ OK │ file does not exist 4 │ OK │ file exist but is excluded 5 │ OK │ empty file name 6 │ OK │ too many parameters 7 │ OK │ invalid "include types" parameter 8 │ OK │ invalid "exclude types" parameter 9 │ OK │ invalid both "include types" and "exclude types" parameters ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── web_page_get ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ Regular 127.0.0.1 1 │ OK │ Regular 127.0.0.1, 2 │ OK │ Regular 127.0.0.1, ,80 3 │ OK │ Regular 127.0.0.1, /,80 4 │ OK │ Regular 127.0.0.1, zabbix,80 5 │ OK │ Regular 127.0.0.1,zabbix 6 │ OK │ Regular 127.0.0.1,/zabbix 7 │ OK │ Regular 127.0.0.1,zabbix,80 8 │ OK │ Injection 127.0\r\n.0.1 9 │ OK │ Injection \r\n127.0\r\n.0.1 10 │ OK │ Injection 127.0.0.1,zabbi\r\n\r\n\r\nx 11 │ OK │ Injection 127.0.0.1,\r\n\r\n/zabbi\r\n\r\n\r\nx,80 12 │ OK │ HTTPS URL [https://www.example.com:443/some_path] 13 │ OK │ HTTPS URL [https://www.example.com:443/some_path]; legacy 14 │ OK │ HTTPS URL, "path" parameter is set [https://www.example.com:443/some_path,some_path] 15 │ OK │ HTTPS URL, "port" parameter is set [https://www.example.com/some_path,,80] 16 │ OK │ Domain name [www.example.com] 17 │ OK │ Domain name, "path" and "port" parameters are set [www.example.com,/some_path,80] 18 │ OK │ Domain name, "path" parameter is set [www.example.com,some_path] 19 │ OK │ URL with userinfo [user@example.com] 20 │ OK │ URL with userinfo [user@example.com]; legacy 21 │ OK │ HTTPS URL with userinfo [https://user@example.com] 22 │ OK │ HTTPS URL with userinfo [https://user@example.com]; legacy 23 │ OK │ Invalid URL [http:/www.example.com] 24 │ OK │ Invalid URL [http:/www.example.com]; legacy 25 │ OK │ HTTP URL ["http://[ff00::ff00:ff00:ff00:ff00]:80/trunk"] 26 │ OK │ HTTP URL ["http://[::1]:80/trunk"] 27 │ OK │ FTP URL [ftp://www.example.com:443/some_path] 28 │ OK │ Domain name, "port" parameter is set [www.example.com,,443] 29 │ OK │ HTTPS URL [https://www.example.com:80] 30 │ OK │ HTTPS URL [https://www.example.com:80]; legacy 31 │ OK │ HTTP URL [http://www.example.com] 32 │ OK │ IPv4 host [127.0.0.1] 33 │ OK │ URL [127.0.0.1:80/] 34 │ OK │ IPv6 host [ff00::ff00:ff00:ff00:ff00] 35 │ OK │ IPv6 host [::1] 36 │ OK │ Invalid IPv6 host [::1:80] 37 │ OK │ URL ["[::1]:80"] 38 │ OK │ URL [127.0.0.1:80] 39 │ OK │ HTTPS URL [https://user:pass@www.example.com:443/some_path] 40 │ OK │ HTTPS URL [https://user:pass@www.example.com:443/some_path]; legacy 41 │ OK │ Hostname [localhost] 42 │ OK │ HTTPS URL [ hTtPS://www.example.com] 43 │ OK │ HTTPS URL [ hTtPS://www.example.com]; legacy 44 │ OK │ Domain name [пример.рус] 45 │ OK │ Domain name, "path" parameter is set [пример.рус,#opp] 46 │ OK │ HTTP URL [http://пример.рус] 47 │ OK │ HTTP URL [http://пример.рус:80/#opp] 48 │ OK │ HTTP URL [http://пример.рус:80#opp] 49 │ OK │ Invalid HTTP URL [http://www.example.com:/some_path] 50 │ OK │ Invalid HTTP URL [http://www.example.com:/some_path]; legacy 51 │ OK │ Invalid HTTP URL [http://www.example.com:999999/some_path] 52 │ OK │ Invalid HTTP URL [http://www.example.com:999999/some_path]; legacy 53 │ OK │ Invalid HTTP URL [http://www.example.com:abc/some_path] 54 │ OK │ Invalid HTTP URL [http://www.example.com:abc/some_path]; legacy 55 │ OK │ Domain name, "port" parameter is set [www.example.com,,999999] 56 │ OK │ Domain name, "port" parameter is set [www.example.com,,abc] 57 │ OK │ HTTPS URL [https://www.example.com] 58 │ OK │ HTTPS URL [https://www.example.com]; legacy 59 │ OK │ Invalid URL [www.example.com:/some_path] 60 │ OK │ Invalid URL [www.example.com:/some_path]; legacy 61 │ OK │ HTTP URL [http://www.example.com:80/some_path] 62 │ OK │ HTTP URL [ hTtP://www.example.com] 63 │ OK │ Invalid HTTP URL ["http://::1]:80/trunk"] 64 │ OK │ Invalid HTTP URL ["http://::1]:80/trunk"]; legacy 65 │ OK │ URL [www.example.com#some_fragment] 66 │ OK │ URL [www.example.com/some_path#some_fragment] 67 │ OK │ URL [www.example.com/#] 68 │ OK │ URL [www.example.com#] 69 │ OK │ URL [www.example.com/doodle:443#some_:443fragment:443] 70 │ OK │ URL [http://пример.рус/files/docs/] 71 │ OK │ Domain, "path" parameter is set [пример.рус,/files/docs/] 72 │ OK │ Invalid HTTP URL [http://#fragment] 73 │ OK │ Invalid HTTP URL [http://#fragment]; legacy 74 │ OK │ URL ["[::1]/server-status"] 75 │ OK │ URL [scheme:path:without:authority] 76 │ OK │ URL [www.example.com:80#fragmentftp://www.example.com/] 77 │ OK │ URL [www.example.com#ftp://www.example.com/] 78 │ OK │ URL [www.example.com:80?fragmentftp://www.example.com/] 79 │ OK │ URL [www.example.com?ftp://www.example.com/] 80 │ OK │ HTTP URL [ http://localhost?a=b] 81 │ OK │ Hostname, "path" parameter is set [ localhost,?a=b] 82 │ OK │ Invalid URL [@user:pass/index.html] 83 │ OK │ Invalid URL [@user:pass/index.html]; legacy 84 │ OK │ Invalid HTTP URL [http://user:pass@] 85 │ OK │ Invalid HTTP URL [http://user:pass@]; legacy 86 │ OK │ Invalid HTTP URL [http://user:pass@/index.html] 87 │ OK │ Invalid HTTP URL [http://user:pass@/index.html]; legacy 88 │ OK │ Invalid URL [www.example.com://] 89 │ OK │ Invalid URL [://www.example.com] 90 │ OK │ Invalid URL [www.example.com:] 91 │ OK │ Invalid URL [www.example.com:]; legacy 92 │ OK │ HTTP URL [http://www.example.com?] 93 │ OK │ URL [www.example.com/user@info] 94 │ OK │ URL [www.example.com?user@info] 95 │ OK │ Invalid URL [://] 96 │ OK │ Invalid HTTP URL [http://] 97 │ OK │ Invalid HTTP URL [http://]; legacy 98 │ OK │ Invalid URL HTTP [http:// ] 99 │ OK │ Hostname [http] 100 │ OK │ Invalid URL ["[]"] 101 │ OK │ Invalid URL ["[]"]; legacy 102 │ OK │ Invalid URL ["["] 103 │ OK │ Invalid URL ["["]; legacy 104 │ OK │ Invalid URL ["]"] 105 │ OK │ Invalid URL [/] 106 │ OK │ Invalid URL [/]; legacy 107 │ OK │ Invalid URL [:] 108 │ OK │ Invalid URL [:]; legacy 109 │ OK │ Invalid URL [@] 110 │ OK │ Invalid URL [@]; legacy 111 │ OK │ Invalid URL [#] 112 │ OK │ Invalid URL [#]; legacy 113 │ OK │ Invalid URL [?] 114 │ OK │ Invalid URL [?]; legacy 115 │ OK │ Hostname [a] 116 │ OK │ Invalid URL [:80] 117 │ OK │ Invalid URL [:80]; legacy 118 │ OK │ Invalid URL [:80/?x=1] 119 │ OK │ Invalid URL [:80/?x=1]; legacy ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── vfs_fs_discovery ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ parse file /proc/mounts 1 │ OK │ ignore invalid entries in /proc/mounts 2 │ OK │ invalid /proc/mounts content 3 │ OK │ missing /proc/mounts file ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system_cpu_intr ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ system cpu interruptions correct read 1 │ OK │ system cpu interruptions correct read of max value 2 │ OK │ system cpu interruptions missing ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system_process ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ valid statm 1 │ OK │ valid smaps_rollup 2 │ OK │ valid smaps_rollup large 3 │ OK │ valid smaps 4 │ OK │ invalid statm 5 │ OK │ files not available 6 │ OK │ invalid second statm value 7 │ OK │ valid statm big value 8 │ OK │ valid smaps_rollup big value 9 │ OK │ smaps_rollup Private_Hugetlb only 10 │ OK │ smaps_rollup Shared_Hugetlb only 11 │ OK │ smaps_rollup unused values ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system_cpu_switches ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ missing /proc/stat file 1 │ OK │ empty /proc/stat file 2 │ OK │ ctxt-line not found in /proc/stat file 3 │ OK │ valid /proc/stat file ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── net_if_total ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ #1.1 successfully read 'bytes' 1 │ OK │ #1.2 successfully read 'packets' 2 │ OK │ #1.3 successfully read 'errors' 3 │ OK │ #1.4 successfully read 'dropped' 4 │ OK │ #1.5 successfully read 'overruns' 5 │ OK │ #1.6 successfully read 'compressed' 6 │ OK │ #2.1 unsuccessfully read 'Too many parameters.' 7 │ OK │ #2.2 unsuccessfully read 'Cannot find information' 8 │ OK │ #2.3 unsuccessfully read 'Invalid second parameter.' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── net_if_discovery ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ parse file /proc/net/dev 1 │ OK │ ignore invalid entries in /proc/net/dev 2 │ OK │ invalid /proc/net/dev content 3 │ OK │ missing /proc/net/dev file ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system_boottime ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ no /proc/stat file 1 │ OK │ /proc/stat file without btime 2 │ OK │ /proc/stat file with invalid format of btime 3 │ OK │ valid /proc/stat file ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── kernel_maxfiles ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ successfully read 1 │ OK │ unsuccessfully read ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system_sw_packages_get ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ dpkg package manager details 1 │ OK │ RPM package manager details 2 │ OK │ pacman package manager details 3 │ OK │ pkgtools package manager details ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system_sw_software ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ #1 get full os info 1 │ OK │ #2 get full os info 2 │ OK │ #1 get short os info 3 │ OK │ #2 get short os info 4 │ OK │ #1 get name of the os 5 │ OK │ #2 get name of the os 6 │ OK │ #3 get name of the os 7 │ OK │ #4 get name of the os 8 │ OK │ #1 get system info json 9 │ OK │ #2 get system info json 10 │ OK │ #3 get system info json 11 │ OK │ #3 get system info json ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system_hw_chassis ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ #1.1 successfully read 'vendor' 1 │ OK │ #1.2 successfully read 'vendor' 2 │ OK │ #1.3 successfully read 'vendor' 3 │ OK │ #1.4 successfully read 'vendor' 4 │ OK │ #1.5 successfully read 'vendor' 5 │ OK │ #1.6 successfully read 'vendor' 6 │ OK │ #2.1 successfully read 'model' 7 │ OK │ #3.1 successfully read 'serial' 8 │ OK │ #4.1 successfully read 'full' 9 │ OK │ #2.1 unsuccessfully read 'type' 10 │ OK │ #2.2 unsuccessfully read 11 │ OK │ #3 File length bigger than actual fragment length 12 │ OK │ #4 File length smaller than actual fragment length 13 │ OK │ #5 File length 0 while actual fragment length is bigger 14 │ OK │ #6 Fragment is 0 length while file length is bigger ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── net_if_in ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ #1.1 successfully read 'bytes' 1 │ OK │ #1.2 successfully read 'packets' 2 │ OK │ #1.3 successfully read 'errors' 3 │ OK │ #1.4 successfully read 'dropped' 4 │ OK │ #1.5 successfully read 'overruns' 5 │ OK │ #1.6 successfully read 'frame' 6 │ OK │ #1.7 successfully read 'compressed' 7 │ OK │ #1.8 successfully read 'multicast' 8 │ OK │ #2.1 unsuccessfully read 'Too many parameters.' 9 │ OK │ #2.2 unsuccessfully read 'Cannot find information' 10 │ OK │ #2.3 unsuccessfully read 'Invalid second parameter.' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── kernel_maxproc ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ successfully read 1 │ OK │ unsuccessfully read ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── net_if_out ─────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0 │ OK │ #1.1 successfully read 'bytes' 1 │ OK │ #1.2 successfully read 'packets' 2 │ OK │ #1.3 successfully read 'errors' 3 │ OK │ #1.4 successfully read 'dropped' 4 │ OK │ #1.5 successfully read 'overruns' 5 │ OK │ #1.6 successfully read 'colls' 6 │ OK │ #1.7 successfully read 'carrier' 7 │ OK │ #1.8 successfully read 'compressed' 8 │ OK │ #2.1 unsuccessfully read 'Too many parameters.' 9 │ OK │ #2.2 unsuccessfully read 'Cannot find information' 10 │ OK │ #2.3 unsuccessfully read 'Invalid second parameter.' ─────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ───────────────────────────────────────────────────┬───────────┬─────────┬────────┬──────────┬─────── Test suite │ Succeeded │ Skipped │ Errors │ Failures │ Time ───────────────────────────────────────────────────┼───────────┼─────────┼────────┼──────────┼─────── zbx_lld_hgsets_test │ 8 │ 0 │ 0 │ 0 │ 0.04 service_get_rootcause_eventids │ 24 │ 0 │ 0 │ 0 │ 0.08 service_get_rule_status │ 32 │ 0 │ 0 │ 0 │ 0.11 service_get_main_status │ 10 │ 0 │ 0 │ 0 │ 0.04 service_get_status │ 20 │ 0 │ 0 │ 0 │ 0.07 zbx_trapper_preproc_test_run │ 45 │ 0 │ 0 │ 0 │ 0.45 zbx_pinger_test │ 4 │ 0 │ 0 │ 0 │ 0.02 zbx_add_tags │ 4 │ 0 │ 0 │ 0 │ 0.00 zbx_merge_tags │ 16 │ 0 │ 0 │ 0 │ 0.02 DBadd_condition_alloc │ 11 │ 0 │ 0 │ 0 │ 0.10 zbx_del_tags │ 6 │ 0 │ 0 │ 0 │ 0.01 um_cache_resolve │ 32 │ 0 │ 0 │ 0 │ 0.16 is_item_processed_by_server │ 51 │ 0 │ 0 │ 0 │ 0.25 dc_check_maintenance_period │ 44 │ 0 │ 0 │ 0 │ 0.21 dc_item_poller_type_update │ 2 │ 0 │ 0 │ 0 │ 0.02 dc_function_calculate_nextcheck │ 14 │ 0 │ 0 │ 0 │ 0.07 dc_maintenance_match_tags │ 29 │ 0 │ 0 │ 0 │ 0.14 dc_expand_user_macros_in_func_params │ 16 │ 0 │ 0 │ 0 │ 0.08 um_cache_resolve_cont │ 1 │ 0 │ 0 │ 0 │ 0.01 um_cache_sync │ 5 │ 0 │ 0 │ 0 │ 0.03 parse_cfg_file │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_tcp_recv_ext │ 32 │ 0 │ 0 │ 0 │ 0.06 zbx_tcp_recv_raw_ext │ 8 │ 0 │ 0 │ 0 │ 0.02 zbx_tcp_recv_ext_zlib │ 5 │ 0 │ 0 │ 0 │ 0.01 zbx_eval_compose_expression │ 9 │ 0 │ 0 │ 0 │ 0.02 zbx_eval_execute │ 288 │ 0 │ 0 │ 0 │ 0.62 zbx_eval_parse_query │ 14 │ 0 │ 0 │ 0 │ 0.02 zbx_eval_serialize │ 83 │ 0 │ 0 │ 0 │ 0.19 zbx_eval_parse_expression │ 191 │ 0 │ 0 │ 0 │ 0.26 zbx_eval_get_group_filter │ 14 │ 0 │ 0 │ 0 │ 0.02 zbx_eval_get_constant │ 23 │ 0 │ 0 │ 0 │ 0.05 zbx_eval_execute_ext │ 28 │ 0 │ 0 │ 0 │ 0.07 zbx_eval_prepare_filter │ 16 │ 0 │ 0 │ 0 │ 0.03 zbx_dbconn_select_uint64 │ 4 │ 0 │ 0 │ 0 │ 0.02 prometheus_parse_row │ 22 │ 0 │ 0 │ 0 │ 0.04 zbx_prometheus_to_json │ 104 │ 0 │ 0 │ 0 │ 0.15 prometheus_filter_init │ 40 │ 0 │ 0 │ 0 │ 0.06 zbx_prometheus_pattern │ 154 │ 0 │ 0 │ 0 │ 0.23 zbx_xml_to_json │ 18 │ 0 │ 0 │ 0 │ 0.04 zbx_json_to_xml │ 16 │ 0 │ 0 │ 0 │ 0.04 zbx_determine_charset │ 47 │ 0 │ 0 │ 0 │ 0.06 zbx_json_decodevalue │ 46 │ 0 │ 0 │ 0 │ 0.06 zbx_json_decodevalue_dyn │ 46 │ 0 │ 0 │ 0 │ 0.05 zbx_jsonpath_compile │ 128 │ 0 │ 0 │ 0 │ 0.19 zbx_json_open_path │ 57 │ 0 │ 0 │ 0 │ 0.08 zbx_jsonobj_query │ 96 │ 0 │ 0 │ 0 │ 0.14 zbx_function_param_quote │ 1 │ 0 │ 0 │ 0 │ 0.00 macro_tr │ 34 │ 0 │ 0 │ 0 │ 0.05 zbx_is_discovery_macro │ 4 │ 0 │ 0 │ 0 │ 0.00 zbx_substitute_macros │ 24 │ 0 │ 0 │ 0 │ 0.03 macro_func │ 39 │ 0 │ 0 │ 0 │ 0.05 zbx_interval_preproc │ 28 │ 0 │ 0 │ 0 │ 0.04 zbx_token_find │ 80 │ 0 │ 0 │ 0 │ 0.11 zbx_get_function_type │ 4 │ 0 │ 0 │ 0 │ 0.01 zbx_function_param_parse_ext │ 21 │ 0 │ 0 │ 0 │ 0.02 calculate_item_nextcheck_unreachable │ 12 │ 0 │ 0 │ 0 │ 0.02 zbx_url_decode │ 6 │ 0 │ 0 │ 0 │ 0.01 calculate_item_nextcheck │ 23 │ 0 │ 0 │ 0 │ 0.04 zbx_check_time_period │ 4 │ 0 │ 0 │ 0 │ 0.00 zbx_validate_interval │ 110 │ 0 │ 0 │ 0 │ 0.13 zbx_user_macro_quote_context_dyn │ 4 │ 0 │ 0 │ 0 │ 0.01 zbx_user_macro_parse │ 31 │ 0 │ 0 │ 0 │ 0.04 zbx_parse_host_key │ 4 │ 0 │ 0 │ 0 │ 0.01 zbx_substitute_macros_um │ 4 │ 0 │ 0 │ 0 │ 0.02 zbx_check_hostname │ 6 │ 0 │ 0 │ 0 │ 0.01 zbx_make_hostname │ 4 │ 0 │ 0 │ 0 │ 0.01 zbx_uint64match_condition │ 4 │ 0 │ 0 │ 0 │ 0.01 zbx_substitute_macros1 │ 9 │ 0 │ 0 │ 0 │ 0.01 is_double_suffix │ 85 │ 0 │ 0 │ 0 │ 0.10 zbx_get_report_nextcheck │ 12 │ 0 │ 0 │ 0 │ 0.02 parse_key │ 43 │ 0 │ 0 │ 0 │ 0.06 zbx_custom_interval_is_scheduling │ 2 │ 0 │ 0 │ 0 │ 0.00 zbx_function_find │ 65 │ 0 │ 0 │ 0 │ 0.08 zbx_function_validate_parameters │ 2 │ 0 │ 0 │ 0 │ 0.00 zbx_get_agent_item_nextcheck │ 7 │ 0 │ 0 │ 0 │ 0.01 macro_fmttime │ 59 │ 0 │ 0 │ 0 │ 0.08 macro_regrepl │ 31 │ 0 │ 0 │ 0 │ 0.19 zbx_function_get_param_dyn │ 22 │ 0 │ 0 │ 0 │ 0.03 zbx_vc_get_values │ 61 │ 0 │ 0 │ 0 │ 0.10 zbx_vc_add_values │ 19 │ 0 │ 0 │ 0 │ 0.03 zbx_vc_get_value │ 3 │ 0 │ 0 │ 0 │ 0.00 zbx_buf_readln │ 9 │ 0 │ 0 │ 0 │ 0.01 zbx_trim_float │ 49 │ 0 │ 0 │ 0 │ 0.06 is_double │ 114 │ 0 │ 0 │ 0 │ 0.15 zbx_trim_integer │ 49 │ 0 │ 0 │ 0 │ 0.07 zbx_variant_compare │ 40 │ 0 │ 0 │ 0 │ 0.05 zbx_variant_to_value_type │ 6 │ 0 │ 0 │ 0 │ 0.01 wildcard_match │ 12 │ 0 │ 0 │ 0 │ 0.02 zbx_check_key_access_rules │ 26 │ 0 │ 0 │ 0 │ 0.09 zbx_check_service_default_addr │ 4 │ 0 │ 0 │ 0 │ 0.01 zbx_execute_agent_check │ 35 │ 0 │ 0 │ 0 │ 0.12 zbx_parse_item_key │ 44 │ 0 │ 0 │ 0 │ 0.15 zbx_execute_agent_check_http │ 3 │ 0 │ 0 │ 0 │ 0.01 zbx_parse_item_key_check_get_fqdn │ 4 │ 0 │ 0 │ 0 │ 0.01 zbx_item_preproc │ 287 │ 0 │ 0 │ 0 │ 1.85 item_preproc_csv_to_json │ 58 │ 0 │ 0 │ 0 │ 0.29 item_preproc_xpath │ 13 │ 0 │ 0 │ 0 │ 0.07 odbc_pass │ 19 │ 0 │ 0 │ 0 │ 0.03 replace_key_params_dyn │ 43 │ 0 │ 0 │ 0 │ 0.06 zbx_get_percentage_of_deviations_in_stl_remainder │ 7 │ 0 │ 0 │ 0 │ 0.04 zbx_calculate_macro_function │ 59 │ 0 │ 0 │ 0 │ 0.08 zbx_evaluate_function │ 206 │ 0 │ 0 │ 0 │ 1.01 zbx_STL │ 4 │ 0 │ 0 │ 0 │ 0.03 zbx_evaluate_unknown │ 8 │ 0 │ 0 │ 0 │ 0.01 evaluate_value_by_map │ 16 │ 0 │ 0 │ 0 │ 0.08 zbx_substitute_lld_macros │ 16 │ 0 │ 0 │ 0 │ 0.08 zbx_substitute_simple_macros │ 10 │ 0 │ 0 │ 0 │ 0.05 zbx_evaluate │ 316 │ 0 │ 0 │ 0 │ 0.42 zbx_poller_test │ 19 │ 0 │ 0 │ 0 │ 0.07 tagfilter_match_tags │ 60 │ 0 │ 0 │ 0 │ 0.08 zbx_tm_sub │ 32 │ 0 │ 0 │ 0 │ 0.04 zbx_tm_add │ 30 │ 0 │ 0 │ 0 │ 0.04 zbx_get_week_number │ 242 │ 0 │ 0 │ 0 │ 0.33 zbx_tm_round_down │ 20 │ 0 │ 0 │ 0 │ 0.03 zbx_tm_round_up │ 11 │ 0 │ 0 │ 0 │ 0.02 zbx_iso8601_utc │ 33 │ 0 │ 0 │ 0 │ 0.05 zbx_history_get_values │ 15 │ 0 │ 0 │ 0 │ 0.06 get_interval_option │ 11 │ 0 │ 0 │ 0 │ 0.02 line_process │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_list │ 17 │ 0 │ 0 │ 0 │ 0.02 queue │ 13 │ 0 │ 0 │ 0 │ 0.02 zbx_vector │ 45 │ 0 │ 0 │ 0 │ 0.07 zbx_binary_heap │ 4 │ 0 │ 0 │ 0 │ 0.01 zbx_int128 │ 6 │ 0 │ 0 │ 0 │ 0.01 zbx_mode_code │ 5 │ 0 │ 0 │ 0 │ 0.01 zbx_binary_heap_direct │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_compare_tags_natural │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_is_ascii_string │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_is_utf8 │ 5 │ 0 │ 0 │ 0 │ 0.01 zbx_charcount_utf8_nbytes │ 6 │ 0 │ 0 │ 0 │ 0.01 zbx_str_linefeed │ 10 │ 0 │ 0 │ 0 │ 0.01 zbx_strsplit_last │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_strsplit_first │ 8 │ 0 │ 0 │ 0 │ 0.01 zbx_str_printable_dyn │ 9 │ 0 │ 0 │ 0 │ 0.01 zbx_escape_string │ 8 │ 0 │ 0 │ 0 │ 0.01 zbx_strlen_utf8_nchars │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_strlcat │ 5 │ 0 │ 0 │ 0 │ 0.01 zbx_str_extract │ 11 │ 0 │ 0 │ 0 │ 0.01 convert_to_utf8 │ 17 │ 0 │ 0 │ 0 │ 0.02 zbx_get_escape_string_len │ 9 │ 0 │ 0 │ 0 │ 0.01 zbx_strcasestr │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_strdcatf │ 3 │ 0 │ 0 │ 0 │ 0.00 zbx_utf8_char_len │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_replace_mem_dyn │ 8 │ 0 │ 0 │ 0 │ 0.01 zbx_truncate_value │ 14 │ 0 │ 0 │ 0 │ 0.02 zbx_rtrim_utf8 │ 14 │ 0 │ 0 │ 0 │ 0.02 zbx_truncate_itemkey │ 38 │ 0 │ 0 │ 0 │ 0.05 zbx_dyn_escape_string │ 2 │ 0 │ 0 │ 0 │ 0.00 zbx_ltrim_utf8 │ 16 │ 0 │ 0 │ 0 │ 0.02 zbx_strcmp_null │ 20 │ 0 │ 0 │ 0 │ 0.02 zbx_substr │ 6 │ 0 │ 0 │ 0 │ 0.01 zbx_del_zeros │ 10 │ 0 │ 0 │ 0 │ 0.01 zbx_str_in_list │ 9 │ 0 │ 0 │ 0 │ 0.01 zbx_strlcpy_utf8 │ 6 │ 0 │ 0 │ 0 │ 0.01 zbx_dyn_escape_shell_single_quote │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_trim_str_list │ 5 │ 0 │ 0 │ 0 │ 0.01 zbx_str_n_in_list │ 10 │ 0 │ 0 │ 0 │ 0.01 zbx_strcmp_natural │ 20 │ 0 │ 0 │ 0 │ 0.03 zbx_replace_string │ 8 │ 0 │ 0 │ 0 │ 0.01 zbx_remove_chars │ 7 │ 0 │ 0 │ 0 │ 0.01 zbx_replace_invalid_utf8 │ 4 │ 0 │ 0 │ 0 │ 0.00 zbx_iprange_uniq_iter │ 6 │ 0 │ 0 │ 0 │ 0.01 zbx_portrange_uniq_next │ 3 │ 0 │ 0 │ 0 │ 0.00 zbx_is_supported_ip │ 8 │ 0 │ 0 │ 0 │ 0.01 zbx_is_ip │ 14 │ 0 │ 0 │ 0 │ 0.02 zbx_iprange_parse │ 14 │ 0 │ 0 │ 0 │ 0.02 zbx_iprange_ip2str │ 5 │ 0 │ 0 │ 0 │ 0.01 zbx_iprange_uniq_next │ 8 │ 0 │ 0 │ 0 │ 0.01 zbx_ip_in_list │ 9 │ 0 │ 0 │ 0 │ 0.01 zbx_parse_serveractive_element │ 6 │ 0 │ 0 │ 0 │ 0.01 zbx_iprange_volume │ 7 │ 0 │ 0 │ 0 │ 0.01 server_module_load │ 1 │ 0 │ 0 │ 0 │ 0.00 proxy_module_load │ 1 │ 0 │ 0 │ 0 │ 0.00 agent_module_load │ 1 │ 0 │ 0 │ 0 │ 0.00 zbx_baseline_get_data │ 14 │ 0 │ 0 │ 0 │ 0.02 zbx_trends_parse_range │ 45 │ 0 │ 0 │ 0 │ 0.06 zbx_tcp_check_allowed_peers │ 60 │ 0 │ 0 │ 0 │ 0.10 zbx_tcp_check_allowed_peers_ipv4 │ 0 │ 12 │ 0 │ 0 │ 0.00 zbx_ip_reverse │ 26 │ 0 │ 0 │ 0 │ 0.05 system_localtime │ 6 │ 0 │ 0 │ 0 │ 0.02 vfs_file_exists │ 10 │ 0 │ 0 │ 0 │ 0.04 web_page_get │ 120 │ 0 │ 0 │ 0 │ 0.41 vfs_fs_discovery │ 4 │ 0 │ 0 │ 0 │ 0.01 system_cpu_intr │ 3 │ 0 │ 0 │ 0 │ 0.01 system_process │ 12 │ 0 │ 0 │ 0 │ 0.04 system_cpu_switches │ 4 │ 0 │ 0 │ 0 │ 0.01 net_if_total │ 9 │ 0 │ 0 │ 0 │ 0.03 net_if_discovery │ 4 │ 0 │ 0 │ 0 │ 0.01 system_boottime │ 4 │ 0 │ 0 │ 0 │ 0.01 kernel_maxfiles │ 2 │ 0 │ 0 │ 0 │ 0.01 system_sw_packages_get │ 4 │ 0 │ 0 │ 0 │ 0.01 system_sw_software │ 12 │ 0 │ 0 │ 0 │ 0.04 system_hw_chassis │ 15 │ 0 │ 0 │ 0 │ 0.06 net_if_in │ 11 │ 0 │ 0 │ 0 │ 0.04 kernel_maxproc │ 2 │ 0 │ 0 │ 0 │ 0.01 net_if_out │ 11 │ 0 │ 0 │ 0 │ 0.04 ───────────────────────────────────────────────────┼───────────┼─────────┼────────┼──────────┼─────── Test suite │ Succeeded │ Skipped │ Errors │ Failures │ Time ───────────────────────────────────────────────────┼───────────┼─────────┼────────┼──────────┼─────── Total: │ 5569 │ 12 │ 0 │ 0 │ 13.11 ───────────────────────────────────────────────────┴───────────┴─────────┴────────┴──────────┴───────