## how to test
> tests may not work behind residential / dynamic IP ranges,
> and also expects IPv4 & IPv6 connectivity
- install packages (auto set up of zonemaster user and dirs in /usr/local/etc/zonemaster/*.ini )
- initialise the SQLite DB in /var/db/zonemaster
```shell
# pkg install dns/p5-Zonemaster-CLI dns/p5-Zonemaster-Engine dns/p5-Zonemaster-LDNS dns/p5-Zonemaster-Backend
# su -m zonemaster -c "`perl -MFile::ShareDir -le 'print File::ShareDir::dist_dir(qw(Zonemaster-Backend))'`/create_db.pl"
# service zm_rpcapi onestart
# service zm_testagent onestart
# sockstat -46lp 5000
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
zonemaster perl 39347 6 tcp4 127.0.0.1:5000 *:*
zonemaster perl 25563 6 tcp4 127.0.0.1:5000 *:*
zonemaster perl 14234 6 tcp4 127.0.0.1:5000 *:*
zonemaster perl 46 6 tcp4 127.0.0.1:5000 *:*
zonemaster perl 63611 6 tcp4 127.0.0.1:5000 *:*
zonemaster perl 11923 6 tcp4 127.0.0.1:5000 *:*
```
```json
$ zmtest zonemaster.net
testid: d8204740e44caac7
100% done
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"created_at": "2024-12-29T15:05:54Z",
"hash_id": "d8204740e44caac7",
"params": {
"domain": "zonemaster.net",
"ds_info": [],
"ipv4": true,
"ipv6": true,
"nameservers": [],
"priority": 10,
"profile": "default",
"queue": 0
},
"results": [
{
"level": "INFO",
"message": "Using version v7.0.0 of the Zonemaster engine.\n",
"module": "System",
"testcase": "Unspecified"
},
{
"level": "INFO",
"message": "The parent zone is \"net\" as returned from name servers \"a.gtld-servers.net/192.5.6.30; a.gtld-servers.net/2001:503:a83e::2:30; b.gtld-servers.net/192.33.14.30; b.gtld-servers.net/2001:503:231d::2:30; c.gtld-servers.net/192.26.92.30; c.gtld-servers.net/2001:503:83eb::30; d.gtld-servers.net/192.31.80.30; d.gtld-servers.net/2001:500:856e::30; e.gtld-servers.net/192.12.94.30; e.gtld-servers.net/2001:502:1ca1::30; f.gtld-servers.net/192.35.51.30; f.gtld-servers.net/2001:503:d414::30; g.gtld-servers.net/192.42.93.30; g.gtld-servers.net/2001:503:eea3::30; h.gtld-servers.net/192.54.112.30; h.gtld-servers.net/2001:502:8cc::30; i.gtld-servers.net/192.43.172.30; i.gtld-servers.net/2001:503:39c1::30; j.gtld-servers.net/192.48.79.30; j.gtld-servers.net/2001:502:7094::30; k.gtld-servers.net/192.52.178.30; k.gtld-servers.net/2001:503:d2d::30; l.gtld-servers.net/192.41.162.30; l.gtld-servers.net/2001:500:d937::30; m.gtld-servers.net/192.55.83.30; m.gtld-servers.net/2001:501:b1f9::30\".\n",
"module": "Basic",
"testcase": "Basic01"
},
{
"level": "INFO",
"message": "The zone \"zonemaster.net\" is found.\n",
"module": "Basic",
"testcase": "Basic01"
},
...
```
Or test the RPC function:
```json
$ curl -s --json '{"id":"1","jsonrpc":"2.0","method":"version_info"}' localhost:5000 | jq .
{
"jsonrpc": "2.0",
"id": "1",
"result": {
"zonemaster_ldns": "4.1.0",
"zonemaster_engine": "v7.0.0",
"zonemaster_backend": "11.3.0"
}
}
```