diff --git a/CHANGELOG b/CHANGELOG index e42e2302..754a1683 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,66 @@ jc changelog +20220926 v1.22.0 +- Add /proc file parsers for linux. Support for the following files: + `/proc/buddyinfo` + `/proc/consoles` + `/proc/cpuinfo` + `/proc/crypto` + `/proc/devices` + `/proc/diskstats` + `/proc/filesystems` + `/proc/interrupts` + `/proc/iomem` + `/proc/ioports` + `/proc/loadavg` + `/proc/locks` + `/proc/meminfo` + `/proc/modules` + `/proc/mtrr` + `/proc/pagetypeinfo` + `/proc/partitions` + `/proc/slabinfo` + `/proc/softirqs` + `/proc/stat` + `/proc/swaps` + `/proc/uptime` + `/proc/version` + `/proc/vmallocinfo` + `/proc/vmstat` + `/proc/zoneinfo` + `/proc/driver/rtc` + `/proc/net/arp` + `/proc/net/dev` + `/proc/net/dev_mcast` + `/proc/net/if_inet6` + `/proc/net/igmp` + `/proc/net/igmp6` + `/proc/net/ipv6_route` + `/proc/net/netlink` + `/proc/net/netstat` + `/proc/net/packet` + `/proc/net/protocols` + `/proc/net/route` + `/proc/net/unix` + `/proc//fdinfo/` + `/proc//io` + `/proc//maps` + `/proc//mountinfo` + `/proc//numa_maps` + `/proc//smaps` + `/proc//stat` + `/proc//statm` + `/proc//status` +- Magic syntax support for `/proc` files +- Enhance bash and zsh autocompletions for `/proc` files +- Enhance `free` parser to support `-w` option integer conversions +- Fix `ini` and `kv` parsers so they don't change keynames to lower case + NOTE: This can be a breaking change in your scripts +- Fix `id` command parser to allow usernames and groupnames with spaces +- Enhance metadata output to output metadata even when results are empty +- Optimize tests +- Optimize documentation build script + 20220829 v1.21.2 - Fix IP Address string parser for older python versions that don't cleanly accept decimal input format - IPv6 fix (e.g. python 3.6) diff --git a/EXAMPLES.md b/EXAMPLES.md index 2019bc7c..f8037aff 100644 --- a/EXAMPLES.md +++ b/EXAMPLES.md @@ -1637,18 +1637,18 @@ cat example.ini | jc --ini -p ```json { "bitbucket.org": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "yes", - "user": "hg" + "ServeraLiveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "yes", + "User": "hg" }, "topsecret.server.com": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "no", - "port": "50022" + "ServeraLiveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "no", + "Port": "50022" } } ``` diff --git a/README.md b/README.md index c6fa2030..709ee872 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ values are converted, and, in some cases, additional semantic context fields are added. To access the raw, pre-processed JSON, use the `-r` cli option or the `raw=True` -function parameter in `parse()`. +function parameter in `parse()` when using `jc` as a python library. Schemas for each parser can be found at the documentation link beside each [**Parser**](#parsers) below. @@ -133,14 +133,18 @@ on Github. `jc` accepts piped input from `STDIN` and outputs a JSON representation of the previous command's output to `STDOUT`. ```bash -COMMAND | jc PARSER [OPTIONS] +COMMAND | jc [OPTIONS] PARSER +cat FILE | jc [OPTIONS] PARSER +echo STRING | jc [OPTIONS] PARSER ``` Alternatively, the "magic" syntax can be used by prepending `jc` to the command -to be converted. Options can be passed to `jc` immediately before the command is -given. (Note: command aliases and shell builtins are not supported) +to be converted or in front of the absolute path for Proc files. Options can be +passed to `jc` immediately before the command or Proc file path is given. +(Note: command aliases and shell builtins are not supported) ```bash jc [OPTIONS] COMMAND +jc [OPTIONS] /proc/ ``` The JSON output can be compact (default) or pretty formatted with the `-p` @@ -217,14 +221,15 @@ option. | ` --nmcli` | `nmcli` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/nmcli) | | ` --ntpq` | `ntpq -p` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/ntpq) | | ` --passwd` | `/etc/passwd` file parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/passwd) | -| ` --pidstat` | `pidstat -h` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/pidstat) | -| ` --pidstat-s` | `pidstat -h` command streaming parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/pidstat_s) | +| ` --pidstat` | `pidstat -H` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/pidstat) | +| ` --pidstat-s` | `pidstat -H` command streaming parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/pidstat_s) | | ` --ping` | `ping` and `ping6` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/ping) | | ` --ping-s` | `ping` and `ping6` command streaming parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/ping_s) | | ` --pip-list` | `pip list` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/pip_list) | | ` --pip-show` | `pip show` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/pip_show) | | ` --plist` | PLIST file parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/plist) | | ` --postconf` | `postconf -M` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/postconf) | +| ` --proc` | `/proc/` file parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/proc) | | ` --ps` | `ps` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/ps) | | ` --route` | `route` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/route) | | ` --rpm-qi` | `rpm -qi` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/rpm_qi) | @@ -278,7 +283,7 @@ option. | `-a` | `--about` | About `jc`. Prints information about `jc` and the parsers (in JSON or YAML, of course!) | | `-C` | `--force-color` | Force color output even when using pipes (overrides `-m` and the `NO_COLOR` env variable) | | `-d` | `--debug` | Debug mode. Prints trace messages if parsing issues are encountered (use`-dd` for verbose debugging) | -| `-h` | `--help` | Help. Use `jc -h --parser_name` for parser documentation | +| `-h` | `--help` | Help. Use `jc -h --parser_name` for parser documentation. Use twice to show hidden parsers (e.g. `-hh`) | | `-m` | `--monochrome` | Monochrome output | | `-M` | `--meta-out` | Add metadata to output including timestamp, parser name, magic command, magic command exit code, etc. | | | `-p` | `--pretty` | Pretty format the JSON output | @@ -537,12 +542,12 @@ that case you can suppress the warning message with the `-q` cli option or the macOS: ```bash -cat lsof.out | jc --lsof -q +cat lsof.out | jc -q --lsof ``` or Windows: ```bash -type lsof.out | jc --lsof -q +type lsof.out | jc -q --lsof ``` Tested on: @@ -586,7 +591,7 @@ documentation. ### arp ```bash -arp | jc --arp -p # or: jc -p arp +arp | jc -p --arp # or: jc -p arp ``` ```json [ @@ -625,7 +630,7 @@ cat homes.csv ... ``` ```bash -cat homes.csv | jc --csv -p +cat homes.csv | jc -p --csv ``` ```json [ @@ -666,7 +671,7 @@ cat homes.csv | jc --csv -p ``` ### /etc/hosts file ```bash -cat /etc/hosts | jc --hosts -p +cat /etc/hosts | jc -p --hosts ``` ```json [ @@ -693,7 +698,7 @@ cat /etc/hosts | jc --hosts -p ``` ### ifconfig ```bash -ifconfig | jc --ifconfig -p # or: jc -p ifconfig +ifconfig | jc -p --ifconfig # or: jc -p ifconfig ``` ```json [ @@ -751,29 +756,29 @@ Port = 50022 ForwardX11 = no ``` ```bash -cat example.ini | jc --ini -p +cat example.ini | jc -p --ini ``` ```json { "bitbucket.org": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "yes", - "user": "hg" + "ServeraLiveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "yes", + "User": "hg" }, "topsecret.server.com": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "no", - "port": "50022" + "ServeraLiveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "no", + "Port": "50022" } } ``` ### ls ```bash -$ ls -l /usr/bin | jc --ls -p # or: jc -p ls -l /usr/bin +$ ls -l /usr/bin | jc -p --ls # or: jc -p ls -l /usr/bin ``` ```json [ @@ -809,7 +814,7 @@ $ ls -l /usr/bin | jc --ls -p # or: jc -p ls -l /usr/bin ``` ### netstat ```bash -netstat -apee | jc --netstat -p # or: jc -p netstat -apee +netstat -apee | jc -p --netstat # or: jc -p netstat -apee ``` ```json [ @@ -897,7 +902,7 @@ netstat -apee | jc --netstat -p # or: jc -p netstat -apee ``` ### /etc/passwd file ```bash -cat /etc/passwd | jc --passwd -p +cat /etc/passwd | jc -p --passwd ``` ```json [ @@ -923,7 +928,7 @@ cat /etc/passwd | jc --passwd -p ``` ### ping ```bash -ping 8.8.8.8 -c 3 | jc --ping -p # or: jc -p ping 8.8.8.8 -c 3 +ping 8.8.8.8 -c 3 | jc -p --ping # or: jc -p ping 8.8.8.8 -c 3 ``` ```json { @@ -976,7 +981,7 @@ ping 8.8.8.8 -c 3 | jc --ping -p # or: jc -p ping 8.8.8.8 -c 3 ``` ### ps ```bash -ps axu | jc --ps -p # or: jc -p ps axu +ps axu | jc -p --ps # or: jc -p ps axu ``` ```json [ @@ -1023,7 +1028,7 @@ ps axu | jc --ps -p # or: jc -p ps axu ``` ### traceroute ```bash -traceroute -m 2 8.8.8.8 | jc --traceroute -p +traceroute -m 2 8.8.8.8 | jc -p --traceroute # or: jc -p traceroute -m 2 8.8.8.8 ``` ```json @@ -1088,7 +1093,7 @@ traceroute -m 2 8.8.8.8 | jc --traceroute -p ``` ### uptime ```bash -uptime | jc --uptime -p # or: jc -p uptime +uptime | jc -p --uptime # or: jc -p uptime ``` ```json { @@ -1133,7 +1138,7 @@ cat cd_catalog.xml ... ``` ```bash -cat cd_catalog.xml | jc --xml -p +cat cd_catalog.xml | jc -p --xml ``` ```json { @@ -1185,7 +1190,7 @@ spec: mode: ISTIO_MUTUAL ``` ```bash -cat istio.yaml | jc --yaml -p +cat istio.yaml | jc -p --yaml ``` ```json [ diff --git a/completions/jc_bash_completion.sh b/completions/jc_bash_completion.sh index 3fa432e0..7c9f1a79 100644 --- a/completions/jc_bash_completion.sh +++ b/completions/jc_bash_completion.sh @@ -4,7 +4,7 @@ _jc() jc_about_options jc_about_mod_options jc_help_options jc_special_options jc_commands=(acpi airport arp blkid chage cksum crontab date df dig dmidecode dpkg du env file finger free git gpg hciconfig id ifconfig iostat iptables iw jobs last lastb ls lsblk lsmod lsof lsusb md5 md5sum mdadm mount mpstat netstat nmcli ntpq pidstat ping ping6 pip pip3 postconf printenv ps route rpm rsync sfdisk sha1sum sha224sum sha256sum sha384sum sha512sum shasum ss stat sum sysctl systemctl systeminfo timedatectl top tracepath tracepath6 traceroute traceroute6 ufw uname update-alternatives upower uptime vdir vmstat w wc who xrandr zipinfo) - jc_parsers=(--acpi --airport --airport-s --arp --asciitable --asciitable-m --blkid --cef --cef-s --chage --cksum --crontab --crontab-u --csv --csv-s --date --df --dig --dir --dmidecode --dpkg-l --du --email-address --env --file --finger --free --fstab --git-log --git-log-s --gpg --group --gshadow --hash --hashsum --hciconfig --history --hosts --id --ifconfig --ini --iostat --iostat-s --ip-address --iptables --iso-datetime --iw-scan --jar-manifest --jobs --jwt --kv --last --ls --ls-s --lsblk --lsmod --lsof --lsusb --m3u --mdadm --mount --mpstat --mpstat-s --netstat --nmcli --ntpq --passwd --pidstat --pidstat-s --ping --ping-s --pip-list --pip-show --plist --postconf --ps --route --rpm-qi --rsync --rsync-s --sfdisk --shadow --ss --stat --stat-s --sysctl --syslog --syslog-s --syslog-bsd --syslog-bsd-s --systemctl --systemctl-lj --systemctl-ls --systemctl-luf --systeminfo --time --timedatectl --timestamp --top --top-s --tracepath --traceroute --ufw --ufw-appinfo --uname --update-alt-gs --update-alt-q --upower --uptime --url --vmstat --vmstat-s --w --wc --who --x509-cert --xml --xrandr --yaml --zipinfo) + jc_parsers=(--acpi --airport --airport-s --arp --asciitable --asciitable-m --blkid --cef --cef-s --chage --cksum --crontab --crontab-u --csv --csv-s --date --df --dig --dir --dmidecode --dpkg-l --du --email-address --env --file --finger --free --fstab --git-log --git-log-s --gpg --group --gshadow --hash --hashsum --hciconfig --history --hosts --id --ifconfig --ini --iostat --iostat-s --ip-address --iptables --iso-datetime --iw-scan --jar-manifest --jobs --jwt --kv --last --ls --ls-s --lsblk --lsmod --lsof --lsusb --m3u --mdadm --mount --mpstat --mpstat-s --netstat --nmcli --ntpq --passwd --pidstat --pidstat-s --ping --ping-s --pip-list --pip-show --plist --postconf --proc --proc-buddyinfo --proc-consoles --proc-cpuinfo --proc-crypto --proc-devices --proc-diskstats --proc-filesystems --proc-interrupts --proc-iomem --proc-ioports --proc-loadavg --proc-locks --proc-meminfo --proc-modules --proc-mtrr --proc-pagetypeinfo --proc-partitions --proc-slabinfo --proc-softirqs --proc-stat --proc-swaps --proc-uptime --proc-version --proc-vmallocinfo --proc-vmstat --proc-zoneinfo --proc-driver-rtc --proc-net-arp --proc-net-dev --proc-net-dev-mcast --proc-net-if-inet6 --proc-net-igmp --proc-net-igmp6 --proc-net-ipv6-route --proc-net-netlink --proc-net-netstat --proc-net-packet --proc-net-protocols --proc-net-route --proc-net-unix --proc-pid-fdinfo --proc-pid-io --proc-pid-maps --proc-pid-mountinfo --proc-pid-numa-maps --proc-pid-smaps --proc-pid-stat --proc-pid-statm --proc-pid-status --ps --route --rpm-qi --rsync --rsync-s --sfdisk --shadow --ss --stat --stat-s --sysctl --syslog --syslog-s --syslog-bsd --syslog-bsd-s --systemctl --systemctl-lj --systemctl-ls --systemctl-luf --systeminfo --time --timedatectl --timestamp --top --top-s --tracepath --traceroute --ufw --ufw-appinfo --uname --update-alt-gs --update-alt-q --upower --uptime --url --vmstat --vmstat-s --w --wc --who --x509-cert --xml --xrandr --yaml --zipinfo) jc_options=(--force-color -C --debug -d --monochrome -m --meta-out -M --pretty -p --quiet -q --raw -r --unbuffer -u --yaml-out -y) jc_about_options=(--about -a) jc_about_mod_options=(--pretty -p --yaml-out -y --monochrome -m --force-color -C) @@ -67,6 +67,12 @@ _jc() fi done + # if "/pr[oc]" (magic for Procfile parsers) is in the current word, complete with files/directories in the path + if [[ "${cur}" =~ "/pr" ]]; then + _filedir + return 0 + fi + # if a parser arg is found anywhere in the line, only show options and help options for i in "${words[@]::${#words[@]}-1}"; do if [[ " ${jc_parsers[*]} " =~ " ${i} " ]]; then diff --git a/completions/jc_zsh_completion.sh b/completions/jc_zsh_completion.sh index ec87a73b..f39c5e93 100644 --- a/completions/jc_zsh_completion.sh +++ b/completions/jc_zsh_completion.sh @@ -95,7 +95,7 @@ _jc() { 'xrandr:run "xrandr" command with magic syntax.' 'zipinfo:run "zipinfo" command with magic syntax.' ) - jc_parsers=(--acpi --airport --airport-s --arp --asciitable --asciitable-m --blkid --cef --cef-s --chage --cksum --crontab --crontab-u --csv --csv-s --date --df --dig --dir --dmidecode --dpkg-l --du --email-address --env --file --finger --free --fstab --git-log --git-log-s --gpg --group --gshadow --hash --hashsum --hciconfig --history --hosts --id --ifconfig --ini --iostat --iostat-s --ip-address --iptables --iso-datetime --iw-scan --jar-manifest --jobs --jwt --kv --last --ls --ls-s --lsblk --lsmod --lsof --lsusb --m3u --mdadm --mount --mpstat --mpstat-s --netstat --nmcli --ntpq --passwd --pidstat --pidstat-s --ping --ping-s --pip-list --pip-show --plist --postconf --ps --route --rpm-qi --rsync --rsync-s --sfdisk --shadow --ss --stat --stat-s --sysctl --syslog --syslog-s --syslog-bsd --syslog-bsd-s --systemctl --systemctl-lj --systemctl-ls --systemctl-luf --systeminfo --time --timedatectl --timestamp --top --top-s --tracepath --traceroute --ufw --ufw-appinfo --uname --update-alt-gs --update-alt-q --upower --uptime --url --vmstat --vmstat-s --w --wc --who --x509-cert --xml --xrandr --yaml --zipinfo) + jc_parsers=(--acpi --airport --airport-s --arp --asciitable --asciitable-m --blkid --cef --cef-s --chage --cksum --crontab --crontab-u --csv --csv-s --date --df --dig --dir --dmidecode --dpkg-l --du --email-address --env --file --finger --free --fstab --git-log --git-log-s --gpg --group --gshadow --hash --hashsum --hciconfig --history --hosts --id --ifconfig --ini --iostat --iostat-s --ip-address --iptables --iso-datetime --iw-scan --jar-manifest --jobs --jwt --kv --last --ls --ls-s --lsblk --lsmod --lsof --lsusb --m3u --mdadm --mount --mpstat --mpstat-s --netstat --nmcli --ntpq --passwd --pidstat --pidstat-s --ping --ping-s --pip-list --pip-show --plist --postconf --proc --proc-buddyinfo --proc-consoles --proc-cpuinfo --proc-crypto --proc-devices --proc-diskstats --proc-filesystems --proc-interrupts --proc-iomem --proc-ioports --proc-loadavg --proc-locks --proc-meminfo --proc-modules --proc-mtrr --proc-pagetypeinfo --proc-partitions --proc-slabinfo --proc-softirqs --proc-stat --proc-swaps --proc-uptime --proc-version --proc-vmallocinfo --proc-vmstat --proc-zoneinfo --proc-driver-rtc --proc-net-arp --proc-net-dev --proc-net-dev-mcast --proc-net-if-inet6 --proc-net-igmp --proc-net-igmp6 --proc-net-ipv6-route --proc-net-netlink --proc-net-netstat --proc-net-packet --proc-net-protocols --proc-net-route --proc-net-unix --proc-pid-fdinfo --proc-pid-io --proc-pid-maps --proc-pid-mountinfo --proc-pid-numa-maps --proc-pid-smaps --proc-pid-stat --proc-pid-statm --proc-pid-status --ps --route --rpm-qi --rsync --rsync-s --sfdisk --shadow --ss --stat --stat-s --sysctl --syslog --syslog-s --syslog-bsd --syslog-bsd-s --systemctl --systemctl-lj --systemctl-ls --systemctl-luf --systeminfo --time --timedatectl --timestamp --top --top-s --tracepath --traceroute --ufw --ufw-appinfo --uname --update-alt-gs --update-alt-q --upower --uptime --url --vmstat --vmstat-s --w --wc --who --x509-cert --xml --xrandr --yaml --zipinfo) jc_parsers_describe=( '--acpi:`acpi` command parser' '--airport:`airport -I` command parser' @@ -164,14 +164,64 @@ _jc() { '--nmcli:`nmcli` command parser' '--ntpq:`ntpq -p` command parser' '--passwd:`/etc/passwd` file parser' - '--pidstat:`pidstat -h` command parser' - '--pidstat-s:`pidstat -h` command streaming parser' + '--pidstat:`pidstat -H` command parser' + '--pidstat-s:`pidstat -H` command streaming parser' '--ping:`ping` and `ping6` command parser' '--ping-s:`ping` and `ping6` command streaming parser' '--pip-list:`pip list` command parser' '--pip-show:`pip show` command parser' '--plist:PLIST file parser' '--postconf:`postconf -M` command parser' + '--proc:`/proc/` file parser' + '--proc-buddyinfo:`/proc/buddyinfo` file parser' + '--proc-consoles:`/proc/consoles` file parser' + '--proc-cpuinfo:`/proc/cpuinfo` file parser' + '--proc-crypto:`/proc/crypto` file parser' + '--proc-devices:`/proc/devices` file parser' + '--proc-diskstats:`/proc/diskstats` file parser' + '--proc-filesystems:`/proc/filesystems` file parser' + '--proc-interrupts:`/proc/interrupts` file parser' + '--proc-iomem:`/proc/iomem` file parser' + '--proc-ioports:`/proc/ioports` file parser' + '--proc-loadavg:`/proc/loadavg` file parser' + '--proc-locks:`/proc/locks` file parser' + '--proc-meminfo:`/proc/meminfo` file parser' + '--proc-modules:`/proc/modules` file parser' + '--proc-mtrr:`/proc/mtrr` file parser' + '--proc-pagetypeinfo:`/proc/pagetypeinfo` file parser' + '--proc-partitions:`/proc/partitions` file parser' + '--proc-slabinfo:`/proc/slabinfo` file parser' + '--proc-softirqs:`/proc/softirqs` file parser' + '--proc-stat:`/proc/stat` file parser' + '--proc-swaps:`/proc/swaps` file parser' + '--proc-uptime:`/proc/uptime` file parser' + '--proc-version:`/proc/version` file parser' + '--proc-vmallocinfo:`/proc/vmallocinfo` file parser' + '--proc-vmstat:`/proc/vmstat` file parser' + '--proc-zoneinfo:`/proc/zoneinfo` file parser' + '--proc-driver-rtc:`/proc/driver/rtc` file parser' + '--proc-net-arp:`/proc/net/arp` file parser' + '--proc-net-dev:`/proc/net/dev` file parser' + '--proc-net-dev-mcast:`/proc/net/dev_mcast` file parser' + '--proc-net-if-inet6:`/proc/net/if_inet6` file parser' + '--proc-net-igmp:`/proc/net/igmp` file parser' + '--proc-net-igmp6:`/proc/net/igmp6` file parser' + '--proc-net-ipv6-route:`/proc/net/ipv6_route` file parser' + '--proc-net-netlink:`/proc/net/netlink` file parser' + '--proc-net-netstat:`/proc/net/netstat` file parser' + '--proc-net-packet:`/proc/net/packet` file parser' + '--proc-net-protocols:`/proc/net/protocols` file parser' + '--proc-net-route:`/proc/net/route` file parser' + '--proc-net-unix:`/proc/net/unix` file parser' + '--proc-pid-fdinfo:`/proc//fdinfo/` file parser' + '--proc-pid-io:`/proc//io` file parser' + '--proc-pid-maps:`/proc//maps` file parser' + '--proc-pid-mountinfo:`/proc//mountinfo` file parser' + '--proc-pid-numa-maps:`/proc//numa_maps` file parser' + '--proc-pid-smaps:`/proc//smaps` file parser' + '--proc-pid-stat:`/proc//stat` file parser' + '--proc-pid-statm:`/proc//statm` file parser' + '--proc-pid-status:`/proc//status` file parser' '--ps:`ps` command parser' '--route:`route` command parser' '--rpm-qi:`rpm -qi` command parser' @@ -327,6 +377,13 @@ _jc() { fi done + # if "/pr[oc]" (magic for Procfile parsers) is in the current word, complete with files/directories in the path + if [[ "${words[-1]}" =~ "/pr" ]]; then + # run files completion + _files + return 0 + fi + # if a parser arg is found anywhere in the line, only show options and help options for i in ${words:0:-1}; do if (( $jc_parsers[(Ie)${i}] )); then diff --git a/docgen.sh b/docgen.sh index 06ad9717..e83e36e9 100755 --- a/docgen.sh +++ b/docgen.sh @@ -1,6 +1,9 @@ #!/bin/bash # Generate docs.md # requires pydoc-markdown 4.6.1 + +# use ./docgen all to generate all docs + readme_config=$(cat <<'EOF' { "processors": [ @@ -112,23 +115,25 @@ do parsers+=("$value") done < <(jc -a | jq -c '.parsers[] | select(.plugin != true)') -for parser in "${parsers[@]}" -do ( +for parser in "${parsers[@]}"; do parser_name=$(jq -r '.name' <<< "$parser") - compatible=$(jq -r '.compatible | join(", ")' <<< "$parser") - version=$(jq -r '.version' <<< "$parser") - author=$(jq -r '.author' <<< "$parser") - author_email=$(jq -r '.author_email' <<< "$parser") + { + if [[ $1 == "all" ]] || ! git diff --quiet --exit-code HEAD~5 -- "parsers/${parser_name}.py"; then + compatible=$(jq -r '.compatible | join(", ")' <<< "$parser") + version=$(jq -r '.version' <<< "$parser") + author=$(jq -r '.author' <<< "$parser") + author_email=$(jq -r '.author_email' <<< "$parser") - echo "Building docs for: ${parser_name}" - echo "[Home](https://kellyjonbrazil.github.io/jc/)" > ../docs/parsers/"${parser_name}".md - pydoc-markdown -m jc.parsers."${parser_name}" "${parser_config}" >> ../docs/parsers/"${parser_name}".md - echo "### Parser Information" >> ../docs/parsers/"${parser_name}".md - echo "Compatibility: ${compatible}" >> ../docs/parsers/"${parser_name}".md - echo >> ../docs/parsers/"${parser_name}".md - echo "Version ${version} by ${author} (${author_email})" >> ../docs/parsers/"${parser_name}".md - echo "+++ ${parser_name} docs complete" -) & + echo "Building docs for: ${parser_name}" + echo "[Home](https://kellyjonbrazil.github.io/jc/)" > ../docs/parsers/"${parser_name}".md + pydoc-markdown -m jc.parsers."${parser_name}" "${parser_config}" >> ../docs/parsers/"${parser_name}".md + echo "### Parser Information" >> ../docs/parsers/"${parser_name}".md + echo "Compatibility: ${compatible}" >> ../docs/parsers/"${parser_name}".md + echo >> ../docs/parsers/"${parser_name}".md + echo "Version ${version} by ${author} (${author_email})" >> ../docs/parsers/"${parser_name}".md + echo "+++ ${parser_name} docs complete" + fi + } & done wait echo "Document Generation Complete" diff --git a/docs/lib.md b/docs/lib.md index 25c571bc..a264df2f 100644 --- a/docs/lib.md +++ b/docs/lib.md @@ -162,7 +162,8 @@ Parameters: ### all\_parser\_info ```python -def all_parser_info(documentation: bool = False) -> List[Dict] +def all_parser_info(documentation: bool = False, + show_hidden: bool = False) -> List[Dict] ``` Returns a list of dictionaries that includes metadata for all parser @@ -171,6 +172,8 @@ modules. Parameters: documentation: (boolean) include parser docstrings if True + show_hidden: (boolean) also show parsers marked as hidden + in their info metadata. diff --git a/docs/parsers/free.md b/docs/parsers/free.md index 1e9fb92f..bc2e63dc 100644 --- a/docs/parsers/free.md +++ b/docs/parsers/free.md @@ -95,4 +95,4 @@ Returns: ### Parser Information Compatibility: linux -Version 1.6 by Kelly Brazil (kellyjonbrazil@gmail.com) +Version 1.7 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/id.md b/docs/parsers/id.md index eaf32554..0bac2060 100644 --- a/docs/parsers/id.md +++ b/docs/parsers/id.md @@ -128,4 +128,4 @@ Returns: ### Parser Information Compatibility: linux, darwin, aix, freebsd -Version 1.5 by Kelly Brazil (kellyjonbrazil@gmail.com) +Version 1.6 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/ini.md b/docs/parsers/ini.md index 5f77a36f..984e9d83 100644 --- a/docs/parsers/ini.md +++ b/docs/parsers/ini.md @@ -54,18 +54,18 @@ Examples: $ cat example.ini | jc --ini -p { "bitbucket.org": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "yes", - "user": "hg" + "ServerAliveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "yes", + "User": "hg" }, "topsecret.server.com": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "no", - "port": "50022" + "ServerAliveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "no", + "Port": "50022" } } @@ -92,4 +92,4 @@ Returns: ### Parser Information Compatibility: linux, darwin, cygwin, win32, aix, freebsd -Version 1.7 by Kelly Brazil (kellyjonbrazil@gmail.com) +Version 1.8 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/lsof.md b/docs/parsers/lsof.md index 6a0f7945..2fbdc0af 100644 --- a/docs/parsers/lsof.md +++ b/docs/parsers/lsof.md @@ -140,6 +140,6 @@ Returns: List of Dictionaries. Raw or processed structured data. ### Parser Information -Compatibility: linux +Compatibility: linux, darwin, aix, freebsd Version 1.6 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/pidstat.md b/docs/parsers/pidstat.md index e8d97af5..b40ad23c 100644 --- a/docs/parsers/pidstat.md +++ b/docs/parsers/pidstat.md @@ -3,18 +3,18 @@ # jc.parsers.pidstat -jc - JSON Convert `pidstat -h` command output parser +jc - JSON Convert `pidstat -H` command output parser -Must use the `-h` option in `pidstat`. All other `pidstat` options are -supported in combination with `-h`. +Must use the `-H` (or `-h`, if `-H` is not available) option in `pidstat`. +All other `pidstat` options are supported in combination with this option. Usage (cli): - $ pidstat -h | jc --pidstat + $ pidstat -H | jc --pidstat or - $ jc pidstat -h + $ jc pidstat -H Usage (module): @@ -51,7 +51,7 @@ Schema: Examples: - $ pidstat -hl | jc --pidstat -p + $ pidstat -Hl | jc --pidstat -p [ { "time": 1646859134, @@ -88,7 +88,7 @@ Examples: } ] - $ pidstat -hl | jc --pidstat -p -r + $ pidstat -Hl | jc --pidstat -p -r [ { "time": "1646859134", diff --git a/docs/parsers/pidstat_s.md b/docs/parsers/pidstat_s.md index 3de747c8..f3639c16 100644 --- a/docs/parsers/pidstat_s.md +++ b/docs/parsers/pidstat_s.md @@ -3,17 +3,17 @@ # jc.parsers.pidstat\_s -jc - JSON Convert `pidstat -h` command output streaming parser +jc - JSON Convert `pidstat -H` command output streaming parser > This streaming parser outputs JSON Lines (cli) or returns an Iterable of > Dictionaries (module) -Must use the `-h` option in `pidstat`. All other `pidstat` options are -supported in combination with `-h`. +Must use the `-H` (or `-h`, if `-H` is not available) option in `pidstat`. +All other `pidstat` options are supported in combination with this option. Usage (cli): - $ pidstat | jc --pidstat-s + $ pidstat -H | jc --pidstat-s > Note: When piping `jc` converted `pidstat` output to other processes it > may appear the output is hanging due to the OS pipe buffers. This is @@ -65,13 +65,13 @@ Schema: Examples: - $ pidstat -hl | jc --pidstat-s + $ pidstat -Hl | jc --pidstat-s {"time":1646859134,"uid":0,"pid":1,"percent_usr":0.0,"percent_syste...} {"time":1646859134,"uid":0,"pid":6,"percent_usr":0.0,"percent_syste...} {"time":1646859134,"uid":0,"pid":9,"percent_usr":0.0,"percent_syste...} ... - $ pidstat -hl | jc --pidstat-s -r + $ pidstat -Hl | jc --pidstat-s -r {"time":"1646859134","uid":"0","pid":"1","percent_usr":"0.00","perc...} {"time":"1646859134","uid":"0","pid":"6","percent_usr":"0.00","perc...} {"time":"1646859134","uid":"0","pid":"9","percent_usr":"0.00","perc...} diff --git a/docs/parsers/proc.md b/docs/parsers/proc.md new file mode 100644 index 00000000..d51a25d9 --- /dev/null +++ b/docs/parsers/proc.md @@ -0,0 +1,142 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc + +jc - JSON Convert Proc file output parser + +This parser automatically identifies the Proc file and calls the +corresponding parser to peform the parsing. + +Magic syntax for converting `/proc` files is also supported by running +`jc /proc/`. Any `jc` options must be specified before the +`/proc` path. + +specific Proc file parsers can also be called directly, if desired and have +a naming convention of `proc-` (cli) or `proc_` (module). + +Usage (cli): + + $ cat /proc/meminfo | jc --proc + +or + + $ jc /proc/meminfo + +or + + $ cat /proc/meminfo | jc --proc-memifno + +Usage (module): + + import jc + result = jc.parse('proc', proc_file) + +Schema: + +See the specific Proc parser for the schema: + + $ jc --help --proc- + +For example: + + $ jc --help --proc-meminfo + +Specific Proc file parser names can be found with `jc -hh` or `jc -a`. + +Schemas can also be found online at: + + https://kellyjonbrazil.github.io/jc/docs/parsers/proc_ + +For example: + + https://kellyjonbrazil.github.io/jc/docs/parsers/proc_meminfo + +Examples: + + $ cat /proc/modules | jc --proc -p + [ + { + "module": "binfmt_misc", + "size": 24576, + "used": 1, + "used_by": [], + "status": "Live", + "location": "0xffffffffc0ab4000" + }, + { + "module": "vsock_loopback", + "size": 16384, + "used": 0, + "used_by": [], + "status": "Live", + "location": "0xffffffffc0a14000" + }, + { + "module": "vmw_vsock_virtio_transport_common", + "size": 36864, + "used": 1, + "used_by": [ + "vsock_loopback" + ], + "status": "Live", + "location": "0xffffffffc0a03000" + }, + ... + ] + + $ proc_modules | jc --proc_modules -p -r + [ + { + "module": "binfmt_misc", + "size": "24576", + "used": "1", + "used_by": [], + "status": "Live", + "location": "0xffffffffc0ab4000" + }, + { + "module": "vsock_loopback", + "size": "16384", + "used": "0", + "used_by": [], + "status": "Live", + "location": "0xffffffffc0a14000" + }, + { + "module": "vmw_vsock_virtio_transport_common", + "size": "36864", + "used": "1", + "used_by": [ + "vsock_loopback" + ], + "status": "Live", + "location": "0xffffffffc0a03000" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_buddyinfo.md b/docs/parsers/proc_buddyinfo.md new file mode 100644 index 00000000..7bed14e5 --- /dev/null +++ b/docs/parsers/proc_buddyinfo.md @@ -0,0 +1,128 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_buddyinfo + +jc - JSON Convert `/proc/buddyinfo` file parser + +Usage (cli): + + $ cat /proc/buddyinfo | jc --proc + +or + + $ jc /proc/buddyinfo + +or + + $ cat /proc/buddyinfo | jc --proc-buddyinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_buddyinfo_file) + +or + + import jc + result = jc.parse('proc_buddyinfo', proc_buddyinfo_file) + +Schema: + +All values are integers. + + [ + { + "node": integer, + "zone": string, + "free_chunks": [ + integer # [0] + ] + } + ] + + [0] array index correlates to the Order number. + E.g. free_chunks[0] is the value for Order 0 + + +Examples: + + $ cat /proc/buddyinfo | jc --proc -p + [ + { + "node": 0, + "zone": "DMA", + "free_chunks": [ + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 3 + ] + }, + { + "node": 0, + "zone": "DMA32", + "free_chunks": [ + 78, + 114, + 82, + 52, + 38, + 25, + 13, + 9, + 3, + 4, + 629 + ] + }, + { + "node": 0, + "zone": "Normal", + "free_chunks": [ + 0, + 22, + 8, + 10, + 1, + 1, + 2, + 11, + 13, + 0, + 0 + ] + } + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_consoles.md b/docs/parsers/proc_consoles.md new file mode 100644 index 00000000..db00dced --- /dev/null +++ b/docs/parsers/proc_consoles.md @@ -0,0 +1,111 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_consoles + +jc - JSON Convert `/proc/consoles` file parser + +Usage (cli): + + $ cat /proc/consoles | jc --proc + +or + + $ jc /proc/consoles + +or + + $ cat /proc/consoles | jc --proc-consoles + +Usage (module): + + import jc + result = jc.parse('proc', proc_consoles_file) + +or + + import jc + result = jc.parse('proc_consoles', proc_consoles_file) + +Schema: + + [ + { + "device": string, + "operations": string, + "operations_list": [ + string # [0] + ], + "flags": string, + "flags_list": [ + string # [1] + ], + "major": integer, + "minor": integer + } + ] + + [0] Values: read, write, unblank + [1] Values: enabled, preferred, primary boot, prink buffer, + braille device, safe when CPU offline + +Examples: + + $ cat /proc/consoles | jc --proc -p + [ + { + "device": "tty0", + "operations": "-WU", + "operations_list": [ + "write", + "unblank" + ], + "flags": "ECp", + "flags_list": [ + "enabled", + "preferred", + "printk buffer" + ], + "major": 4, + "minor": 7 + }, + { + "device": "ttyS0", + "operations": "-W-", + "operations_list": [ + "write" + ], + "flags": "Ep", + "flags_list": [ + "enabled", + "printk buffer" + ], + "major": 4, + "minor": 64 + } + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_cpuinfo.md b/docs/parsers/proc_cpuinfo.md new file mode 100644 index 00000000..574c919f --- /dev/null +++ b/docs/parsers/proc_cpuinfo.md @@ -0,0 +1,247 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_cpuinfo + +jc - JSON Convert `/proc/cpuinfo` file parser + +Usage (cli): + + $ cat /proc/cpuinfo | jc --proc + +or + + $ jc /proc/cpuinfo + +or + + $ cat /proc/cpuinfo | jc --proc-cpuinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_cpuinfo_file) + +or + + import jc + result = jc.parse('proc_cpuinfo', proc_cpuinfo_file) + +Schema: + +Integer, float, and boolean ("yes"/"no") conversions are attempted. Blank +strings are converted to `null`. + +"Well-known" keys like `cache size`, `address types`, `bugs`, and `flags` +are processed into sensible data types. (see below) + +If this is not desired, then use the `--raw` (CLI) or `raw=True` (Module) +option. + + [ + { + "processor": integer, + "address sizes": string, + "address_size_physical": integer, # in bits + "address_size_virtual": integer, # in bits + "cache size": string, + "cache_size_num": integer, + "cache_size_unit": string, + "flags": [ + string + ], + "bugs": [ + string + ], + "bogomips": float, + : string/int/float/boolean/null + } + ] + +Examples: + + $ cat /proc/cpuinfo | jc --proc -p + [ + { + "processor": 0, + "vendor_id": "GenuineIntel", + "cpu family": 6, + "model": 142, + "model name": "Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz", + "stepping": 10, + "cpu MHz": 2400.0, + "cache size": "6144 KB", + "physical id": 0, + "siblings": 1, + "core id": 0, + "cpu cores": 1, + "apicid": 0, + "initial apicid": 0, + "fpu": true, + "fpu_exception": true, + "cpuid level": 22, + "wp": true, + "bogomips": 4800.0, + "clflush size": 64, + "cache_alignment": 64, + "address sizes": "45 bits physical, 48 bits virtual", + "power management": null, + "address_size_physical": 45, + "address_size_virtual": 48, + "cache_size_num": 6144, + "cache_size_unit": "KB", + "flags": [ + "fpu", + "vme", + "de", + "pse", + "tsc", + "msr", + "pae", + "mce", + "cx8", + "apic", + "sep", + "mtrr", + "pge", + "mca", + "cmov", + "pat", + "pse36", + "clflush", + "mmx", + "fxsr", + "sse", + "sse2", + "ss", + "syscall", + "nx", + "pdpe1gb", + "rdtscp", + "lm", + "constant_tsc", + "arch_perfmon", + "nopl", + "xtopology", + "tsc_reliable", + "nonstop_tsc", + "cpuid", + "pni", + "pclmulqdq", + "ssse3", + "fma", + "cx16", + "pcid", + "sse4_1", + "sse4_2", + "x2apic", + "movbe", + "popcnt", + "tsc_deadline_timer", + "aes", + "xsave", + "avx", + "f16c", + "rdrand", + "hypervisor", + "lahf_lm", + "abm", + "3dnowprefetch", + "cpuid_fault", + "invpcid_single", + "pti", + "ssbd", + "ibrs", + "ibpb", + "stibp", + "fsgsbase", + "tsc_adjust", + "bmi1", + "avx2", + "smep", + "bmi2", + "invpcid", + "rdseed", + "adx", + "smap", + "clflushopt", + "xsaveopt", + "xsavec", + "xgetbv1", + "xsaves", + "arat", + "md_clear", + "flush_l1d", + "arch_capabilities" + ], + "bugs": [ + "cpu_meltdown", + "spectre_v1", + "spectre_v2", + "spec_store_bypass", + "l1tf", + "mds", + "swapgs", + "itlb_multihit", + "srbds" + ] + }, + ... + ] + + $ cat /proc/cpuinfo | jc --proc_cpuinfo -p -r + [ + { + "processor": "0", + "vendor_id": "GenuineIntel", + "cpu family": "6", + "model": "142", + "model name": "Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz", + "stepping": "10", + "cpu MHz": "2400.000", + "cache size": "6144 KB", + "physical id": "0", + "siblings": "1", + "core id": "0", + "cpu cores": "1", + "apicid": "0", + "initial apicid": "0", + "fpu": "yes", + "fpu_exception": "yes", + "cpuid level": "22", + "wp": "yes", + "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge ...", + "bugs": "cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass ...", + "bogomips": "4800.00", + "clflush size": "64", + "cache_alignment": "64", + "address sizes": "45 bits physical, 48 bits virtual", + "power management": "" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_crypto.md b/docs/parsers/proc_crypto.md new file mode 100644 index 00000000..25e9adc0 --- /dev/null +++ b/docs/parsers/proc_crypto.md @@ -0,0 +1,143 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_crypto + +jc - JSON Convert `/proc/crypto` file parser + +Usage (cli): + + $ cat /proc/crypto | jc --proc + +or + + $ jc /proc/crypto + +or + + $ cat /proc/crypto | jc --proc-crypto + +Usage (module): + + import jc + result = jc.parse('proc', proc_crypto_file) + +or + + import jc + result = jc.parse('proc_crypto', proc_crypto_file) + +Schema: + +"Well-known" keys like `priority` and `refcnt` are converted to integers. +Also, keynames ending in "size" are converted to integers. + +If this is not desired, then use the `--raw` (CLI) or `raw=True` (Module) +option. + + [ + { + "name": string, + "driver": string, + "module": string, + "priority": integer, + "refcnt": integer, + "selftest": string, + "internal": string, + "type": string, + "*size": integer + } + ] + +Examples: + + $ cat /proc/crypto | jc --proc -p + [ + { + "name": "ecdh", + "driver": "ecdh-generic", + "module": "ecdh_generic", + "priority": 100, + "refcnt": 1, + "selftest": "passed", + "internal": "no", + "type": "kpp" + }, + { + "name": "blake2b-512", + "driver": "blake2b-512-generic", + "module": "blake2b_generic", + "priority": 100, + "refcnt": 1, + "selftest": "passed", + "internal": "no", + "type": "shash", + "blocksize": 128, + "digestsize": 64 + }, + ... + ] + + $ cat /proc/crypto | jc --proc_crypto -p -r + [ + { + "name": "ecdh", + "driver": "ecdh-generic", + "module": "ecdh_generic", + "priority": "100", + "refcnt": "1", + "selftest": "passed", + "internal": "no", + "type": "kpp" + }, + { + "name": "blake2b-512", + "driver": "blake2b-512-generic", + "module": "blake2b_generic", + "priority": "100", + "refcnt": "1", + "selftest": "passed", + "internal": "no", + "type": "shash", + "blocksize": "128", + "digestsize": "64" + }, + { + "name": "blake2b-384", + "driver": "blake2b-384-generic", + "module": "blake2b_generic", + "priority": "100", + "refcnt": "1", + "selftest": "passed", + "internal": "no", + "type": "shash", + "blocksize": "128", + "digestsize": "48" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_devices.md b/docs/parsers/proc_devices.md new file mode 100644 index 00000000..c5b82a06 --- /dev/null +++ b/docs/parsers/proc_devices.md @@ -0,0 +1,103 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_devices + +jc - JSON Convert `/proc/devices` file parser + +Usage (cli): + + $ cat /proc/devices | jc --proc + +or + + $ jc /proc/devices + +or + + $ cat /proc/devices | jc --proc-devices + +Usage (module): + + import jc + result = jc.parse('proc', proc_devices_file) + +or + + import jc + result = jc.parse('proc_devices', proc_devices_file) + +Schema: + +Since devices can be members of multiple groups, the value for each device +is a list. + + { + "character": { + "": [ + string + ] + }, + "block": { + "": [ + string + ] + } + } + +Examples: + + $ cat /proc/devices | jc --proc -p + { + "character": { + "1": [ + "mem" + ], + "4": [ + "/dev/vc/0", + "tty", + "ttyS" + ], + "5": [ + "/dev/tty", + "/dev/console", + "/dev/ptmx", + "ttyprintk" + ], + "block": { + "7": [ + "loop" + ], + "8": [ + "sd" + ], + "9": [ + "md" + ] + } + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_diskstats.md b/docs/parsers/proc_diskstats.md new file mode 100644 index 00000000..43accf9e --- /dev/null +++ b/docs/parsers/proc_diskstats.md @@ -0,0 +1,202 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_diskstats + +jc - JSON Convert `/proc/diskstats` file parser + +Usage (cli): + + $ cat /proc/diskstats | jc --proc + +or + + $ jc /proc/diskstats + +or + + $ cat /proc/diskstats | jc --proc-diskstats + +Usage (module): + + import jc + result = jc.parse('proc', proc_diskstats_file) + +or + + import jc + result = jc.parse('proc_diskstats', proc_diskstats_file) + +Schema: + + [ + { + "maj": integer, + "min": integer, + "device": string, + "reads_completed": integer, + "reads_merged": integer, + "sectors_read": integer, + "read_time_ms": integer, + "writes_completed": integer, + "writes_merged": integer, + "sectors_written": integer, + "write_time_ms": integer, + "io_in_progress": integer, + "io_time_ms": integer, + "weighted_io_time_ms": integer, + "discards_completed_successfully": integer, + "discards_merged": integer, + "sectors_discarded": integer, + "discarding_time_ms": integer, + "flush_requests_completed_successfully": integer, + "flushing_time_ms": integer + } + ] + +Examples: + + $ cat /proc/diskstats | jc --proc -p + [ + { + "maj": 7, + "min": 0, + "device": "loop0", + "reads_completed": 48, + "reads_merged": 0, + "sectors_read": 718, + "read_time_ms": 19, + "writes_completed": 0, + "writes_merged": 0, + "sectors_written": 0, + "write_time_ms": 0, + "io_in_progress": 0, + "io_time_ms": 36, + "weighted_io_time_ms": 19, + "discards_completed_successfully": 0, + "discards_merged": 0, + "sectors_discarded": 0, + "discarding_time_ms": 0, + "flush_requests_completed_successfully": 0, + "flushing_time_ms": 0 + }, + { + "maj": 7, + "min": 1, + "device": "loop1", + "reads_completed": 41, + "reads_merged": 0, + "sectors_read": 688, + "read_time_ms": 17, + "writes_completed": 0, + "writes_merged": 0, + "sectors_written": 0, + "write_time_ms": 0, + "io_in_progress": 0, + "io_time_ms": 28, + "weighted_io_time_ms": 17, + "discards_completed_successfully": 0, + "discards_merged": 0, + "sectors_discarded": 0, + "discarding_time_ms": 0, + "flush_requests_completed_successfully": 0, + "flushing_time_ms": 0 + }, + ... + ] + + $ cat /proc/diskstats | jc --proc_diskstats -p -r + [ + { + "maj": "7", + "min": "0", + "device": "loop0", + "reads_completed": "48", + "reads_merged": "0", + "sectors_read": "718", + "read_time_ms": "19", + "writes_completed": "0", + "writes_merged": "0", + "sectors_written": "0", + "write_time_ms": "0", + "io_in_progress": "0", + "io_time_ms": "36", + "weighted_io_time_ms": "19", + "discards_completed_successfully": "0", + "discards_merged": "0", + "sectors_discarded": "0", + "discarding_time_ms": "0", + "flush_requests_completed_successfully": "0", + "flushing_time_ms": "0" + }, + { + "maj": "7", + "min": "1", + "device": "loop1", + "reads_completed": "41", + "reads_merged": "0", + "sectors_read": "688", + "read_time_ms": "17", + "writes_completed": "0", + "writes_merged": "0", + "sectors_written": "0", + "write_time_ms": "0", + "io_in_progress": "0", + "io_time_ms": "28", + "weighted_io_time_ms": "17", + "discards_completed_successfully": "0", + "discards_merged": "0", + "sectors_discarded": "0", + "discarding_time_ms": "0", + "flush_requests_completed_successfully": "0", + "flushing_time_ms": "0" + }, + { + "maj": "7", + "min": "2", + "device": "loop2", + "reads_completed": "119", + "reads_merged": "0", + "sectors_read": "2956", + "read_time_ms": "18", + "writes_completed": "0", + "writes_merged": "0", + "sectors_written": "0", + "write_time_ms": "0", + "io_in_progress": "0", + "io_time_ms": "56", + "weighted_io_time_ms": "18", + "discards_completed_successfully": "0", + "discards_merged": "0", + "sectors_discarded": "0", + "discarding_time_ms": "0", + "flush_requests_completed_successfully": "0", + "flushing_time_ms": "0" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_driver_rtc.md b/docs/parsers/proc_driver_rtc.md new file mode 100644 index 00000000..8b7e3de9 --- /dev/null +++ b/docs/parsers/proc_driver_rtc.md @@ -0,0 +1,126 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_driver\_rtc + +jc - JSON Convert `/proc/driver/rtc` file parser + +Usage (cli): + + $ cat /proc/driver/rtc | jc --proc + +or + + $ jc /proc/driver/rtc + +or + + $ cat /proc/driver/rtc | jc --proc-driver-rtc + +Usage (module): + + import jc + result = jc.parse('proc', proc_driver_rtc_file) + +or + + import jc + result = jc.parse('proc_driver_rtc', proc_driver_rtc_file) + +Schema: + +"yes" and "no" values are converted to `true`/`false`. Integer conversions +are attempted. If you do not want this behavior, then use `--raw` (cli) or +`raw=True` (module). + + { + "rtc_time": string, + "rtc_date": string, + "alrm_time": string, + "alrm_date": string, + "alarm_IRQ": boolean, + "alrm_pending": boolean, + "update IRQ enabled": boolean, + "periodic IRQ enabled": boolean, + "periodic IRQ frequency": integer, + "max user IRQ frequency": integer, + "24hr": boolean, + "periodic_IRQ": boolean, + "update_IRQ": boolean, + "HPET_emulated": boolean, + "BCD": boolean, + "DST_enable": boolean, + "periodic_freq": integer, + "batt_status": string + } + +Examples: + + $ cat /proc/driver/rtc | jc --proc -p + { + "rtc_time": "16:09:21", + "rtc_date": "2022-09-03", + "alrm_time": "00:00:00", + "alrm_date": "2022-09-03", + "alarm_IRQ": false, + "alrm_pending": false, + "update IRQ enabled": false, + "periodic IRQ enabled": false, + "periodic IRQ frequency": 1024, + "max user IRQ frequency": 64, + "24hr": true, + "periodic_IRQ": false, + "update_IRQ": false, + "HPET_emulated": true, + "BCD": true, + "DST_enable": false, + "periodic_freq": 1024, + "batt_status": "okay" + } + + $ cat /proc/driver/rtc | jc --proc -p -r + { + "rtc_time": "16:09:21", + "rtc_date": "2022-09-03", + "alrm_time": "00:00:00", + "alrm_date": "2022-09-03", + "alarm_IRQ": "no", + "alrm_pending": "no", + "update IRQ enabled": "no", + "periodic IRQ enabled": "no", + "periodic IRQ frequency": "1024", + "max user IRQ frequency": "64", + "24hr": "yes", + "periodic_IRQ": "no", + "update_IRQ": "no", + "HPET_emulated": "yes", + "BCD": "yes", + "DST_enable": "no", + "periodic_freq": "1024", + "batt_status": "okay" + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_filesystems.md b/docs/parsers/proc_filesystems.md new file mode 100644 index 00000000..b4b8b443 --- /dev/null +++ b/docs/parsers/proc_filesystems.md @@ -0,0 +1,81 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_filesystems + +jc - JSON Convert `/proc/filesystems` file parser + +Usage (cli): + + $ cat /proc/filesystems | jc --proc + +or + + $ jc /proc/filesystems + +or + + $ cat /proc/filesystems | jc --proc-filesystems + +Usage (module): + + import jc + result = jc.parse('proc', proc_filesystems_file) + +or + + import jc + result = jc.parse('proc_filesystems', proc_filesystems_file) + +Schema: + + [ + { + "filesystem": string, + "nodev": boolean + } + ] + +Examples: + + $ cat /proc/filesystems | jc --proc -p + [ + { + "filesystem": "sysfs", + "nodev": true + }, + { + "filesystem": "tmpfs", + "nodev": true + }, + { + "filesystem": "bdev", + "nodev": true + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_interrupts.md b/docs/parsers/proc_interrupts.md new file mode 100644 index 00000000..02f48c0d --- /dev/null +++ b/docs/parsers/proc_interrupts.md @@ -0,0 +1,133 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_interrupts + +jc - JSON Convert `/proc/interrupts` file parser + +Usage (cli): + + $ cat /proc/interrupts | jc --proc + +or + + $ jc /proc/interrupts + +or + + $ cat /proc/interrupts | jc --proc-interrupts + +Usage (module): + + import jc + result = jc.parse('proc', proc_interrupts_file) + +or + + import jc + result = jc.parse('proc_interrupts', proc_interrupts_file) + +Schema: + + [ + { + "irq": string, + "cpu_num": integer, + "interrupts": [ + integer + ], + "type": string, + "device": [ + string + ] + } + ] + +Examples: + + $ cat /proc/interrupts | jc --proc -p + [ + { + "irq": "0", + "cpu_num": 2, + "interrupts": [ + 18, + 0 + ], + "type": "IO-APIC", + "device": [ + "2-edge", + "timer" + ] + }, + { + "irq": "1", + "cpu_num": 2, + "interrupts": [ + 0, + 73 + ], + "type": "IO-APIC", + "device": [ + "1-edge", + "i8042" + ] + }, + ... + ] + + $ cat /proc/interrupts | jc --proc-interrupts -p -r + [ + { + "irq": "0", + "cpu_num": 2, + "interrupts": [ + "18", + "0" + ], + "type": "IO-APIC", + "device": [ + "2-edge", + "timer" + ] + }, + { + "irq": "1", + "cpu_num": 2, + "interrupts": [ + "0", + "73" + ], + "type": "IO-APIC", + "device": [ + "1-edge", + "i8042" + ] + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_iomem.md b/docs/parsers/proc_iomem.md new file mode 100644 index 00000000..4bd0ce2f --- /dev/null +++ b/docs/parsers/proc_iomem.md @@ -0,0 +1,85 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_iomem + +jc - JSON Convert `/proc/iomem` file parser + +Usage (cli): + + $ cat /proc/iomem | jc --proc + +or + + $ jc /proc/iomem + +or + + $ cat /proc/iomem | jc --proc-iomem + +Usage (module): + + import jc + result = jc.parse('proc', proc_iomem_file) + +or + + import jc + result = jc.parse('proc_iomem', proc_iomem_file) + +Schema: + + [ + { + "start": string, + "end": string, + "device": string + } + ] + +Examples: + + $ cat /proc/iomem | jc --proc -p + [ + { + "start": "00000000", + "end": "00000fff", + "device": "Reserved" + }, + { + "start": "00001000", + "end": "0009e7ff", + "device": "System RAM" + }, + { + "start": "0009e800", + "end": "0009ffff", + "device": "Reserved" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_ioports.md b/docs/parsers/proc_ioports.md new file mode 100644 index 00000000..9606509c --- /dev/null +++ b/docs/parsers/proc_ioports.md @@ -0,0 +1,85 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_ioports + +jc - JSON Convert `/proc/ioports` file parser + +Usage (cli): + + $ cat /proc/ioports | jc --proc + +or + + $ jc /proc/ioports + +or + + $ cat /proc/ioports | jc --proc-ioports + +Usage (module): + + import jc + result = jc.parse('proc', proc_ioports_file) + +or + + import jc + result = jc.parse('proc_ioports', proc_ioports_file) + +Schema: + + [ + { + "start": string, + "end": string, + "device": string + } + ] + +Examples: + + $ cat /proc/ioports | jc --proc -p + [ + { + "start": "0000", + "end": "0cf7", + "device": "PCI Bus 0000:00" + }, + { + "start": "0000", + "end": "001f", + "device": "dma1" + }, + { + "start": "0020", + "end": "0021", + "device": "PNP0001:00" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_loadavg.md b/docs/parsers/proc_loadavg.md new file mode 100644 index 00000000..05168398 --- /dev/null +++ b/docs/parsers/proc_loadavg.md @@ -0,0 +1,88 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_loadavg + +jc - JSON Convert `/proc/loadavg` file parser + +Usage (cli): + + $ cat /proc/loadavg | jc --proc + +or + + $ jc /proc/loadavg + +or + + $ cat /proc/loadavg | jc --proc-loadavg + +Usage (module): + + import jc + result = jc.parse('proc', proc_loadavg_file) + +or + + import jc + result = jc.parse('proc_loadavg', proc_loadavg_file) + +Schema: + +All values are integers. + + { + "load_1m": float, + "load_5m": float, + "load_15m": float, + "running": integer, + "available": integer, + "last_pid": integer + } + +Examples: + + $ cat /proc/loadavg | jc --proc -p + { + "load_1m": 0.0, + "load_5m": 0.01, + "load_15m": 0.03, + "running": 2, + "available": 111, + "last_pid": 2039 + } + + $ cat /proc/loadavg | jc --proc -p -r + { + "load_1m": "0.00", + "load_5m": "0.01", + "load_15m": "0.03", + "running": "2", + "available": "111", + "last_pid": "2039" + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_locks.md b/docs/parsers/proc_locks.md new file mode 100644 index 00000000..5b826e81 --- /dev/null +++ b/docs/parsers/proc_locks.md @@ -0,0 +1,130 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_locks + +jc - JSON Convert `/proc/locks` file parser + +Usage (cli): + + $ cat /proc/locks | jc --proc + +or + + $ jc /proc/locks + +or + + $ cat /proc/locks | jc --proc-locks + +Usage (module): + + import jc + result = jc.parse('proc', proc_locks_file) + +or + + import jc + result = jc.parse('proc_locks', proc_locks_file) + +Schema: + + [ + { + "id": integer, + "class": string, + "type": string, + "access": string, + "pid": integer, + "maj": string, + "min": string, + "inode": integer, + "start": string, + "end": string + } + ] + +Examples: + + $ cat /proc/locks | jc --proc -p + [ + { + "id": 1, + "class": "POSIX", + "type": "ADVISORY", + "access": "WRITE", + "pid": 877, + "maj": "00", + "min": "19", + "inode": 812, + "start": "0", + "end": "EOF" + }, + { + "id": 2, + "class": "FLOCK", + "type": "ADVISORY", + "access": "WRITE", + "pid": 854, + "maj": "00", + "min": "19", + "inode": 805, + "start": "0", + "end": "EOF" + }, + ... + ] + + $ cat /proc/locks | jc --proc-locks -p -r + [ + { + "id": "1", + "class": "POSIX", + "type": "ADVISORY", + "access": "WRITE", + "pid": "877", + "maj": "00", + "min": "19", + "inode": "812", + "start": "0", + "end": "EOF" + }, + { + "id": "2", + "class": "FLOCK", + "type": "ADVISORY", + "access": "WRITE", + "pid": "854", + "maj": "00", + "min": "19", + "inode": "805", + "start": "0", + "end": "EOF" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_meminfo.md b/docs/parsers/proc_meminfo.md new file mode 100644 index 00000000..45328325 --- /dev/null +++ b/docs/parsers/proc_meminfo.md @@ -0,0 +1,118 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_meminfo + +jc - JSON Convert `/proc/meminfo` file parser + +Usage (cli): + + $ cat /proc/meminfo | jc --proc + +or + + $ jc /proc/meminfo + +or + + $ cat /proc/meminfo | jc --proc-meminfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_meminfo_file) + +or + + import jc + result = jc.parse('proc_meminfo', proc_meminfo_file) + +Schema: + +All values are integers. + + { + integer + } + +Examples: + + $ cat /proc/meminfo | jc --proc -p + { + "MemTotal": 3997272, + "MemFree": 2760316, + "MemAvailable": 3386876, + "Buffers": 40452, + "Cached": 684856, + "SwapCached": 0, + "Active": 475816, + "Inactive": 322064, + "Active(anon)": 70216, + "Inactive(anon)": 148, + "Active(file)": 405600, + "Inactive(file)": 321916, + "Unevictable": 19476, + "Mlocked": 19476, + "SwapTotal": 3996668, + "SwapFree": 3996668, + "Dirty": 152, + "Writeback": 0, + "AnonPages": 92064, + "Mapped": 79464, + "Shmem": 1568, + "KReclaimable": 188216, + "Slab": 288096, + "SReclaimable": 188216, + "SUnreclaim": 99880, + "KernelStack": 5872, + "PageTables": 1812, + "NFS_Unstable": 0, + "Bounce": 0, + "WritebackTmp": 0, + "CommitLimit": 5995304, + "Committed_AS": 445240, + "VmallocTotal": 34359738367, + "VmallocUsed": 21932, + "VmallocChunk": 0, + "Percpu": 107520, + "HardwareCorrupted": 0, + "AnonHugePages": 0, + "ShmemHugePages": 0, + "ShmemPmdMapped": 0, + "FileHugePages": 0, + "FilePmdMapped": 0, + "HugePages_Total": 0, + "HugePages_Free": 0, + "HugePages_Rsvd": 0, + "HugePages_Surp": 0, + "Hugepagesize": 2048, + "Hugetlb": 0, + "DirectMap4k": 192320, + "DirectMap2M": 4001792, + "DirectMap1G": 2097152 + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_modules.md b/docs/parsers/proc_modules.md new file mode 100644 index 00000000..02697d44 --- /dev/null +++ b/docs/parsers/proc_modules.md @@ -0,0 +1,132 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_modules + +jc - JSON Convert `/proc/modules` file parser + +Usage (cli): + + $ cat /proc/modules | jc --proc + +or + + $ jc /proc/modules + +or + + $ cat /proc/modules | jc --proc-modules + +Usage (module): + + import jc + result = jc.parse('proc', proc_modules_file) + +or + + import jc + result = jc.parse('proc_modules', proc_modules_file) + +Schema: + + [ + { + "module": string, + "size": integer, + "used": integer, + "used_by": [ + string + ], + "status": string, + "location": string + } + ] + +Examples: + + $ cat /proc/modules | jc --proc -p + [ + { + "module": "binfmt_misc", + "size": 24576, + "used": 1, + "used_by": [], + "status": "Live", + "location": "0xffffffffc0ab4000" + }, + { + "module": "vsock_loopback", + "size": 16384, + "used": 0, + "used_by": [], + "status": "Live", + "location": "0xffffffffc0a14000" + }, + { + "module": "vmw_vsock_virtio_transport_common", + "size": 36864, + "used": 1, + "used_by": [ + "vsock_loopback" + ], + "status": "Live", + "location": "0xffffffffc0a03000" + }, + ... + ] + + $ cat /proc/modules | jc --proc-modules -p -r + [ + { + "module": "binfmt_misc", + "size": "24576", + "used": "1", + "used_by": [], + "status": "Live", + "location": "0xffffffffc0ab4000" + }, + { + "module": "vsock_loopback", + "size": "16384", + "used": "0", + "used_by": [], + "status": "Live", + "location": "0xffffffffc0a14000" + }, + { + "module": "vmw_vsock_virtio_transport_common", + "size": "36864", + "used": "1", + "used_by": [ + "vsock_loopback" + ], + "status": "Live", + "location": "0xffffffffc0a03000" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_mtrr.md b/docs/parsers/proc_mtrr.md new file mode 100644 index 00000000..af4fa55a --- /dev/null +++ b/docs/parsers/proc_mtrr.md @@ -0,0 +1,111 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_mtrr + +jc - JSON Convert `/proc/mtrr` file parser + +Usage (cli): + + $ cat /proc/mtrr | jc --proc + +or + + $ jc /proc/mtrr + +or + + $ cat /proc/mtrr | jc --proc-mtrr + +Usage (module): + + import jc + result = jc.parse('proc', proc_mtrr_file) + +or + + import jc + result = jc.parse('proc_mtrr', proc_mtrr_file) + +Schema: + + [ + { + "register": string, + "type": string, + "base": string, + "base_mb": integer, + "size": integer, + "count": integer, + "": string # additional key/values are strings + } + ] + +Examples: + + $ cat /proc/mtrr | jc --proc -p + [ + { + "register": "reg00", + "type": "write-back", + "base": "0x000000000", + "base_mb": 0, + "size": 2048, + "count": 1 + }, + { + "register": "reg01", + "type": "write-back", + "base": "0x080000000", + "base_mb": 2048, + "size": 1024, + "count": 1 + }, + ... + ] + + $ cat /proc/mtrr | jc --proc-mtrr -p -r + [ + { + "register": "reg00", + "type": "write-back", + "base": "0x000000000", + "base_mb": "0", + "size": "2048MB", + "count": "1" + }, + { + "register": "reg01", + "type": "write-back", + "base": "0x080000000", + "base_mb": "2048", + "size": "1024MB", + "count": "1" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_arp.md b/docs/parsers/proc_net_arp.md new file mode 100644 index 00000000..0585b5ca --- /dev/null +++ b/docs/parsers/proc_net_arp.md @@ -0,0 +1,81 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_arp + +jc - JSON Convert `/proc/net/arp` file parser + +Usage (cli): + + $ cat /proc/net/arp | jc --proc + +or + + $ jc /proc/net/arp + +or + + $ cat /proc/net/arp | jc --proc-net-arp + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_arp_file) + +or + + import jc + result = jc.parse('proc_net_arp', proc_net_arp_file) + +Schema: + + [ + { + "IP_address": string, + "HW_type": string, + "Flags": string, + "HW_address": string, + "Mask": string, + "Device": string + } + ] + +Examples: + + $ cat /proc/net/arp | jc --proc -p + [ + { + "IP_address": "192.168.71.254", + "HW_type": "0x1", + "Flags": "0x2", + "HW_address": "00:50:56:f3:2f:ae", + "Mask": "*", + "Device": "ens33" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_dev.md b/docs/parsers/proc_net_dev.md new file mode 100644 index 00000000..fcf60680 --- /dev/null +++ b/docs/parsers/proc_net_dev.md @@ -0,0 +1,127 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_dev + +jc - JSON Convert `/proc/net/dev` file parser + +Usage (cli): + + $ cat /proc/net/dev | jc --proc + +or + + $ jc /proc/net/dev + +or + + $ cat /proc/net/dev | jc --proc-net-dev + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_dev_file) + +or + + import jc + result = jc.parse('proc_net_dev', proc_net_dev_file) + +Schema: + + [ + { + "interface": string, + "r_bytes": integer, + "r_packets": integer, + "r_errs": integer, + "r_drop": integer, + "r_fifo": integer, + "r_frame": integer, + "r_compressed": integer, + "r_multicast": integer, + "t_bytes": integer, + "t_packets": integer, + "t_errs": integer, + "t_drop": integer, + "t_fifo": integer, + "t_colls": integer, + "t_carrier": integer, + "t_compressed": integer + } + ] + +Examples: + + $ cat /proc/net/dev | jc --proc -p + [ + { + "interface": "lo", + "r_bytes": 13222, + "r_packets": 152, + "r_errs": 0, + "r_drop": 0, + "r_fifo": 0, + "r_frame": 0, + "r_compressed": 0, + "r_multicast": 0, + "t_bytes": 13222, + "t_packets": 152, + "t_errs": 0, + "t_drop": 0, + "t_fifo": 0, + "t_colls": 0, + "t_carrier": 0, + "t_compressed": 0 + }, + ... + ] + + $ cat /proc/net/dev | jc --proc-net-dev -p -r + [ + { + "interface": "lo:", + "r_bytes": "13222", + "r_packets": "152", + "r_errs": "0", + "r_drop": "0", + "r_fifo": "0", + "r_frame": "0", + "r_compressed": "0", + "r_multicast": "0", + "t_bytes": "13222", + "t_packets": "152", + "t_errs": "0", + "t_drop": "0", + "t_fifo": "0", + "t_colls": "0", + "t_carrier": "0", + "t_compressed": "0" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_dev_mcast.md b/docs/parsers/proc_net_dev_mcast.md new file mode 100644 index 00000000..6b4362b7 --- /dev/null +++ b/docs/parsers/proc_net_dev_mcast.md @@ -0,0 +1,105 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_dev\_mcast + +jc - JSON Convert `/proc/net/dev_mcast` file parser + +Usage (cli): + + $ cat /proc/net/dev_mcast | jc --proc + +or + + $ jc /proc/net/dev_mcast + +or + + $ cat /proc/net/dev_mcast | jc --proc-net-dev-mcast + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_dev_mcast_file) + +or + + import jc + result = jc.parse('proc_net_dev_mcast', proc_net_dev_mcast_file) + +Schema: + + [ + { + "index": integer, + "interface": string, + "dmi_u": integer, + "dmi_g": integer, + "dmi_address": string + } + ] + +Examples: + + $ cat /proc/net/dev_mcast | jc --proc -p + [ + { + "index": 2, + "interface": "ens33", + "dmi_u": 1, + "dmi_g": 0, + "dmi_address": "333300000001" + }, + { + "index": 2, + "interface": "ens33", + "dmi_u": 1, + "dmi_g": 0, + "dmi_address": "01005e000001" + }, + ... + ] + + $ cat /proc/net/dev_mcast | jc --proc-net-dev-mcast -p -r + [ + { + "index": "2", + "interface": "ens33", + "dmi_u": "1", + "dmi_g": "0", + "dmi_address": "333300000001" + }, + { + "index": "2", + "interface": "ens33", + "dmi_u": "1", + "dmi_g": "0", + "dmi_address": "01005e000001" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_if_inet6.md b/docs/parsers/proc_net_if_inet6.md new file mode 100644 index 00000000..893d6b3e --- /dev/null +++ b/docs/parsers/proc_net_if_inet6.md @@ -0,0 +1,88 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_if\_inet6 + +jc - JSON Convert `/proc/net/if_inet6` file parser + +Usage (cli): + + $ cat /proc/net/if_inet6 | jc --proc + +or + + $ jc /proc/net/if_inet6 + +or + + $ cat /proc/net/if_inet6 | jc --proc-net-if-inet6 + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_if_inet6_file) + +or + + import jc + result = jc.parse('proc_net_if_inet6', proc_net_if_inet6_file) + +Schema: + + [ + { + "address": string, + "index": string, + "prefix": string, + "scope": string, + "flags": string, + "name": string + } + ] + +Examples: + + $ cat /proc/net/if_inet6 | jc --proc -p + [ + { + "address": "fe80000000000000020c29fffea4e315", + "index": "02", + "prefix": "40", + "scope": "20", + "flags": "80", + "name": "ens33" + }, + { + "address": "00000000000000000000000000000001", + "index": "01", + "prefix": "80", + "scope": "10", + "flags": "80", + "name": "lo" + } + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_igmp.md b/docs/parsers/proc_net_igmp.md new file mode 100644 index 00000000..015ce5fa --- /dev/null +++ b/docs/parsers/proc_net_igmp.md @@ -0,0 +1,152 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_igmp + +jc - JSON Convert `/proc/net/igmp` file parser + +Usage (cli): + + $ cat /proc/net/igmp | jc --proc + +or + + $ jc /proc/net/igmp + +or + + $ cat /proc/net/igmp | jc --proc-net-igmp + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_igmp_file) + +or + + import jc + result = jc.parse('proc_net_igmp', proc_net_igmp_file) + +Schema: + + [ + { + "index": integer, + "device": string, + "count": integer, + "querier": string, + "groups": [ + { + "address": string, + "users": integer, + "timer": string, + "reporter": integer + } + ] + } + ] + +Examples: + + $ cat /proc/net/igmp | jc --proc -p + [ + { + "index": 0, + "device": "lo", + "count": 0, + "querier": "V3", + "groups": [ + { + "address": "010000E0", + "users": 1, + "timer": "0:00000000", + "reporter": 0 + } + ] + }, + { + "index": 2, + "device": "eth0", + "count": 26, + "querier": "V2", + "groups": [ + { + "address": "260301E0", + "users": 1, + "timer": "0:00000000", + "reporter": 1 + }, + { + "address": "9B0101E0", + "users": 1, + "timer": "0:00000000", + "reporter": 1 + }, + ] + } + ... + ] + + $ cat /proc/net/igmp | jc --proc-net-igmp -p -r + [ + { + "index": "0", + "device": "lo", + "count": "0", + "querier": "V3", + "groups": [ + { + "address": "010000E0", + "users": "1", + "timer": "0:00000000", + "reporter": "0" + } + ] + }, + { + "index": "2", + "device": "eth0", + "count": "26", + "querier": "V2", + "groups": [ + { + "address": "260301E0", + "users": "1", + "timer": "0:00000000", + "reporter": "1" + }, + { + "address": "9B0101E0", + "users": "1", + "timer": "0:00000000", + "reporter": "1" + }, + ] + } + ... + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_igmp6.md b/docs/parsers/proc_net_igmp6.md new file mode 100644 index 00000000..f0553216 --- /dev/null +++ b/docs/parsers/proc_net_igmp6.md @@ -0,0 +1,125 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_igmp6 + +jc - JSON Convert `/proc/net/igmp6` file parser + +Usage (cli): + + $ cat /proc/net/igmp6 | jc --proc + +or + + $ jc /proc/net/igmp6 + +or + + $ cat /proc/net/igmp6 | jc --proc-net-igmp6 + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_igmp6_file) + +or + + import jc + result = jc.parse('proc_net_igmp6', proc_net_igmp6_file) + +Schema: + + [ + { + "index": integer, + "name": string, + "address": string, + "users": integer, + "group": string, + "reporters": integer + } + ] + +Examples: + + $ cat /proc/net/igmp6 | jc --proc -p + [ + { + "index": 1, + "name": "lo", + "address": "ff020000000000000000000000000001", + "users": 1, + "group": "0000000C", + "reporters": 0 + }, + { + "index": 1, + "name": "lo", + "address": "ff010000000000000000000000000001", + "users": 1, + "group": "00000008", + "reporters": 0 + }, + { + "index": 2, + "name": "ens33", + "address": "ff0200000000000000000001ffa4e315", + "users": 1, + "group": "00000004", + "reporters": 0 + }, + ... + ] + + $ cat /proc/net/igmp6 | jc --proc-net-igmp6 -p -r + [ + { + "index": "1", + "name": "lo", + "address": "ff020000000000000000000000000001", + "users": "1", + "group": "0000000C", + "reporters": "0" + }, + { + "index": "1", + "name": "lo", + "address": "ff010000000000000000000000000001", + "users": "1", + "group": "00000008", + "reporters": "0" + }, + { + "index": "2", + "name": "ens33", + "address": "ff0200000000000000000001ffa4e315", + "users": "1", + "group": "00000004", + "reporters": "0" + } + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_ipv6_route.md b/docs/parsers/proc_net_ipv6_route.md new file mode 100644 index 00000000..9c8f033f --- /dev/null +++ b/docs/parsers/proc_net_ipv6_route.md @@ -0,0 +1,89 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_ipv6\_route + +jc - JSON Convert `/proc/net/ipv6_route` file parser + +Usage (cli): + + $ cat /proc/net/ipv6_route | jc --proc + +or + + $ jc /proc/net/ipv6_route + +or + + $ cat /proc/net/ipv6_route | jc --proc-net-ipv6-route + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_ipv6_route_file) + +or + + import jc + result = jc.parse('proc_net_ipv6_route', proc_net_ipv6_route_file) + +Schema: + + [ + { + "dest_net": string, + "dest_prefix": string, + "source_net": string, + "source_prefix": string, + "next_hop": string, + "metric": string, + "ref_count": string, + "use_count": string, + "flags": string, + "device": string + } + ] + +Examples: + + $ cat /proc/net/ipv6_route | jc --proc -p + [ + { + "dest_net": "00000000000000000000000000000001", + "dest_prefix": "80", + "source_net": "00000000000000000000000000000000", + "source_prefix": "00", + "next_hop": "00000000000000000000000000000000", + "metric": "00000100", + "ref_count": "00000001", + "use_count": "00000000", + "flags": "00000001", + "device": "lo" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_netlink.md b/docs/parsers/proc_net_netlink.md new file mode 100644 index 00000000..b3bb8bbe --- /dev/null +++ b/docs/parsers/proc_net_netlink.md @@ -0,0 +1,130 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_netlink + +jc - JSON Convert `/proc/net/netlink` file parser + +Usage (cli): + + $ cat /proc/net/netlink | jc --proc + +or + + $ jc /proc/net/netlink + +or + + $ cat /proc/net/netlink | jc --proc-net-netlink + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_netlink_file) + +or + + import jc + result = jc.parse('proc_net_netlink', proc_net_netlink_file) + +Schema: + + [ + { + "sk": string, + "Eth": integer, + "Pid": integer, + "Groups": string, + "Rmem": integer, + "Wmem": integer, + "Dump": integer, + "Locks": integer, + "Drops": integer, + "Inode": integer + } + ] + +Examples: + + $ cat /proc/net/netlink | jc --proc -p + [ + { + "sk": "ffff9b61adaff000", + "Eth": 0, + "Pid": 1, + "Groups": "800405d5", + "Rmem": 0, + "Wmem": 0, + "Dump": 0, + "Locks": 2, + "Drops": 0, + "Inode": 29791 + }, + { + "sk": "ffff9b61a792a000", + "Eth": 0, + "Pid": 837, + "Groups": "00000111", + "Rmem": 0, + "Wmem": 0, + "Dump": 0, + "Locks": 2, + "Drops": 0, + "Inode": 35337 + }, + ... + ] + + $ cat /proc/net/netlink | jc --proc-net-netlink -p -r + [ + { + "sk": "ffff9b61adaff000", + "Eth": "0", + "Pid": "1", + "Groups": "800405d5", + "Rmem": "0", + "Wmem": "0", + "Dump": "0", + "Locks": "2", + "Drops": "0", + "Inode": "29791" + }, + { + "sk": "ffff9b61a792a000", + "Eth": "0", + "Pid": "837", + "Groups": "00000111", + "Rmem": "0", + "Wmem": "0", + "Dump": "0", + "Locks": "2", + "Drops": "0", + "Inode": "35337" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_netstat.md b/docs/parsers/proc_net_netstat.md new file mode 100644 index 00000000..ca390d2b --- /dev/null +++ b/docs/parsers/proc_net_netstat.md @@ -0,0 +1,324 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_netstat + +jc - JSON Convert `/proc/net/netstat` file parser + +Usage (cli): + + $ cat /proc/net/netstat | jc --proc + +or + + $ jc /proc/net/netstat + +or + + $ cat /proc/net/netstat | jc --proc-net-netstat + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_netstat_file) + +or + + import jc + result = jc.parse('proc_net_netstat', proc_net_netstat_file) + +Schema: + +All values except "type" are integers + + [ + { + "type": string, + "": integer + } + ] + +Examples: + + $ cat /proc/net/netstat | jc --proc -p + [ + { + "SyncookiesSent": 0, + "SyncookiesRecv": 0, + "SyncookiesFailed": 0, + "EmbryonicRsts": 0, + "PruneCalled": 0, + "RcvPruned": 0, + "OfoPruned": 0, + "OutOfWindowIcmps": 0, + "LockDroppedIcmps": 0, + "ArpFilter": 0, + "TW": 3, + "TWRecycled": 0, + "TWKilled": 0, + "PAWSActive": 0, + "PAWSEstab": 0, + "DelayedACKs": 10, + "DelayedACKLocked": 53, + "DelayedACKLost": 0, + "ListenOverflows": 0, + "ListenDrops": 0, + "TCPHPHits": 2387, + "TCPPureAcks": 12711, + "TCPHPAcks": 53535, + "TCPRenoRecovery": 0, + "TCPSackRecovery": 0, + "TCPSACKReneging": 0, + "TCPSACKReorder": 0, + "TCPRenoReorder": 0, + "TCPTSReorder": 0, + "TCPFullUndo": 0, + "TCPPartialUndo": 0, + "TCPDSACKUndo": 0, + "TCPLossUndo": 0, + "TCPLostRetransmit": 0, + "TCPRenoFailures": 0, + "TCPSackFailures": 0, + "TCPLossFailures": 0, + "TCPFastRetrans": 0, + "TCPSlowStartRetrans": 0, + "TCPTimeouts": 0, + "TCPLossProbes": 0, + "TCPLossProbeRecovery": 0, + "TCPRenoRecoveryFail": 0, + "TCPSackRecoveryFail": 0, + "TCPRcvCollapsed": 0, + "TCPBacklogCoalesce": 2883, + "TCPDSACKOldSent": 0, + "TCPDSACKOfoSent": 0, + "TCPDSACKRecv": 0, + "TCPDSACKOfoRecv": 0, + "TCPAbortOnData": 0, + "TCPAbortOnClose": 1, + "TCPAbortOnMemory": 0, + "TCPAbortOnTimeout": 0, + "TCPAbortOnLinger": 0, + "TCPAbortFailed": 0, + "TCPMemoryPressures": 0, + "TCPMemoryPressuresChrono": 0, + "TCPSACKDiscard": 0, + "TCPDSACKIgnoredOld": 0, + "TCPDSACKIgnoredNoUndo": 0, + "TCPSpuriousRTOs": 0, + "TCPMD5NotFound": 0, + "TCPMD5Unexpected": 0, + "TCPMD5Failure": 0, + "TCPSackShifted": 0, + "TCPSackMerged": 0, + "TCPSackShiftFallback": 0, + "TCPBacklogDrop": 0, + "PFMemallocDrop": 0, + "TCPMinTTLDrop": 0, + "TCPDeferAcceptDrop": 0, + "IPReversePathFilter": 0, + "TCPTimeWaitOverflow": 0, + "TCPReqQFullDoCookies": 0, + "TCPReqQFullDrop": 0, + "TCPRetransFail": 0, + "TCPRcvCoalesce": 151, + "TCPOFOQueue": 0, + "TCPOFODrop": 0, + "TCPOFOMerge": 0, + "TCPChallengeACK": 0, + "TCPSYNChallenge": 0, + "TCPFastOpenActive": 0, + "TCPFastOpenActiveFail": 0, + "TCPFastOpenPassive": 0, + "TCPFastOpenPassiveFail": 0, + "TCPFastOpenListenOverflow": 0, + "TCPFastOpenCookieReqd": 0, + "TCPFastOpenBlackhole": 0, + "TCPSpuriousRtxHostQueues": 0, + "BusyPollRxPackets": 0, + "TCPAutoCorking": 28376, + "TCPFromZeroWindowAdv": 0, + "TCPToZeroWindowAdv": 0, + "TCPWantZeroWindowAdv": 0, + "TCPSynRetrans": 0, + "TCPOrigDataSent": 119438, + "TCPHystartTrainDetect": 3, + "TCPHystartTrainCwnd": 60, + "TCPHystartDelayDetect": 0, + "TCPHystartDelayCwnd": 0, + "TCPACKSkippedSynRecv": 0, + "TCPACKSkippedPAWS": 0, + "TCPACKSkippedSeq": 0, + "TCPACKSkippedFinWait2": 0, + "TCPACKSkippedTimeWait": 0, + "TCPACKSkippedChallenge": 0, + "TCPWinProbe": 0, + "TCPKeepAlive": 6, + "TCPMTUPFail": 0, + "TCPMTUPSuccess": 0, + "TCPDelivered": 119453, + "TCPDeliveredCE": 0, + "TCPAckCompressed": 0, + "TCPZeroWindowDrop": 0, + "TCPRcvQDrop": 0, + "TCPWqueueTooBig": 0, + "TCPFastOpenPassiveAltKey": 0, + "TcpTimeoutRehash": 0, + "TcpDuplicateDataRehash": 0, + "type": "TcpExt" + }, + ... + ] + + $ cat /proc/net/netstat | jc --proc-net-netstat -p -r + [ + { + "SyncookiesSent": "0", + "SyncookiesRecv": "0", + "SyncookiesFailed": "0", + "EmbryonicRsts": "0", + "PruneCalled": "0", + "RcvPruned": "0", + "OfoPruned": "0", + "OutOfWindowIcmps": "0", + "LockDroppedIcmps": "0", + "ArpFilter": "0", + "TW": "3", + "TWRecycled": "0", + "TWKilled": "0", + "PAWSActive": "0", + "PAWSEstab": "0", + "DelayedACKs": "10", + "DelayedACKLocked": "53", + "DelayedACKLost": "0", + "ListenOverflows": "0", + "ListenDrops": "0", + "TCPHPHits": "2387", + "TCPPureAcks": "12711", + "TCPHPAcks": "53535", + "TCPRenoRecovery": "0", + "TCPSackRecovery": "0", + "TCPSACKReneging": "0", + "TCPSACKReorder": "0", + "TCPRenoReorder": "0", + "TCPTSReorder": "0", + "TCPFullUndo": "0", + "TCPPartialUndo": "0", + "TCPDSACKUndo": "0", + "TCPLossUndo": "0", + "TCPLostRetransmit": "0", + "TCPRenoFailures": "0", + "TCPSackFailures": "0", + "TCPLossFailures": "0", + "TCPFastRetrans": "0", + "TCPSlowStartRetrans": "0", + "TCPTimeouts": "0", + "TCPLossProbes": "0", + "TCPLossProbeRecovery": "0", + "TCPRenoRecoveryFail": "0", + "TCPSackRecoveryFail": "0", + "TCPRcvCollapsed": "0", + "TCPBacklogCoalesce": "2883", + "TCPDSACKOldSent": "0", + "TCPDSACKOfoSent": "0", + "TCPDSACKRecv": "0", + "TCPDSACKOfoRecv": "0", + "TCPAbortOnData": "0", + "TCPAbortOnClose": "1", + "TCPAbortOnMemory": "0", + "TCPAbortOnTimeout": "0", + "TCPAbortOnLinger": "0", + "TCPAbortFailed": "0", + "TCPMemoryPressures": "0", + "TCPMemoryPressuresChrono": "0", + "TCPSACKDiscard": "0", + "TCPDSACKIgnoredOld": "0", + "TCPDSACKIgnoredNoUndo": "0", + "TCPSpuriousRTOs": "0", + "TCPMD5NotFound": "0", + "TCPMD5Unexpected": "0", + "TCPMD5Failure": "0", + "TCPSackShifted": "0", + "TCPSackMerged": "0", + "TCPSackShiftFallback": "0", + "TCPBacklogDrop": "0", + "PFMemallocDrop": "0", + "TCPMinTTLDrop": "0", + "TCPDeferAcceptDrop": "0", + "IPReversePathFilter": "0", + "TCPTimeWaitOverflow": "0", + "TCPReqQFullDoCookies": "0", + "TCPReqQFullDrop": "0", + "TCPRetransFail": "0", + "TCPRcvCoalesce": "151", + "TCPOFOQueue": "0", + "TCPOFODrop": "0", + "TCPOFOMerge": "0", + "TCPChallengeACK": "0", + "TCPSYNChallenge": "0", + "TCPFastOpenActive": "0", + "TCPFastOpenActiveFail": "0", + "TCPFastOpenPassive": "0", + "TCPFastOpenPassiveFail": "0", + "TCPFastOpenListenOverflow": "0", + "TCPFastOpenCookieReqd": "0", + "TCPFastOpenBlackhole": "0", + "TCPSpuriousRtxHostQueues": "0", + "BusyPollRxPackets": "0", + "TCPAutoCorking": "28376", + "TCPFromZeroWindowAdv": "0", + "TCPToZeroWindowAdv": "0", + "TCPWantZeroWindowAdv": "0", + "TCPSynRetrans": "0", + "TCPOrigDataSent": "119438", + "TCPHystartTrainDetect": "3", + "TCPHystartTrainCwnd": "60", + "TCPHystartDelayDetect": "0", + "TCPHystartDelayCwnd": "0", + "TCPACKSkippedSynRecv": "0", + "TCPACKSkippedPAWS": "0", + "TCPACKSkippedSeq": "0", + "TCPACKSkippedFinWait2": "0", + "TCPACKSkippedTimeWait": "0", + "TCPACKSkippedChallenge": "0", + "TCPWinProbe": "0", + "TCPKeepAlive": "6", + "TCPMTUPFail": "0", + "TCPMTUPSuccess": "0", + "TCPDelivered": "119453", + "TCPDeliveredCE": "0", + "TCPAckCompressed": "0", + "TCPZeroWindowDrop": "0", + "TCPRcvQDrop": "0", + "TCPWqueueTooBig": "0", + "TCPFastOpenPassiveAltKey": "0", + "TcpTimeoutRehash": "0", + "TcpDuplicateDataRehash": "0", + "type": "TcpExt" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_packet.md b/docs/parsers/proc_net_packet.md new file mode 100644 index 00000000..e7dbc87f --- /dev/null +++ b/docs/parsers/proc_net_packet.md @@ -0,0 +1,95 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_packet + +jc - JSON Convert `/proc/net/packet` file parser + +Usage (cli): + + $ cat /proc/net/packet | jc --proc + +or + + $ jc /proc/net/packet + +or + + $ cat /proc/net/packet | jc --proc-net-packet + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_packet_file) + +or + + import jc + result = jc.parse('proc_net_packet', proc_net_packet_file) + +Schema: + + { + "sk": string, + "RefCnt": integer, + "Type": integer, + "Proto": string, + "Iface": integer, + "R": integer, + "Rmem": integer, + "User": integer, + "Inode": integer + } + +Examples: + + $ cat /proc/net/packet | jc --proc -p + { + "sk": "ffff9b61b56c1800", + "RefCnt": 3, + "Type": 3, + "Proto": "88cc", + "Iface": 2, + "R": 1, + "Rmem": 0, + "User": 101, + "Inode": 34754 + } + + $ cat /proc/net/packet | jc --proc-net-packet -p -r + { + "sk": "ffff9b61b56c1800", + "RefCnt": "3", + "Type": "3", + "Proto": "88cc", + "Iface": "2", + "R": "1", + "Rmem": "0", + "User": "101", + "Inode": "34754" + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_protocols.md b/docs/parsers/proc_net_protocols.md new file mode 100644 index 00000000..f489f62f --- /dev/null +++ b/docs/parsers/proc_net_protocols.md @@ -0,0 +1,157 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_protocols + +jc - JSON Convert `/proc/net/protocols` file parser + +Usage (cli): + + $ cat /proc/net/protocols | jc --proc + +or + + $ jc /proc/net/protocols + +or + + $ cat /proc/net/protocols | jc --proc-net-protocols + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_protocols_file) + +or + + import jc + result = jc.parse('proc_net_protocols', proc_net_protocols_file) + +Schema: + + [ + { + "protocol": string, + "size": integer, + "sockets": integer, + "memory": integer, + "press": string, + "maxhdr": integer, + "slab": boolean, + "module": string, + "cl": boolean, + "co": boolean, + "di": boolean, + "ac": boolean, + "io": boolean, + "in": boolean, + "de": boolean, + "sh": boolean, + "ss": boolean, + "gs": boolean, + "se": boolean, + "re": boolean, + "sp": boolean, + "bi": boolean, + "br": boolean, + "ha": boolean, + "uh": boolean, + "gp": boolean, + "em": boolean, + } + ] + +Examples: + + $ cat /proc/net/protocols | jc --proc -p + [ + { + "protocol": "AF_VSOCK", + "size": 1216, + "sockets": 0, + "memory": -1, + "press": "NI", + "maxhdr": 0, + "slab": true, + "module": "vsock", + "cl": false, + "co": false, + "di": false, + "ac": false, + "io": false, + "in": false, + "de": false, + "sh": false, + "ss": false, + "gs": false, + "se": false, + "re": false, + "sp": false, + "bi": false, + "br": false, + "ha": false, + "uh": false, + "gp": false, + "em": false + }, + ... + ] + + $ cat /proc/net/protocols | jc --proc-net-protocols -p -r + [ + { + "protocol": "AF_VSOCK", + "size": "1216", + "sockets": "0", + "memory": "-1", + "press": "NI", + "maxhdr": "0", + "slab": "yes", + "module": "vsock", + "cl": "n", + "co": "n", + "di": "n", + "ac": "n", + "io": "n", + "in": "n", + "de": "n", + "sh": "n", + "ss": "n", + "gs": "n", + "se": "n", + "re": "n", + "sp": "n", + "bi": "n", + "br": "n", + "ha": "n", + "uh": "n", + "gp": "n", + "em": "n" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_route.md b/docs/parsers/proc_net_route.md new file mode 100644 index 00000000..b7a3aaac --- /dev/null +++ b/docs/parsers/proc_net_route.md @@ -0,0 +1,109 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_route + +jc - JSON Convert `/proc/net/route` file parser + +Usage (cli): + + $ cat /proc/net/route | jc --proc + +or + + $ jc /proc/net/route + +or + + $ cat /proc/net/route | jc --proc-net-route + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_route_file) + +or + + import jc + result = jc.parse('proc_net_route', proc_net_route_file) + +Schema: + + [ + { + "Iface": string, + "Destination": string, + "Gateway": string, + "Flags": string, + "RefCnt": integer, + "Use": integer, + "Metric": integer, + "Mask": string, + "MTU": integer, + "Window": integer, + "IRTT": integer + } + ] + +Examples: + + $ cat /proc/net/route | jc --proc -p + [ + { + "Iface": "ens33", + "Destination": "00000000", + "Gateway": "0247A8C0", + "Flags": "0003", + "RefCnt": 0, + "Use": 0, + "Metric": 100, + "Mask": "00000000", + "MTU": 0, + "Window": 0, + "IRTT": 0 + }, + ... + ] + + $ cat /proc/net/route | jc --proc-net-route -p -r + [ + { + "Iface": "ens33", + "Destination": "00000000", + "Gateway": "0247A8C0", + "Flags": "0003", + "RefCnt": "0", + "Use": "0", + "Metric": "100", + "Mask": "00000000", + "MTU": "0", + "Window": "0", + "IRTT": "0" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_net_unix.md b/docs/parsers/proc_net_unix.md new file mode 100644 index 00000000..5c902ceb --- /dev/null +++ b/docs/parsers/proc_net_unix.md @@ -0,0 +1,100 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_net\_unix + +jc - JSON Convert `/proc/net/unix` file parser + +Usage (cli): + + $ cat /proc/net/unix | jc --proc + +or + + $ jc /proc/net/unix + +or + + $ cat /proc/net/unix | jc --proc-net-unix + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_unix_file) + +or + + import jc + result = jc.parse('proc_net_unix', proc_net_unix_file) + +Schema: + + [ + { + "Num": string, + "RefCount": string, + "Protocol": string, + "Flags": string, + "Type": string, + "St": string, + "Inode": integer, + "Path": string + } + ] + +Examples: + + $ cat /proc/net/unix | jc --proc -p + [ + { + "Num": "ffff9b61ac49c400:", + "RefCount": "00000002", + "Protocol": "00000000", + "Flags": "00010000", + "Type": "0001", + "St": "01", + "Inode": 42776, + "Path": "/var/snap/lxd/common/lxd/unix.socket" + }, + ... + ] + + $ cat /proc/net/unix | jc --proc-net-unix -p -r + [ + { + "Num": "ffff9b61ac49c400:", + "RefCount": "00000002", + "Protocol": "00000000", + "Flags": "00010000", + "Type": "0001", + "St": "01", + "Inode": "42776", + "Path": "/var/snap/lxd/common/lxd/unix.socket" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pagetypeinfo.md b/docs/parsers/proc_pagetypeinfo.md new file mode 100644 index 00000000..f1cfb990 --- /dev/null +++ b/docs/parsers/proc_pagetypeinfo.md @@ -0,0 +1,141 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pagetypeinfo + +jc - JSON Convert `/proc/pagetypeinfo` file parser + +Usage (cli): + + $ cat /proc/pagetypeinfo | jc --proc + +or + + $ jc /proc/pagetypeinfo + +or + + $ cat /proc/pagetypeinfo | jc --proc-pagetypeinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_pagetypeinfo_file) + +or + + import jc + result = jc.parse('proc_pagetypeinfo', proc_pagetypeinfo_file) + +Schema: + + { + "page_block_order": integer, + "pages_per_block": integer, + "free_pages": [ + { + "node": integer, + "zone": string, + "type": string, + "free": [ + integer # [0] + ] + ], + "num_blocks_type": [ + { + "node": integer, + "zone": string, + "unmovable": integer, + "movable": integer, + "reclaimable": integer, + "high_atomic": integer, + "isolate": integer + } + ] + } + + [0] array index correlates to the Order number. + E.g. free[0] is the value for Order 0 + +Examples: + + $ cat /proc/pagetypeinfo | jc --proc -p + { + "page_block_order": 9, + "pages_per_block": 512, + "free_pages": [ + { + "node": 0, + "zone": "DMA", + "type": "Unmovable", + "free": [ + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0 + ] + }, + ... + ], + "num_blocks_type": [ + { + "node": 0, + "zone": "DMA", + "unmovable": 1, + "movable": 7, + "reclaimable": 0, + "high_atomic": 0, + "isolate": 0 + }, + { + "node": 0, + "zone": "DMA32", + "unmovable": 8, + "movable": 1472, + "reclaimable": 48, + "high_atomic": 0, + "isolate": 0 + }, + { + "node": 0, + "zone": "Normal", + "unmovable": 120, + "movable": 345, + "reclaimable": 47, + "high_atomic": 0, + "isolate": 0 + } + ] + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_partitions.md b/docs/parsers/proc_partitions.md new file mode 100644 index 00000000..a5be19b3 --- /dev/null +++ b/docs/parsers/proc_partitions.md @@ -0,0 +1,100 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_partitions + +jc - JSON Convert `/proc/partitions` file parser + +Usage (cli): + + $ cat /proc/partitions | jc --proc + +or + + $ jc /proc/partitions + +or + + $ cat /proc/partitions | jc --proc-partitions + +Usage (module): + + import jc + result = jc.parse('proc', proc_partitions_file) + +or + + import jc + result = jc.parse('proc_partitions', proc_partitions_file) + +Schema: + + [ + { + "major": integer, + "minor": integer, + "num_blocks": integer, + "name": string + } + ] + +Examples: + + $ cat /proc/partitions | jc --proc -p + [ + { + "major": 7, + "minor": 0, + "num_blocks": 56896, + "name": "loop0" + }, + { + "major": 7, + "minor": 1, + "num_blocks": 56868, + "name": "loop1" + }, + ... + ] + + $ cat /proc/partitions | jc --proc-partitions -p -r + [ + { + "major": "7", + "minor": "0", + "num_blocks": "56896", + "name": "loop0" + }, + { + "major": "7", + "minor": "1", + "num_blocks": "56868", + "name": "loop1" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_fdinfo.md b/docs/parsers/proc_pid_fdinfo.md new file mode 100644 index 00000000..2d946fbc --- /dev/null +++ b/docs/parsers/proc_pid_fdinfo.md @@ -0,0 +1,127 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_fdinfo + +jc - JSON Convert `/proc//fdinfo/` file parser + +Usage (cli): + + $ cat /proc/1/fdinfo/5 | jc --proc + +or + + $ jc /proc/1/fdinfo/5 + +or + + $ cat /proc/1/fdinfo/5 | jc --proc-pid-fdinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_fdinfo_file) + +or + + import jc + result = jc.parse('proc_pid_fdinfo', proc_pid_fdinfo_file) + +Schema: + +Any unspecified fields are strings. + + { + "pos": integer, + "flags": integer, + "mnt_id": integer, + "scm_fds": string, + "ino": integer, + "lock": string, + "epoll": { + "tfd": integer, + "events": string, + "data": string, + "pos": integer, + "ino": string, + "sdev": string + }, + "inotify": { + "wd": integer, + "ino": string, + "sdev": string, + "mask": string, + "ignored_mask": string, + "fhandle-bytes": string, + "fhandle-type": string, + "f_handle": string + }, + "fanotify": { + "flags": string, + "event-flags": string, + "mnt_id": string, + "mflags": string, + "mask": string, + "ignored_mask": string, + "ino": string, + "sdev": string, + "fhandle-bytes": string, + "fhandle-type": string, + "f_handle": string + }, + "clockid": integer, + "ticks": integer, + "settime flags": integer, + "it_value": [ + integer + ], + "it_interval": [ + integer + ] + } + +Examples: + + $ cat /proc/1/fdinfo/5 | jc --proc -p + { + "pos": 0, + "flags": 2, + "mnt_id": 9, + "ino": 63107, + "clockid": 0, + "ticks": 0, + "settime flags": 1, + "it_value": [ + 0, + 49406829 + ], + "it_interval": [ + 1, + 0 + ] + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_io.md b/docs/parsers/proc_pid_io.md new file mode 100644 index 00000000..63884858 --- /dev/null +++ b/docs/parsers/proc_pid_io.md @@ -0,0 +1,74 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_io + +jc - JSON Convert `/proc//io` file parser + +Usage (cli): + + $ cat /proc/1/io | jc --proc + +or + + $ jc /proc/1/io + +or + + $ cat /proc/1/io | jc --proc-pid-io + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_io_file) + +or + + import jc + result = jc.parse('proc_pid_io', proc_pid_io_file) + +Schema: + +All values are integers. + + { + integer + } + +Examples: + + $ cat /proc/1/io | jc --proc -p + { + "rchar": 4699288382, + "wchar": 2931802997, + "syscr": 661897, + "syscw": 890910, + "read_bytes": 168468480, + "write_bytes": 27357184, + "cancelled_write_bytes": 16883712 + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_maps.md b/docs/parsers/proc_pid_maps.md new file mode 100644 index 00000000..7ca1557b --- /dev/null +++ b/docs/parsers/proc_pid_maps.md @@ -0,0 +1,125 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_maps + +jc - JSON Convert `/proc//maps` file parser + +Usage (cli): + + $ cat /proc/1/maps | jc --proc + +or + + $ jc /proc/1/maps + +or + + $ cat /proc/1/maps | jc --proc-pid-maps + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_maps_file) + +or + + import jc + result = jc.parse('proc_pid_maps', proc_pid_maps_file) + +Schema: + + [ + { + "start": string, + "end": string, + "perms": [ + string + ], + "offset": string, + "inode": integer, + "pathname": string, + "maj": string, + "min": string + } + ] + +Examples: + + $ cat /proc/1/maps | jc --proc -p + [ + { + "perms": [ + "read", + "private" + ], + "offset": "00000000", + "inode": 798126, + "pathname": "/usr/lib/systemd/systemd", + "start": "55a9e753c000", + "end": "55a9e7570000", + "maj": "fd", + "min": "00" + }, + { + "perms": [ + "read", + "execute", + "private" + ], + "offset": "00034000", + "inode": 798126, + "pathname": "/usr/lib/systemd/systemd", + "start": "55a9e7570000", + "end": "55a9e763a000", + "maj": "fd", + "min": "00" + }, + ... + ] + + $ cat /proc/1/maps | jc --proc-pid-maps -p -r + [ + { + "address": "55a9e753c000-55a9e7570000", + "perms": "r--p", + "offset": "00000000", + "dev": "fd:00", + "inode": "798126", + "pathname": "/usr/lib/systemd/systemd" + }, + { + "address": "55a9e7570000-55a9e763a000", + "perms": "r-xp", + "offset": "00034000", + "dev": "fd:00", + "inode": "798126", + "pathname": "/usr/lib/systemd/systemd" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_mountinfo.md b/docs/parsers/proc_pid_mountinfo.md new file mode 100644 index 00000000..69a10691 --- /dev/null +++ b/docs/parsers/proc_pid_mountinfo.md @@ -0,0 +1,170 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_mountinfo + +jc - JSON Convert `/proc//mountinfo` file parser + +Usage (cli): + + $ cat /proc/1/mountinfo | jc --proc + +or + + $ jc /proc/1/mountinfo + +or + + $ cat /proc/1/mountinfo | jc --proc-pid-mountinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_mountinfo_file) + +or + + import jc + result = jc.parse('proc_pid_mountinfo', proc_pid_mountinfo_file) + +Schema: + + [ + { + "mount_id": integer, + "parent_id": integer, + "maj": integer, + "min": integer, + "root": string, + "mount_point": string, + "mount_options": [ + string + ], + "optional_fields": { # [0] + "": integer # [1] + }, + "fs_type": string, + "mount_source": string, + "super_options": [ + integer # [2] + ], + "super_options_fields": { + "": string + } + } + ] + + [0] if empty, then private mount + [1] unbindable will always have a value of 0 + [2] integer conversions are attempted. Use --raw or raw=True for + original string values. + +Examples: + + $ cat /proc/1/mountinfo | jc --proc -p + [ + { + "mount_id": 24, + "parent_id": 30, + "maj": 0, + "min": 22, + "root": "/", + "mount_point": "/sys", + "mount_options": [ + "rw", + "nosuid", + "nodev", + "noexec", + "relatime" + ], + "optional_fields": { + "master": 1, + "shared": 7 + }, + "fs_type": "sysfs", + "mount_source": "sysfs", + "super_options": [ + "rw" + ] + }, + { + "mount_id": 25, + "parent_id": 30, + "maj": 0, + "min": 23, + "root": "/", + "mount_point": "/proc", + "mount_options": [ + "rw", + "nosuid", + "nodev", + "noexec", + "relatime" + ], + "optional_fields": { + "shared": 14 + }, + "fs_type": "proc", + "mount_source": "proc", + "super_options": [ + "rw" + ] + }, + ... + ] + + $ cat /proc/1/mountinfo | jc --proc-pid-mountinfo -p -r + [ + { + "mount_id": "24", + "parent_id": "30", + "maj": "0", + "min": "22", + "root": "/", + "mount_point": "/sys", + "mount_options": "rw,nosuid,nodev,noexec,relatime", + "optional_fields": "master:1 shared:7 ", + "fs_type": "sysfs", + "mount_source": "sysfs", + "super_options": "rw" + }, + { + "mount_id": "25", + "parent_id": "30", + "maj": "0", + "min": "23", + "root": "/", + "mount_point": "/proc", + "mount_options": "rw,nosuid,nodev,noexec,relatime", + "optional_fields": "shared:14 ", + "fs_type": "proc", + "mount_source": "proc", + "super_options": "rw" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_numa_maps.md b/docs/parsers/proc_pid_numa_maps.md new file mode 100644 index 00000000..fa9573c9 --- /dev/null +++ b/docs/parsers/proc_pid_numa_maps.md @@ -0,0 +1,126 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_numa\_maps + +jc - JSON Convert `/proc//numa_maps` file parser + +This parser will attempt to convert number values to integers. If that is +not desired, please use the `--raw` option (cli) or `raw=True` argument +(module). + +Usage (cli): + + $ cat /proc/1/numa_maps | jc --proc + +or + + $ jc /proc/1/numa_maps + +or + + $ cat /proc/1/numa_maps | jc --proc-pid-numa-maps + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_numa_maps_file) + +or + + import jc + result = jc.parse('proc_pid_numa_maps', proc_pid_numa_maps_file) + +Schema: + +Integer conversion for Key/value pairs will be attempted. + + [ + { + "address": string, + "policy": string, + "": string/integer, + "options": [ + string # [0] + ] + } + ] + + [0] remaining individual words that are not part of a key/value pair + +Examples: + + $ cat /proc/1/numa_maps | jc --proc -p + [ + { + "address": "7f53b5083000", + "policy": "default", + "file": "/usr/lib/x86_64-linux-gnu/ld-2.32.so", + "anon": 2, + "dirty": 2, + "N0": 2, + "kernelpagesize_kB": 4 + }, + { + "address": "7ffd1b23e000", + "policy": "default", + "anon": 258, + "dirty": 258, + "N0": 258, + "kernelpagesize_kB": 4, + "options": [ + "stack" + ] + }, + ... + ] + + $ cat /proc/1/numa_maps | jc --proc-pid-numa-maps -p -r + [ + { + "address": "7f53b5083000", + "policy": "default", + "file": "/usr/lib/x86_64-linux-gnu/ld-2.32.so", + "anon": "2", + "dirty": "2", + "N0": "2", + "kernelpagesize_kB": "4" + }, + { + "address": "7ffd1b23e000", + "policy": "default", + "anon": "258", + "dirty": "258", + "N0": "258", + "kernelpagesize_kB": "4", + "options": [ + "stack" + ] + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_smaps.md b/docs/parsers/proc_pid_smaps.md new file mode 100644 index 00000000..974d82f9 --- /dev/null +++ b/docs/parsers/proc_pid_smaps.md @@ -0,0 +1,191 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_smaps + +jc - JSON Convert `/proc//smaps` file parser + +Usage (cli): + + $ cat /proc/1/smaps | jc --proc + +or + + $ jc /proc/1/smaps + +or + + $ cat /proc/1/smaps | jc --proc-pid-smaps + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_smaps_file) + +or + + import jc + result = jc.parse('proc_pid_smaps', proc_pid_smaps_file) + +Schema: + + [ + { + "start": string, + "end": string, + "perms": [ + string + ], + "offset": string, + "maj": string, + "min": string, + "inode": integer, + "pathname": string, + "Size": integer, + "KernelPageSize": integer, + "MMUPageSize": integer, + "Rss": integer, + "Pss": integer, + "Shared_Clean": integer, + "Shared_Dirty": integer, + "Private_Clean": integer, + "Private_Dirty": integer, + "Referenced": integer, + "Anonymous": integer, + "LazyFree": integer, + "AnonHugePages": integer, + "ShmemPmdMapped": integer, + "FilePmdMapped": integer, + "Shared_Hugetlb": integer, + "Private_Hugetlb": integer, + "Swap": integer, + "SwapPss": integer, + "Locked": integer, + "THPeligible": integer, + "VmFlags": [ + string + ], + "VmFlags_pretty": [ + string + ] + } + ] + +Examples: + + $ cat /proc/1/smaps | jc --proc -p + [ + { + "start": "55a9e753c000", + "end": "55a9e7570000", + "perms": [ + "read", + "private" + ], + "offset": "00000000", + "maj": "fd", + "min": "00", + "inode": 798126, + "pathname": "/usr/lib/systemd/systemd", + "Size": 208, + "KernelPageSize": 4, + "MMUPageSize": 4, + "Rss": 208, + "Pss": 104, + "Shared_Clean": 208, + "Shared_Dirty": 0, + "Private_Clean": 0, + "Private_Dirty": 0, + "Referenced": 208, + "Anonymous": 0, + "LazyFree": 0, + "AnonHugePages": 0, + "ShmemPmdMapped": 0, + "FilePmdMapped": 0, + "Shared_Hugetlb": 0, + "Private_Hugetlb": 0, + "Swap": 0, + "SwapPss": 0, + "Locked": 0, + "THPeligible": 0, + "VmFlags": [ + "rd", + "mr", + "mw", + "me", + "dw", + "sd" + ], + "VmFlags_pretty": [ + "readable", + "may read", + "may write", + "may execute", + "disabled write to the mapped file", + "soft-dirty flag" + ] + }, + ... + ] + + $ cat /proc/1/smaps | jc --proc-pid-smaps -p -r + [ + { + "start": "55a9e753c000", + "end": "55a9e7570000", + "perms": "r--p", + "offset": "00000000", + "maj": "fd", + "min": "00", + "inode": "798126", + "pathname": "/usr/lib/systemd/systemd", + "Size": "208 kB", + "KernelPageSize": "4 kB", + "MMUPageSize": "4 kB", + "Rss": "208 kB", + "Pss": "104 kB", + "Shared_Clean": "208 kB", + "Shared_Dirty": "0 kB", + "Private_Clean": "0 kB", + "Private_Dirty": "0 kB", + "Referenced": "208 kB", + "Anonymous": "0 kB", + "LazyFree": "0 kB", + "AnonHugePages": "0 kB", + "ShmemPmdMapped": "0 kB", + "FilePmdMapped": "0 kB", + "Shared_Hugetlb": "0 kB", + "Private_Hugetlb": "0 kB", + "Swap": "0 kB", + "SwapPss": "0 kB", + "Locked": "0 kB", + "THPeligible": "0", + "VmFlags": "rd mr mw me dw sd" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_stat.md b/docs/parsers/proc_pid_stat.md new file mode 100644 index 00000000..c4fb011d --- /dev/null +++ b/docs/parsers/proc_pid_stat.md @@ -0,0 +1,226 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_stat + +jc - JSON Convert `/proc//stat` file parser + +Usage (cli): + + $ cat /proc/1/stat | jc --proc + +or + + $ jc /proc/1/stat + +or + + $ cat /proc/1/stat | jc --proc-pid-stat + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_stat_file) + +or + + import jc + result = jc.parse('proc_pid_stat', proc_pid_stat_file) + +Schema: + + { + "pid": integer, + "comm": string, + "state": string, + "state_pretty": string, + "ppid": integer, + "pgrp": integer, + "session": integer, + "tty_nr": integer, + "tpg_id": integer, + "flags": integer, + "minflt": integer, + "cminflt": integer, + "majflt": integer, + "cmajflt": integer, + "utime": integer, + "stime": integer, + "cutime": integer, + "cstime": integer, + "priority": integer, + "nice": integer, + "num_threads": integer, + "itrealvalue": integer, + "starttime": integer, + "vsize": integer, + "rss": integer, + "rsslim": integer, + "startcode": integer, + "endcode": integer, + "startstack": integer, + "kstkeep": integer, + "kstkeip": integer, + "signal": integer, + "blocked": integer, + "sigignore": integer, + "sigcatch": integer, + "wchan": integer, + "nswap": integer, + "cnswap": integer, + "exit_signal": integer, + "processor": integer, + "rt_priority": integer, + "policy": integer, + "delayacct_blkio_ticks": integer, + "guest_time": integer, + "cguest_time": integer, + "start_data": integer, + "end_data": integer, + "start_brk": integer, + "arg_start": integer, + "arg_end": integer, + "env_start": integer, + "env_end": integer, + "exit_code": integer, + } + +Examples: + + $ cat /proc/1/stat | jc --proc -p + { + "pid": 1, + "comm": "systemd", + "state": "S", + "ppid": 0, + "pgrp": 1, + "session": 1, + "tty_nr": 0, + "tpg_id": -1, + "flags": 4194560, + "minflt": 23478, + "cminflt": 350218, + "majflt": 99, + "cmajflt": 472, + "utime": 107, + "stime": 461, + "cutime": 2672, + "cstime": 4402, + "priority": 20, + "nice": 0, + "num_threads": 1, + "itrealvalue": 0, + "starttime": 128, + "vsize": 174063616, + "rss": 3313, + "rsslim": 18446744073709551615, + "startcode": 94188219072512, + "endcode": 94188219899461, + "startstack": 140725059845296, + "kstkeep": 0, + "kstkeip": 0, + "signal": 0, + "blocked": 671173123, + "sigignore": 4096, + "sigcatch": 1260, + "wchan": 1, + "nswap": 0, + "cnswap": 0, + "exit_signal": 17, + "processor": 0, + "rt_priority": 0, + "policy": 0, + "delayacct_blkio_ticks": 18, + "guest_time": 0, + "cguest_time": 0, + "start_data": 94188220274448, + "end_data": 94188220555504, + "start_brk": 94188243599360, + "arg_start": 140725059845923, + "arg_end": 140725059845934, + "env_start": 140725059845934, + "env_end": 140725059846125, + "exit_code": 0, + "state_pretty": "Sleeping in an interruptible wait" + } + + $ cat /proc/1/stat | jc --proc-pid-stat -p -r + { + "pid": 1, + "comm": "systemd", + "state": "S", + "ppid": 0, + "pgrp": 1, + "session": 1, + "tty_nr": 0, + "tpg_id": -1, + "flags": 4194560, + "minflt": 23478, + "cminflt": 350218, + "majflt": 99, + "cmajflt": 472, + "utime": 107, + "stime": 461, + "cutime": 2672, + "cstime": 4402, + "priority": 20, + "nice": 0, + "num_threads": 1, + "itrealvalue": 0, + "starttime": 128, + "vsize": 174063616, + "rss": 3313, + "rsslim": 18446744073709551615, + "startcode": 94188219072512, + "endcode": 94188219899461, + "startstack": 140725059845296, + "kstkeep": 0, + "kstkeip": 0, + "signal": 0, + "blocked": 671173123, + "sigignore": 4096, + "sigcatch": 1260, + "wchan": 1, + "nswap": 0, + "cnswap": 0, + "exit_signal": 17, + "processor": 0, + "rt_priority": 0, + "policy": 0, + "delayacct_blkio_ticks": 18, + "guest_time": 0, + "cguest_time": 0, + "start_data": 94188220274448, + "end_data": 94188220555504, + "start_brk": 94188243599360, + "arg_start": 140725059845923, + "arg_end": 140725059845934, + "env_start": 140725059845934, + "env_end": 140725059846125, + "exit_code": 0 + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_statm.md b/docs/parsers/proc_pid_statm.md new file mode 100644 index 00000000..766830f5 --- /dev/null +++ b/docs/parsers/proc_pid_statm.md @@ -0,0 +1,78 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_statm + +jc - JSON Convert `/proc//statm` file parser + +Usage (cli): + + $ cat /proc/1/statm | jc --proc + +or + + $ jc /proc/1/statm + +or + + $ cat /proc/1/statm | jc --proc-pid-statm + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_statm_file) + +or + + import jc + result = jc.parse('proc_pid_statm', proc_pid_statm_file) + +Schema: + + { + "size": integer, + "resident": integer, + "shared": integer, + "text": integer, + "lib": integer, + "data": integer, + "dt": integer + } + +Examples: + + $ cat /proc/1/statm | jc --proc -p + { + "size": 42496, + "resident": 3313, + "shared": 2169, + "text": 202, + "lib": 0, + "data": 5180, + "dt": 0 + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_pid_status.md b/docs/parsers/proc_pid_status.md new file mode 100644 index 00000000..6b4fb422 --- /dev/null +++ b/docs/parsers/proc_pid_status.md @@ -0,0 +1,295 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_pid\_status + +jc - JSON Convert `/proc//status` file parser + +Usage (cli): + + $ cat /proc/1/status | jc --proc + +or + + $ jc /proc/1/status + +or + + $ cat /proc/1/status | jc --proc-pid-status + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_status_file) + +or + + import jc + result = jc.parse('proc_pid_status', proc_pid_status_file) + +Schema: + + { + "Name": string, + "Umask": string, + "State": string, + "State_pretty": string, + "Tgid": integer, + "Ngid": integer, + "Pid": integer, + "PPid": integer, + "TracerPid": integer, + "Uid": [ + integer + ], + "Gid": [ + integer + ], + "FDSize": integer, + "Groups": string, + "NStgid": integer, + "NSpid": integer, + "NSpgid": integer, + "NSsid": integer, + "VmPeak": integer, + "VmSize": integer, + "VmLck": integer, + "VmPin": integer, + "VmHWM": integer, + "VmRSS": integer, + "RssAnon": integer, + "RssFile": integer, + "RssShmem": integer, + "VmData": integer, + "VmStk": integer, + "VmExe": integer, + "VmLib": integer, + "VmPTE": integer, + "VmSwap": integer, + "HugetlbPages": integer, + "CoreDumping": integer, + "THP_enabled": integer, + "Threads": integer, + "SigQ": string, + "SigQ_current": integer, + "SigQ_limit": integer, + "SigPnd": string, + "ShdPnd": string, + "SigBlk": string, + "SigIgn": string, + "SigCgt": string, + "CapInh": string, + "CapPrm": string, + "CapEff": string, + "CapBnd": string, + "CapAmb": string, + "NoNewPrivs": integer, + "Seccomp": integer, + "Speculation_Store_Bypass": string, + "Cpus_allowed": [ + string + ], + "Cpus_allowed_list": string, + "Mems_allowed": [ + string + ], + "Mems_allowed_list": string, + "voluntary_ctxt_switches": integer, + "nonvoluntary_ctxt_switches": integer + } + +Examples: + + $ cat /proc/1/status | jc --proc -p + { + "Name": "systemd", + "Umask": "0000", + "State": "S", + "Tgid": 1, + "Ngid": 0, + "Pid": 1, + "PPid": 0, + "TracerPid": 0, + "Uid": [ + 0, + 0, + 0, + 0 + ], + "Gid": [ + 0, + 0, + 0, + 0 + ], + "FDSize": 128, + "Groups": "", + "NStgid": 1, + "NSpid": 1, + "NSpgid": 1, + "NSsid": 1, + "VmPeak": 235380, + "VmSize": 169984, + "VmLck": 0, + "VmPin": 0, + "VmHWM": 13252, + "VmRSS": 13252, + "RssAnon": 4576, + "RssFile": 8676, + "RssShmem": 0, + "VmData": 19688, + "VmStk": 1032, + "VmExe": 808, + "VmLib": 9772, + "VmPTE": 96, + "VmSwap": 0, + "HugetlbPages": 0, + "CoreDumping": 0, + "THP_enabled": 1, + "Threads": 1, + "SigQ": "0/15245", + "SigPnd": "0000000000000000", + "ShdPnd": "0000000000000000", + "SigBlk": "7be3c0fe28014a03", + "SigIgn": "0000000000001000", + "SigCgt": "00000001800004ec", + "CapInh": "0000000000000000", + "CapPrm": "000000ffffffffff", + "CapEff": "000000ffffffffff", + "CapBnd": "000000ffffffffff", + "CapAmb": "0000000000000000", + "NoNewPrivs": 0, + "Seccomp": 0, + "Speculation_Store_Bypass": "thread vulnerable", + "Cpus_allowed": [ + "ffffffff", + "ffffffff", + "ffffffff", + "ffffffff" + ], + "Cpus_allowed_list": "0-127", + "Mems_allowed": [ + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000001" + ], + "Mems_allowed_list": "0", + "voluntary_ctxt_switches": 1856, + "nonvoluntary_ctxt_switches": 6620, + "State_pretty": "sleeping", + "SigQ_current": 0, + "SigQ_limit": 15245 + } + + $ cat /proc/1/status | jc --proc-pid-status -p -r + { + "Name": "systemd", + "Umask": "0000", + "State": "S (sleeping)", + "Tgid": "1", + "Ngid": "0", + "Pid": "1", + "PPid": "0", + "TracerPid": "0", + "Uid": "0\t0\t0\t0", + "Gid": "0\t0\t0\t0", + "FDSize": "128", + "Groups": "", + "NStgid": "1", + "NSpid": "1", + "NSpgid": "1", + "NSsid": "1", + "VmPeak": "235380 kB", + "VmSize": "169984 kB", + "VmLck": "0 kB", + "VmPin": "0 kB", + "VmHWM": "13252 kB", + "VmRSS": "13252 kB", + "RssAnon": "4576 kB", + "RssFile": "8676 kB", + "RssShmem": "0 kB", + "VmData": "19688 kB", + "VmStk": "1032 kB", + "VmExe": "808 kB", + "VmLib": "9772 kB", + "VmPTE": "96 kB", + "VmSwap": "0 kB", + "HugetlbPages": "0 kB", + "CoreDumping": "0", + "THP_enabled": "1", + "Threads": "1", + "SigQ": "0/15245", + "SigPnd": "0000000000000000", + "ShdPnd": "0000000000000000", + "SigBlk": "7be3c0fe28014a03", + "SigIgn": "0000000000001000", + "SigCgt": "00000001800004ec", + "CapInh": "0000000000000000", + "CapPrm": "000000ffffffffff", + "CapEff": "000000ffffffffff", + "CapBnd": "000000ffffffffff", + "CapAmb": "0000000000000000", + "NoNewPrivs": "0", + "Seccomp": "0", + "Speculation_Store_Bypass": "thread vulnerable", + "Cpus_allowed": "ffffffff,ffffffff,ffffffff,ffffffff", + "Cpus_allowed_list": "0-127", + "Mems_allowed": "00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001", + "Mems_allowed_list": "0", + "voluntary_ctxt_switches": "1856", + "nonvoluntary_ctxt_switches": "6620" + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_slabinfo.md b/docs/parsers/proc_slabinfo.md new file mode 100644 index 00000000..736a5576 --- /dev/null +++ b/docs/parsers/proc_slabinfo.md @@ -0,0 +1,100 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_slabinfo + +jc - JSON Convert `/proc/slabinfo` file parser + +Usage (cli): + + $ cat /proc/slabinfo | jc --proc + +or + + $ jc /proc/slabinfo + +or + + $ cat /proc/slabinfo | jc --proc-slabinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_slabinfo_file) + +or + + import jc + result = jc.parse('proc_slabinfo', proc_slabinfo_file) + +Schema: + + [ + { + "name": string, + "active_objs": integer, + "num_objs": integer, + "obj_size": integer, + "obj_per_slab": integer, + "pages_per_slab": integer, + "tunables": { + "limit": integer, + "batch_count": integer, + "shared_factor": integer + }, + "slabdata": { + "active_slabs": integer, + "num_slabs": integer, + "shared_avail": integer + } + ] + +Examples: + + $ cat /proc/slabinfo | jc --proc -p + [ + { + "name": "ext4_groupinfo_4k", + "active_objs": 224, + "num_objs": 224, + "obj_size": 144, + "obj_per_slab": 56, + "pages_per_slab": 2, + "tunables": { + "limit": 0, + "batch_count": 0, + "shared_factor": 0 + }, + "slabdata": { + "active_slabs": 4, + "num_slabs": 4, + "shared_avail": 0 + } + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_softirqs.md b/docs/parsers/proc_softirqs.md new file mode 100644 index 00000000..150b5a73 --- /dev/null +++ b/docs/parsers/proc_softirqs.md @@ -0,0 +1,85 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_softirqs + +jc - JSON Convert `/proc/softirqs` file parser + +Usage (cli): + + $ cat /proc/softirqs | jc --proc + +or + + $ jc /proc/softirqs + +or + + $ cat /proc/softirqs | jc --proc-softirqs + +Usage (module): + + import jc + result = jc.parse('proc', proc_softirqs_file) + +or + + import jc + result = jc.parse('proc_softirqs', proc_softirqs_file) + +Schema: + + [ + { + "counter": string, + "CPU": integer, + } + ] + +Examples: + + $ cat /proc/softirqs | jc --proc -p + [ + { + "counter": "HI", + "CPU0": 1, + "CPU1": 34056, + "CPU2": 0, + "CPU3": 0, + "CPU4": 0 + }, + { + "counter": "TIMER", + "CPU0": 322970, + "CPU1": 888166, + "CPU2": 0, + "CPU3": 0, + "CPU4": 0 + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_stat.md b/docs/parsers/proc_stat.md new file mode 100644 index 00000000..1e7dc002 --- /dev/null +++ b/docs/parsers/proc_stat.md @@ -0,0 +1,161 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_stat + +jc - JSON Convert `/proc/stat` file parser + +Usage (cli): + + $ cat /proc/stat | jc --proc + +or + + $ jc /proc/stat + +or + + $ cat /proc/stat | jc --proc-stat + +Usage (module): + + import jc + result = jc.parse('proc', proc_stat_file) + +or + + import jc + result = jc.parse('proc_stat', proc_stat_file) + +Schema: + + { + "cpu": { + "user": integer, + "nice": integer, + "system": integer, + "idle": integer, + "iowait": integer, + "irq": integer, + "softirq": integer, + "steal": integer, + "guest": integer, + "guest_nice": integer + }, + "cpu": { + "user": integer, + "nice": integer, + "system": integer, + "idle": integer, + "iowait": integer, + "irq": integer, + "softirq": integer, + "steal": integer, + "guest": integer, + "guest_nice": integer + }, + "interrupts": [ + integer + ], + "context_switches": integer, + "boot_time": integer, + "processes": integer, + "processes_running": integer, + "processes_blocked": integer, + "softirq": [ + integer + ] + } + +Examples: + + $ cat /proc/stat | jc --proc -p + { + "cpu": { + "user": 6002, + "nice": 152, + "system": 8398, + "idle": 3444436, + "iowait": 448, + "irq": 0, + "softirq": 1174, + "steal": 0, + "guest": 0, + "guest_nice": 0 + }, + "cpu0": { + "user": 2784, + "nice": 137, + "system": 4367, + "idle": 1732802, + "iowait": 225, + "irq": 0, + "softirq": 221, + "steal": 0, + "guest": 0, + "guest_nice": 0 + }, + "cpu1": { + "user": 3218, + "nice": 15, + "system": 4031, + "idle": 1711634, + "iowait": 223, + "irq": 0, + "softirq": 953, + "steal": 0, + "guest": 0, + "guest_nice": 0 + }, + "interrupts": [ + 2496709, + 18, + 73, + 0, + 0, + ... + ], + "context_switches": 4622716, + "boot_time": 1662154781, + "processes": 9831, + "processes_running": 1, + "processes_blocked": 0, + "softirq": [ + 3478985, + 35230, + 1252057, + 3467, + 128583, + 51014, + 0, + 171199, + 1241297, + 0, + 596138 + ] + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_swaps.md b/docs/parsers/proc_swaps.md new file mode 100644 index 00000000..8b42eaae --- /dev/null +++ b/docs/parsers/proc_swaps.md @@ -0,0 +1,91 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_swaps + +jc - JSON Convert `/proc/swaps` file parser + +Usage (cli): + + $ cat /proc/swaps | jc --proc + +or + + $ jc /proc/swaps + +or + + $ cat /proc/swaps | jc --proc-swaps + +Usage (module): + + import jc + result = jc.parse('proc', proc_swaps_file) + +or + + import jc + result = jc.parse('proc_swaps', proc_swaps_file) + +Schema: + + [ + { + "filename": string, + "type": string, + "size": integer, + "used": integer, + "priority": integer + } + ] + +Examples: + + $ cat /proc/swaps | jc --proc -p + [ + { + "filename": "/swap.img", + "type": "file", + "size": 3996668, + "used": 0, + "priority": -2 + }, + ... + ] + + $ cat /proc/swaps | jc --proc-swaps -p -r + [ + { + "filename": "/swap.img", + "type": "file", + "size": "3996668", + "used": "0", + "priority": "-2" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_uptime.md b/docs/parsers/proc_uptime.md new file mode 100644 index 00000000..47fadf70 --- /dev/null +++ b/docs/parsers/proc_uptime.md @@ -0,0 +1,68 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_uptime + +jc - JSON Convert `/proc/uptime` file parser + +Usage (cli): + + $ cat /proc/uptime | jc --proc + +or + + $ jc /proc/uptime + +or + + $ cat /proc/uptime | jc --proc-uptime + +Usage (module): + + import jc + result = jc.parse('proc', proc_uptime_file) + +or + + import jc + result = jc.parse('proc_uptime', proc_uptime_file) + +Schema: + + { + "up_time": float, + "idle_time": float + } + +Examples: + + $ cat /proc/uptime | jc --proc -p + { + "up_time": 46901.13, + "idle_time": 46856.66 + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_version.md b/docs/parsers/proc_version.md new file mode 100644 index 00000000..5234e916 --- /dev/null +++ b/docs/parsers/proc_version.md @@ -0,0 +1,79 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_version + +jc - JSON Convert `/proc/version` file parser + +> Note: This parser will parse `/proc/version` files that follow the +> common format used by most popular linux distributions. + +Usage (cli): + + $ cat /proc/version | jc --proc + +or + + $ jc /proc/version + +or + + $ cat /proc/version | jc --proc-version + +Usage (module): + + import jc + result = jc.parse('proc', proc_version_file) + +or + + import jc + result = jc.parse('proc_version', proc_version_file) + +Schema: + + { + "version": string, + "email": string, + "gcc": string, + "build": string, + "flags": string/null, + "date": string + } + +Examples: + + $ cat /proc/version | jc --proc -p + { + "version": "5.8.0-63-generic", + "email": "buildd@lcy01-amd64-028", + "gcc": "gcc (Ubuntu 10.3.0-1ubuntu1~20.10) 10.3.0, GNU ld (GNU Binutils for Ubuntu) 2.35.1", + "build": "#71-Ubuntu", + "flags": "SMP", + "date": "Tue Jul 13 15:59:12 UTC 2021" + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_vmallocinfo.md b/docs/parsers/proc_vmallocinfo.md new file mode 100644 index 00000000..3bbfb731 --- /dev/null +++ b/docs/parsers/proc_vmallocinfo.md @@ -0,0 +1,126 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_vmallocinfo + +jc - JSON Convert `/proc/vmallocinfo` file parser + +This parser will attempt to convert number values to integers. If that is +not desired, please use the `--raw` option (cli) or `raw=True` argument +(module). + +Usage (cli): + + $ cat /proc/vmallocinfo | jc --proc + +or + + $ jc /proc/vmallocinfo + +or + + $ cat /proc/vmallocinfo | jc --proc-vmallocinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_vmallocinfo_file) + +or + + import jc + result = jc.parse('proc_vmallocinfo', proc_vmallocinfo_file) + +Schema: + + [ + { + "start": string, + "end": string, + "size": integer, + "caller": string, + "options": [ + string + ], + "phys": string + "pages": integer, + "N": integer + } + ] + +Examples: + + $ cat /proc/vmallocinfo | jc --proc -p + [ + { + "start": "0xffffb3c1c0000000", + "end": "0xffffb3c1c0005000", + "size": 20480, + "caller": "map_irq_stack+0x93/0xe0", + "options": [ + "vmap" + ], + "phys": "0x00000000bfefe000" + }, + { + "start": "0xffffb3c1c0005000", + "end": "0xffffb3c1c0007000", + "size": 8192, + "caller": "acpi_os_map_iomem+0x1ac/0x1c0", + "options": [ + "ioremap" + ], + "phys": "0x00000000bfeff000" + }, + ... + ] + + $ cat /proc/vmallocinfo | jc --proc-vmallocinfo -p -r + [ + { + "start": "0xffffb3c1c0000000", + "end": "0xffffb3c1c0005000", + "size": "20480", + "caller": "map_irq_stack+0x93/0xe0", + "options": [ + "vmap" + ], + "phys": "0x00000000bfefe000" + }, + { + "start": "0xffffb3c1c0005000", + "end": "0xffffb3c1c0007000", + "size": "8192", + "caller": "acpi_os_map_iomem+0x1ac/0x1c0", + "options": [ + "ioremap" + ], + "phys": "0x00000000bfeff000" + }, + ... + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_vmstat.md b/docs/parsers/proc_vmstat.md new file mode 100644 index 00000000..d1e6a098 --- /dev/null +++ b/docs/parsers/proc_vmstat.md @@ -0,0 +1,84 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_vmstat + +jc - JSON Convert `/proc/vmstat` file parser + +Usage (cli): + + $ cat /proc/vmstat | jc --proc + +or + + $ jc /proc/vmstat + +or + + $ cat /proc/vmstat | jc --proc-vmstat + +Usage (module): + + import jc + result = jc.parse('proc', proc_vmstat_file) + +or + + import jc + result = jc.parse('proc_vmstat', proc_vmstat_file) + +Schema: + +All values are integers. + + { + integer + } + +Examples: + + $ cat /proc/vmstat | jc --proc -p + { + "nr_free_pages": 615337, + "nr_zone_inactive_anon": 39, + "nr_zone_active_anon": 34838, + "nr_zone_inactive_file": 104036, + "nr_zone_active_file": 130601, + "nr_zone_unevictable": 4897, + "nr_zone_write_pending": 45, + "nr_mlock": 4897, + "nr_page_table_pages": 548, + "nr_kernel_stack": 5984, + "nr_bounce": 0, + "nr_zspages": 0, + "nr_free_cma": 0, + "numa_hit": 1910597, + "numa_miss": 0, + "numa_foreign": 0, + ... + } + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + Dictionary. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/docs/parsers/proc_zoneinfo.md b/docs/parsers/proc_zoneinfo.md new file mode 100644 index 00000000..e21faf8a --- /dev/null +++ b/docs/parsers/proc_zoneinfo.md @@ -0,0 +1,334 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.proc\_zoneinfo + +jc - JSON Convert `/proc/zoneinfo` file parser + +Usage (cli): + + $ cat /proc/zoneinfo | jc --proc + +or + + $ jc /proc/zoneinfo + +or + + $ cat /proc/zoneinfo | jc --proc-zoneinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_zoneinfo_file) + +or + + import jc + result = jc.parse('proc_zoneinfo', proc_zoneinfo_file) + +Schema: + +All values are integers. + + [ + { + "node": integer, + "": { + "pages": { + "free": integer, + "min": integer, + "low": integer, + "high": integer, + "spanned": integer, + "present": integer, + "managed": integer, + "protection": [ + integer + ], + "": integer + }, + "pagesets": [ + { + "cpu": integer, + "count": integer, + "high": integer, + "batch": integer, + "vm stats threshold": integer, + "": integer + } + ] + }, + "": integer, # [0] + } + ] + + [0] per-node stats + +Examples: + + $ cat /proc/zoneinfo | jc --proc -p + [ + { + "node": 0, + "DMA": { + "pages": { + "free": 3832, + "min": 68, + "low": 85, + "high": 102, + "spanned": 4095, + "present": 3997, + "managed": 3976, + "protection": [ + 0, + 2871, + 3795, + 3795, + 3795 + ], + "nr_free_pages": 3832, + "nr_zone_inactive_anon": 0, + "nr_zone_active_anon": 0, + "nr_zone_inactive_file": 0, + "nr_zone_active_file": 0, + "nr_zone_unevictable": 0, + "nr_zone_write_pending": 0, + "nr_mlock": 0, + "nr_page_table_pages": 0, + "nr_kernel_stack": 0, + "nr_bounce": 0, + "nr_zspages": 0, + "nr_free_cma": 0, + "numa_hit": 3, + "numa_miss": 0, + "numa_foreign": 0, + "numa_interleave": 1, + "numa_local": 3, + "numa_other": 0 + }, + "pagesets": [ + { + "cpu": 0, + "count": 0, + "high": 0, + "batch": 1, + "vm stats threshold": 4 + }, + { + "cpu": 1, + "count": 0, + "high": 0, + "batch": 1, + "vm stats threshold": 4, + "node_unreclaimable": 0, + "start_pfn": 1 + } + ] + }, + "nr_inactive_anon": 39, + "nr_active_anon": 34839, + "nr_inactive_file": 104172, + "nr_active_file": 130748, + "nr_unevictable": 4897, + "nr_slab_reclaimable": 49017, + "nr_slab_unreclaimable": 26177, + "nr_isolated_anon": 0, + "nr_isolated_file": 0, + "workingset_nodes": 0, + "workingset_refault": 0, + "workingset_activate": 0, + "workingset_restore": 0, + "workingset_nodereclaim": 0, + "nr_anon_pages": 40299, + "nr_mapped": 25140, + "nr_file_pages": 234396, + "nr_dirty": 0, + "nr_writeback": 0, + "nr_writeback_temp": 0, + "nr_shmem": 395, + "nr_shmem_hugepages": 0, + "nr_shmem_pmdmapped": 0, + "nr_file_hugepages": 0, + "nr_file_pmdmapped": 0, + "nr_anon_transparent_hugepages": 0, + "nr_vmscan_write": 0, + "nr_vmscan_immediate_reclaim": 0, + "nr_dirtied": 168223, + "nr_written": 144616, + "nr_kernel_misc_reclaimable": 0, + "nr_foll_pin_acquired": 0, + "nr_foll_pin_released": 0, + "DMA32": { + "pages": { + "free": 606010, + "min": 12729, + "low": 15911, + "high": 19093, + "spanned": 1044480, + "present": 782288, + "managed": 758708, + "protection": [ + 0, + 0, + 924, + 924, + 924 + ], + "nr_free_pages": 606010, + "nr_zone_inactive_anon": 4, + "nr_zone_active_anon": 17380, + "nr_zone_inactive_file": 41785, + "nr_zone_active_file": 64545, + "nr_zone_unevictable": 5, + "nr_zone_write_pending": 0, + "nr_mlock": 5, + "nr_page_table_pages": 101, + "nr_kernel_stack": 224, + "nr_bounce": 0, + "nr_zspages": 0, + "nr_free_cma": 0, + "numa_hit": 576595, + "numa_miss": 0, + "numa_foreign": 0, + "numa_interleave": 2, + "numa_local": 576595, + "numa_other": 0 + }, + "pagesets": [ + { + "cpu": 0, + "count": 253, + "high": 378, + "batch": 63, + "vm stats threshold": 24 + }, + { + "cpu": 1, + "count": 243, + "high": 378, + "batch": 63, + "vm stats threshold": 24, + "node_unreclaimable": 0, + "start_pfn": 4096 + } + ] + }, + "Normal": { + "pages": { + "free": 5113, + "min": 4097, + "low": 5121, + "high": 6145, + "spanned": 262144, + "present": 262144, + "managed": 236634, + "protection": [ + 0, + 0, + 0, + 0, + 0 + ], + "nr_free_pages": 5113, + "nr_zone_inactive_anon": 35, + "nr_zone_active_anon": 17459, + "nr_zone_inactive_file": 62387, + "nr_zone_active_file": 66203, + "nr_zone_unevictable": 4892, + "nr_zone_write_pending": 0, + "nr_mlock": 4892, + "nr_page_table_pages": 447, + "nr_kernel_stack": 5760, + "nr_bounce": 0, + "nr_zspages": 0, + "nr_free_cma": 0, + "numa_hit": 1338441, + "numa_miss": 0, + "numa_foreign": 0, + "numa_interleave": 66037, + "numa_local": 1338441, + "numa_other": 0 + }, + "pagesets": [ + { + "cpu": 0, + "count": 340, + "high": 378, + "batch": 63, + "vm stats threshold": 16 + }, + { + "cpu": 1, + "count": 174, + "high": 378, + "batch": 63, + "vm stats threshold": 16, + "node_unreclaimable": 0, + "start_pfn": 1048576 + } + ] + }, + "Movable": { + "pages": { + "free": 0, + "min": 0, + "low": 0, + "high": 0, + "spanned": 0, + "present": 0, + "managed": 0, + "protection": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "Device": { + "pages": { + "free": 0, + "min": 0, + "low": 0, + "high": 0, + "spanned": 0, + "present": 0, + "managed": 0, + "protection": [ + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + ] + + + +### parse + +```python +def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/jc/cli.py b/jc/cli.py index a53ad99d..fb2ecbb2 100644 --- a/jc/cli.py +++ b/jc/cli.py @@ -11,8 +11,9 @@ import signal import shlex import subprocess from .lib import (__version__, parser_info, all_parser_info, parsers, - _get_parser, _parser_is_streaming, standard_parser_mod_list, - plugin_parser_mod_list, streaming_parser_mod_list) + _get_parser, _parser_is_streaming, parser_mod_list, + standard_parser_mod_list, plugin_parser_mod_list, + streaming_parser_mod_list) from . import utils from .cli_data import long_options_map, new_pygments_colors, old_pygments_colors from .shell_completions import bash_completion, zsh_completion @@ -120,11 +121,11 @@ def parser_shortname(parser_arg): return parser_arg[2:] -def parsers_text(indent=0, pad=0): +def parsers_text(indent=0, pad=0, show_hidden=False): """Return the argument and description information from each parser""" ptext = '' padding_char = ' ' - for p in all_parser_info(): + for p in all_parser_info(show_hidden=show_hidden): parser_arg = p.get('argument', 'UNKNOWN') padding = pad - len(parser_arg) parser_desc = p.get('description', 'No description available.') @@ -164,28 +165,37 @@ def about_jc(): 'license': info.license, 'python_version': '.'.join((str(sys.version_info.major), str(sys.version_info.minor), str(sys.version_info.micro))), 'python_path': sys.executable, - 'parser_count': len(all_parser_info()), + 'parser_count': len(parser_mod_list()), 'standard_parser_count': len(standard_parser_mod_list()), 'streaming_parser_count': len(streaming_parser_mod_list()), 'plugin_parser_count': len(plugin_parser_mod_list()), - 'parsers': all_parser_info() + 'parsers': all_parser_info(show_hidden=True) } -def helptext(): +def helptext(show_hidden=False): """Return the help text with the list of parsers""" - parsers_string = parsers_text(indent=4, pad=20) + parsers_string = parsers_text(indent=4, pad=20, show_hidden=show_hidden) options_string = options_text(indent=4, pad=20) helptext_string = f'''\ -jc converts the output of many commands and file-types to JSON or YAML +jc converts the output of many commands, file-types, and strings to JSON or YAML Usage: - COMMAND | jc PARSER [OPTIONS] - or magic syntax: + Standard syntax: - jc [OPTIONS] COMMAND + COMMAND | jc [OPTIONS] PARSER + + cat FILE | jc [OPTIONS] PARSER + + echo STRING | jc [OPTIONS] PARSER + + Magic syntax: + + jc [OPTIONS] COMMAND + + jc [OPTIONS] /proc/ Parsers: {parsers_string} @@ -193,19 +203,24 @@ Options: {options_string} Examples: Standard Syntax: - $ dig www.google.com | jc --dig --pretty + $ dig www.google.com | jc --pretty --dig + $ cat /proc/meminfo | jc --pretty --proc Magic Syntax: $ jc --pretty dig www.google.com + $ jc --pretty /proc/meminfo Parser Documentation: $ jc --help --dig + + Show Hidden Parsers: + $ jc -hh ''' return helptext_string -def help_doc(options): +def help_doc(options, show_hidden=False): """ Returns the parser documentation if a parser is found in the arguments, otherwise the general help text is returned. @@ -228,7 +243,7 @@ def help_doc(options): utils._safe_pager(doc_text) return - utils._safe_print(helptext()) + utils._safe_print(helptext(show_hidden=show_hidden)) return @@ -419,6 +434,11 @@ def magic_parser(args): ) +def open_text_file(path_string): + with open(path_string, 'r') as f: + return f.read() + + def run_user_command(command): """ Use subprocess to run the user's command. Returns the STDOUT, STDERR, @@ -455,6 +475,10 @@ def add_metadata_to(list_or_dict, does not already exist, it will be created with the metadata fields. If the _jc_meta field already exists, the metadata fields will be added to the existing object. + + In the case of an empty list (no data), a dictionary with a _jc_meta + object will be added to the list. This way you always get metadata, + even if there are no results. """ run_timestamp = runtime.timestamp() @@ -474,6 +498,9 @@ def add_metadata_to(list_or_dict, list_or_dict['_jc_meta'].update(meta_obj) elif isinstance(list_or_dict, list): + if not list_or_dict: + list_or_dict.append({}) + for item in list_or_dict: if '_jc_meta' not in item: item['_jc_meta'] = {} @@ -525,6 +552,7 @@ def main(): force_color = 'C' in options mono = ('m' in options or bool(os.getenv('NO_COLOR'))) and not force_color help_me = 'h' in options + verbose_help = options.count('h') > 1 pretty = 'p' in options quiet = 'q' in options ignore_exceptions = options.count('q') > 1 @@ -552,7 +580,7 @@ def main(): sys.exit(0) if help_me: - help_doc(sys.argv) + help_doc(sys.argv, show_hidden=verbose_help) sys.exit(0) if version_info: @@ -569,13 +597,38 @@ def main(): # if magic syntax used, try to run the command and error if it's not found, etc. magic_stdout, magic_stderr, magic_exit_code = None, None, 0 + run_command_str = '' if run_command: try: run_command_str = shlex.join(run_command) # python 3.8+ except AttributeError: run_command_str = ' '.join(run_command) # older python versions - if valid_command: + if run_command_str.startswith('/proc'): + try: + magic_found_parser = 'proc' + magic_stdout = open_text_file(run_command_str) + + except OSError as e: + if debug: + raise + + error_msg = os.strerror(e.errno) + utils.error_message([ + f'"{run_command_str}" file could not be opened: {error_msg}.' + ]) + sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT)) + + except Exception: + if debug: + raise + + utils.error_message([ + f'"{run_command_str}" file could not be opened. For details use the -d or -dd option.' + ]) + sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT)) + + elif valid_command: try: magic_stdout, magic_stderr, magic_exit_code = run_user_command(run_command) if magic_stderr: @@ -623,12 +676,7 @@ def main(): utils.error_message(['Missing or incorrect arguments. Use "jc -h" for help.']) sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT)) - # check for input errors (pipe vs magic) - if not sys.stdin.isatty() and magic_stdout: - utils.error_message(['Piped data and Magic syntax used simultaneously. Use "jc -h" for help.']) - sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT)) - - elif sys.stdin.isatty() and magic_stdout is None: + if sys.stdin.isatty() and magic_stdout is None: utils.error_message(['Missing piped data. Use "jc -h" for help.']) sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT)) diff --git a/jc/lib.py b/jc/lib.py index 98c5084e..a8c170f5 100644 --- a/jc/lib.py +++ b/jc/lib.py @@ -6,7 +6,7 @@ import importlib from typing import Dict, List, Iterable, Union, Iterator from jc import appdirs -__version__ = '1.21.2' +__version__ = '1.22.0' parsers = [ 'acpi', @@ -84,6 +84,56 @@ parsers = [ 'pip-show', 'plist', 'postconf', + 'proc', + 'proc-buddyinfo', + 'proc-consoles', + 'proc-cpuinfo', + 'proc-crypto', + 'proc-devices', + 'proc-diskstats', + 'proc-filesystems', + 'proc-interrupts', + 'proc-iomem', + 'proc-ioports', + 'proc-loadavg', + 'proc-locks', + 'proc-meminfo', + 'proc-modules', + 'proc-mtrr', + 'proc-pagetypeinfo', + 'proc-partitions', + 'proc-slabinfo', + 'proc-softirqs', + 'proc-stat', + 'proc-swaps', + 'proc-uptime', + 'proc-version', + 'proc-vmallocinfo', + 'proc-vmstat', + 'proc-zoneinfo', + 'proc-driver-rtc', + 'proc-net-arp', + 'proc-net-dev', + 'proc-net-dev-mcast', + 'proc-net-if-inet6', + 'proc-net-igmp', + 'proc-net-igmp6', + 'proc-net-ipv6-route', + 'proc-net-netlink', + 'proc-net-netstat', + 'proc-net-packet', + 'proc-net-protocols', + 'proc-net-route', + 'proc-net-unix', + 'proc-pid-fdinfo', + 'proc-pid-io', + 'proc-pid-maps', + 'proc-pid-mountinfo', + 'proc-pid-numa-maps', + 'proc-pid-smaps', + 'proc-pid-stat', + 'proc-pid-statm', + 'proc-pid-status', 'ps', 'route', 'rpm-qi', @@ -339,7 +389,9 @@ def parser_info(parser_mod_name: str, documentation: bool = False) -> Dict: return info_dict -def all_parser_info(documentation: bool = False) -> List[Dict]: +def all_parser_info(documentation: bool = False, + show_hidden: bool = False +) -> List[Dict]: """ Returns a list of dictionaries that includes metadata for all parser modules. @@ -347,8 +399,22 @@ def all_parser_info(documentation: bool = False) -> List[Dict]: Parameters: documentation: (boolean) include parser docstrings if True + show_hidden: (boolean) also show parsers marked as hidden + in their info metadata. """ - return [parser_info(p, documentation=documentation) for p in parsers] + temp_list = [parser_info(p, documentation=documentation) for p in parsers] + + p_list = [] + if show_hidden: + p_list = temp_list + + else: + for item in temp_list: + if not item.get('hidden', None): + p_list.append(item) + + return p_list + def get_help(parser_mod_name: str) -> None: """ diff --git a/jc/parsers/free.py b/jc/parsers/free.py index ec6e5844..8116f2e9 100644 --- a/jc/parsers/free.py +++ b/jc/parsers/free.py @@ -73,7 +73,7 @@ import jc.parsers.universal class info(): """Provides parser metadata (version, author, etc.)""" - version = '1.6' + version = '1.7' description = '`free` command parser' author = 'Kelly Brazil' author_email = 'kellyjonbrazil@gmail.com' @@ -96,7 +96,7 @@ def _process(proc_data): List of Dictionaries. Structured data to conform to the schema. """ - int_list = {'total', 'used', 'free', 'shared', 'buff_cache', 'available'} + int_list = {'total', 'used', 'free', 'shared', 'buff_cache', 'buffers', 'cache', 'available'} for entry in proc_data: for key in entry: diff --git a/jc/parsers/id.py b/jc/parsers/id.py index 897ba494..d3f310a2 100644 --- a/jc/parsers/id.py +++ b/jc/parsers/id.py @@ -100,12 +100,13 @@ Examples: } } """ +import re import jc.utils class info(): """Provides parser metadata (version, author, etc.)""" - version = '1.5' + version = '1.6' description = '`id` command parser' author = 'Kelly Brazil' author_email = 'kellyjonbrazil@gmail.com' @@ -170,28 +171,28 @@ def parse(data, raw=False, quiet=False): raw_output = {} - # Clear any blank lines - cleandata = list(filter(None, data.split())) + # re.split produces first element empty + cleandata = re.split(r' ?(uid|gid|groups|context)=', data.strip())[1:] if jc.utils.has_data(data): - for section in cleandata: - if section.startswith('uid'): - uid_parsed = section.replace('(', '=').replace(')', '=') + for key, value in zip(cleandata[0::2], cleandata[1::2]): + if key == 'uid': + uid_parsed = value.replace('(', '=').replace(')', '=') uid_parsed = uid_parsed.split('=') raw_output['uid'] = {} - raw_output['uid']['id'] = uid_parsed[1] - raw_output['uid']['name'] = _get_item(uid_parsed, 2) + raw_output['uid']['id'] = uid_parsed[0] + raw_output['uid']['name'] = _get_item(uid_parsed, 1) - if section.startswith('gid'): - gid_parsed = section.replace('(', '=').replace(')', '=') + if key == 'gid': + gid_parsed = value.replace('(', '=').replace(')', '=') gid_parsed = gid_parsed.split('=') raw_output['gid'] = {} - raw_output['gid']['id'] = gid_parsed[1] - raw_output['gid']['name'] = _get_item(gid_parsed, 2) + raw_output['gid']['id'] = gid_parsed[0] + raw_output['gid']['name'] = _get_item(gid_parsed, 1) - if section.startswith('groups'): - groups_parsed = section.replace('(', '=').replace(')', '=') + if key == 'groups': + groups_parsed = value.replace('(', '=').replace(')', '=') groups_parsed = groups_parsed.replace('groups=', '') groups_parsed = groups_parsed.split(',') raw_output['groups'] = [] @@ -203,9 +204,8 @@ def parse(data, raw=False, quiet=False): group_dict['name'] = _get_item(grp_parsed, 1) raw_output['groups'].append(group_dict) - if section.startswith('context'): - context_parsed = section.replace('context=', '') - context_parsed = context_parsed.split(':', maxsplit=3) + if key == 'context': + context_parsed = value.split(':', maxsplit=3) raw_output['context'] = {} raw_output['context']['user'] = context_parsed[0] raw_output['context']['role'] = context_parsed[1] diff --git a/jc/parsers/ini.py b/jc/parsers/ini.py index 09313294..6a68ba07 100644 --- a/jc/parsers/ini.py +++ b/jc/parsers/ini.py @@ -49,18 +49,18 @@ Examples: $ cat example.ini | jc --ini -p { "bitbucket.org": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "yes", - "user": "hg" + "ServerAliveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "yes", + "User": "hg" }, "topsecret.server.com": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "no", - "port": "50022" + "ServerAliveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "no", + "Port": "50022" } } """ @@ -70,7 +70,7 @@ import configparser class info(): """Provides parser metadata (version, author, etc.)""" - version = '1.7' + version = '1.8' description = 'INI file parser' author = 'Kelly Brazil' author_email = 'kellyjonbrazil@gmail.com' @@ -145,6 +145,10 @@ def parse(data, raw=False, quiet=False): ini = configparser.ConfigParser(allow_no_value=True, interpolation=None, strict=False) + + # don't convert keys to lower-case: + ini.optionxform = lambda option: option + try: ini.read_string(data) raw_output = {s: dict(ini.items(s)) for s in ini.sections()} diff --git a/jc/parsers/lsof.py b/jc/parsers/lsof.py index ef14cd56..ac167fd0 100644 --- a/jc/parsers/lsof.py +++ b/jc/parsers/lsof.py @@ -124,7 +124,7 @@ class info(): description = '`lsof` command parser' author = 'Kelly Brazil' author_email = 'kellyjonbrazil@gmail.com' - compatible = ['linux'] + compatible = ['linux', 'darwin', 'aix', 'freebsd'] magic_commands = ['lsof'] diff --git a/jc/parsers/pidstat.py b/jc/parsers/pidstat.py index ee031eae..b89427d0 100644 --- a/jc/parsers/pidstat.py +++ b/jc/parsers/pidstat.py @@ -1,15 +1,15 @@ -"""jc - JSON Convert `pidstat -h` command output parser +"""jc - JSON Convert `pidstat -H` command output parser -Must use the `-h` option in `pidstat`. All other `pidstat` options are -supported in combination with `-h`. +Must use the `-H` (or `-h`, if `-H` is not available) option in `pidstat`. +All other `pidstat` options are supported in combination with this option. Usage (cli): - $ pidstat -h | jc --pidstat + $ pidstat -H | jc --pidstat or - $ jc pidstat -h + $ jc pidstat -H Usage (module): @@ -46,7 +46,7 @@ Schema: Examples: - $ pidstat -hl | jc --pidstat -p + $ pidstat -Hl | jc --pidstat -p [ { "time": 1646859134, @@ -83,7 +83,7 @@ Examples: } ] - $ pidstat -hl | jc --pidstat -p -r + $ pidstat -Hl | jc --pidstat -p -r [ { "time": "1646859134", @@ -129,7 +129,7 @@ from jc.exceptions import ParseError class info(): """Provides parser metadata (version, author, etc.)""" version = '1.1' - description = '`pidstat -h` command parser' + description = '`pidstat -H` command parser' author = 'Kelly Brazil' author_email = 'kellyjonbrazil@gmail.com' compatible = ['linux'] @@ -210,7 +210,7 @@ def parse( .replace('%', 'percent_')\ .lower() - # remove remaining header lines (e.g. pidstat -h 2 5) + # remove remaining header lines (e.g. pidstat -H 2 5) data_list = [i for i in data_list if not i.startswith('#')] raw_output = simple_table_parse(data_list) diff --git a/jc/parsers/pidstat_s.py b/jc/parsers/pidstat_s.py index 9242d97a..f27cd9bf 100644 --- a/jc/parsers/pidstat_s.py +++ b/jc/parsers/pidstat_s.py @@ -1,14 +1,14 @@ -"""jc - JSON Convert `pidstat -h` command output streaming parser +"""jc - JSON Convert `pidstat -H` command output streaming parser > This streaming parser outputs JSON Lines (cli) or returns an Iterable of > Dictionaries (module) -Must use the `-h` option in `pidstat`. All other `pidstat` options are -supported in combination with `-h`. +Must use the `-H` (or `-h`, if `-H` is not available) option in `pidstat`. +All other `pidstat` options are supported in combination with this option. Usage (cli): - $ pidstat | jc --pidstat-s + $ pidstat -H | jc --pidstat-s > Note: When piping `jc` converted `pidstat` output to other processes it > may appear the output is hanging due to the OS pipe buffers. This is @@ -60,13 +60,13 @@ Schema: Examples: - $ pidstat -hl | jc --pidstat-s + $ pidstat -Hl | jc --pidstat-s {"time":1646859134,"uid":0,"pid":1,"percent_usr":0.0,"percent_syste...} {"time":1646859134,"uid":0,"pid":6,"percent_usr":0.0,"percent_syste...} {"time":1646859134,"uid":0,"pid":9,"percent_usr":0.0,"percent_syste...} ... - $ pidstat -hl | jc --pidstat-s -r + $ pidstat -Hl | jc --pidstat-s -r {"time":"1646859134","uid":"0","pid":"1","percent_usr":"0.00","perc...} {"time":"1646859134","uid":"0","pid":"6","percent_usr":"0.00","perc...} {"time":"1646859134","uid":"0","pid":"9","percent_usr":"0.00","perc...} @@ -84,7 +84,7 @@ from jc.exceptions import ParseError class info(): """Provides parser metadata (version, author, etc.)""" version = '1.1' - description = '`pidstat -h` command streaming parser' + description = '`pidstat -H` command streaming parser' author = 'Kelly Brazil' author_email = 'kellyjonbrazil@gmail.com' compatible = ['linux'] diff --git a/jc/parsers/proc.py b/jc/parsers/proc.py new file mode 100644 index 00000000..8cada8bc --- /dev/null +++ b/jc/parsers/proc.py @@ -0,0 +1,277 @@ +"""jc - JSON Convert Proc file output parser + +This parser automatically identifies the Proc file and calls the +corresponding parser to peform the parsing. + +Magic syntax for converting `/proc` files is also supported by running +`jc /proc/`. Any `jc` options must be specified before the +`/proc` path. + +specific Proc file parsers can also be called directly, if desired and have +a naming convention of `proc-` (cli) or `proc_` (module). + +Usage (cli): + + $ cat /proc/meminfo | jc --proc + +or + + $ jc /proc/meminfo + +or + + $ cat /proc/meminfo | jc --proc-memifno + +Usage (module): + + import jc + result = jc.parse('proc', proc_file) + +Schema: + +See the specific Proc parser for the schema: + + $ jc --help --proc- + +For example: + + $ jc --help --proc-meminfo + +Specific Proc file parser names can be found with `jc -hh` or `jc -a`. + +Schemas can also be found online at: + + https://kellyjonbrazil.github.io/jc/docs/parsers/proc_ + +For example: + + https://kellyjonbrazil.github.io/jc/docs/parsers/proc_meminfo + +Examples: + + $ cat /proc/modules | jc --proc -p + [ + { + "module": "binfmt_misc", + "size": 24576, + "used": 1, + "used_by": [], + "status": "Live", + "location": "0xffffffffc0ab4000" + }, + { + "module": "vsock_loopback", + "size": 16384, + "used": 0, + "used_by": [], + "status": "Live", + "location": "0xffffffffc0a14000" + }, + { + "module": "vmw_vsock_virtio_transport_common", + "size": 36864, + "used": 1, + "used_by": [ + "vsock_loopback" + ], + "status": "Live", + "location": "0xffffffffc0a03000" + }, + ... + ] + + $ proc_modules | jc --proc_modules -p -r + [ + { + "module": "binfmt_misc", + "size": "24576", + "used": "1", + "used_by": [], + "status": "Live", + "location": "0xffffffffc0ab4000" + }, + { + "module": "vsock_loopback", + "size": "16384", + "used": "0", + "used_by": [], + "status": "Live", + "location": "0xffffffffc0a14000" + }, + { + "module": "vmw_vsock_virtio_transport_common", + "size": "36864", + "used": "1", + "used_by": [ + "vsock_loopback" + ], + "status": "Live", + "location": "0xffffffffc0a03000" + }, + ... + ] +""" +import re +import importlib +from typing import List, Dict +import jc.utils +from jc.exceptions import ParseError + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + + +__version__ = info.version + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.input_type_check(data) + + if jc.utils.has_data(data): + # signatures + buddyinfo_p = re.compile(r'^Node \d+, zone\s+\w+\s+(?:\d+\s+){11}\n') + consoles_p = re.compile(r'^\w+\s+[\-WUR]{3} \([ECBpba ]+\)\s+\d+:\d+\n') + cpuinfo_p = re.compile(r'^processor\t+: \d+.*bogomips\t+: \d+.\d\d\n', re.DOTALL) + crypto_p = re.compile(r'^name\s+:.*\ndriver\s+:.*\nmodule\s+:.*\n') + devices_p = re.compile(r'^Character devices:\n\s+\d+ .*\n') + diskstats_p = re.compile(r'^\s*\d+\s+\d\s\w+\s(?:\d+\s){10,16}\d+\n') + filesystems_p = re.compile(r'^(?:(?:nodev\t|\t)\w+\n){3}') + interrupts_p = re.compile(r'^\s+(?:CPU\d+ +)+\n\s*\d+:\s+\d+') + iomem_p = re.compile(r'^00000000-[0-9a-f]{8} : .*\n[0-9a-f]{8}-[0-9a-f]{8} : ') + ioports_p = re.compile(r'^0000-[0-9a-f]{4} : .*\n\s*0000-[0-9a-f]{4} : ') + loadavg_p = re.compile(r'^\d+.\d\d \d+.\d\d \d+.\d\d \d+/\d+ \d+$') + locks_p = re.compile(r'^\d+: (?:POSIX|FLOCK|OFDLCK)\s+(?:ADVISORY|MANDATORY)\s+(?:READ|WRITE) ') + meminfo_p = re.compile(r'^MemTotal:.*\nMemFree:.*\nMemAvailable:.*\n') + modules_p = re.compile(r'^\w+ \d+ \d+ (?:-|\w+,).*0x[0-9a-f]{16}\n') + mtrr_p = re.compile(r'^reg\d+: base=0x[0-9a-f]+ \(') + pagetypeinfo_p = re.compile(r'^Page block order:\s+\d+\nPages per block:\s+\d+\n\n') + partitions_p = re.compile(r'^major minor #blocks name\n\n\s*\d+\s+\d+\s+\d+ \w+\n') + slabinfo_p = re.compile(r'^slabinfo - version: \d+.\d+\n') + softirqs_p = re.compile(r'^\s+(CPU\d+\s+)+\n\s+HI:\s+\d') + stat_p = re.compile(r'^cpu\s+(?: \d+){7,10}.*intr ', re.DOTALL) + swaps_p = re.compile(r'^Filename\t\t\t\tType\t\tSize\t\tUsed\t\tPriority\n') + uptime_p = re.compile(r'^\d+.\d\d \d+.\d\d$') + version_p = re.compile(r'^.+\sversion\s[^\n]+$') + vmallocinfo_p = re.compile(r'^0x[0-9a-f]{16}-0x[0-9a-f]{16}\s+\d+ \w+\+\w+/\w+ ') + vmstat_p = re.compile(r'nr_free_pages \d+\n.* \d$', re.DOTALL) + zoneinfo_p = re.compile(r'^Node \d+, zone\s+\w+\n') + + driver_rtc_p = re.compile(r'^rtc_time\t: .*\nrtc_date\t: .*\nalrm_time\t: .*\n') + + net_arp_p = re.compile(r'^IP address\s+HW type\s+Flags\s+HW address\s+Mask\s+Device\n') + net_dev_p = re.compile(r'^Inter-\|\s+Receive\s+\|\s+Transmit\n') + net_dev_mcast_p = re.compile(r'^\d+\s+\w+\s+\d+\s+\d+\s+[0-9a-f]{12}') + net_if_inet6_p = re.compile(r'^[0-9a-f]{32} \d\d \d\d \d\d \d\d\s+\w+') + net_igmp_p = re.compile(r'^Idx\tDevice\s+:\s+Count\s+Querier\tGroup\s+Users\s+Timer\tReporter\n') + net_igmp6_p = re.compile(r'^\d+\s+\w+\s+[0-9a-f]{32}\s+\d+\s+[0-9A-F]{8}\s+\d+') + net_ipv6_route_p = re.compile(r'^[0-9a-f]{32} \d\d [0-9a-f]{32} \d\d [0-9a-f]{32} (?:[0-9a-f]{8} ){4}\s+\w+') + net_netlink_p = re.compile(r'^sk\s+Eth Pid\s+Groups\s+Rmem\s+Wmem') + net_netstat_p = re.compile(r'^TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed') + net_packet_p = re.compile(r'^sk RefCnt Type Proto Iface R Rmem User Inode\n') + net_protocols_p = re.compile(r'^protocol size sockets memory press maxhdr slab module cl co di ac io in de sh ss gs se re sp bi br ha uh gp em\n') + net_route_p = re.compile(r'^Iface\tDestination\tGateway \tFlags\tRefCnt\tUse\tMetric\tMask\t\tMTU\tWindow\tIRTT\s+\n') + net_unix_p = re.compile(r'^Num RefCount Protocol Flags Type St Inode Path\n') + + pid_fdinfo_p = re.compile(r'^pos:\t\d+\nflags:\t\d+\nmnt_id:\t\d+\n') + pid_io_p = re.compile(r'^rchar: \d+\nwchar: \d+\nsyscr: \d+\n') + pid_maps_p = re.compile(r'^[0-9a-f]{12}-[0-9a-f]{12} [rwxsp\-]{4} [0-9a-f]{8} [0-9a-f]{2}:[0-9a-f]{2} \d+ ') + pid_mountinfo_p = re.compile(r'^\d+ \d+ \d+:\d+ /.+\n') + pid_numa_maps_p = re.compile(r'^[a-f0-9]{12} default [^\n]+\n') + pid_smaps_p = re.compile(r'^[0-9a-f]{12}-[0-9a-f]{12} [rwxsp\-]{4} [0-9a-f]{8} [0-9a-f]{2}:[0-9a-f]{2} \d+ [^\n]+\nSize:\s+\d+ \S\S\n') + pid_stat_p = re.compile(r'^\d+ \(.{1,16}\) \w \d+ \d+ \d+ \d+ -?\d+ (?:\d+ ){43}\d+$') + pid_statm_p = re.compile(r'^\d+ \d+ \d+\s\d+\s\d+\s\d+\s\d+$') + pid_status_p = re.compile(r'^Name:\t.+\nUmask:\t\d+\nState:\t.+\nTgid:\t\d+\n') + + # scsi_device_info = re.compile(r"^'\w+' '.+' 0x\d+") + # scsi_scsi_p = re.compile(r'^Attached devices:\nHost: \w+ ') + + procmap = { + buddyinfo_p: 'proc_buddyinfo', + consoles_p: 'proc_consoles', + cpuinfo_p: 'proc_cpuinfo', + crypto_p: 'proc_crypto', + devices_p: 'proc_devices', + diskstats_p: 'proc_diskstats', + filesystems_p: 'proc_filesystems', + interrupts_p: 'proc_interrupts', + iomem_p: 'proc_iomem', + ioports_p: 'proc_ioports', + loadavg_p: 'proc_loadavg', + locks_p: 'proc_locks', + meminfo_p: 'proc_meminfo', + modules_p: 'proc_modules', + mtrr_p: 'proc_mtrr', + pagetypeinfo_p: 'proc_pagetypeinfo', + partitions_p: 'proc_partitions', + slabinfo_p: 'proc_slabinfo', + softirqs_p: 'proc_softirqs', + stat_p: 'proc_stat', + swaps_p: 'proc_swaps', + uptime_p: 'proc_uptime', + version_p: 'proc_version', + vmallocinfo_p: 'proc_vmallocinfo', + zoneinfo_p: 'proc_zoneinfo', # before vmstat + vmstat_p: 'proc_vmstat', # after zoneinfo + + driver_rtc_p: 'proc_driver_rtc', + + net_arp_p: 'proc_net_arp', + net_dev_p: 'proc_net_dev', + net_if_inet6_p: 'proc_net_if_inet6', + net_igmp_p: 'proc_net_igmp', + net_igmp6_p: 'proc_net_igmp6', + net_netlink_p: 'proc_net_netlink', + net_netstat_p: 'proc_net_netstat', + net_packet_p: 'proc_net_packet', + net_protocols_p: 'proc_net_protocols', + net_route_p: 'proc_net_route', + net_unix_p: 'proc_net_unix', + net_ipv6_route_p: 'proc_net_ipv6_route', # before net_dev_mcast + net_dev_mcast_p: 'proc_net_dev_mcast', # after net_ipv6_route + + pid_fdinfo_p: 'proc_pid_fdinfo', + pid_io_p: 'proc_pid_io', + pid_mountinfo_p: 'proc_pid_mountinfo', + pid_numa_maps_p: 'proc_pid_numa_maps', + pid_stat_p: 'proc_pid_stat', + pid_statm_p: 'proc_pid_statm', + pid_status_p: 'proc_pid_status', + pid_smaps_p: 'proc_pid_smaps', # before pid_maps + pid_maps_p: 'proc_pid_maps', # after pid_smaps + + # scsi_device_info: 'proc_scsi_device_info', + # scsi_scsi_p: 'proc_scsi_scsi' + } + + for reg_pattern, parse_mod in procmap.items(): + if reg_pattern.search(data): + try: + procparser = importlib.import_module('jc.parsers.' + parse_mod) + return procparser.parse(data, quiet=quiet, raw=raw) + except ModuleNotFoundError: + raise ParseError('Proc file type not yet implemented.') + + raise ParseError('Proc file could not be identified.') diff --git a/jc/parsers/proc_buddyinfo.py b/jc/parsers/proc_buddyinfo.py new file mode 100644 index 00000000..1efd5680 --- /dev/null +++ b/jc/parsers/proc_buddyinfo.py @@ -0,0 +1,179 @@ +"""jc - JSON Convert `/proc/buddyinfo` file parser + +Usage (cli): + + $ cat /proc/buddyinfo | jc --proc + +or + + $ jc /proc/buddyinfo + +or + + $ cat /proc/buddyinfo | jc --proc-buddyinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_buddyinfo_file) + +or + + import jc + result = jc.parse('proc_buddyinfo', proc_buddyinfo_file) + +Schema: + +All values are integers. + + [ + { + "node": integer, + "zone": string, + "free_chunks": [ + integer # [0] + ] + } + ] + + [0] array index correlates to the Order number. + E.g. free_chunks[0] is the value for Order 0 + + +Examples: + + $ cat /proc/buddyinfo | jc --proc -p + [ + { + "node": 0, + "zone": "DMA", + "free_chunks": [ + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 3 + ] + }, + { + "node": 0, + "zone": "DMA32", + "free_chunks": [ + 78, + 114, + 82, + 52, + 38, + 25, + 13, + 9, + 3, + 4, + 629 + ] + }, + { + "node": 0, + "zone": "Normal", + "free_chunks": [ + 0, + 22, + 8, + 10, + 1, + 1, + 2, + 11, + 13, + 0, + 0 + ] + } + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/buddyinfo` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'node'} + + for entry in proc_data: + for key in entry: + if key in int_list: + entry[key] = jc.utils.convert_to_int(entry[key]) + + if 'free_chunks' in entry: + entry['free_chunks'] = [int(x) for x in entry['free_chunks']] + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + buddy_list = line.split() + + raw_output.append( + { + 'node': buddy_list[1][:-1], + 'zone': buddy_list[3], + 'free_chunks': buddy_list[4:] + } + ) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_consoles.py b/jc/parsers/proc_consoles.py new file mode 100644 index 00000000..3423d0b0 --- /dev/null +++ b/jc/parsers/proc_consoles.py @@ -0,0 +1,188 @@ +"""jc - JSON Convert `/proc/consoles` file parser + +Usage (cli): + + $ cat /proc/consoles | jc --proc + +or + + $ jc /proc/consoles + +or + + $ cat /proc/consoles | jc --proc-consoles + +Usage (module): + + import jc + result = jc.parse('proc', proc_consoles_file) + +or + + import jc + result = jc.parse('proc_consoles', proc_consoles_file) + +Schema: + + [ + { + "device": string, + "operations": string, + "operations_list": [ + string # [0] + ], + "flags": string, + "flags_list": [ + string # [1] + ], + "major": integer, + "minor": integer + } + ] + + [0] Values: read, write, unblank + [1] Values: enabled, preferred, primary boot, prink buffer, + braille device, safe when CPU offline + +Examples: + + $ cat /proc/consoles | jc --proc -p + [ + { + "device": "tty0", + "operations": "-WU", + "operations_list": [ + "write", + "unblank" + ], + "flags": "ECp", + "flags_list": [ + "enabled", + "preferred", + "printk buffer" + ], + "major": 4, + "minor": 7 + }, + { + "device": "ttyS0", + "operations": "-W-", + "operations_list": [ + "write" + ], + "flags": "Ep", + "flags_list": [ + "enabled", + "printk buffer" + ], + "major": 4, + "minor": 64 + } + ] +""" +import shlex +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/consoles` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'major', 'minor'} + + for entry in proc_data: + for key in entry: + if key in int_list: + entry[key] = jc.utils.convert_to_int(entry[key]) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + operations_map = { + 'R': 'read', + 'W': 'write', + 'U': 'unblank' + } + + flags_map = { + 'E': 'enabled', + 'C': 'preferred', + 'B': 'primary boot', + 'p': 'printk buffer', + 'b': 'braille device', + 'a': 'safe when CPU offline' + } + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + # since parens are acting like quotation marks, use shlex.split() + # after converting parens to quotes. + line = line.replace('(', '"'). replace(')', '"') + device, operations, flags, maj_min = shlex.split(line) + + operations_str = operations.replace('-', '') + operations_list = [operations_map[i] for i in operations_str] + + flags_str = flags.replace (' ', '') + flags_list = [flags_map[i] for i in flags_str] + + raw_output.append( + { + 'device': device, + 'operations': operations, + 'operations_list': operations_list, + 'flags': flags, + 'flags_list': flags_list, + 'major': maj_min.split(':')[0], + 'minor': maj_min.split(':')[1] + } + ) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_cpuinfo.py b/jc/parsers/proc_cpuinfo.py new file mode 100644 index 00000000..5de13991 --- /dev/null +++ b/jc/parsers/proc_cpuinfo.py @@ -0,0 +1,329 @@ +"""jc - JSON Convert `/proc/cpuinfo` file parser + +Usage (cli): + + $ cat /proc/cpuinfo | jc --proc + +or + + $ jc /proc/cpuinfo + +or + + $ cat /proc/cpuinfo | jc --proc-cpuinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_cpuinfo_file) + +or + + import jc + result = jc.parse('proc_cpuinfo', proc_cpuinfo_file) + +Schema: + +Integer, float, and boolean ("yes"/"no") conversions are attempted. Blank +strings are converted to `null`. + +"Well-known" keys like `cache size`, `address types`, `bugs`, and `flags` +are processed into sensible data types. (see below) + +If this is not desired, then use the `--raw` (CLI) or `raw=True` (Module) +option. + + [ + { + "processor": integer, + "address sizes": string, + "address_size_physical": integer, # in bits + "address_size_virtual": integer, # in bits + "cache size": string, + "cache_size_num": integer, + "cache_size_unit": string, + "flags": [ + string + ], + "bugs": [ + string + ], + "bogomips": float, + : string/int/float/boolean/null + } + ] + +Examples: + + $ cat /proc/cpuinfo | jc --proc -p + [ + { + "processor": 0, + "vendor_id": "GenuineIntel", + "cpu family": 6, + "model": 142, + "model name": "Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz", + "stepping": 10, + "cpu MHz": 2400.0, + "cache size": "6144 KB", + "physical id": 0, + "siblings": 1, + "core id": 0, + "cpu cores": 1, + "apicid": 0, + "initial apicid": 0, + "fpu": true, + "fpu_exception": true, + "cpuid level": 22, + "wp": true, + "bogomips": 4800.0, + "clflush size": 64, + "cache_alignment": 64, + "address sizes": "45 bits physical, 48 bits virtual", + "power management": null, + "address_size_physical": 45, + "address_size_virtual": 48, + "cache_size_num": 6144, + "cache_size_unit": "KB", + "flags": [ + "fpu", + "vme", + "de", + "pse", + "tsc", + "msr", + "pae", + "mce", + "cx8", + "apic", + "sep", + "mtrr", + "pge", + "mca", + "cmov", + "pat", + "pse36", + "clflush", + "mmx", + "fxsr", + "sse", + "sse2", + "ss", + "syscall", + "nx", + "pdpe1gb", + "rdtscp", + "lm", + "constant_tsc", + "arch_perfmon", + "nopl", + "xtopology", + "tsc_reliable", + "nonstop_tsc", + "cpuid", + "pni", + "pclmulqdq", + "ssse3", + "fma", + "cx16", + "pcid", + "sse4_1", + "sse4_2", + "x2apic", + "movbe", + "popcnt", + "tsc_deadline_timer", + "aes", + "xsave", + "avx", + "f16c", + "rdrand", + "hypervisor", + "lahf_lm", + "abm", + "3dnowprefetch", + "cpuid_fault", + "invpcid_single", + "pti", + "ssbd", + "ibrs", + "ibpb", + "stibp", + "fsgsbase", + "tsc_adjust", + "bmi1", + "avx2", + "smep", + "bmi2", + "invpcid", + "rdseed", + "adx", + "smap", + "clflushopt", + "xsaveopt", + "xsavec", + "xgetbv1", + "xsaves", + "arat", + "md_clear", + "flush_l1d", + "arch_capabilities" + ], + "bugs": [ + "cpu_meltdown", + "spectre_v1", + "spectre_v2", + "spec_store_bypass", + "l1tf", + "mds", + "swapgs", + "itlb_multihit", + "srbds" + ] + }, + ... + ] + + $ cat /proc/cpuinfo | jc --proc_cpuinfo -p -r + [ + { + "processor": "0", + "vendor_id": "GenuineIntel", + "cpu family": "6", + "model": "142", + "model name": "Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz", + "stepping": "10", + "cpu MHz": "2400.000", + "cache size": "6144 KB", + "physical id": "0", + "siblings": "1", + "core id": "0", + "cpu cores": "1", + "apicid": "0", + "initial apicid": "0", + "fpu": "yes", + "fpu_exception": "yes", + "cpuid level": "22", + "wp": "yes", + "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge ...", + "bugs": "cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass ...", + "bogomips": "4800.00", + "clflush size": "64", + "cache_alignment": "64", + "address sizes": "45 bits physical, 48 bits virtual", + "power management": "" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/cpuinfo` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + for entry in proc_data: + for key in entry: + if entry[key] == '': + entry[key] = None + + try: + entry[key] = int(entry[key]) + except Exception: + pass + + try: + if isinstance(entry[key], str) and (entry[key] == 'yes' or entry[key] == 'no'): + entry[key] = jc.utils.convert_to_bool(entry[key]) + except Exception: + pass + + try: + if isinstance(entry[key], str) and '.' in entry[key]: + entry[key] = float(entry[key]) + except Exception: + pass + + if 'address sizes' in entry: + phy = int(entry['address sizes'].split()[0]) + virt = int(entry['address sizes'].split()[3]) + entry['address_size_physical'] = phy + entry['address_size_virtual'] = virt + + if 'cache size' in entry: + cache_size_int, unit = entry['cache size'].split() + entry['cache_size_num'] = int(cache_size_int) + entry['cache_size_unit'] = unit + + if 'flags' in entry: + entry['flags'] = entry['flags'].split() + + if 'bugs' in entry: + entry['bugs'] = entry['bugs'].split() + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + output_line: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + if line.startswith('processor'): + if output_line: + raw_output.append(output_line) + output_line = {} + + key, val = line.split(':', maxsplit=1) + output_line[key.strip()] = val.strip() + + if output_line: + raw_output.append(output_line) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_crypto.py b/jc/parsers/proc_crypto.py new file mode 100644 index 00000000..93cab164 --- /dev/null +++ b/jc/parsers/proc_crypto.py @@ -0,0 +1,196 @@ +"""jc - JSON Convert `/proc/crypto` file parser + +Usage (cli): + + $ cat /proc/crypto | jc --proc + +or + + $ jc /proc/crypto + +or + + $ cat /proc/crypto | jc --proc-crypto + +Usage (module): + + import jc + result = jc.parse('proc', proc_crypto_file) + +or + + import jc + result = jc.parse('proc_crypto', proc_crypto_file) + +Schema: + +"Well-known" keys like `priority` and `refcnt` are converted to integers. +Also, keynames ending in "size" are converted to integers. + +If this is not desired, then use the `--raw` (CLI) or `raw=True` (Module) +option. + + [ + { + "name": string, + "driver": string, + "module": string, + "priority": integer, + "refcnt": integer, + "selftest": string, + "internal": string, + "type": string, + "*size": integer + } + ] + +Examples: + + $ cat /proc/crypto | jc --proc -p + [ + { + "name": "ecdh", + "driver": "ecdh-generic", + "module": "ecdh_generic", + "priority": 100, + "refcnt": 1, + "selftest": "passed", + "internal": "no", + "type": "kpp" + }, + { + "name": "blake2b-512", + "driver": "blake2b-512-generic", + "module": "blake2b_generic", + "priority": 100, + "refcnt": 1, + "selftest": "passed", + "internal": "no", + "type": "shash", + "blocksize": 128, + "digestsize": 64 + }, + ... + ] + + $ cat /proc/crypto | jc --proc_crypto -p -r + [ + { + "name": "ecdh", + "driver": "ecdh-generic", + "module": "ecdh_generic", + "priority": "100", + "refcnt": "1", + "selftest": "passed", + "internal": "no", + "type": "kpp" + }, + { + "name": "blake2b-512", + "driver": "blake2b-512-generic", + "module": "blake2b_generic", + "priority": "100", + "refcnt": "1", + "selftest": "passed", + "internal": "no", + "type": "shash", + "blocksize": "128", + "digestsize": "64" + }, + { + "name": "blake2b-384", + "driver": "blake2b-384-generic", + "module": "blake2b_generic", + "priority": "100", + "refcnt": "1", + "selftest": "passed", + "internal": "no", + "type": "shash", + "blocksize": "128", + "digestsize": "48" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/crypto` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'priority', 'refcnt'} + + for entry in proc_data: + for key in entry: + if key in int_list or key.endswith('size'): + try: + entry[key] = int(entry[key]) + except Exception: + pass + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + output_line: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + if line.startswith('name'): + if output_line: + raw_output.append(output_line) + output_line = {} + + key, val = line.split(':', maxsplit=1) + output_line[key.strip()] = val.strip() + + if output_line: + raw_output.append(output_line) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_devices.py b/jc/parsers/proc_devices.py new file mode 100644 index 00000000..4d2a4441 --- /dev/null +++ b/jc/parsers/proc_devices.py @@ -0,0 +1,166 @@ +"""jc - JSON Convert `/proc/devices` file parser + +Usage (cli): + + $ cat /proc/devices | jc --proc + +or + + $ jc /proc/devices + +or + + $ cat /proc/devices | jc --proc-devices + +Usage (module): + + import jc + result = jc.parse('proc', proc_devices_file) + +or + + import jc + result = jc.parse('proc_devices', proc_devices_file) + +Schema: + +Since devices can be members of multiple groups, the value for each device +is a list. + + { + "character": { + "": [ + string + ] + }, + "block": { + "": [ + string + ] + } + } + +Examples: + + $ cat /proc/devices | jc --proc -p + { + "character": { + "1": [ + "mem" + ], + "4": [ + "/dev/vc/0", + "tty", + "ttyS" + ], + "5": [ + "/dev/tty", + "/dev/console", + "/dev/ptmx", + "ttyprintk" + ], + "block": { + "7": [ + "loop" + ], + "8": [ + "sd" + ], + "9": [ + "md" + ] + } + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/devices` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + character: Dict = {} + block: Dict = {} + section = '' + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + if 'Character devices:' in line: + section = 'character' + continue + + if 'Block devices:' in line: + section = 'block' + continue + + devnum, group = line.split() + + if section == 'character': + if not devnum in character: + character[devnum] = [] + + character[devnum].append(group) + continue + + if section == 'block': + if not devnum in block: + block[devnum] = [] + + block[devnum].append(group) + continue + + if character or block: + raw_output = { + 'character': character, + 'block': block + } + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_diskstats.py b/jc/parsers/proc_diskstats.py new file mode 100644 index 00000000..c230b2f8 --- /dev/null +++ b/jc/parsers/proc_diskstats.py @@ -0,0 +1,248 @@ +"""jc - JSON Convert `/proc/diskstats` file parser + +Usage (cli): + + $ cat /proc/diskstats | jc --proc + +or + + $ jc /proc/diskstats + +or + + $ cat /proc/diskstats | jc --proc-diskstats + +Usage (module): + + import jc + result = jc.parse('proc', proc_diskstats_file) + +or + + import jc + result = jc.parse('proc_diskstats', proc_diskstats_file) + +Schema: + + [ + { + "maj": integer, + "min": integer, + "device": string, + "reads_completed": integer, + "reads_merged": integer, + "sectors_read": integer, + "read_time_ms": integer, + "writes_completed": integer, + "writes_merged": integer, + "sectors_written": integer, + "write_time_ms": integer, + "io_in_progress": integer, + "io_time_ms": integer, + "weighted_io_time_ms": integer, + "discards_completed_successfully": integer, + "discards_merged": integer, + "sectors_discarded": integer, + "discarding_time_ms": integer, + "flush_requests_completed_successfully": integer, + "flushing_time_ms": integer + } + ] + +Examples: + + $ cat /proc/diskstats | jc --proc -p + [ + { + "maj": 7, + "min": 0, + "device": "loop0", + "reads_completed": 48, + "reads_merged": 0, + "sectors_read": 718, + "read_time_ms": 19, + "writes_completed": 0, + "writes_merged": 0, + "sectors_written": 0, + "write_time_ms": 0, + "io_in_progress": 0, + "io_time_ms": 36, + "weighted_io_time_ms": 19, + "discards_completed_successfully": 0, + "discards_merged": 0, + "sectors_discarded": 0, + "discarding_time_ms": 0, + "flush_requests_completed_successfully": 0, + "flushing_time_ms": 0 + }, + { + "maj": 7, + "min": 1, + "device": "loop1", + "reads_completed": 41, + "reads_merged": 0, + "sectors_read": 688, + "read_time_ms": 17, + "writes_completed": 0, + "writes_merged": 0, + "sectors_written": 0, + "write_time_ms": 0, + "io_in_progress": 0, + "io_time_ms": 28, + "weighted_io_time_ms": 17, + "discards_completed_successfully": 0, + "discards_merged": 0, + "sectors_discarded": 0, + "discarding_time_ms": 0, + "flush_requests_completed_successfully": 0, + "flushing_time_ms": 0 + }, + ... + ] + + $ cat /proc/diskstats | jc --proc_diskstats -p -r + [ + { + "maj": "7", + "min": "0", + "device": "loop0", + "reads_completed": "48", + "reads_merged": "0", + "sectors_read": "718", + "read_time_ms": "19", + "writes_completed": "0", + "writes_merged": "0", + "sectors_written": "0", + "write_time_ms": "0", + "io_in_progress": "0", + "io_time_ms": "36", + "weighted_io_time_ms": "19", + "discards_completed_successfully": "0", + "discards_merged": "0", + "sectors_discarded": "0", + "discarding_time_ms": "0", + "flush_requests_completed_successfully": "0", + "flushing_time_ms": "0" + }, + { + "maj": "7", + "min": "1", + "device": "loop1", + "reads_completed": "41", + "reads_merged": "0", + "sectors_read": "688", + "read_time_ms": "17", + "writes_completed": "0", + "writes_merged": "0", + "sectors_written": "0", + "write_time_ms": "0", + "io_in_progress": "0", + "io_time_ms": "28", + "weighted_io_time_ms": "17", + "discards_completed_successfully": "0", + "discards_merged": "0", + "sectors_discarded": "0", + "discarding_time_ms": "0", + "flush_requests_completed_successfully": "0", + "flushing_time_ms": "0" + }, + { + "maj": "7", + "min": "2", + "device": "loop2", + "reads_completed": "119", + "reads_merged": "0", + "sectors_read": "2956", + "read_time_ms": "18", + "writes_completed": "0", + "writes_merged": "0", + "sectors_written": "0", + "write_time_ms": "0", + "io_in_progress": "0", + "io_time_ms": "56", + "weighted_io_time_ms": "18", + "discards_completed_successfully": "0", + "discards_merged": "0", + "sectors_discarded": "0", + "discarding_time_ms": "0", + "flush_requests_completed_successfully": "0", + "flushing_time_ms": "0" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/diskstats` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + for entry in proc_data: + for key in entry: + if key != 'device': + entry[key] = int(entry[key]) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = ( + 'maj min device reads_completed reads_merged sectors_read read_time_ms ' + 'writes_completed writes_merged sectors_written write_time_ms io_in_progress ' + 'io_time_ms weighted_io_time_ms discards_completed_successfully discards_merged ' + 'sectors_discarded discarding_time_ms flush_requests_completed_successfully ' + 'flushing_time_ms\n' + ) + data = header + data + cleandata = filter(None, data.splitlines()) + raw_output = simple_table_parse(cleandata) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_driver_rtc.py b/jc/parsers/proc_driver_rtc.py new file mode 100644 index 00000000..2b046cbc --- /dev/null +++ b/jc/parsers/proc_driver_rtc.py @@ -0,0 +1,173 @@ +"""jc - JSON Convert `/proc/driver/rtc` file parser + +Usage (cli): + + $ cat /proc/driver/rtc | jc --proc + +or + + $ jc /proc/driver/rtc + +or + + $ cat /proc/driver/rtc | jc --proc-driver-rtc + +Usage (module): + + import jc + result = jc.parse('proc', proc_driver_rtc_file) + +or + + import jc + result = jc.parse('proc_driver_rtc', proc_driver_rtc_file) + +Schema: + +"yes" and "no" values are converted to `true`/`false`. Integer conversions +are attempted. If you do not want this behavior, then use `--raw` (cli) or +`raw=True` (module). + + { + "rtc_time": string, + "rtc_date": string, + "alrm_time": string, + "alrm_date": string, + "alarm_IRQ": boolean, + "alrm_pending": boolean, + "update IRQ enabled": boolean, + "periodic IRQ enabled": boolean, + "periodic IRQ frequency": integer, + "max user IRQ frequency": integer, + "24hr": boolean, + "periodic_IRQ": boolean, + "update_IRQ": boolean, + "HPET_emulated": boolean, + "BCD": boolean, + "DST_enable": boolean, + "periodic_freq": integer, + "batt_status": string + } + +Examples: + + $ cat /proc/driver/rtc | jc --proc -p + { + "rtc_time": "16:09:21", + "rtc_date": "2022-09-03", + "alrm_time": "00:00:00", + "alrm_date": "2022-09-03", + "alarm_IRQ": false, + "alrm_pending": false, + "update IRQ enabled": false, + "periodic IRQ enabled": false, + "periodic IRQ frequency": 1024, + "max user IRQ frequency": 64, + "24hr": true, + "periodic_IRQ": false, + "update_IRQ": false, + "HPET_emulated": true, + "BCD": true, + "DST_enable": false, + "periodic_freq": 1024, + "batt_status": "okay" + } + + $ cat /proc/driver/rtc | jc --proc -p -r + { + "rtc_time": "16:09:21", + "rtc_date": "2022-09-03", + "alrm_time": "00:00:00", + "alrm_date": "2022-09-03", + "alarm_IRQ": "no", + "alrm_pending": "no", + "update IRQ enabled": "no", + "periodic IRQ enabled": "no", + "periodic IRQ frequency": "1024", + "max user IRQ frequency": "64", + "24hr": "yes", + "periodic_IRQ": "no", + "update_IRQ": "no", + "HPET_emulated": "yes", + "BCD": "yes", + "DST_enable": "no", + "periodic_freq": "1024", + "batt_status": "okay" + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/driver/rtc` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + for key, val in proc_data.items(): + try: + proc_data[key] = int(val) + except: + pass + + if val == 'yes': + proc_data[key] = True + + if val == 'no': + proc_data[key] = False + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + split_line = line.split(':', maxsplit=1) + key = split_line[0].strip() + val = split_line[1].rsplit(maxsplit=1)[0] + raw_output[key] = val + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_filesystems.py b/jc/parsers/proc_filesystems.py new file mode 100644 index 00000000..91170de4 --- /dev/null +++ b/jc/parsers/proc_filesystems.py @@ -0,0 +1,122 @@ +"""jc - JSON Convert `/proc/filesystems` file parser + +Usage (cli): + + $ cat /proc/filesystems | jc --proc + +or + + $ jc /proc/filesystems + +or + + $ cat /proc/filesystems | jc --proc-filesystems + +Usage (module): + + import jc + result = jc.parse('proc', proc_filesystems_file) + +or + + import jc + result = jc.parse('proc_filesystems', proc_filesystems_file) + +Schema: + + [ + { + "filesystem": string, + "nodev": boolean + } + ] + +Examples: + + $ cat /proc/filesystems | jc --proc -p + [ + { + "filesystem": "sysfs", + "nodev": true + }, + { + "filesystem": "tmpfs", + "nodev": true + }, + { + "filesystem": "bdev", + "nodev": true + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/filesystems` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + split_line = line.split() + output_line = {'filesystem': split_line[-1]} + + if len(split_line) == 2: + output_line['nodev'] = True # type: ignore + else: + output_line['nodev'] = False # type: ignore + + raw_output.append(output_line) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_interrupts.py b/jc/parsers/proc_interrupts.py new file mode 100644 index 00000000..49a27b19 --- /dev/null +++ b/jc/parsers/proc_interrupts.py @@ -0,0 +1,207 @@ +"""jc - JSON Convert `/proc/interrupts` file parser + +Usage (cli): + + $ cat /proc/interrupts | jc --proc + +or + + $ jc /proc/interrupts + +or + + $ cat /proc/interrupts | jc --proc-interrupts + +Usage (module): + + import jc + result = jc.parse('proc', proc_interrupts_file) + +or + + import jc + result = jc.parse('proc_interrupts', proc_interrupts_file) + +Schema: + + [ + { + "irq": string, + "cpu_num": integer, + "interrupts": [ + integer + ], + "type": string, + "device": [ + string + ] + } + ] + +Examples: + + $ cat /proc/interrupts | jc --proc -p + [ + { + "irq": "0", + "cpu_num": 2, + "interrupts": [ + 18, + 0 + ], + "type": "IO-APIC", + "device": [ + "2-edge", + "timer" + ] + }, + { + "irq": "1", + "cpu_num": 2, + "interrupts": [ + 0, + 73 + ], + "type": "IO-APIC", + "device": [ + "1-edge", + "i8042" + ] + }, + ... + ] + + $ cat /proc/interrupts | jc --proc-interrupts -p -r + [ + { + "irq": "0", + "cpu_num": 2, + "interrupts": [ + "18", + "0" + ], + "type": "IO-APIC", + "device": [ + "2-edge", + "timer" + ] + }, + { + "irq": "1", + "cpu_num": 2, + "interrupts": [ + "0", + "73" + ], + "type": "IO-APIC", + "device": [ + "1-edge", + "i8042" + ] + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/interrupts` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + for entry in proc_data: + entry['interrupts'] = [int(x) for x in entry['interrupts']] + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + data_lines = data.splitlines() + + # get the number of cpus + cpu_num = len(data_lines[0].split()) + + for line in filter(None, data_lines): + + # skip non-data lines + if not ':' in line: + continue + + # process data lines + split_line = line.split() + irq = split_line.pop(0)[:-1] + + interrupts = [] + if irq == 'ERR' or irq == 'MIS': + interrupts.extend(split_line) + + elif irq.isdigit(): + for _ in range(cpu_num): + interrupts.append(split_line.pop(0)) + + interrupt_type = split_line.pop(0) + device = split_line + + else: + for _ in range(cpu_num): + interrupts.append(split_line.pop(0)) + + interrupt_type = ' '.join(split_line) + device = [] + + raw_output.append( + { + 'irq': irq, + 'cpu_num': cpu_num, + 'interrupts': interrupts, + 'type': interrupt_type, + 'device': device or None + } + ) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_iomem.py b/jc/parsers/proc_iomem.py new file mode 100644 index 00000000..4b526d7a --- /dev/null +++ b/jc/parsers/proc_iomem.py @@ -0,0 +1,130 @@ +"""jc - JSON Convert `/proc/iomem` file parser + +Usage (cli): + + $ cat /proc/iomem | jc --proc + +or + + $ jc /proc/iomem + +or + + $ cat /proc/iomem | jc --proc-iomem + +Usage (module): + + import jc + result = jc.parse('proc', proc_iomem_file) + +or + + import jc + result = jc.parse('proc_iomem', proc_iomem_file) + +Schema: + + [ + { + "start": string, + "end": string, + "device": string + } + ] + +Examples: + + $ cat /proc/iomem | jc --proc -p + [ + { + "start": "00000000", + "end": "00000fff", + "device": "Reserved" + }, + { + "start": "00001000", + "end": "0009e7ff", + "device": "System RAM" + }, + { + "start": "0009e800", + "end": "0009ffff", + "device": "Reserved" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/iomem` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + colon_split = line.split(':', maxsplit=1) + device = colon_split[1].strip() + mem_split = colon_split[0].split('-', maxsplit=1) + start = mem_split[0].strip() + end = mem_split[1].strip() + + raw_output.append( + { + 'start': start, + 'end': end, + 'device': device + } + ) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_ioports.py b/jc/parsers/proc_ioports.py new file mode 100644 index 00000000..a1b6de0f --- /dev/null +++ b/jc/parsers/proc_ioports.py @@ -0,0 +1,113 @@ +"""jc - JSON Convert `/proc/ioports` file parser + +Usage (cli): + + $ cat /proc/ioports | jc --proc + +or + + $ jc /proc/ioports + +or + + $ cat /proc/ioports | jc --proc-ioports + +Usage (module): + + import jc + result = jc.parse('proc', proc_ioports_file) + +or + + import jc + result = jc.parse('proc_ioports', proc_ioports_file) + +Schema: + + [ + { + "start": string, + "end": string, + "device": string + } + ] + +Examples: + + $ cat /proc/ioports | jc --proc -p + [ + { + "start": "0000", + "end": "0cf7", + "device": "PCI Bus 0000:00" + }, + { + "start": "0000", + "end": "001f", + "device": "dma1" + }, + { + "start": "0020", + "end": "0021", + "device": "PNP0001:00" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +import jc.parsers.proc_iomem as proc_iomem + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/ioports` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = proc_iomem.parse(data, quiet=True, raw=raw) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_loadavg.py b/jc/parsers/proc_loadavg.py new file mode 100644 index 00000000..dc234c71 --- /dev/null +++ b/jc/parsers/proc_loadavg.py @@ -0,0 +1,139 @@ +"""jc - JSON Convert `/proc/loadavg` file parser + +Usage (cli): + + $ cat /proc/loadavg | jc --proc + +or + + $ jc /proc/loadavg + +or + + $ cat /proc/loadavg | jc --proc-loadavg + +Usage (module): + + import jc + result = jc.parse('proc', proc_loadavg_file) + +or + + import jc + result = jc.parse('proc_loadavg', proc_loadavg_file) + +Schema: + +All values are integers. + + { + "load_1m": float, + "load_5m": float, + "load_15m": float, + "running": integer, + "available": integer, + "last_pid": integer + } + +Examples: + + $ cat /proc/loadavg | jc --proc -p + { + "load_1m": 0.0, + "load_5m": 0.01, + "load_15m": 0.03, + "running": 2, + "available": 111, + "last_pid": 2039 + } + + $ cat /proc/loadavg | jc --proc -p -r + { + "load_1m": "0.00", + "load_5m": "0.01", + "load_15m": "0.03", + "running": "2", + "available": "111", + "last_pid": "2039" + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/loadavg` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + float_list = {'load_1m', 'load_5m', 'load_15m'} + int_list = {'running', 'available', 'last_pid'} + + for key in proc_data: + if key in float_list: + proc_data[key] = float(proc_data[key]) + + if key in int_list: + proc_data[key] = int(proc_data[key]) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + load_1m, load_5m, load_15m, runnable, last_pid = data.split() + running, available = runnable.split('/') + + raw_output = { + 'load_1m': load_1m, + 'load_5m': load_5m, + 'load_15m': load_15m, + 'running': running, + 'available': available, + 'last_pid': last_pid + } + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_locks.py b/jc/parsers/proc_locks.py new file mode 100644 index 00000000..ce4c675e --- /dev/null +++ b/jc/parsers/proc_locks.py @@ -0,0 +1,186 @@ +"""jc - JSON Convert `/proc/locks` file parser + +Usage (cli): + + $ cat /proc/locks | jc --proc + +or + + $ jc /proc/locks + +or + + $ cat /proc/locks | jc --proc-locks + +Usage (module): + + import jc + result = jc.parse('proc', proc_locks_file) + +or + + import jc + result = jc.parse('proc_locks', proc_locks_file) + +Schema: + + [ + { + "id": integer, + "class": string, + "type": string, + "access": string, + "pid": integer, + "maj": string, + "min": string, + "inode": integer, + "start": string, + "end": string + } + ] + +Examples: + + $ cat /proc/locks | jc --proc -p + [ + { + "id": 1, + "class": "POSIX", + "type": "ADVISORY", + "access": "WRITE", + "pid": 877, + "maj": "00", + "min": "19", + "inode": 812, + "start": "0", + "end": "EOF" + }, + { + "id": 2, + "class": "FLOCK", + "type": "ADVISORY", + "access": "WRITE", + "pid": 854, + "maj": "00", + "min": "19", + "inode": 805, + "start": "0", + "end": "EOF" + }, + ... + ] + + $ cat /proc/locks | jc --proc-locks -p -r + [ + { + "id": "1", + "class": "POSIX", + "type": "ADVISORY", + "access": "WRITE", + "pid": "877", + "maj": "00", + "min": "19", + "inode": "812", + "start": "0", + "end": "EOF" + }, + { + "id": "2", + "class": "FLOCK", + "type": "ADVISORY", + "access": "WRITE", + "pid": "854", + "maj": "00", + "min": "19", + "inode": "805", + "start": "0", + "end": "EOF" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/locks` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'id', 'pid', 'inode'} + + for entry in proc_data: + for key in entry: + if key in int_list: + entry[key] = int(entry[key]) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + id, class_, type_, access, pid, file, start, end = line.split() + maj, min, inode = file.split(':') + + raw_output.append( + { + 'id': id[:-1], + 'class': class_, + 'type': type_, + 'access': access, + 'pid': pid, + 'maj': maj, + 'min': min, + 'inode': inode, + 'start': start, + 'end': end + } + ) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_meminfo.py b/jc/parsers/proc_meminfo.py new file mode 100644 index 00000000..bf378374 --- /dev/null +++ b/jc/parsers/proc_meminfo.py @@ -0,0 +1,151 @@ +"""jc - JSON Convert `/proc/meminfo` file parser + +Usage (cli): + + $ cat /proc/meminfo | jc --proc + +or + + $ jc /proc/meminfo + +or + + $ cat /proc/meminfo | jc --proc-meminfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_meminfo_file) + +or + + import jc + result = jc.parse('proc_meminfo', proc_meminfo_file) + +Schema: + +All values are integers. + + { + integer + } + +Examples: + + $ cat /proc/meminfo | jc --proc -p + { + "MemTotal": 3997272, + "MemFree": 2760316, + "MemAvailable": 3386876, + "Buffers": 40452, + "Cached": 684856, + "SwapCached": 0, + "Active": 475816, + "Inactive": 322064, + "Active(anon)": 70216, + "Inactive(anon)": 148, + "Active(file)": 405600, + "Inactive(file)": 321916, + "Unevictable": 19476, + "Mlocked": 19476, + "SwapTotal": 3996668, + "SwapFree": 3996668, + "Dirty": 152, + "Writeback": 0, + "AnonPages": 92064, + "Mapped": 79464, + "Shmem": 1568, + "KReclaimable": 188216, + "Slab": 288096, + "SReclaimable": 188216, + "SUnreclaim": 99880, + "KernelStack": 5872, + "PageTables": 1812, + "NFS_Unstable": 0, + "Bounce": 0, + "WritebackTmp": 0, + "CommitLimit": 5995304, + "Committed_AS": 445240, + "VmallocTotal": 34359738367, + "VmallocUsed": 21932, + "VmallocChunk": 0, + "Percpu": 107520, + "HardwareCorrupted": 0, + "AnonHugePages": 0, + "ShmemHugePages": 0, + "ShmemPmdMapped": 0, + "FileHugePages": 0, + "FilePmdMapped": 0, + "HugePages_Total": 0, + "HugePages_Free": 0, + "HugePages_Rsvd": 0, + "HugePages_Surp": 0, + "Hugepagesize": 2048, + "Hugetlb": 0, + "DirectMap4k": 192320, + "DirectMap2M": 4001792, + "DirectMap1G": 2097152 + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/meminfo` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + key, val, *_ = line.replace(':', '').split() + raw_output[key] = int(val) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_modules.py b/jc/parsers/proc_modules.py new file mode 100644 index 00000000..e94cbb54 --- /dev/null +++ b/jc/parsers/proc_modules.py @@ -0,0 +1,184 @@ +"""jc - JSON Convert `/proc/modules` file parser + +Usage (cli): + + $ cat /proc/modules | jc --proc + +or + + $ jc /proc/modules + +or + + $ cat /proc/modules | jc --proc-modules + +Usage (module): + + import jc + result = jc.parse('proc', proc_modules_file) + +or + + import jc + result = jc.parse('proc_modules', proc_modules_file) + +Schema: + + [ + { + "module": string, + "size": integer, + "used": integer, + "used_by": [ + string + ], + "status": string, + "location": string + } + ] + +Examples: + + $ cat /proc/modules | jc --proc -p + [ + { + "module": "binfmt_misc", + "size": 24576, + "used": 1, + "used_by": [], + "status": "Live", + "location": "0xffffffffc0ab4000" + }, + { + "module": "vsock_loopback", + "size": 16384, + "used": 0, + "used_by": [], + "status": "Live", + "location": "0xffffffffc0a14000" + }, + { + "module": "vmw_vsock_virtio_transport_common", + "size": 36864, + "used": 1, + "used_by": [ + "vsock_loopback" + ], + "status": "Live", + "location": "0xffffffffc0a03000" + }, + ... + ] + + $ cat /proc/modules | jc --proc-modules -p -r + [ + { + "module": "binfmt_misc", + "size": "24576", + "used": "1", + "used_by": [], + "status": "Live", + "location": "0xffffffffc0ab4000" + }, + { + "module": "vsock_loopback", + "size": "16384", + "used": "0", + "used_by": [], + "status": "Live", + "location": "0xffffffffc0a14000" + }, + { + "module": "vmw_vsock_virtio_transport_common", + "size": "36864", + "used": "1", + "used_by": [ + "vsock_loopback" + ], + "status": "Live", + "location": "0xffffffffc0a03000" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/modules` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'size', 'used'} + + for entry in proc_data: + for key in entry: + if key in int_list: + entry[key] = jc.utils.convert_to_int(entry[key]) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + module, size, used, used_by, status, location = line.split() + used_by_list = used_by.split(',')[:-1] + + raw_output.append( + { + 'module': module, + 'size': size, + 'used': used, + 'used_by': used_by_list, + 'status': status, + 'location': location + } + ) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_mtrr.py b/jc/parsers/proc_mtrr.py new file mode 100644 index 00000000..052414b4 --- /dev/null +++ b/jc/parsers/proc_mtrr.py @@ -0,0 +1,182 @@ +"""jc - JSON Convert `/proc/mtrr` file parser + +Usage (cli): + + $ cat /proc/mtrr | jc --proc + +or + + $ jc /proc/mtrr + +or + + $ cat /proc/mtrr | jc --proc-mtrr + +Usage (module): + + import jc + result = jc.parse('proc', proc_mtrr_file) + +or + + import jc + result = jc.parse('proc_mtrr', proc_mtrr_file) + +Schema: + + [ + { + "register": string, + "type": string, + "base": string, + "base_mb": integer, + "size": integer, + "count": integer, + "": string # additional key/values are strings + } + ] + +Examples: + + $ cat /proc/mtrr | jc --proc -p + [ + { + "register": "reg00", + "type": "write-back", + "base": "0x000000000", + "base_mb": 0, + "size": 2048, + "count": 1 + }, + { + "register": "reg01", + "type": "write-back", + "base": "0x080000000", + "base_mb": 2048, + "size": 1024, + "count": 1 + }, + ... + ] + + $ cat /proc/mtrr | jc --proc-mtrr -p -r + [ + { + "register": "reg00", + "type": "write-back", + "base": "0x000000000", + "base_mb": "0", + "size": "2048MB", + "count": "1" + }, + { + "register": "reg01", + "type": "write-back", + "base": "0x080000000", + "base_mb": "2048", + "size": "1024MB", + "count": "1" + }, + ... + ] +""" +import re +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/mtrr` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'size', 'count', 'base_mb'} + + for entry in proc_data: + for key in entry: + if key in int_list: + entry[key] = jc.utils.convert_to_int(entry[key]) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + split_line = re.split(r',|:', line) + register = split_line.pop(0) + type_ = None + key_vals: list = [] + + base, base_mb = split_line.pop(0).split(maxsplit=1) + key_vals.append(base) + + base_mb = base_mb.replace('(', '').replace(')', '').replace('MB', '').strip() + key_vals.append(f'base_mb={base_mb}') + + for item in split_line: + if '=' in item: + key_vals.append(item.strip()) + + else: + type_ = item.strip() + + output_line = { + 'register': register, + 'type': type_ + } + + kv_dict = {} + + for item in key_vals: + key, val = item.split('=') + kv_dict[key.strip()] = val.strip() + + output_line.update(kv_dict) + raw_output.append(output_line) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_arp.py b/jc/parsers/proc_net_arp.py new file mode 100644 index 00000000..1535326d --- /dev/null +++ b/jc/parsers/proc_net_arp.py @@ -0,0 +1,116 @@ +"""jc - JSON Convert `/proc/net/arp` file parser + +Usage (cli): + + $ cat /proc/net/arp | jc --proc + +or + + $ jc /proc/net/arp + +or + + $ cat /proc/net/arp | jc --proc-net-arp + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_arp_file) + +or + + import jc + result = jc.parse('proc_net_arp', proc_net_arp_file) + +Schema: + + [ + { + "IP_address": string, + "HW_type": string, + "Flags": string, + "HW_address": string, + "Mask": string, + "Device": string + } + ] + +Examples: + + $ cat /proc/net/arp | jc --proc -p + [ + { + "IP_address": "192.168.71.254", + "HW_type": "0x1", + "Flags": "0x2", + "HW_address": "00:50:56:f3:2f:ae", + "Mask": "*", + "Device": "ens33" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/arp` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = 'IP_address HW_type Flags HW_address Mask Device' + data_splitlines = data.splitlines() + data_splitlines[0] = header + raw_output = simple_table_parse(data_splitlines) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_dev.py b/jc/parsers/proc_net_dev.py new file mode 100644 index 00000000..a72ac899 --- /dev/null +++ b/jc/parsers/proc_net_dev.py @@ -0,0 +1,173 @@ +"""jc - JSON Convert `/proc/net/dev` file parser + +Usage (cli): + + $ cat /proc/net/dev | jc --proc + +or + + $ jc /proc/net/dev + +or + + $ cat /proc/net/dev | jc --proc-net-dev + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_dev_file) + +or + + import jc + result = jc.parse('proc_net_dev', proc_net_dev_file) + +Schema: + + [ + { + "interface": string, + "r_bytes": integer, + "r_packets": integer, + "r_errs": integer, + "r_drop": integer, + "r_fifo": integer, + "r_frame": integer, + "r_compressed": integer, + "r_multicast": integer, + "t_bytes": integer, + "t_packets": integer, + "t_errs": integer, + "t_drop": integer, + "t_fifo": integer, + "t_colls": integer, + "t_carrier": integer, + "t_compressed": integer + } + ] + +Examples: + + $ cat /proc/net/dev | jc --proc -p + [ + { + "interface": "lo", + "r_bytes": 13222, + "r_packets": 152, + "r_errs": 0, + "r_drop": 0, + "r_fifo": 0, + "r_frame": 0, + "r_compressed": 0, + "r_multicast": 0, + "t_bytes": 13222, + "t_packets": 152, + "t_errs": 0, + "t_drop": 0, + "t_fifo": 0, + "t_colls": 0, + "t_carrier": 0, + "t_compressed": 0 + }, + ... + ] + + $ cat /proc/net/dev | jc --proc-net-dev -p -r + [ + { + "interface": "lo:", + "r_bytes": "13222", + "r_packets": "152", + "r_errs": "0", + "r_drop": "0", + "r_fifo": "0", + "r_frame": "0", + "r_compressed": "0", + "r_multicast": "0", + "t_bytes": "13222", + "t_packets": "152", + "t_errs": "0", + "t_drop": "0", + "t_fifo": "0", + "t_colls": "0", + "t_carrier": "0", + "t_compressed": "0" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/dev` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + for item in proc_data: + if 'interface' in item: + item['interface'] = item['interface'][:-1] + + for key, val in item.items(): + try: + item[key] = int(val) + except Exception: + pass + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = 'interface r_bytes r_packets r_errs r_drop r_fifo r_frame r_compressed r_multicast t_bytes t_packets t_errs t_drop t_fifo t_colls t_carrier t_compressed' + data_splitlines = data.splitlines() + data_splitlines.pop(0) + data_splitlines[0] = header + raw_output = simple_table_parse(data_splitlines) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_dev_mcast.py b/jc/parsers/proc_net_dev_mcast.py new file mode 100644 index 00000000..62563b9a --- /dev/null +++ b/jc/parsers/proc_net_dev_mcast.py @@ -0,0 +1,150 @@ +"""jc - JSON Convert `/proc/net/dev_mcast` file parser + +Usage (cli): + + $ cat /proc/net/dev_mcast | jc --proc + +or + + $ jc /proc/net/dev_mcast + +or + + $ cat /proc/net/dev_mcast | jc --proc-net-dev-mcast + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_dev_mcast_file) + +or + + import jc + result = jc.parse('proc_net_dev_mcast', proc_net_dev_mcast_file) + +Schema: + + [ + { + "index": integer, + "interface": string, + "dmi_u": integer, + "dmi_g": integer, + "dmi_address": string + } + ] + +Examples: + + $ cat /proc/net/dev_mcast | jc --proc -p + [ + { + "index": 2, + "interface": "ens33", + "dmi_u": 1, + "dmi_g": 0, + "dmi_address": "333300000001" + }, + { + "index": 2, + "interface": "ens33", + "dmi_u": 1, + "dmi_g": 0, + "dmi_address": "01005e000001" + }, + ... + ] + + $ cat /proc/net/dev_mcast | jc --proc-net-dev-mcast -p -r + [ + { + "index": "2", + "interface": "ens33", + "dmi_u": "1", + "dmi_g": "0", + "dmi_address": "333300000001" + }, + { + "index": "2", + "interface": "ens33", + "dmi_u": "1", + "dmi_g": "0", + "dmi_address": "01005e000001" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/dev_mcast` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + no_convert = {'interface_name', 'dmi_address'} + + for item in proc_data: + for key, val in item.items(): + if key not in no_convert: + try: + item[key] = int(val) + except Exception: + pass + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = 'index interface dmi_u dmi_g dmi_address\n' + data = header + data + data_splitlines = data.splitlines() + raw_output = simple_table_parse(data_splitlines) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_if_inet6.py b/jc/parsers/proc_net_if_inet6.py new file mode 100644 index 00000000..700e8ba0 --- /dev/null +++ b/jc/parsers/proc_net_if_inet6.py @@ -0,0 +1,122 @@ +"""jc - JSON Convert `/proc/net/if_inet6` file parser + +Usage (cli): + + $ cat /proc/net/if_inet6 | jc --proc + +or + + $ jc /proc/net/if_inet6 + +or + + $ cat /proc/net/if_inet6 | jc --proc-net-if-inet6 + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_if_inet6_file) + +or + + import jc + result = jc.parse('proc_net_if_inet6', proc_net_if_inet6_file) + +Schema: + + [ + { + "address": string, + "index": string, + "prefix": string, + "scope": string, + "flags": string, + "name": string + } + ] + +Examples: + + $ cat /proc/net/if_inet6 | jc --proc -p + [ + { + "address": "fe80000000000000020c29fffea4e315", + "index": "02", + "prefix": "40", + "scope": "20", + "flags": "80", + "name": "ens33" + }, + { + "address": "00000000000000000000000000000001", + "index": "01", + "prefix": "80", + "scope": "10", + "flags": "80", + "name": "lo" + } + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/if_inet6` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = 'address index prefix scope flags name\n' + data = header + data + raw_output = simple_table_parse(data.splitlines()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_igmp.py b/jc/parsers/proc_net_igmp.py new file mode 100644 index 00000000..4f80151b --- /dev/null +++ b/jc/parsers/proc_net_igmp.py @@ -0,0 +1,231 @@ +"""jc - JSON Convert `/proc/net/igmp` file parser + +Usage (cli): + + $ cat /proc/net/igmp | jc --proc + +or + + $ jc /proc/net/igmp + +or + + $ cat /proc/net/igmp | jc --proc-net-igmp + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_igmp_file) + +or + + import jc + result = jc.parse('proc_net_igmp', proc_net_igmp_file) + +Schema: + + [ + { + "index": integer, + "device": string, + "count": integer, + "querier": string, + "groups": [ + { + "address": string, + "users": integer, + "timer": string, + "reporter": integer + } + ] + } + ] + +Examples: + + $ cat /proc/net/igmp | jc --proc -p + [ + { + "index": 0, + "device": "lo", + "count": 0, + "querier": "V3", + "groups": [ + { + "address": "010000E0", + "users": 1, + "timer": "0:00000000", + "reporter": 0 + } + ] + }, + { + "index": 2, + "device": "eth0", + "count": 26, + "querier": "V2", + "groups": [ + { + "address": "260301E0", + "users": 1, + "timer": "0:00000000", + "reporter": 1 + }, + { + "address": "9B0101E0", + "users": 1, + "timer": "0:00000000", + "reporter": 1 + }, + ] + } + ... + ] + + $ cat /proc/net/igmp | jc --proc-net-igmp -p -r + [ + { + "index": "0", + "device": "lo", + "count": "0", + "querier": "V3", + "groups": [ + { + "address": "010000E0", + "users": "1", + "timer": "0:00000000", + "reporter": "0" + } + ] + }, + { + "index": "2", + "device": "eth0", + "count": "26", + "querier": "V2", + "groups": [ + { + "address": "260301E0", + "users": "1", + "timer": "0:00000000", + "reporter": "1" + }, + { + "address": "9B0101E0", + "users": "1", + "timer": "0:00000000", + "reporter": "1" + }, + ] + } + ... + } +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/igmp` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'index', 'count', 'users', 'reporter'} + + for item in proc_data: + for key, val in item.items(): + if key in int_list: + item[key] = int(val) + + if 'groups' in item: + for group in item['groups']: + for key, val in group.items(): + if key in int_list: + group[key] = int(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + output_line: Dict = {} + groups: List = [] + group: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()[1:]): + if not line.startswith('\t'): + if output_line: + if groups: + output_line['groups'] = groups + raw_output.append(output_line) + output_line = {} + groups = [] + group = {} + + index, device, _, count, querier = line.split() + output_line = { + 'index': index, + 'device': device, + 'count': count, + 'querier': querier + } + continue + + address, users, timer, reporter = line.split() + group = { + 'address': address, + 'users': users, + 'timer': timer, + 'reporter': reporter + } + groups.append(group) + continue + + if output_line: + if groups: + output_line['groups'] = groups + raw_output.append(output_line) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_igmp6.py b/jc/parsers/proc_net_igmp6.py new file mode 100644 index 00000000..6c8949ed --- /dev/null +++ b/jc/parsers/proc_net_igmp6.py @@ -0,0 +1,166 @@ +"""jc - JSON Convert `/proc/net/igmp6` file parser + +Usage (cli): + + $ cat /proc/net/igmp6 | jc --proc + +or + + $ jc /proc/net/igmp6 + +or + + $ cat /proc/net/igmp6 | jc --proc-net-igmp6 + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_igmp6_file) + +or + + import jc + result = jc.parse('proc_net_igmp6', proc_net_igmp6_file) + +Schema: + + [ + { + "index": integer, + "name": string, + "address": string, + "users": integer, + "group": string, + "reporters": integer + } + ] + +Examples: + + $ cat /proc/net/igmp6 | jc --proc -p + [ + { + "index": 1, + "name": "lo", + "address": "ff020000000000000000000000000001", + "users": 1, + "group": "0000000C", + "reporters": 0 + }, + { + "index": 1, + "name": "lo", + "address": "ff010000000000000000000000000001", + "users": 1, + "group": "00000008", + "reporters": 0 + }, + { + "index": 2, + "name": "ens33", + "address": "ff0200000000000000000001ffa4e315", + "users": 1, + "group": "00000004", + "reporters": 0 + }, + ... + ] + + $ cat /proc/net/igmp6 | jc --proc-net-igmp6 -p -r + [ + { + "index": "1", + "name": "lo", + "address": "ff020000000000000000000000000001", + "users": "1", + "group": "0000000C", + "reporters": "0" + }, + { + "index": "1", + "name": "lo", + "address": "ff010000000000000000000000000001", + "users": "1", + "group": "00000008", + "reporters": "0" + }, + { + "index": "2", + "name": "ens33", + "address": "ff0200000000000000000001ffa4e315", + "users": "1", + "group": "00000004", + "reporters": "0" + } + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/igmp6` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'index', 'users', 'reporters'} + + for item in proc_data: + for key, val in item.items(): + if key in int_list: + item[key] = int(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = 'index name address users group reporters\n' + data = header + data + raw_output = simple_table_parse(data.splitlines()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_ipv6_route.py b/jc/parsers/proc_net_ipv6_route.py new file mode 100644 index 00000000..ccc0be1a --- /dev/null +++ b/jc/parsers/proc_net_ipv6_route.py @@ -0,0 +1,123 @@ +"""jc - JSON Convert `/proc/net/ipv6_route` file parser + +Usage (cli): + + $ cat /proc/net/ipv6_route | jc --proc + +or + + $ jc /proc/net/ipv6_route + +or + + $ cat /proc/net/ipv6_route | jc --proc-net-ipv6-route + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_ipv6_route_file) + +or + + import jc + result = jc.parse('proc_net_ipv6_route', proc_net_ipv6_route_file) + +Schema: + + [ + { + "dest_net": string, + "dest_prefix": string, + "source_net": string, + "source_prefix": string, + "next_hop": string, + "metric": string, + "ref_count": string, + "use_count": string, + "flags": string, + "device": string + } + ] + +Examples: + + $ cat /proc/net/ipv6_route | jc --proc -p + [ + { + "dest_net": "00000000000000000000000000000001", + "dest_prefix": "80", + "source_net": "00000000000000000000000000000000", + "source_prefix": "00", + "next_hop": "00000000000000000000000000000000", + "metric": "00000100", + "ref_count": "00000001", + "use_count": "00000000", + "flags": "00000001", + "device": "lo" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/ipv6_route` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = 'dest_net dest_prefix source_net source_prefix next_hop metric ref_count use_count flags device\n' + data = header + data + raw_output = simple_table_parse(data.splitlines()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_netlink.py b/jc/parsers/proc_net_netlink.py new file mode 100644 index 00000000..c5a65966 --- /dev/null +++ b/jc/parsers/proc_net_netlink.py @@ -0,0 +1,169 @@ +"""jc - JSON Convert `/proc/net/netlink` file parser + +Usage (cli): + + $ cat /proc/net/netlink | jc --proc + +or + + $ jc /proc/net/netlink + +or + + $ cat /proc/net/netlink | jc --proc-net-netlink + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_netlink_file) + +or + + import jc + result = jc.parse('proc_net_netlink', proc_net_netlink_file) + +Schema: + + [ + { + "sk": string, + "Eth": integer, + "Pid": integer, + "Groups": string, + "Rmem": integer, + "Wmem": integer, + "Dump": integer, + "Locks": integer, + "Drops": integer, + "Inode": integer + } + ] + +Examples: + + $ cat /proc/net/netlink | jc --proc -p + [ + { + "sk": "ffff9b61adaff000", + "Eth": 0, + "Pid": 1, + "Groups": "800405d5", + "Rmem": 0, + "Wmem": 0, + "Dump": 0, + "Locks": 2, + "Drops": 0, + "Inode": 29791 + }, + { + "sk": "ffff9b61a792a000", + "Eth": 0, + "Pid": 837, + "Groups": "00000111", + "Rmem": 0, + "Wmem": 0, + "Dump": 0, + "Locks": 2, + "Drops": 0, + "Inode": 35337 + }, + ... + ] + + $ cat /proc/net/netlink | jc --proc-net-netlink -p -r + [ + { + "sk": "ffff9b61adaff000", + "Eth": "0", + "Pid": "1", + "Groups": "800405d5", + "Rmem": "0", + "Wmem": "0", + "Dump": "0", + "Locks": "2", + "Drops": "0", + "Inode": "29791" + }, + { + "sk": "ffff9b61a792a000", + "Eth": "0", + "Pid": "837", + "Groups": "00000111", + "Rmem": "0", + "Wmem": "0", + "Dump": "0", + "Locks": "2", + "Drops": "0", + "Inode": "35337" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/netlink` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'Eth', 'Pid', 'Rmem', 'Wmem', 'Dump', 'Locks', 'Drops', 'Inode'} + + for item in proc_data: + for key, val in item.items(): + if key in int_list: + item[key] = int(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + raw_output = simple_table_parse(data.splitlines()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_netstat.py b/jc/parsers/proc_net_netstat.py new file mode 100644 index 00000000..fe84eb93 --- /dev/null +++ b/jc/parsers/proc_net_netstat.py @@ -0,0 +1,381 @@ +"""jc - JSON Convert `/proc/net/netstat` file parser + +Usage (cli): + + $ cat /proc/net/netstat | jc --proc + +or + + $ jc /proc/net/netstat + +or + + $ cat /proc/net/netstat | jc --proc-net-netstat + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_netstat_file) + +or + + import jc + result = jc.parse('proc_net_netstat', proc_net_netstat_file) + +Schema: + +All values except "type" are integers + + [ + { + "type": string, + "": integer + } + ] + +Examples: + + $ cat /proc/net/netstat | jc --proc -p + [ + { + "SyncookiesSent": 0, + "SyncookiesRecv": 0, + "SyncookiesFailed": 0, + "EmbryonicRsts": 0, + "PruneCalled": 0, + "RcvPruned": 0, + "OfoPruned": 0, + "OutOfWindowIcmps": 0, + "LockDroppedIcmps": 0, + "ArpFilter": 0, + "TW": 3, + "TWRecycled": 0, + "TWKilled": 0, + "PAWSActive": 0, + "PAWSEstab": 0, + "DelayedACKs": 10, + "DelayedACKLocked": 53, + "DelayedACKLost": 0, + "ListenOverflows": 0, + "ListenDrops": 0, + "TCPHPHits": 2387, + "TCPPureAcks": 12711, + "TCPHPAcks": 53535, + "TCPRenoRecovery": 0, + "TCPSackRecovery": 0, + "TCPSACKReneging": 0, + "TCPSACKReorder": 0, + "TCPRenoReorder": 0, + "TCPTSReorder": 0, + "TCPFullUndo": 0, + "TCPPartialUndo": 0, + "TCPDSACKUndo": 0, + "TCPLossUndo": 0, + "TCPLostRetransmit": 0, + "TCPRenoFailures": 0, + "TCPSackFailures": 0, + "TCPLossFailures": 0, + "TCPFastRetrans": 0, + "TCPSlowStartRetrans": 0, + "TCPTimeouts": 0, + "TCPLossProbes": 0, + "TCPLossProbeRecovery": 0, + "TCPRenoRecoveryFail": 0, + "TCPSackRecoveryFail": 0, + "TCPRcvCollapsed": 0, + "TCPBacklogCoalesce": 2883, + "TCPDSACKOldSent": 0, + "TCPDSACKOfoSent": 0, + "TCPDSACKRecv": 0, + "TCPDSACKOfoRecv": 0, + "TCPAbortOnData": 0, + "TCPAbortOnClose": 1, + "TCPAbortOnMemory": 0, + "TCPAbortOnTimeout": 0, + "TCPAbortOnLinger": 0, + "TCPAbortFailed": 0, + "TCPMemoryPressures": 0, + "TCPMemoryPressuresChrono": 0, + "TCPSACKDiscard": 0, + "TCPDSACKIgnoredOld": 0, + "TCPDSACKIgnoredNoUndo": 0, + "TCPSpuriousRTOs": 0, + "TCPMD5NotFound": 0, + "TCPMD5Unexpected": 0, + "TCPMD5Failure": 0, + "TCPSackShifted": 0, + "TCPSackMerged": 0, + "TCPSackShiftFallback": 0, + "TCPBacklogDrop": 0, + "PFMemallocDrop": 0, + "TCPMinTTLDrop": 0, + "TCPDeferAcceptDrop": 0, + "IPReversePathFilter": 0, + "TCPTimeWaitOverflow": 0, + "TCPReqQFullDoCookies": 0, + "TCPReqQFullDrop": 0, + "TCPRetransFail": 0, + "TCPRcvCoalesce": 151, + "TCPOFOQueue": 0, + "TCPOFODrop": 0, + "TCPOFOMerge": 0, + "TCPChallengeACK": 0, + "TCPSYNChallenge": 0, + "TCPFastOpenActive": 0, + "TCPFastOpenActiveFail": 0, + "TCPFastOpenPassive": 0, + "TCPFastOpenPassiveFail": 0, + "TCPFastOpenListenOverflow": 0, + "TCPFastOpenCookieReqd": 0, + "TCPFastOpenBlackhole": 0, + "TCPSpuriousRtxHostQueues": 0, + "BusyPollRxPackets": 0, + "TCPAutoCorking": 28376, + "TCPFromZeroWindowAdv": 0, + "TCPToZeroWindowAdv": 0, + "TCPWantZeroWindowAdv": 0, + "TCPSynRetrans": 0, + "TCPOrigDataSent": 119438, + "TCPHystartTrainDetect": 3, + "TCPHystartTrainCwnd": 60, + "TCPHystartDelayDetect": 0, + "TCPHystartDelayCwnd": 0, + "TCPACKSkippedSynRecv": 0, + "TCPACKSkippedPAWS": 0, + "TCPACKSkippedSeq": 0, + "TCPACKSkippedFinWait2": 0, + "TCPACKSkippedTimeWait": 0, + "TCPACKSkippedChallenge": 0, + "TCPWinProbe": 0, + "TCPKeepAlive": 6, + "TCPMTUPFail": 0, + "TCPMTUPSuccess": 0, + "TCPDelivered": 119453, + "TCPDeliveredCE": 0, + "TCPAckCompressed": 0, + "TCPZeroWindowDrop": 0, + "TCPRcvQDrop": 0, + "TCPWqueueTooBig": 0, + "TCPFastOpenPassiveAltKey": 0, + "TcpTimeoutRehash": 0, + "TcpDuplicateDataRehash": 0, + "type": "TcpExt" + }, + ... + ] + + $ cat /proc/net/netstat | jc --proc-net-netstat -p -r + [ + { + "SyncookiesSent": "0", + "SyncookiesRecv": "0", + "SyncookiesFailed": "0", + "EmbryonicRsts": "0", + "PruneCalled": "0", + "RcvPruned": "0", + "OfoPruned": "0", + "OutOfWindowIcmps": "0", + "LockDroppedIcmps": "0", + "ArpFilter": "0", + "TW": "3", + "TWRecycled": "0", + "TWKilled": "0", + "PAWSActive": "0", + "PAWSEstab": "0", + "DelayedACKs": "10", + "DelayedACKLocked": "53", + "DelayedACKLost": "0", + "ListenOverflows": "0", + "ListenDrops": "0", + "TCPHPHits": "2387", + "TCPPureAcks": "12711", + "TCPHPAcks": "53535", + "TCPRenoRecovery": "0", + "TCPSackRecovery": "0", + "TCPSACKReneging": "0", + "TCPSACKReorder": "0", + "TCPRenoReorder": "0", + "TCPTSReorder": "0", + "TCPFullUndo": "0", + "TCPPartialUndo": "0", + "TCPDSACKUndo": "0", + "TCPLossUndo": "0", + "TCPLostRetransmit": "0", + "TCPRenoFailures": "0", + "TCPSackFailures": "0", + "TCPLossFailures": "0", + "TCPFastRetrans": "0", + "TCPSlowStartRetrans": "0", + "TCPTimeouts": "0", + "TCPLossProbes": "0", + "TCPLossProbeRecovery": "0", + "TCPRenoRecoveryFail": "0", + "TCPSackRecoveryFail": "0", + "TCPRcvCollapsed": "0", + "TCPBacklogCoalesce": "2883", + "TCPDSACKOldSent": "0", + "TCPDSACKOfoSent": "0", + "TCPDSACKRecv": "0", + "TCPDSACKOfoRecv": "0", + "TCPAbortOnData": "0", + "TCPAbortOnClose": "1", + "TCPAbortOnMemory": "0", + "TCPAbortOnTimeout": "0", + "TCPAbortOnLinger": "0", + "TCPAbortFailed": "0", + "TCPMemoryPressures": "0", + "TCPMemoryPressuresChrono": "0", + "TCPSACKDiscard": "0", + "TCPDSACKIgnoredOld": "0", + "TCPDSACKIgnoredNoUndo": "0", + "TCPSpuriousRTOs": "0", + "TCPMD5NotFound": "0", + "TCPMD5Unexpected": "0", + "TCPMD5Failure": "0", + "TCPSackShifted": "0", + "TCPSackMerged": "0", + "TCPSackShiftFallback": "0", + "TCPBacklogDrop": "0", + "PFMemallocDrop": "0", + "TCPMinTTLDrop": "0", + "TCPDeferAcceptDrop": "0", + "IPReversePathFilter": "0", + "TCPTimeWaitOverflow": "0", + "TCPReqQFullDoCookies": "0", + "TCPReqQFullDrop": "0", + "TCPRetransFail": "0", + "TCPRcvCoalesce": "151", + "TCPOFOQueue": "0", + "TCPOFODrop": "0", + "TCPOFOMerge": "0", + "TCPChallengeACK": "0", + "TCPSYNChallenge": "0", + "TCPFastOpenActive": "0", + "TCPFastOpenActiveFail": "0", + "TCPFastOpenPassive": "0", + "TCPFastOpenPassiveFail": "0", + "TCPFastOpenListenOverflow": "0", + "TCPFastOpenCookieReqd": "0", + "TCPFastOpenBlackhole": "0", + "TCPSpuriousRtxHostQueues": "0", + "BusyPollRxPackets": "0", + "TCPAutoCorking": "28376", + "TCPFromZeroWindowAdv": "0", + "TCPToZeroWindowAdv": "0", + "TCPWantZeroWindowAdv": "0", + "TCPSynRetrans": "0", + "TCPOrigDataSent": "119438", + "TCPHystartTrainDetect": "3", + "TCPHystartTrainCwnd": "60", + "TCPHystartDelayDetect": "0", + "TCPHystartDelayCwnd": "0", + "TCPACKSkippedSynRecv": "0", + "TCPACKSkippedPAWS": "0", + "TCPACKSkippedSeq": "0", + "TCPACKSkippedFinWait2": "0", + "TCPACKSkippedTimeWait": "0", + "TCPACKSkippedChallenge": "0", + "TCPWinProbe": "0", + "TCPKeepAlive": "6", + "TCPMTUPFail": "0", + "TCPMTUPSuccess": "0", + "TCPDelivered": "119453", + "TCPDeliveredCE": "0", + "TCPAckCompressed": "0", + "TCPZeroWindowDrop": "0", + "TCPRcvQDrop": "0", + "TCPWqueueTooBig": "0", + "TCPFastOpenPassiveAltKey": "0", + "TcpTimeoutRehash": "0", + "TcpDuplicateDataRehash": "0", + "type": "TcpExt" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/netstat` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + for item in proc_data: + for key, val in item.items(): + if key != 'type': + item[key] = int(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + rows: List = [] + this_row: str = '' + headers: str = '' + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + row_name, header_data = line.split(':', maxsplit=1) + + if row_name in rows: + # this is data + _, row_data = line.split(':', maxsplit=1) + data_table = headers + row_data + output_line = simple_table_parse(data_table.splitlines()) + output_line[0]['type'] = this_row + raw_output.extend(output_line) + continue + + else: + # this is a header row + rows.append(row_name) + this_row = row_name + headers = header_data + '\n' + continue + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_packet.py b/jc/parsers/proc_net_packet.py new file mode 100644 index 00000000..37d3cf63 --- /dev/null +++ b/jc/parsers/proc_net_packet.py @@ -0,0 +1,134 @@ +"""jc - JSON Convert `/proc/net/packet` file parser + +Usage (cli): + + $ cat /proc/net/packet | jc --proc + +or + + $ jc /proc/net/packet + +or + + $ cat /proc/net/packet | jc --proc-net-packet + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_packet_file) + +or + + import jc + result = jc.parse('proc_net_packet', proc_net_packet_file) + +Schema: + + { + "sk": string, + "RefCnt": integer, + "Type": integer, + "Proto": string, + "Iface": integer, + "R": integer, + "Rmem": integer, + "User": integer, + "Inode": integer + } + +Examples: + + $ cat /proc/net/packet | jc --proc -p + { + "sk": "ffff9b61b56c1800", + "RefCnt": 3, + "Type": 3, + "Proto": "88cc", + "Iface": 2, + "R": 1, + "Rmem": 0, + "User": 101, + "Inode": 34754 + } + + $ cat /proc/net/packet | jc --proc-net-packet -p -r + { + "sk": "ffff9b61b56c1800", + "RefCnt": "3", + "Type": "3", + "Proto": "88cc", + "Iface": "2", + "R": "1", + "Rmem": "0", + "User": "101", + "Inode": "34754" + } +""" +from typing import Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/packet` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + int_list = {'RefCnt', 'Type', 'Iface', 'R', 'Rmem', 'User', 'Inode'} + + for key, val in proc_data.items(): + if key in int_list: + proc_data[key] = int(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + raw_output_list = simple_table_parse(data.splitlines()) + raw_output = raw_output_list[0] + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_protocols.py b/jc/parsers/proc_net_protocols.py new file mode 100644 index 00000000..7703b764 --- /dev/null +++ b/jc/parsers/proc_net_protocols.py @@ -0,0 +1,200 @@ +"""jc - JSON Convert `/proc/net/protocols` file parser + +Usage (cli): + + $ cat /proc/net/protocols | jc --proc + +or + + $ jc /proc/net/protocols + +or + + $ cat /proc/net/protocols | jc --proc-net-protocols + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_protocols_file) + +or + + import jc + result = jc.parse('proc_net_protocols', proc_net_protocols_file) + +Schema: + + [ + { + "protocol": string, + "size": integer, + "sockets": integer, + "memory": integer, + "press": string, + "maxhdr": integer, + "slab": boolean, + "module": string, + "cl": boolean, + "co": boolean, + "di": boolean, + "ac": boolean, + "io": boolean, + "in": boolean, + "de": boolean, + "sh": boolean, + "ss": boolean, + "gs": boolean, + "se": boolean, + "re": boolean, + "sp": boolean, + "bi": boolean, + "br": boolean, + "ha": boolean, + "uh": boolean, + "gp": boolean, + "em": boolean, + } + ] + +Examples: + + $ cat /proc/net/protocols | jc --proc -p + [ + { + "protocol": "AF_VSOCK", + "size": 1216, + "sockets": 0, + "memory": -1, + "press": "NI", + "maxhdr": 0, + "slab": true, + "module": "vsock", + "cl": false, + "co": false, + "di": false, + "ac": false, + "io": false, + "in": false, + "de": false, + "sh": false, + "ss": false, + "gs": false, + "se": false, + "re": false, + "sp": false, + "bi": false, + "br": false, + "ha": false, + "uh": false, + "gp": false, + "em": false + }, + ... + ] + + $ cat /proc/net/protocols | jc --proc-net-protocols -p -r + [ + { + "protocol": "AF_VSOCK", + "size": "1216", + "sockets": "0", + "memory": "-1", + "press": "NI", + "maxhdr": "0", + "slab": "yes", + "module": "vsock", + "cl": "n", + "co": "n", + "di": "n", + "ac": "n", + "io": "n", + "in": "n", + "de": "n", + "sh": "n", + "ss": "n", + "gs": "n", + "se": "n", + "re": "n", + "sp": "n", + "bi": "n", + "br": "n", + "ha": "n", + "uh": "n", + "gp": "n", + "em": "n" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/protocols` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'size', 'sockets', 'memory', 'maxhdr'} + bool_list = {'slab', 'cl', 'co', 'di', 'ac', 'io', 'in', 'de', 'sh', 'ss', + 'gs', 'se', 're', 'sp', 'bi', 'br', 'ha', 'uh', 'gp', 'em'} + + for item in proc_data: + for key, val in item.items(): + if key in int_list: + item[key] = int(val) + if key in bool_list: + item[key] = jc.utils.convert_to_bool(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + raw_output = simple_table_parse(data.splitlines()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_route.py b/jc/parsers/proc_net_route.py new file mode 100644 index 00000000..dcbafeb3 --- /dev/null +++ b/jc/parsers/proc_net_route.py @@ -0,0 +1,149 @@ +"""jc - JSON Convert `/proc/net/route` file parser + +Usage (cli): + + $ cat /proc/net/route | jc --proc + +or + + $ jc /proc/net/route + +or + + $ cat /proc/net/route | jc --proc-net-route + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_route_file) + +or + + import jc + result = jc.parse('proc_net_route', proc_net_route_file) + +Schema: + + [ + { + "Iface": string, + "Destination": string, + "Gateway": string, + "Flags": string, + "RefCnt": integer, + "Use": integer, + "Metric": integer, + "Mask": string, + "MTU": integer, + "Window": integer, + "IRTT": integer + } + ] + +Examples: + + $ cat /proc/net/route | jc --proc -p + [ + { + "Iface": "ens33", + "Destination": "00000000", + "Gateway": "0247A8C0", + "Flags": "0003", + "RefCnt": 0, + "Use": 0, + "Metric": 100, + "Mask": "00000000", + "MTU": 0, + "Window": 0, + "IRTT": 0 + }, + ... + ] + + $ cat /proc/net/route | jc --proc-net-route -p -r + [ + { + "Iface": "ens33", + "Destination": "00000000", + "Gateway": "0247A8C0", + "Flags": "0003", + "RefCnt": "0", + "Use": "0", + "Metric": "100", + "Mask": "00000000", + "MTU": "0", + "Window": "0", + "IRTT": "0" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/route` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + # field types documented here: https://github.com/torvalds/linux/blob/v4.19/include/uapi/linux/route.h + int_list = {'RefCnt', 'Use', 'Metric', 'MTU', 'Window', 'IRTT'} + + for entry in proc_data: + for key, val in entry.items(): + if key in int_list: + entry[key] = int(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + raw_output = simple_table_parse(data.splitlines()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_net_unix.py b/jc/parsers/proc_net_unix.py new file mode 100644 index 00000000..1f11b71e --- /dev/null +++ b/jc/parsers/proc_net_unix.py @@ -0,0 +1,139 @@ +"""jc - JSON Convert `/proc/net/unix` file parser + +Usage (cli): + + $ cat /proc/net/unix | jc --proc + +or + + $ jc /proc/net/unix + +or + + $ cat /proc/net/unix | jc --proc-net-unix + +Usage (module): + + import jc + result = jc.parse('proc', proc_net_unix_file) + +or + + import jc + result = jc.parse('proc_net_unix', proc_net_unix_file) + +Schema: + + [ + { + "Num": string, + "RefCount": string, + "Protocol": string, + "Flags": string, + "Type": string, + "St": string, + "Inode": integer, + "Path": string + } + ] + +Examples: + + $ cat /proc/net/unix | jc --proc -p + [ + { + "Num": "ffff9b61ac49c400:", + "RefCount": "00000002", + "Protocol": "00000000", + "Flags": "00010000", + "Type": "0001", + "St": "01", + "Inode": 42776, + "Path": "/var/snap/lxd/common/lxd/unix.socket" + }, + ... + ] + + $ cat /proc/net/unix | jc --proc-net-unix -p -r + [ + { + "Num": "ffff9b61ac49c400:", + "RefCount": "00000002", + "Protocol": "00000000", + "Flags": "00010000", + "Type": "0001", + "St": "01", + "Inode": "42776", + "Path": "/var/snap/lxd/common/lxd/unix.socket" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/net/unix` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'Inode'} + + for entry in proc_data: + for key, val in entry.items(): + if key in int_list: + entry[key] = int(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + raw_output = simple_table_parse(data.splitlines()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pagetypeinfo.py b/jc/parsers/proc_pagetypeinfo.py new file mode 100644 index 00000000..08ef08ba --- /dev/null +++ b/jc/parsers/proc_pagetypeinfo.py @@ -0,0 +1,224 @@ +"""jc - JSON Convert `/proc/pagetypeinfo` file parser + +Usage (cli): + + $ cat /proc/pagetypeinfo | jc --proc + +or + + $ jc /proc/pagetypeinfo + +or + + $ cat /proc/pagetypeinfo | jc --proc-pagetypeinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_pagetypeinfo_file) + +or + + import jc + result = jc.parse('proc_pagetypeinfo', proc_pagetypeinfo_file) + +Schema: + + { + "page_block_order": integer, + "pages_per_block": integer, + "free_pages": [ + { + "node": integer, + "zone": string, + "type": string, + "free": [ + integer # [0] + ] + ], + "num_blocks_type": [ + { + "node": integer, + "zone": string, + "unmovable": integer, + "movable": integer, + "reclaimable": integer, + "high_atomic": integer, + "isolate": integer + } + ] + } + + [0] array index correlates to the Order number. + E.g. free[0] is the value for Order 0 + +Examples: + + $ cat /proc/pagetypeinfo | jc --proc -p + { + "page_block_order": 9, + "pages_per_block": 512, + "free_pages": [ + { + "node": 0, + "zone": "DMA", + "type": "Unmovable", + "free": [ + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0 + ] + }, + ... + ], + "num_blocks_type": [ + { + "node": 0, + "zone": "DMA", + "unmovable": 1, + "movable": 7, + "reclaimable": 0, + "high_atomic": 0, + "isolate": 0 + }, + { + "node": 0, + "zone": "DMA32", + "unmovable": 8, + "movable": 1472, + "reclaimable": 48, + "high_atomic": 0, + "isolate": 0 + }, + { + "node": 0, + "zone": "Normal", + "unmovable": 120, + "movable": 345, + "reclaimable": 47, + "high_atomic": 0, + "isolate": 0 + } + ] + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/pagetypeinfo` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + section = '' + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + if line.startswith('Page block order:'): + raw_output['page_block_order'] = int(line.split(':', maxsplit=1)[1]) + continue + + if line.startswith('Pages per block:'): + raw_output['pages_per_block'] = int(line.split(':', maxsplit=1)[1]) + continue + + if line.startswith('Free pages count per migrate type at order'): + section = 'free_pages' + raw_output['free_pages'] = [] + continue + + if line.startswith('Number of blocks type'): + section = 'num_blocks_type' + raw_output['num_blocks_type'] = [] + continue + + # Free pages count per migrate type at order 0 1 2 3 4 5 6 7 8 9 10 + # Node 0, zone DMA, type Unmovable 0 0 0 1 1 1 1 1 0 0 0 + if section == 'free_pages': + split_line = line.replace(',', ' ').split() + + output_line = { + 'node': int(split_line[1]), + 'zone': split_line[3], + 'type': split_line[5], + 'free': [int(x) for x in split_line[6:]] + } + + raw_output['free_pages'].append(output_line) + continue + + # Number of blocks type Unmovable Movable Reclaimable HighAtomic Isolate + # Node 0, zone DMA 1 7 0 0 0 + if section == 'num_blocks_type': + split_line = line.replace(',', ' ').split() + + output_line = { + 'node': int(split_line[1]), + 'zone': split_line[3], + 'unmovable': int(split_line[4]), + 'movable': int(split_line[5]), + 'reclaimable': int(split_line[6]), + 'high_atomic': int(split_line[7]), + 'isolate': int(split_line[8]), + } + + raw_output['num_blocks_type'].append(output_line) + continue + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_partitions.py b/jc/parsers/proc_partitions.py new file mode 100644 index 00000000..826a33a5 --- /dev/null +++ b/jc/parsers/proc_partitions.py @@ -0,0 +1,141 @@ +"""jc - JSON Convert `/proc/partitions` file parser + +Usage (cli): + + $ cat /proc/partitions | jc --proc + +or + + $ jc /proc/partitions + +or + + $ cat /proc/partitions | jc --proc-partitions + +Usage (module): + + import jc + result = jc.parse('proc', proc_partitions_file) + +or + + import jc + result = jc.parse('proc_partitions', proc_partitions_file) + +Schema: + + [ + { + "major": integer, + "minor": integer, + "num_blocks": integer, + "name": string + } + ] + +Examples: + + $ cat /proc/partitions | jc --proc -p + [ + { + "major": 7, + "minor": 0, + "num_blocks": 56896, + "name": "loop0" + }, + { + "major": 7, + "minor": 1, + "num_blocks": 56868, + "name": "loop1" + }, + ... + ] + + $ cat /proc/partitions | jc --proc-partitions -p -r + [ + { + "major": "7", + "minor": "0", + "num_blocks": "56896", + "name": "loop0" + }, + { + "major": "7", + "minor": "1", + "num_blocks": "56868", + "name": "loop1" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/partitions` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + for entry in proc_data: + for key in entry: + try: + entry[key] = int(entry[key]) + except Exception: + pass + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + cleandata = list(filter(None, data.splitlines())) + cleandata[0] = cleandata[0].replace('#', 'num_') + raw_output = simple_table_parse(cleandata) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_fdinfo.py b/jc/parsers/proc_pid_fdinfo.py new file mode 100644 index 00000000..e8e99460 --- /dev/null +++ b/jc/parsers/proc_pid_fdinfo.py @@ -0,0 +1,217 @@ +"""jc - JSON Convert `/proc//fdinfo/` file parser + +Usage (cli): + + $ cat /proc/1/fdinfo/5 | jc --proc + +or + + $ jc /proc/1/fdinfo/5 + +or + + $ cat /proc/1/fdinfo/5 | jc --proc-pid-fdinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_fdinfo_file) + +or + + import jc + result = jc.parse('proc_pid_fdinfo', proc_pid_fdinfo_file) + +Schema: + +Any unspecified fields are strings. + + { + "pos": integer, + "flags": integer, + "mnt_id": integer, + "scm_fds": string, + "ino": integer, + "lock": string, + "epoll": { + "tfd": integer, + "events": string, + "data": string, + "pos": integer, + "ino": string, + "sdev": string + }, + "inotify": { + "wd": integer, + "ino": string, + "sdev": string, + "mask": string, + "ignored_mask": string, + "fhandle-bytes": string, + "fhandle-type": string, + "f_handle": string + }, + "fanotify": { + "flags": string, + "event-flags": string, + "mnt_id": string, + "mflags": string, + "mask": string, + "ignored_mask": string, + "ino": string, + "sdev": string, + "fhandle-bytes": string, + "fhandle-type": string, + "f_handle": string + }, + "clockid": integer, + "ticks": integer, + "settime flags": integer, + "it_value": [ + integer + ], + "it_interval": [ + integer + ] + } + +Examples: + + $ cat /proc/1/fdinfo/5 | jc --proc -p + { + "pos": 0, + "flags": 2, + "mnt_id": 9, + "ino": 63107, + "clockid": 0, + "ticks": 0, + "settime flags": 1, + "it_value": [ + 0, + 49406829 + ], + "it_interval": [ + 1, + 0 + ] + } +""" +import re +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//fdinfo/` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + root_int_list = {'pos', 'flags', 'mnt_id', 'ino', 'clockid', 'ticks', + 'settime flags', 'size', 'count'} + epoll_int_list = {'tfd', 'pos'} + inotify_int_list = {'wd'} + + for key, val in proc_data.items(): + if key in root_int_list: + proc_data[key] = int(val) + + if 'epoll' in proc_data: + for key, val in proc_data['epoll'].items(): + if key in epoll_int_list: + proc_data['epoll'][key] = int(val) + + if 'inotify' in proc_data: + for key, val in proc_data['inotify'].items(): + if key in inotify_int_list: + proc_data['inotify'][key] = int(val) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + split_me = {'it_value:', 'it_interval:'} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + # epoll files + if line.startswith('tfd:'): + line_match = re.findall(r'(?P\S+):(?:\s+)?(?P\S+s*)', line) + if line_match: + raw_output.update({'epoll': {k.strip(): v.strip() for k, v in line_match}}) + continue + + # inotify files + if line.startswith('inotify'): + split_line = line[8:].split() + raw_output['inotify'] = {} + for item in split_line: + k, v = item.split(':', maxsplit=1) + raw_output['inotify'][k] = v + continue + + # fanotify files + if line.startswith('fanotify'): + split_line = line[9:].split() + + if not 'fanotify' in raw_output: + raw_output['fanotify'] = {} + + for item in split_line: + k, v = item.split(':', maxsplit=1) + raw_output['fanotify'][k] = v + continue + + # timerfd files + if line.split()[0] in split_me: + split_line = line.replace(':', '').replace('(', '').replace(')', '').replace(',', '').split() + raw_output[split_line[0]] = [int(x) for x in split_line[1:]] + continue + + key, val = line.split(':', maxsplit=1) + raw_output[key.strip()] = val.strip() + continue + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_io.py b/jc/parsers/proc_pid_io.py new file mode 100644 index 00000000..8bfe71c1 --- /dev/null +++ b/jc/parsers/proc_pid_io.py @@ -0,0 +1,107 @@ +"""jc - JSON Convert `/proc//io` file parser + +Usage (cli): + + $ cat /proc/1/io | jc --proc + +or + + $ jc /proc/1/io + +or + + $ cat /proc/1/io | jc --proc-pid-io + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_io_file) + +or + + import jc + result = jc.parse('proc_pid_io', proc_pid_io_file) + +Schema: + +All values are integers. + + { + integer + } + +Examples: + + $ cat /proc/1/io | jc --proc -p + { + "rchar": 4699288382, + "wchar": 2931802997, + "syscr": 661897, + "syscw": 890910, + "read_bytes": 168468480, + "write_bytes": 27357184, + "cancelled_write_bytes": 16883712 + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//io` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + key, val = line.split(':', maxsplit=1) + raw_output[key] = int(val) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_maps.py b/jc/parsers/proc_pid_maps.py new file mode 100644 index 00000000..22c8765b --- /dev/null +++ b/jc/parsers/proc_pid_maps.py @@ -0,0 +1,191 @@ +"""jc - JSON Convert `/proc//maps` file parser + +Usage (cli): + + $ cat /proc/1/maps | jc --proc + +or + + $ jc /proc/1/maps + +or + + $ cat /proc/1/maps | jc --proc-pid-maps + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_maps_file) + +or + + import jc + result = jc.parse('proc_pid_maps', proc_pid_maps_file) + +Schema: + + [ + { + "start": string, + "end": string, + "perms": [ + string + ], + "offset": string, + "inode": integer, + "pathname": string, + "maj": string, + "min": string + } + ] + +Examples: + + $ cat /proc/1/maps | jc --proc -p + [ + { + "perms": [ + "read", + "private" + ], + "offset": "00000000", + "inode": 798126, + "pathname": "/usr/lib/systemd/systemd", + "start": "55a9e753c000", + "end": "55a9e7570000", + "maj": "fd", + "min": "00" + }, + { + "perms": [ + "read", + "execute", + "private" + ], + "offset": "00034000", + "inode": 798126, + "pathname": "/usr/lib/systemd/systemd", + "start": "55a9e7570000", + "end": "55a9e763a000", + "maj": "fd", + "min": "00" + }, + ... + ] + + $ cat /proc/1/maps | jc --proc-pid-maps -p -r + [ + { + "address": "55a9e753c000-55a9e7570000", + "perms": "r--p", + "offset": "00000000", + "dev": "fd:00", + "inode": "798126", + "pathname": "/usr/lib/systemd/systemd" + }, + { + "address": "55a9e7570000-55a9e763a000", + "perms": "r-xp", + "offset": "00034000", + "dev": "fd:00", + "inode": "798126", + "pathname": "/usr/lib/systemd/systemd" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//maps` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'inode'} + + perms_map = { + 'r': 'read', + 'w': 'write', + 'x': 'execute', + 's': 'shared', + 'p': 'private', + '-': None + } + + for entry in proc_data: + for key in entry: + if key in int_list: + entry[key] = int(entry[key]) + + if 'address' in entry: + start, end = entry['address'].split('-') + entry['start'] = start + entry['end'] = end + del entry['address'] + + if 'perms' in entry: + perms_list = [perms_map[x] for x in entry['perms'] if perms_map[x]] + entry['perms'] = perms_list + + if 'dev' in entry: + maj, min = entry['dev'].split(':', maxsplit=1) + entry['maj'] = maj + entry['min'] = min + del entry['dev'] + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = 'address perms offset dev inode pathname\n' + data = header + data + raw_output = simple_table_parse(data.splitlines()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_mountinfo.py b/jc/parsers/proc_pid_mountinfo.py new file mode 100644 index 00000000..40847cfc --- /dev/null +++ b/jc/parsers/proc_pid_mountinfo.py @@ -0,0 +1,260 @@ +"""jc - JSON Convert `/proc//mountinfo` file parser + +Usage (cli): + + $ cat /proc/1/mountinfo | jc --proc + +or + + $ jc /proc/1/mountinfo + +or + + $ cat /proc/1/mountinfo | jc --proc-pid-mountinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_mountinfo_file) + +or + + import jc + result = jc.parse('proc_pid_mountinfo', proc_pid_mountinfo_file) + +Schema: + + [ + { + "mount_id": integer, + "parent_id": integer, + "maj": integer, + "min": integer, + "root": string, + "mount_point": string, + "mount_options": [ + string + ], + "optional_fields": { # [0] + "": integer # [1] + }, + "fs_type": string, + "mount_source": string, + "super_options": [ + integer # [2] + ], + "super_options_fields": { + "": string + } + } + ] + + [0] if empty, then private mount + [1] unbindable will always have a value of 0 + [2] integer conversions are attempted. Use --raw or raw=True for + original string values. + +Examples: + + $ cat /proc/1/mountinfo | jc --proc -p + [ + { + "mount_id": 24, + "parent_id": 30, + "maj": 0, + "min": 22, + "root": "/", + "mount_point": "/sys", + "mount_options": [ + "rw", + "nosuid", + "nodev", + "noexec", + "relatime" + ], + "optional_fields": { + "master": 1, + "shared": 7 + }, + "fs_type": "sysfs", + "mount_source": "sysfs", + "super_options": [ + "rw" + ] + }, + { + "mount_id": 25, + "parent_id": 30, + "maj": 0, + "min": 23, + "root": "/", + "mount_point": "/proc", + "mount_options": [ + "rw", + "nosuid", + "nodev", + "noexec", + "relatime" + ], + "optional_fields": { + "shared": 14 + }, + "fs_type": "proc", + "mount_source": "proc", + "super_options": [ + "rw" + ] + }, + ... + ] + + $ cat /proc/1/mountinfo | jc --proc-pid-mountinfo -p -r + [ + { + "mount_id": "24", + "parent_id": "30", + "maj": "0", + "min": "22", + "root": "/", + "mount_point": "/sys", + "mount_options": "rw,nosuid,nodev,noexec,relatime", + "optional_fields": "master:1 shared:7 ", + "fs_type": "sysfs", + "mount_source": "sysfs", + "super_options": "rw" + }, + { + "mount_id": "25", + "parent_id": "30", + "maj": "0", + "min": "23", + "root": "/", + "mount_point": "/proc", + "mount_options": "rw,nosuid,nodev,noexec,relatime", + "optional_fields": "shared:14 ", + "fs_type": "proc", + "mount_source": "proc", + "super_options": "rw" + }, + ... + ] +""" +import re +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//mountinfo` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'mount_id', 'parent_id', 'maj', 'min'} + + for entry in proc_data: + for key in entry: + if key in int_list: + entry[key] = int(entry[key]) + + if 'mount_options' in entry: + entry['mount_options'] = entry['mount_options'].split(',') + + if 'optional_fields' in entry: + if 'unbindable' in entry['optional_fields']: + entry['optional_fields'] = {'unbindable': 0} + else: + entry['optional_fields'] = {x.split(':')[0]: int(x.split(':')[1]) for x in entry['optional_fields'].split()} + + if 'super_options' in entry: + if entry['super_options']: + super_options_split = entry['super_options'].split(',') + s_options = [x for x in super_options_split if '=' not in x] + s_options_fields = [x for x in super_options_split if '=' in x] + + if s_options: + entry['super_options'] = s_options + else: + del entry['super_options'] + + if s_options_fields: + if not 'super_options_fields' in entry: + entry['super_options_fields'] = {} + + for field in s_options_fields: + key, val = field.split('=') + entry['super_options_fields'][key] = jc.utils.convert_to_int(val) + + else: + del entry['super_options'] + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + line_pattern = re.compile(r''' + ^(?P\d+)\s + (?P\d+)\s + (?P\d+): + (?P\d+)\s + (?P\S+)\s + (?P\S+)\s + (?P\S+)\s? + # (?P(?:\s?\S+:\S+\s?)*)\s?-\s + (?P(?:\s?(?:\S+:\S+|unbindable)\s?)*)\s?-\s + (?P\S+)\s + (?P\S+)\s + (?P\S+)? + ''', re.VERBOSE + ) + + for line in filter(None, data.splitlines()): + + line_match = line_pattern.search(line) + if line_match: + raw_output.append(line_match.groupdict()) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_numa_maps.py b/jc/parsers/proc_pid_numa_maps.py new file mode 100644 index 00000000..812a91b4 --- /dev/null +++ b/jc/parsers/proc_pid_numa_maps.py @@ -0,0 +1,185 @@ +"""jc - JSON Convert `/proc//numa_maps` file parser + +This parser will attempt to convert number values to integers. If that is +not desired, please use the `--raw` option (cli) or `raw=True` argument +(module). + +Usage (cli): + + $ cat /proc/1/numa_maps | jc --proc + +or + + $ jc /proc/1/numa_maps + +or + + $ cat /proc/1/numa_maps | jc --proc-pid-numa-maps + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_numa_maps_file) + +or + + import jc + result = jc.parse('proc_pid_numa_maps', proc_pid_numa_maps_file) + +Schema: + +Integer conversion for Key/value pairs will be attempted. + + [ + { + "address": string, + "policy": string, + "": string/integer, + "options": [ + string # [0] + ] + } + ] + + [0] remaining individual words that are not part of a key/value pair + +Examples: + + $ cat /proc/1/numa_maps | jc --proc -p + [ + { + "address": "7f53b5083000", + "policy": "default", + "file": "/usr/lib/x86_64-linux-gnu/ld-2.32.so", + "anon": 2, + "dirty": 2, + "N0": 2, + "kernelpagesize_kB": 4 + }, + { + "address": "7ffd1b23e000", + "policy": "default", + "anon": 258, + "dirty": 258, + "N0": 258, + "kernelpagesize_kB": 4, + "options": [ + "stack" + ] + }, + ... + ] + + $ cat /proc/1/numa_maps | jc --proc-pid-numa-maps -p -r + [ + { + "address": "7f53b5083000", + "policy": "default", + "file": "/usr/lib/x86_64-linux-gnu/ld-2.32.so", + "anon": "2", + "dirty": "2", + "N0": "2", + "kernelpagesize_kB": "4" + }, + { + "address": "7ffd1b23e000", + "policy": "default", + "anon": "258", + "dirty": "258", + "N0": "258", + "kernelpagesize_kB": "4", + "options": [ + "stack" + ] + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//numa_maps` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + for entry in proc_data: + for key, val in entry.items(): + try: + entry[key] = int(val) + except Exception: + pass + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + header = 'address policy details\n' + data = header + data + + raw_output = simple_table_parse(data.splitlines()) + + for row in raw_output: + if 'details' in row: + detail_split = row['details'].split() + + options = [] + for item in detail_split: + if '=' in item: + key, val = item.split('=') + row.update({key: val}) + else: + options.append(item) + + if options: + row['options'] = options + + del row['details'] + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_smaps.py b/jc/parsers/proc_pid_smaps.py new file mode 100644 index 00000000..692feaf9 --- /dev/null +++ b/jc/parsers/proc_pid_smaps.py @@ -0,0 +1,305 @@ +"""jc - JSON Convert `/proc//smaps` file parser + +Usage (cli): + + $ cat /proc/1/smaps | jc --proc + +or + + $ jc /proc/1/smaps + +or + + $ cat /proc/1/smaps | jc --proc-pid-smaps + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_smaps_file) + +or + + import jc + result = jc.parse('proc_pid_smaps', proc_pid_smaps_file) + +Schema: + + [ + { + "start": string, + "end": string, + "perms": [ + string + ], + "offset": string, + "maj": string, + "min": string, + "inode": integer, + "pathname": string, + "Size": integer, + "KernelPageSize": integer, + "MMUPageSize": integer, + "Rss": integer, + "Pss": integer, + "Shared_Clean": integer, + "Shared_Dirty": integer, + "Private_Clean": integer, + "Private_Dirty": integer, + "Referenced": integer, + "Anonymous": integer, + "LazyFree": integer, + "AnonHugePages": integer, + "ShmemPmdMapped": integer, + "FilePmdMapped": integer, + "Shared_Hugetlb": integer, + "Private_Hugetlb": integer, + "Swap": integer, + "SwapPss": integer, + "Locked": integer, + "THPeligible": integer, + "VmFlags": [ + string + ], + "VmFlags_pretty": [ + string + ] + } + ] + +Examples: + + $ cat /proc/1/smaps | jc --proc -p + [ + { + "start": "55a9e753c000", + "end": "55a9e7570000", + "perms": [ + "read", + "private" + ], + "offset": "00000000", + "maj": "fd", + "min": "00", + "inode": 798126, + "pathname": "/usr/lib/systemd/systemd", + "Size": 208, + "KernelPageSize": 4, + "MMUPageSize": 4, + "Rss": 208, + "Pss": 104, + "Shared_Clean": 208, + "Shared_Dirty": 0, + "Private_Clean": 0, + "Private_Dirty": 0, + "Referenced": 208, + "Anonymous": 0, + "LazyFree": 0, + "AnonHugePages": 0, + "ShmemPmdMapped": 0, + "FilePmdMapped": 0, + "Shared_Hugetlb": 0, + "Private_Hugetlb": 0, + "Swap": 0, + "SwapPss": 0, + "Locked": 0, + "THPeligible": 0, + "VmFlags": [ + "rd", + "mr", + "mw", + "me", + "dw", + "sd" + ], + "VmFlags_pretty": [ + "readable", + "may read", + "may write", + "may execute", + "disabled write to the mapped file", + "soft-dirty flag" + ] + }, + ... + ] + + $ cat /proc/1/smaps | jc --proc-pid-smaps -p -r + [ + { + "start": "55a9e753c000", + "end": "55a9e7570000", + "perms": "r--p", + "offset": "00000000", + "maj": "fd", + "min": "00", + "inode": "798126", + "pathname": "/usr/lib/systemd/systemd", + "Size": "208 kB", + "KernelPageSize": "4 kB", + "MMUPageSize": "4 kB", + "Rss": "208 kB", + "Pss": "104 kB", + "Shared_Clean": "208 kB", + "Shared_Dirty": "0 kB", + "Private_Clean": "0 kB", + "Private_Dirty": "0 kB", + "Referenced": "208 kB", + "Anonymous": "0 kB", + "LazyFree": "0 kB", + "AnonHugePages": "0 kB", + "ShmemPmdMapped": "0 kB", + "FilePmdMapped": "0 kB", + "Shared_Hugetlb": "0 kB", + "Private_Hugetlb": "0 kB", + "Swap": "0 kB", + "SwapPss": "0 kB", + "Locked": "0 kB", + "THPeligible": "0", + "VmFlags": "rd mr mw me dw sd" + }, + ... + ] +""" +import re +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//smaps` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + non_int_list = {'start', 'end', 'perms', 'offset', 'maj', 'min', 'pathname', 'VmFlags'} + + perms_map = { + 'r': 'read', + 'w': 'write', + 'x': 'execute', + 's': 'shared', + 'p': 'private', + '-': None + } + + vmflags_map = { + 'rd': 'readable', + 'wr': 'writeable', + 'ex': 'executable', + 'sh': 'shared', + 'mr': 'may read', + 'mw': 'may write', + 'me': 'may execute', + 'ms': 'may share', + 'gd': 'stack segment growns down', + 'pf': 'pure PFN range', + 'dw': 'disabled write to the mapped file', + 'lo': 'pages are locked in memory', + 'io': 'memory mapped I/O area', + 'sr': 'sequential read advise provided', + 'rr': 'random read advise provided', + 'dc': 'do not copy area on fork', + 'de': 'do not expand area on remapping', + 'ac': 'area is accountable', + 'nr': 'swap space is not reserved for the area', + 'ht': 'area uses huge tlb pages', + 'ar': 'architecture specific flag', + 'dd': 'do not include area into core dump', + 'sd': 'soft-dirty flag', + 'mm': 'mixed map area', + 'hg': 'huge page advise flag', + 'nh': 'no-huge page advise flag', + 'mg': 'mergable advise flag' + } + + for entry in proc_data: + for key in entry: + if key not in non_int_list: + entry[key] = jc.utils.convert_to_int(entry[key]) + + if 'perms' in entry: + perms_list = [perms_map[x] for x in entry['perms'] if perms_map[x]] + entry['perms'] = perms_list + + if 'VmFlags' in entry: + entry['VmFlags'] = entry['VmFlags'].split() + entry['VmFlags_pretty'] = [vmflags_map[x] for x in entry['VmFlags']] + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + output_line: Dict = {} + + if jc.utils.has_data(data): + map_line = re.compile(r''' + ^(?P[0-9a-f]{12,16})- + (?P[0-9a-f]{12,16})\s + (?P[rwxsp\-]{4})\s + (?P[0-9a-f]{8})\s + (?P[0-9a-f]{2}): + (?P[0-9a-f]{2})\s + (?P\d+)\s+ + (?P.*)? + ''', re.VERBOSE + ) + + for line in filter(None, data.splitlines()): + + map_line_found = map_line.search(line) + + if map_line_found: + if output_line: + raw_output.append(output_line) + + output_line = map_line_found.groupdict() + continue + + key, val = line.split(':', maxsplit=1) + output_line[key] = val.strip() + continue + + if output_line: + raw_output.append(output_line) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_stat.py b/jc/parsers/proc_pid_stat.py new file mode 100644 index 00000000..a263c16f --- /dev/null +++ b/jc/parsers/proc_pid_stat.py @@ -0,0 +1,343 @@ +"""jc - JSON Convert `/proc//stat` file parser + +Usage (cli): + + $ cat /proc/1/stat | jc --proc + +or + + $ jc /proc/1/stat + +or + + $ cat /proc/1/stat | jc --proc-pid-stat + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_stat_file) + +or + + import jc + result = jc.parse('proc_pid_stat', proc_pid_stat_file) + +Schema: + + { + "pid": integer, + "comm": string, + "state": string, + "state_pretty": string, + "ppid": integer, + "pgrp": integer, + "session": integer, + "tty_nr": integer, + "tpg_id": integer, + "flags": integer, + "minflt": integer, + "cminflt": integer, + "majflt": integer, + "cmajflt": integer, + "utime": integer, + "stime": integer, + "cutime": integer, + "cstime": integer, + "priority": integer, + "nice": integer, + "num_threads": integer, + "itrealvalue": integer, + "starttime": integer, + "vsize": integer, + "rss": integer, + "rsslim": integer, + "startcode": integer, + "endcode": integer, + "startstack": integer, + "kstkeep": integer, + "kstkeip": integer, + "signal": integer, + "blocked": integer, + "sigignore": integer, + "sigcatch": integer, + "wchan": integer, + "nswap": integer, + "cnswap": integer, + "exit_signal": integer, + "processor": integer, + "rt_priority": integer, + "policy": integer, + "delayacct_blkio_ticks": integer, + "guest_time": integer, + "cguest_time": integer, + "start_data": integer, + "end_data": integer, + "start_brk": integer, + "arg_start": integer, + "arg_end": integer, + "env_start": integer, + "env_end": integer, + "exit_code": integer, + } + +Examples: + + $ cat /proc/1/stat | jc --proc -p + { + "pid": 1, + "comm": "systemd", + "state": "S", + "ppid": 0, + "pgrp": 1, + "session": 1, + "tty_nr": 0, + "tpg_id": -1, + "flags": 4194560, + "minflt": 23478, + "cminflt": 350218, + "majflt": 99, + "cmajflt": 472, + "utime": 107, + "stime": 461, + "cutime": 2672, + "cstime": 4402, + "priority": 20, + "nice": 0, + "num_threads": 1, + "itrealvalue": 0, + "starttime": 128, + "vsize": 174063616, + "rss": 3313, + "rsslim": 18446744073709551615, + "startcode": 94188219072512, + "endcode": 94188219899461, + "startstack": 140725059845296, + "kstkeep": 0, + "kstkeip": 0, + "signal": 0, + "blocked": 671173123, + "sigignore": 4096, + "sigcatch": 1260, + "wchan": 1, + "nswap": 0, + "cnswap": 0, + "exit_signal": 17, + "processor": 0, + "rt_priority": 0, + "policy": 0, + "delayacct_blkio_ticks": 18, + "guest_time": 0, + "cguest_time": 0, + "start_data": 94188220274448, + "end_data": 94188220555504, + "start_brk": 94188243599360, + "arg_start": 140725059845923, + "arg_end": 140725059845934, + "env_start": 140725059845934, + "env_end": 140725059846125, + "exit_code": 0, + "state_pretty": "Sleeping in an interruptible wait" + } + + $ cat /proc/1/stat | jc --proc-pid-stat -p -r + { + "pid": 1, + "comm": "systemd", + "state": "S", + "ppid": 0, + "pgrp": 1, + "session": 1, + "tty_nr": 0, + "tpg_id": -1, + "flags": 4194560, + "minflt": 23478, + "cminflt": 350218, + "majflt": 99, + "cmajflt": 472, + "utime": 107, + "stime": 461, + "cutime": 2672, + "cstime": 4402, + "priority": 20, + "nice": 0, + "num_threads": 1, + "itrealvalue": 0, + "starttime": 128, + "vsize": 174063616, + "rss": 3313, + "rsslim": 18446744073709551615, + "startcode": 94188219072512, + "endcode": 94188219899461, + "startstack": 140725059845296, + "kstkeep": 0, + "kstkeip": 0, + "signal": 0, + "blocked": 671173123, + "sigignore": 4096, + "sigcatch": 1260, + "wchan": 1, + "nswap": 0, + "cnswap": 0, + "exit_signal": 17, + "processor": 0, + "rt_priority": 0, + "policy": 0, + "delayacct_blkio_ticks": 18, + "guest_time": 0, + "cguest_time": 0, + "start_data": 94188220274448, + "end_data": 94188220555504, + "start_brk": 94188243599360, + "arg_start": 140725059845923, + "arg_end": 140725059845934, + "env_start": 140725059845934, + "env_end": 140725059846125, + "exit_code": 0 + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//stat` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + state_map = { + 'R': 'Running', + 'S': 'Sleeping in an interruptible wait', + 'D': 'Waiting in uninterruptible disk sleep', + 'Z': 'Zombie', + 'T': 'Stopped (on a signal) or trace stopped', + 't': 'Tracing stop', + 'W': 'Paging', + 'X': 'Dead', + 'x': 'Dead', + 'K': 'Wakekill', + 'W': 'Waking', + 'P': 'Parked', + } + + if 'state' in proc_data: + proc_data['state_pretty'] = state_map[proc_data['state']] + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + split_line = data.split() + raw_output = { + 'pid': int(split_line[0]), + 'comm': split_line[1].strip('()'), + 'state': split_line[2], + 'ppid': int(split_line[3]), + 'pgrp': int(split_line[4]), + 'session': int(split_line[5]), + 'tty_nr': int(split_line[6]), + 'tpg_id': int(split_line[7]), + 'flags': int(split_line[8]), + 'minflt': int(split_line[9]), + 'cminflt': int(split_line[10]), + 'majflt': int(split_line[11]), + 'cmajflt': int(split_line[12]), + 'utime': int(split_line[13]), + 'stime': int(split_line[14]), + 'cutime': int(split_line[15]), + 'cstime': int(split_line[16]), + 'priority': int(split_line[17]), + 'nice': int(split_line[18]), + 'num_threads': int(split_line[19]), + 'itrealvalue': int(split_line[20]), + 'starttime': int(split_line[21]), + 'vsize': int(split_line[22]), + 'rss': int(split_line[23]), + 'rsslim': int(split_line[24]), + 'startcode': int(split_line[25]), + 'endcode': int(split_line[26]), + 'startstack': int(split_line[27]), + 'kstkeep': int(split_line[28]), + 'kstkeip': int(split_line[29]), + 'signal': int(split_line[30]), + 'blocked': int(split_line[31]), + 'sigignore': int(split_line[32]), + 'sigcatch': int(split_line[33]), + 'wchan': int(split_line[34]), + 'nswap': int(split_line[35]), + 'cnswap': int(split_line[36]) + } + + if len(split_line) > 37: + raw_output['exit_signal'] = int(split_line[37]) + + if len(split_line) > 38: + raw_output['processor'] = int(split_line[38]) + + if len(split_line) > 39: + raw_output['rt_priority'] = int(split_line[39]) + raw_output['policy'] = int(split_line[40]) + + if len(split_line) > 41: + raw_output['delayacct_blkio_ticks'] = int(split_line[41]) + + if len(split_line) > 42: + raw_output['guest_time'] = int(split_line[42]) + raw_output['cguest_time'] = int(split_line[43]) + + if len(split_line) > 44: + raw_output['start_data'] = int(split_line[44]) + raw_output['end_data'] = int(split_line[45]) + raw_output['start_brk'] = int(split_line[46]) + + if len(split_line) > 47: + raw_output['arg_start'] = int(split_line[47]) + raw_output['arg_end'] = int(split_line[48]) + raw_output['env_start'] = int(split_line[49]) + raw_output['env_end'] = int(split_line[50]) + raw_output['exit_code'] = int(split_line[51]) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_statm.py b/jc/parsers/proc_pid_statm.py new file mode 100644 index 00000000..6b96519b --- /dev/null +++ b/jc/parsers/proc_pid_statm.py @@ -0,0 +1,119 @@ +"""jc - JSON Convert `/proc//statm` file parser + +Usage (cli): + + $ cat /proc/1/statm | jc --proc + +or + + $ jc /proc/1/statm + +or + + $ cat /proc/1/statm | jc --proc-pid-statm + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_statm_file) + +or + + import jc + result = jc.parse('proc_pid_statm', proc_pid_statm_file) + +Schema: + + { + "size": integer, + "resident": integer, + "shared": integer, + "text": integer, + "lib": integer, + "data": integer, + "dt": integer + } + +Examples: + + $ cat /proc/1/statm | jc --proc -p + { + "size": 42496, + "resident": 3313, + "shared": 2169, + "text": 202, + "lib": 0, + "data": 5180, + "dt": 0 + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//statm` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + size, resident, shared, text, lib, data_, dt = data.split() + + raw_output = { + 'size': int(size), + 'resident': int(resident), + 'shared': int(shared), + 'text': int(text), + 'lib': int(lib), + 'data': int(data_), + 'dt': int(dt) + } + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_pid_status.py b/jc/parsers/proc_pid_status.py new file mode 100644 index 00000000..6aa214bf --- /dev/null +++ b/jc/parsers/proc_pid_status.py @@ -0,0 +1,361 @@ +"""jc - JSON Convert `/proc//status` file parser + +Usage (cli): + + $ cat /proc/1/status | jc --proc + +or + + $ jc /proc/1/status + +or + + $ cat /proc/1/status | jc --proc-pid-status + +Usage (module): + + import jc + result = jc.parse('proc', proc_pid_status_file) + +or + + import jc + result = jc.parse('proc_pid_status', proc_pid_status_file) + +Schema: + + { + "Name": string, + "Umask": string, + "State": string, + "State_pretty": string, + "Tgid": integer, + "Ngid": integer, + "Pid": integer, + "PPid": integer, + "TracerPid": integer, + "Uid": [ + integer + ], + "Gid": [ + integer + ], + "FDSize": integer, + "Groups": string, + "NStgid": integer, + "NSpid": integer, + "NSpgid": integer, + "NSsid": integer, + "VmPeak": integer, + "VmSize": integer, + "VmLck": integer, + "VmPin": integer, + "VmHWM": integer, + "VmRSS": integer, + "RssAnon": integer, + "RssFile": integer, + "RssShmem": integer, + "VmData": integer, + "VmStk": integer, + "VmExe": integer, + "VmLib": integer, + "VmPTE": integer, + "VmSwap": integer, + "HugetlbPages": integer, + "CoreDumping": integer, + "THP_enabled": integer, + "Threads": integer, + "SigQ": string, + "SigQ_current": integer, + "SigQ_limit": integer, + "SigPnd": string, + "ShdPnd": string, + "SigBlk": string, + "SigIgn": string, + "SigCgt": string, + "CapInh": string, + "CapPrm": string, + "CapEff": string, + "CapBnd": string, + "CapAmb": string, + "NoNewPrivs": integer, + "Seccomp": integer, + "Speculation_Store_Bypass": string, + "Cpus_allowed": [ + string + ], + "Cpus_allowed_list": string, + "Mems_allowed": [ + string + ], + "Mems_allowed_list": string, + "voluntary_ctxt_switches": integer, + "nonvoluntary_ctxt_switches": integer + } + +Examples: + + $ cat /proc/1/status | jc --proc -p + { + "Name": "systemd", + "Umask": "0000", + "State": "S", + "Tgid": 1, + "Ngid": 0, + "Pid": 1, + "PPid": 0, + "TracerPid": 0, + "Uid": [ + 0, + 0, + 0, + 0 + ], + "Gid": [ + 0, + 0, + 0, + 0 + ], + "FDSize": 128, + "Groups": "", + "NStgid": 1, + "NSpid": 1, + "NSpgid": 1, + "NSsid": 1, + "VmPeak": 235380, + "VmSize": 169984, + "VmLck": 0, + "VmPin": 0, + "VmHWM": 13252, + "VmRSS": 13252, + "RssAnon": 4576, + "RssFile": 8676, + "RssShmem": 0, + "VmData": 19688, + "VmStk": 1032, + "VmExe": 808, + "VmLib": 9772, + "VmPTE": 96, + "VmSwap": 0, + "HugetlbPages": 0, + "CoreDumping": 0, + "THP_enabled": 1, + "Threads": 1, + "SigQ": "0/15245", + "SigPnd": "0000000000000000", + "ShdPnd": "0000000000000000", + "SigBlk": "7be3c0fe28014a03", + "SigIgn": "0000000000001000", + "SigCgt": "00000001800004ec", + "CapInh": "0000000000000000", + "CapPrm": "000000ffffffffff", + "CapEff": "000000ffffffffff", + "CapBnd": "000000ffffffffff", + "CapAmb": "0000000000000000", + "NoNewPrivs": 0, + "Seccomp": 0, + "Speculation_Store_Bypass": "thread vulnerable", + "Cpus_allowed": [ + "ffffffff", + "ffffffff", + "ffffffff", + "ffffffff" + ], + "Cpus_allowed_list": "0-127", + "Mems_allowed": [ + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000000", + "00000001" + ], + "Mems_allowed_list": "0", + "voluntary_ctxt_switches": 1856, + "nonvoluntary_ctxt_switches": 6620, + "State_pretty": "sleeping", + "SigQ_current": 0, + "SigQ_limit": 15245 + } + + $ cat /proc/1/status | jc --proc-pid-status -p -r + { + "Name": "systemd", + "Umask": "0000", + "State": "S (sleeping)", + "Tgid": "1", + "Ngid": "0", + "Pid": "1", + "PPid": "0", + "TracerPid": "0", + "Uid": "0\t0\t0\t0", + "Gid": "0\t0\t0\t0", + "FDSize": "128", + "Groups": "", + "NStgid": "1", + "NSpid": "1", + "NSpgid": "1", + "NSsid": "1", + "VmPeak": "235380 kB", + "VmSize": "169984 kB", + "VmLck": "0 kB", + "VmPin": "0 kB", + "VmHWM": "13252 kB", + "VmRSS": "13252 kB", + "RssAnon": "4576 kB", + "RssFile": "8676 kB", + "RssShmem": "0 kB", + "VmData": "19688 kB", + "VmStk": "1032 kB", + "VmExe": "808 kB", + "VmLib": "9772 kB", + "VmPTE": "96 kB", + "VmSwap": "0 kB", + "HugetlbPages": "0 kB", + "CoreDumping": "0", + "THP_enabled": "1", + "Threads": "1", + "SigQ": "0/15245", + "SigPnd": "0000000000000000", + "ShdPnd": "0000000000000000", + "SigBlk": "7be3c0fe28014a03", + "SigIgn": "0000000000001000", + "SigCgt": "00000001800004ec", + "CapInh": "0000000000000000", + "CapPrm": "000000ffffffffff", + "CapEff": "000000ffffffffff", + "CapBnd": "000000ffffffffff", + "CapAmb": "0000000000000000", + "NoNewPrivs": "0", + "Seccomp": "0", + "Speculation_Store_Bypass": "thread vulnerable", + "Cpus_allowed": "ffffffff,ffffffff,ffffffff,ffffffff", + "Cpus_allowed_list": "0-127", + "Mems_allowed": "00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001", + "Mems_allowed_list": "0", + "voluntary_ctxt_switches": "1856", + "nonvoluntary_ctxt_switches": "6620" + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc//status` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + int_list = {'Tgid', 'Ngid', 'Pid', 'PPid', 'TracerPid', 'FDSize', 'NStgid', + 'NSpid', 'NSpgid', 'NSsid', 'VmPeak', 'VmSize', 'VmLck', 'VmPin', 'VmHWM', + 'VmRSS', 'RssAnon', 'RssFile', 'RssShmem', 'VmData', 'VmStk', 'VmExe', 'VmLib', + 'VmPTE', 'VmSwap', 'HugetlbPages', 'CoreDumping', 'THP_enabled', 'Threads', + 'NoNewPrivs', 'Seccomp', 'voluntary_ctxt_switches', 'nonvoluntary_ctxt_switches'} + + for key, val in proc_data.items(): + if key in int_list: + proc_data[key] = jc.utils.convert_to_int(val) + + if 'State' in proc_data: + st, st_pretty = proc_data['State'].split() + proc_data['State'] = st + proc_data['State_pretty'] = st_pretty.strip('()') + + if 'Uid' in proc_data: + proc_data['Uid'] = [int(x) for x in proc_data['Uid'].split()] + + if 'Gid' in proc_data: + proc_data['Gid'] = [int(x) for x in proc_data['Gid'].split()] + + if 'SigQ' in proc_data: + current_q, limit_q = proc_data['SigQ'].split('/') + proc_data['SigQ_current'] = int(current_q) + proc_data['SigQ_limit'] = int(limit_q) + + if 'Cpus_allowed' in proc_data: + proc_data['Cpus_allowed'] = proc_data['Cpus_allowed'].split(',') + + if 'Mems_allowed' in proc_data: + proc_data['Mems_allowed'] = proc_data['Mems_allowed'].split(',') + + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + key, val = line.split(':', maxsplit=1) + raw_output[key] = val.strip() + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_slabinfo.py b/jc/parsers/proc_slabinfo.py new file mode 100644 index 00000000..9ebbde1e --- /dev/null +++ b/jc/parsers/proc_slabinfo.py @@ -0,0 +1,157 @@ +"""jc - JSON Convert `/proc/slabinfo` file parser + +Usage (cli): + + $ cat /proc/slabinfo | jc --proc + +or + + $ jc /proc/slabinfo + +or + + $ cat /proc/slabinfo | jc --proc-slabinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_slabinfo_file) + +or + + import jc + result = jc.parse('proc_slabinfo', proc_slabinfo_file) + +Schema: + + [ + { + "name": string, + "active_objs": integer, + "num_objs": integer, + "obj_size": integer, + "obj_per_slab": integer, + "pages_per_slab": integer, + "tunables": { + "limit": integer, + "batch_count": integer, + "shared_factor": integer + }, + "slabdata": { + "active_slabs": integer, + "num_slabs": integer, + "shared_avail": integer + } + ] + +Examples: + + $ cat /proc/slabinfo | jc --proc -p + [ + { + "name": "ext4_groupinfo_4k", + "active_objs": 224, + "num_objs": 224, + "obj_size": 144, + "obj_per_slab": 56, + "pages_per_slab": 2, + "tunables": { + "limit": 0, + "batch_count": 0, + "shared_factor": 0 + }, + "slabdata": { + "active_slabs": 4, + "num_slabs": 4, + "shared_avail": 0 + } + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/slabinfo` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + cleandata = data.splitlines()[2:] + + for line in filter(None, cleandata): + + line = line.replace(':', ' ') + split_line = line.split() + + raw_output.append( + { + 'name': split_line[0], + 'active_objs': int(split_line[1]), + 'num_objs': int(split_line[2]), + 'obj_size': int(split_line[3]), + 'obj_per_slab': int(split_line[4]), + 'pages_per_slab': int(split_line[5]), + 'tunables': { + 'limit': int(split_line[7]), + 'batch_count': int(split_line[8]), + 'shared_factor': int(split_line[9]) + }, + 'slabdata': { + 'active_slabs': int(split_line[11]), + 'num_slabs': int(split_line[12]), + 'shared_avail': int(split_line[13]) + } + } + ) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_softirqs.py b/jc/parsers/proc_softirqs.py new file mode 100644 index 00000000..d4068ec1 --- /dev/null +++ b/jc/parsers/proc_softirqs.py @@ -0,0 +1,129 @@ +"""jc - JSON Convert `/proc/softirqs` file parser + +Usage (cli): + + $ cat /proc/softirqs | jc --proc + +or + + $ jc /proc/softirqs + +or + + $ cat /proc/softirqs | jc --proc-softirqs + +Usage (module): + + import jc + result = jc.parse('proc', proc_softirqs_file) + +or + + import jc + result = jc.parse('proc_softirqs', proc_softirqs_file) + +Schema: + + [ + { + "counter": string, + "CPU": integer, + } + ] + +Examples: + + $ cat /proc/softirqs | jc --proc -p + [ + { + "counter": "HI", + "CPU0": 1, + "CPU1": 34056, + "CPU2": 0, + "CPU3": 0, + "CPU4": 0 + }, + { + "counter": "TIMER", + "CPU0": 322970, + "CPU1": 888166, + "CPU2": 0, + "CPU3": 0, + "CPU4": 0 + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/softirqs` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + cleandata = list(filter(None, data.splitlines())) + cleandata[0] = 'counter ' + cleandata[0] + raw_output = simple_table_parse(cleandata) + + for item in raw_output: + if 'counter' in item: + item['counter'] = item['counter'][:-1] + + for key in item: + try: + item[key] = int(item[key]) + except Exception: + pass + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_stat.py b/jc/parsers/proc_stat.py new file mode 100644 index 00000000..99f974cc --- /dev/null +++ b/jc/parsers/proc_stat.py @@ -0,0 +1,250 @@ +"""jc - JSON Convert `/proc/stat` file parser + +Usage (cli): + + $ cat /proc/stat | jc --proc + +or + + $ jc /proc/stat + +or + + $ cat /proc/stat | jc --proc-stat + +Usage (module): + + import jc + result = jc.parse('proc', proc_stat_file) + +or + + import jc + result = jc.parse('proc_stat', proc_stat_file) + +Schema: + + { + "cpu": { + "user": integer, + "nice": integer, + "system": integer, + "idle": integer, + "iowait": integer, + "irq": integer, + "softirq": integer, + "steal": integer, + "guest": integer, + "guest_nice": integer + }, + "cpu": { + "user": integer, + "nice": integer, + "system": integer, + "idle": integer, + "iowait": integer, + "irq": integer, + "softirq": integer, + "steal": integer, + "guest": integer, + "guest_nice": integer + }, + "interrupts": [ + integer + ], + "context_switches": integer, + "boot_time": integer, + "processes": integer, + "processes_running": integer, + "processes_blocked": integer, + "softirq": [ + integer + ] + } + +Examples: + + $ cat /proc/stat | jc --proc -p + { + "cpu": { + "user": 6002, + "nice": 152, + "system": 8398, + "idle": 3444436, + "iowait": 448, + "irq": 0, + "softirq": 1174, + "steal": 0, + "guest": 0, + "guest_nice": 0 + }, + "cpu0": { + "user": 2784, + "nice": 137, + "system": 4367, + "idle": 1732802, + "iowait": 225, + "irq": 0, + "softirq": 221, + "steal": 0, + "guest": 0, + "guest_nice": 0 + }, + "cpu1": { + "user": 3218, + "nice": 15, + "system": 4031, + "idle": 1711634, + "iowait": 223, + "irq": 0, + "softirq": 953, + "steal": 0, + "guest": 0, + "guest_nice": 0 + }, + "interrupts": [ + 2496709, + 18, + 73, + 0, + 0, + ... + ], + "context_switches": 4622716, + "boot_time": 1662154781, + "processes": 9831, + "processes_running": 1, + "processes_blocked": 0, + "softirq": [ + 3478985, + 35230, + 1252057, + 3467, + 128583, + 51014, + 0, + 171199, + 1241297, + 0, + 596138 + ] + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/stat` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + if line.startswith('cpu'): + split_line = line.split() + cpu_num = split_line[0] + raw_output[cpu_num] = { + 'user': int(split_line[1]), + 'nice': int(split_line[2]), + 'system': int(split_line[3]), + 'idle': int(split_line[4]) + } + + if len(split_line) > 5: + raw_output[cpu_num]['iowait'] = int(split_line[5]) + + if len(split_line) > 6: + raw_output[cpu_num]['irq'] = int(split_line[6]) + raw_output[cpu_num]['softirq'] = int(split_line[7]) + + if len(split_line) > 8: + raw_output[cpu_num]['steal'] = int(split_line[8]) + + if len(split_line) > 9: + raw_output[cpu_num]['guest'] = int(split_line[9]) + + if len(split_line) > 10: + raw_output[cpu_num]['guest_nice'] = int(split_line[10]) + + continue + + if line.startswith('intr '): + split_line = line.split() + raw_output['interrupts'] = [int(x) for x in split_line[1:]] + continue + + if line.startswith('ctxt '): + raw_output['context_switches'] = int(line.split(maxsplit=1)[1]) + continue + + if line.startswith('btime '): + raw_output['boot_time'] = int(line.split(maxsplit=1)[1]) + continue + + if line.startswith('processes '): + raw_output['processes'] = int(line.split(maxsplit=1)[1]) + continue + + if line.startswith('procs_running '): + raw_output['processes_running'] = int(line.split(maxsplit=1)[1]) + continue + + if line.startswith('procs_blocked '): + raw_output['processes_blocked'] = int(line.split(maxsplit=1)[1]) + continue + + if line.startswith('softirq '): + split_line = line.split() + raw_output['softirq'] = [int(x) for x in split_line[1:]] + continue + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_swaps.py b/jc/parsers/proc_swaps.py new file mode 100644 index 00000000..d50387a0 --- /dev/null +++ b/jc/parsers/proc_swaps.py @@ -0,0 +1,132 @@ +"""jc - JSON Convert `/proc/swaps` file parser + +Usage (cli): + + $ cat /proc/swaps | jc --proc + +or + + $ jc /proc/swaps + +or + + $ cat /proc/swaps | jc --proc-swaps + +Usage (module): + + import jc + result = jc.parse('proc', proc_swaps_file) + +or + + import jc + result = jc.parse('proc_swaps', proc_swaps_file) + +Schema: + + [ + { + "filename": string, + "type": string, + "size": integer, + "used": integer, + "priority": integer + } + ] + +Examples: + + $ cat /proc/swaps | jc --proc -p + [ + { + "filename": "/swap.img", + "type": "file", + "size": 3996668, + "used": 0, + "priority": -2 + }, + ... + ] + + $ cat /proc/swaps | jc --proc-swaps -p -r + [ + { + "filename": "/swap.img", + "type": "file", + "size": "3996668", + "used": "0", + "priority": "-2" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils +from jc.parsers.universal import simple_table_parse + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/swaps` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + int_list = {'size', 'used', 'priority'} + + for entry in proc_data: + for key in entry: + if key in int_list: + entry[key] = jc.utils.convert_to_int(entry[key]) + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + + if jc.utils.has_data(data): + + cleandata = list(filter(None, data.splitlines())) + cleandata[0] = cleandata[0].lower() + raw_output = simple_table_parse(cleandata) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_uptime.py b/jc/parsers/proc_uptime.py new file mode 100644 index 00000000..abea777f --- /dev/null +++ b/jc/parsers/proc_uptime.py @@ -0,0 +1,104 @@ +"""jc - JSON Convert `/proc/uptime` file parser + +Usage (cli): + + $ cat /proc/uptime | jc --proc + +or + + $ jc /proc/uptime + +or + + $ cat /proc/uptime | jc --proc-uptime + +Usage (module): + + import jc + result = jc.parse('proc', proc_uptime_file) + +or + + import jc + result = jc.parse('proc_uptime', proc_uptime_file) + +Schema: + + { + "up_time": float, + "idle_time": float + } + +Examples: + + $ cat /proc/uptime | jc --proc -p + { + "up_time": 46901.13, + "idle_time": 46856.66 + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/uptime` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + uptime, idletime = data.split() + + raw_output = { + 'up_time': float(uptime), + 'idle_time': float(idletime) + } + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_version.py b/jc/parsers/proc_version.py new file mode 100644 index 00000000..8b888274 --- /dev/null +++ b/jc/parsers/proc_version.py @@ -0,0 +1,127 @@ +"""jc - JSON Convert `/proc/version` file parser + +> Note: This parser will parse `/proc/version` files that follow the +> common format used by most popular linux distributions. + +Usage (cli): + + $ cat /proc/version | jc --proc + +or + + $ jc /proc/version + +or + + $ cat /proc/version | jc --proc-version + +Usage (module): + + import jc + result = jc.parse('proc', proc_version_file) + +or + + import jc + result = jc.parse('proc_version', proc_version_file) + +Schema: + + { + "version": string, + "email": string, + "gcc": string, + "build": string, + "flags": string/null, + "date": string + } + +Examples: + + $ cat /proc/version | jc --proc -p + { + "version": "5.8.0-63-generic", + "email": "buildd@lcy01-amd64-028", + "gcc": "gcc (Ubuntu 10.3.0-1ubuntu1~20.10) 10.3.0, GNU ld (GNU Binutils for Ubuntu) 2.35.1", + "build": "#71-Ubuntu", + "flags": "SMP", + "date": "Tue Jul 13 15:59:12 UTC 2021" + } +""" +import re +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/version` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +# inspired by https://gist.github.com/ty2/ad61340e7a4067def2e3c709496bca9d +version_pattern = re.compile(r''' + Linux\ version\ (?P\S+)\s + \((?P\S+?)\)\s + \((?Pgcc.+)\)\s + (?P\#\d+(\S+)?)\s + (?P.*)? + (?P(Sun|Mon|Tue|Wed|Thu|Fri|Sat).+) + ''', re.VERBOSE +) + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + version_match = version_pattern.match(data) + + if version_match: + + ver_dict = version_match.groupdict() + raw_output = {x: y.strip() or None for x, y in ver_dict.items()} + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_vmallocinfo.py b/jc/parsers/proc_vmallocinfo.py new file mode 100644 index 00000000..f3e8a54b --- /dev/null +++ b/jc/parsers/proc_vmallocinfo.py @@ -0,0 +1,194 @@ +"""jc - JSON Convert `/proc/vmallocinfo` file parser + +This parser will attempt to convert number values to integers. If that is +not desired, please use the `--raw` option (cli) or `raw=True` argument +(module). + +Usage (cli): + + $ cat /proc/vmallocinfo | jc --proc + +or + + $ jc /proc/vmallocinfo + +or + + $ cat /proc/vmallocinfo | jc --proc-vmallocinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_vmallocinfo_file) + +or + + import jc + result = jc.parse('proc_vmallocinfo', proc_vmallocinfo_file) + +Schema: + + [ + { + "start": string, + "end": string, + "size": integer, + "caller": string, + "options": [ + string + ], + "phys": string + "pages": integer, + "N": integer + } + ] + +Examples: + + $ cat /proc/vmallocinfo | jc --proc -p + [ + { + "start": "0xffffb3c1c0000000", + "end": "0xffffb3c1c0005000", + "size": 20480, + "caller": "map_irq_stack+0x93/0xe0", + "options": [ + "vmap" + ], + "phys": "0x00000000bfefe000" + }, + { + "start": "0xffffb3c1c0005000", + "end": "0xffffb3c1c0007000", + "size": 8192, + "caller": "acpi_os_map_iomem+0x1ac/0x1c0", + "options": [ + "ioremap" + ], + "phys": "0x00000000bfeff000" + }, + ... + ] + + $ cat /proc/vmallocinfo | jc --proc-vmallocinfo -p -r + [ + { + "start": "0xffffb3c1c0000000", + "end": "0xffffb3c1c0005000", + "size": "20480", + "caller": "map_irq_stack+0x93/0xe0", + "options": [ + "vmap" + ], + "phys": "0x00000000bfefe000" + }, + { + "start": "0xffffb3c1c0005000", + "end": "0xffffb3c1c0007000", + "size": "8192", + "caller": "acpi_os_map_iomem+0x1ac/0x1c0", + "options": [ + "ioremap" + ], + "phys": "0x00000000bfeff000" + }, + ... + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/vmallocinfo` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + for entry in proc_data: + for key in entry: + if isinstance(entry[key], str): + try: + entry[key] = int(entry[key]) + except Exception: + pass + + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + output_line: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + area, size, details = line.split(maxsplit=2) + start, end = area.split('-', maxsplit=1) + detail_split = details.split() + caller = '' + options: List = [] + + if details == 'unpurged vm_area': + caller = 'unpurged vm_area' + + else: + caller = detail_split[0] + for item in detail_split[1:]: + if '=' in item: + key, val = item.split('=') + output_line.update({key: val}) + else: + options.append(item) + + output_line = { + 'start': start, + 'end': end, + 'size': size, + 'caller': caller or None, + 'options': options + } + + if output_line: + raw_output.append(output_line) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_vmstat.py b/jc/parsers/proc_vmstat.py new file mode 100644 index 00000000..128d0f70 --- /dev/null +++ b/jc/parsers/proc_vmstat.py @@ -0,0 +1,117 @@ +"""jc - JSON Convert `/proc/vmstat` file parser + +Usage (cli): + + $ cat /proc/vmstat | jc --proc + +or + + $ jc /proc/vmstat + +or + + $ cat /proc/vmstat | jc --proc-vmstat + +Usage (module): + + import jc + result = jc.parse('proc', proc_vmstat_file) + +or + + import jc + result = jc.parse('proc_vmstat', proc_vmstat_file) + +Schema: + +All values are integers. + + { + integer + } + +Examples: + + $ cat /proc/vmstat | jc --proc -p + { + "nr_free_pages": 615337, + "nr_zone_inactive_anon": 39, + "nr_zone_active_anon": 34838, + "nr_zone_inactive_file": 104036, + "nr_zone_active_file": 130601, + "nr_zone_unevictable": 4897, + "nr_zone_write_pending": 45, + "nr_mlock": 4897, + "nr_page_table_pages": 548, + "nr_kernel_stack": 5984, + "nr_bounce": 0, + "nr_zspages": 0, + "nr_free_cma": 0, + "numa_hit": 1910597, + "numa_miss": 0, + "numa_foreign": 0, + ... + } +""" +from typing import Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/vmstat` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: Dict) -> Dict: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (Dictionary) raw structured data to process + + Returns: + + Dictionary. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> Dict: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + Dictionary. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: Dict = {} + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + key, val = line.split(maxsplit=1) + raw_output[key] = int(val) + + return raw_output if raw else _process(raw_output) diff --git a/jc/parsers/proc_zoneinfo.py b/jc/parsers/proc_zoneinfo.py new file mode 100644 index 00000000..ec3db99b --- /dev/null +++ b/jc/parsers/proc_zoneinfo.py @@ -0,0 +1,441 @@ +"""jc - JSON Convert `/proc/zoneinfo` file parser + +Usage (cli): + + $ cat /proc/zoneinfo | jc --proc + +or + + $ jc /proc/zoneinfo + +or + + $ cat /proc/zoneinfo | jc --proc-zoneinfo + +Usage (module): + + import jc + result = jc.parse('proc', proc_zoneinfo_file) + +or + + import jc + result = jc.parse('proc_zoneinfo', proc_zoneinfo_file) + +Schema: + +All values are integers. + + [ + { + "node": integer, + "": { + "pages": { + "free": integer, + "min": integer, + "low": integer, + "high": integer, + "spanned": integer, + "present": integer, + "managed": integer, + "protection": [ + integer + ], + "": integer + }, + "pagesets": [ + { + "cpu": integer, + "count": integer, + "high": integer, + "batch": integer, + "vm stats threshold": integer, + "": integer + } + ] + }, + "": integer, # [0] + } + ] + + [0] per-node stats + +Examples: + + $ cat /proc/zoneinfo | jc --proc -p + [ + { + "node": 0, + "DMA": { + "pages": { + "free": 3832, + "min": 68, + "low": 85, + "high": 102, + "spanned": 4095, + "present": 3997, + "managed": 3976, + "protection": [ + 0, + 2871, + 3795, + 3795, + 3795 + ], + "nr_free_pages": 3832, + "nr_zone_inactive_anon": 0, + "nr_zone_active_anon": 0, + "nr_zone_inactive_file": 0, + "nr_zone_active_file": 0, + "nr_zone_unevictable": 0, + "nr_zone_write_pending": 0, + "nr_mlock": 0, + "nr_page_table_pages": 0, + "nr_kernel_stack": 0, + "nr_bounce": 0, + "nr_zspages": 0, + "nr_free_cma": 0, + "numa_hit": 3, + "numa_miss": 0, + "numa_foreign": 0, + "numa_interleave": 1, + "numa_local": 3, + "numa_other": 0 + }, + "pagesets": [ + { + "cpu": 0, + "count": 0, + "high": 0, + "batch": 1, + "vm stats threshold": 4 + }, + { + "cpu": 1, + "count": 0, + "high": 0, + "batch": 1, + "vm stats threshold": 4, + "node_unreclaimable": 0, + "start_pfn": 1 + } + ] + }, + "nr_inactive_anon": 39, + "nr_active_anon": 34839, + "nr_inactive_file": 104172, + "nr_active_file": 130748, + "nr_unevictable": 4897, + "nr_slab_reclaimable": 49017, + "nr_slab_unreclaimable": 26177, + "nr_isolated_anon": 0, + "nr_isolated_file": 0, + "workingset_nodes": 0, + "workingset_refault": 0, + "workingset_activate": 0, + "workingset_restore": 0, + "workingset_nodereclaim": 0, + "nr_anon_pages": 40299, + "nr_mapped": 25140, + "nr_file_pages": 234396, + "nr_dirty": 0, + "nr_writeback": 0, + "nr_writeback_temp": 0, + "nr_shmem": 395, + "nr_shmem_hugepages": 0, + "nr_shmem_pmdmapped": 0, + "nr_file_hugepages": 0, + "nr_file_pmdmapped": 0, + "nr_anon_transparent_hugepages": 0, + "nr_vmscan_write": 0, + "nr_vmscan_immediate_reclaim": 0, + "nr_dirtied": 168223, + "nr_written": 144616, + "nr_kernel_misc_reclaimable": 0, + "nr_foll_pin_acquired": 0, + "nr_foll_pin_released": 0, + "DMA32": { + "pages": { + "free": 606010, + "min": 12729, + "low": 15911, + "high": 19093, + "spanned": 1044480, + "present": 782288, + "managed": 758708, + "protection": [ + 0, + 0, + 924, + 924, + 924 + ], + "nr_free_pages": 606010, + "nr_zone_inactive_anon": 4, + "nr_zone_active_anon": 17380, + "nr_zone_inactive_file": 41785, + "nr_zone_active_file": 64545, + "nr_zone_unevictable": 5, + "nr_zone_write_pending": 0, + "nr_mlock": 5, + "nr_page_table_pages": 101, + "nr_kernel_stack": 224, + "nr_bounce": 0, + "nr_zspages": 0, + "nr_free_cma": 0, + "numa_hit": 576595, + "numa_miss": 0, + "numa_foreign": 0, + "numa_interleave": 2, + "numa_local": 576595, + "numa_other": 0 + }, + "pagesets": [ + { + "cpu": 0, + "count": 253, + "high": 378, + "batch": 63, + "vm stats threshold": 24 + }, + { + "cpu": 1, + "count": 243, + "high": 378, + "batch": 63, + "vm stats threshold": 24, + "node_unreclaimable": 0, + "start_pfn": 4096 + } + ] + }, + "Normal": { + "pages": { + "free": 5113, + "min": 4097, + "low": 5121, + "high": 6145, + "spanned": 262144, + "present": 262144, + "managed": 236634, + "protection": [ + 0, + 0, + 0, + 0, + 0 + ], + "nr_free_pages": 5113, + "nr_zone_inactive_anon": 35, + "nr_zone_active_anon": 17459, + "nr_zone_inactive_file": 62387, + "nr_zone_active_file": 66203, + "nr_zone_unevictable": 4892, + "nr_zone_write_pending": 0, + "nr_mlock": 4892, + "nr_page_table_pages": 447, + "nr_kernel_stack": 5760, + "nr_bounce": 0, + "nr_zspages": 0, + "nr_free_cma": 0, + "numa_hit": 1338441, + "numa_miss": 0, + "numa_foreign": 0, + "numa_interleave": 66037, + "numa_local": 1338441, + "numa_other": 0 + }, + "pagesets": [ + { + "cpu": 0, + "count": 340, + "high": 378, + "batch": 63, + "vm stats threshold": 16 + }, + { + "cpu": 1, + "count": 174, + "high": 378, + "batch": 63, + "vm stats threshold": 16, + "node_unreclaimable": 0, + "start_pfn": 1048576 + } + ] + }, + "Movable": { + "pages": { + "free": 0, + "min": 0, + "low": 0, + "high": 0, + "spanned": 0, + "present": 0, + "managed": 0, + "protection": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "Device": { + "pages": { + "free": 0, + "min": 0, + "low": 0, + "high": 0, + "spanned": 0, + "present": 0, + "managed": 0, + "protection": [ + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + ] +""" +from typing import List, Dict +import jc.utils + + +class info(): + """Provides parser metadata (version, author, etc.)""" + version = '1.0' + description = '`/proc/zoneinfo` file parser' + author = 'Kelly Brazil' + author_email = 'kellyjonbrazil@gmail.com' + compatible = ['linux'] + hidden = True + + +__version__ = info.version + + +def _process(proc_data: List[Dict]) -> List[Dict]: + """ + Final processing to conform to the schema. + + Parameters: + + proc_data: (List of Dictionaries) raw structured data to process + + Returns: + + List of Dictionaries. Structured to conform to the schema. + """ + return proc_data + + +def parse( + data: str, + raw: bool = False, + quiet: bool = False +) -> List[Dict]: + """ + Main text parsing function + + Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + + Returns: + + List of Dictionaries. Raw or processed structured data. + """ + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.input_type_check(data) + + raw_output: List = [] + ouptput_line: Dict = {} + node = None + section = 'stats' # stats, pages, pagesets + pageset = None + + if jc.utils.has_data(data): + + for line in filter(None, data.splitlines()): + + if line == ' per-node stats': + continue + + if line.startswith('Node ') and line.endswith('DMA'): + if ouptput_line: + raw_output.append(ouptput_line) + ouptput_line = {} + + section = 'stats' + _, node, _, zone = line.replace(',', '').split() + ouptput_line['node'] = int(node) + ouptput_line[zone] = {} + continue + + if line.startswith('Node '): + section = 'stats' + + if pageset: + ouptput_line[zone]['pagesets'].append(pageset) + pageset = {} + + _, node, _, zone = line.replace(',', '').split() + ouptput_line['node'] = int(node) + ouptput_line[zone] = {} + continue + + if line.startswith(' pages free '): + section = 'pages' + ouptput_line[zone]['pages'] = {} + ouptput_line[zone]['pages']['free'] = int(line.split()[-1]) + continue + + if line.startswith(' pagesets'): + section = 'pagesets' + ouptput_line[zone]['pagesets'] = [] + pageset = {} # type: ignore + continue + + if section == 'stats': + key, val = line.split(maxsplit=1) + ouptput_line[key] = int(val) + continue + + if section == 'pages' and line.startswith(' protection: '): + protection = line.replace('(', '').replace(')', '').replace(',', '').split()[1:] + ouptput_line[zone]['pages']['protection'] = [int(x) for x in protection] + continue + + if section == 'pages': + key, val = line.split(maxsplit=1) + ouptput_line[zone]['pages'][key] = int(val) + continue + + if section == 'pagesets' and line.startswith(' cpu: '): + if pageset: + ouptput_line[zone]['pagesets'].append(pageset) + + split_line = line.replace(':', '').split(maxsplit=1) + pageset = {"cpu": int(split_line[1])} + continue + + if section == 'pagesets': + key, val = line.split(':', maxsplit=1) + pageset[key.strip()] = int(val) + continue + + if ouptput_line: + if pageset: + ouptput_line[zone]['pagesets'].append(pageset) + + raw_output.append(ouptput_line) + + return raw_output if raw else _process(raw_output) diff --git a/jc/shell_completions.py b/jc/shell_completions.py index 65f497db..adb5375c 100644 --- a/jc/shell_completions.py +++ b/jc/shell_completions.py @@ -75,6 +75,12 @@ _jc() fi done + # if "/pr[oc]" (magic for Procfile parsers) is in the current word, complete with files/directories in the path + if [[ "$${cur}" =~ "/pr" ]]; then + _filedir + return 0 + fi + # if a parser arg is found anywhere in the line, only show options and help options for i in "$${words[@]::$${#words[@]}-1}"; do if [[ " $${jc_parsers[*]} " =~ " $${i} " ]]; then @@ -190,6 +196,13 @@ _jc() { fi done + # if "/pr[oc]" (magic for Procfile parsers) is in the current word, complete with files/directories in the path + if [[ "$${words[-1]}" =~ "/pr" ]]; then + # run files completion + _files + return 0 + fi + # if a parser arg is found anywhere in the line, only show options and help options for i in $${words:0:-1}; do if (( $$jc_parsers[(Ie)$${i}] )); then @@ -230,7 +243,7 @@ def get_options(): def get_parsers(): p_list = [] - for cmd in all_parser_info(): + for cmd in all_parser_info(show_hidden=True): if 'argument' in cmd: p_list.append(cmd['argument']) @@ -239,7 +252,7 @@ def get_parsers(): def get_parsers_descriptions(): pd_list = [] - for p in all_parser_info(): + for p in all_parser_info(show_hidden=True): if 'description' in p: pd_list.append(f"'{p['argument']}:{p['description']}'") diff --git a/man/jc.1 b/man/jc.1 index 8fb1459d..915bfdb2 100644 --- a/man/jc.1 +++ b/man/jc.1 @@ -1,13 +1,26 @@ -.TH jc 1 2022-08-29 1.21.2 "JSON Convert" +.TH jc 1 2022-09-26 1.22.0 "JSON Convert" .SH NAME -\fBjc\fP \- JSON Convert JSONifies the output of many CLI tools and file-types +\fBjc\fP \- JSON Convert JSONifies the output of many CLI tools, file-types, and strings .SH SYNOPSIS -COMMAND | jc PARSER [OPTIONS] -or "Magic" syntax: +Standard syntax: +.RS +COMMAND | \fBjc\fP [OPTIONS] PARSER + +cat FILE | \fBjc\fP [OPTIONS] PARSER + +echo STRING | \fBjc\fP [OPTIONS] PARSER +.RE + +Magic syntax: + +.RS \fBjc\fP [OPTIONS] COMMAND +\fBjc\fP [OPTIONS] /proc/ +.RE + .SH DESCRIPTION \fBjc\fP JSONifies the output of many CLI tools, file-types, and common strings for easier parsing in scripts. \fBjc\fP accepts piped input from \fBSTDIN\fP and outputs a JSON representation of the previous command's output to \fBSTDOUT\fP. Alternatively, the "Magic" syntax can be used by prepending \fBjc\fP to the command to be converted. Options can be passed to \fBjc\fP immediately before the command is given. (Note: "Magic" syntax does not support shell builtins or command aliases) @@ -355,12 +368,12 @@ M3U and M3U8 file parser .TP .B \fB--pidstat\fP -`pidstat -h` command parser +`pidstat -H` command parser .TP .B \fB--pidstat-s\fP -`pidstat -h` command streaming parser +`pidstat -H` command streaming parser .TP .B @@ -392,6 +405,256 @@ PLIST file parser \fB--postconf\fP `postconf -M` command parser +.TP +.B +\fB--proc\fP +`/proc/` file parser + +.TP +.B +\fB--proc-buddyinfo\fP +`/proc/buddyinfo` file parser + +.TP +.B +\fB--proc-consoles\fP +`/proc/consoles` file parser + +.TP +.B +\fB--proc-cpuinfo\fP +`/proc/cpuinfo` file parser + +.TP +.B +\fB--proc-crypto\fP +`/proc/crypto` file parser + +.TP +.B +\fB--proc-devices\fP +`/proc/devices` file parser + +.TP +.B +\fB--proc-diskstats\fP +`/proc/diskstats` file parser + +.TP +.B +\fB--proc-filesystems\fP +`/proc/filesystems` file parser + +.TP +.B +\fB--proc-interrupts\fP +`/proc/interrupts` file parser + +.TP +.B +\fB--proc-iomem\fP +`/proc/iomem` file parser + +.TP +.B +\fB--proc-ioports\fP +`/proc/ioports` file parser + +.TP +.B +\fB--proc-loadavg\fP +`/proc/loadavg` file parser + +.TP +.B +\fB--proc-locks\fP +`/proc/locks` file parser + +.TP +.B +\fB--proc-meminfo\fP +`/proc/meminfo` file parser + +.TP +.B +\fB--proc-modules\fP +`/proc/modules` file parser + +.TP +.B +\fB--proc-mtrr\fP +`/proc/mtrr` file parser + +.TP +.B +\fB--proc-pagetypeinfo\fP +`/proc/pagetypeinfo` file parser + +.TP +.B +\fB--proc-partitions\fP +`/proc/partitions` file parser + +.TP +.B +\fB--proc-slabinfo\fP +`/proc/slabinfo` file parser + +.TP +.B +\fB--proc-softirqs\fP +`/proc/softirqs` file parser + +.TP +.B +\fB--proc-stat\fP +`/proc/stat` file parser + +.TP +.B +\fB--proc-swaps\fP +`/proc/swaps` file parser + +.TP +.B +\fB--proc-uptime\fP +`/proc/uptime` file parser + +.TP +.B +\fB--proc-version\fP +`/proc/version` file parser + +.TP +.B +\fB--proc-vmallocinfo\fP +`/proc/vmallocinfo` file parser + +.TP +.B +\fB--proc-vmstat\fP +`/proc/vmstat` file parser + +.TP +.B +\fB--proc-zoneinfo\fP +`/proc/zoneinfo` file parser + +.TP +.B +\fB--proc-driver-rtc\fP +`/proc/driver/rtc` file parser + +.TP +.B +\fB--proc-net-arp\fP +`/proc/net/arp` file parser + +.TP +.B +\fB--proc-net-dev\fP +`/proc/net/dev` file parser + +.TP +.B +\fB--proc-net-dev-mcast\fP +`/proc/net/dev_mcast` file parser + +.TP +.B +\fB--proc-net-if-inet6\fP +`/proc/net/if_inet6` file parser + +.TP +.B +\fB--proc-net-igmp\fP +`/proc/net/igmp` file parser + +.TP +.B +\fB--proc-net-igmp6\fP +`/proc/net/igmp6` file parser + +.TP +.B +\fB--proc-net-ipv6-route\fP +`/proc/net/ipv6_route` file parser + +.TP +.B +\fB--proc-net-netlink\fP +`/proc/net/netlink` file parser + +.TP +.B +\fB--proc-net-netstat\fP +`/proc/net/netstat` file parser + +.TP +.B +\fB--proc-net-packet\fP +`/proc/net/packet` file parser + +.TP +.B +\fB--proc-net-protocols\fP +`/proc/net/protocols` file parser + +.TP +.B +\fB--proc-net-route\fP +`/proc/net/route` file parser + +.TP +.B +\fB--proc-net-unix\fP +`/proc/net/unix` file parser + +.TP +.B +\fB--proc-pid-fdinfo\fP +`/proc//fdinfo/` file parser + +.TP +.B +\fB--proc-pid-io\fP +`/proc//io` file parser + +.TP +.B +\fB--proc-pid-maps\fP +`/proc//maps` file parser + +.TP +.B +\fB--proc-pid-mountinfo\fP +`/proc//mountinfo` file parser + +.TP +.B +\fB--proc-pid-numa-maps\fP +`/proc//numa_maps` file parser + +.TP +.B +\fB--proc-pid-smaps\fP +`/proc//smaps` file parser + +.TP +.B +\fB--proc-pid-stat\fP +`/proc//stat` file parser + +.TP +.B +\fB--proc-pid-statm\fP +`/proc//statm` file parser + +.TP +.B +\fB--proc-pid-status\fP +`/proc//status` file parser + .TP .B \fB--ps\fP @@ -639,7 +902,7 @@ Debug - show traceback (use \fB-dd\fP for verbose traceback) .TP .B \fB-h\fP, \fB--help\fP -Help (\fB--help --parser_name\fP for parser documentation) +Help (\fB--help --parser_name\fP for parser documentation). Use twice to show hidden parsers (e.g. \fB-hh\fP) .TP .B \fB-m\fP, \fB--monochrome\fP @@ -872,17 +1135,21 @@ If a UTC timezone can be detected in the text of the command output, the timesta .SH EXAMPLES Standard Syntax: .RS -$ dig www.google.com | jc \fB--dig\fP \fB-p\fP +$ dig www.google.com | jc \fB-p\fP \fB--dig\fP + +$ cat /proc/meminfo | jc \fB--pretty\fP \fB--proc\fP .RE Magic Syntax: .RS -$ jc \fB-p\fP dig www.google.com +$ jc \fB--pretty\fP dig www.google.com + +$ jc \fB--pretty\fP /proc/meminfo .RE For parser documentation: .RS -$ jc \fB-h\fP \fB--dig\fP +$ jc \fB--help\fP \fB--dig\fP .RE .SH AUTHOR Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/readmegen.py b/readmegen.py index 5982d836..b408b93f 100755 --- a/readmegen.py +++ b/readmegen.py @@ -1,12 +1,15 @@ #!/usr/bin/env python3 # Genereate README.md from jc metadata using jinja2 templates import jc.cli +import jc.lib from jinja2 import Environment, FileSystemLoader file_loader = FileSystemLoader('templates') env = Environment(loader=file_loader) template = env.get_template('readme_template') -output = template.render(jc=jc.cli.about_jc()) +# output = template.render(jc=jc.cli.about_jc()) +output = template.render(parsers=jc.lib.all_parser_info(), + info=jc.cli.about_jc()) with open('README.md', 'w') as f: f.write(output) diff --git a/setup.py b/setup.py index 0513ac02..9f5744df 100755 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ with open('README.md', 'r') as f: setuptools.setup( name='jc', - version='1.21.2', + version='1.22.0', author='Kelly Brazil', author_email='kellyjonbrazil@gmail.com', description='Converts the output of popular command-line tools and file-types to JSON.', diff --git a/templates/manpage_template b/templates/manpage_template index c1bfacf6..8854f421 100644 --- a/templates/manpage_template +++ b/templates/manpage_template @@ -1,13 +1,26 @@ .TH jc 1 {{ today }} {{ jc.version}} "JSON Convert" .SH NAME -\fBjc\fP \- JSON Convert JSONifies the output of many CLI tools and file-types +\fBjc\fP \- JSON Convert JSONifies the output of many CLI tools, file-types, and strings .SH SYNOPSIS -COMMAND | jc PARSER [OPTIONS] -or "Magic" syntax: +Standard syntax: +.RS +COMMAND | \fBjc\fP [OPTIONS] PARSER + +cat FILE | \fBjc\fP [OPTIONS] PARSER + +echo STRING | \fBjc\fP [OPTIONS] PARSER +.RE + +Magic syntax: + +.RS \fBjc\fP [OPTIONS] COMMAND +\fBjc\fP [OPTIONS] /proc/ +.RE + .SH DESCRIPTION \fBjc\fP JSONifies the output of many CLI tools, file-types, and common strings for easier parsing in scripts. \fBjc\fP accepts piped input from \fBSTDIN\fP and outputs a JSON representation of the previous command's output to \fBSTDOUT\fP. Alternatively, the "Magic" syntax can be used by prepending \fBjc\fP to the command to be converted. Options can be passed to \fBjc\fP immediately before the command is given. (Note: "Magic" syntax does not support shell builtins or command aliases) @@ -44,7 +57,7 @@ Debug - show traceback (use \fB-dd\fP for verbose traceback) .TP .B \fB-h\fP, \fB--help\fP -Help (\fB--help --parser_name\fP for parser documentation) +Help (\fB--help --parser_name\fP for parser documentation). Use twice to show hidden parsers (e.g. \fB-hh\fP) .TP .B \fB-m\fP, \fB--monochrome\fP @@ -277,17 +290,21 @@ If a UTC timezone can be detected in the text of the command output, the timesta .SH EXAMPLES Standard Syntax: .RS -$ dig www.google.com | jc \fB--dig\fP \fB-p\fP +$ dig www.google.com | jc \fB-p\fP \fB--dig\fP + +$ cat /proc/meminfo | jc \fB--pretty\fP \fB--proc\fP .RE Magic Syntax: .RS -$ jc \fB-p\fP dig www.google.com +$ jc \fB--pretty\fP dig www.google.com + +$ jc \fB--pretty\fP /proc/meminfo .RE For parser documentation: .RS -$ jc \fB-h\fP \fB--dig\fP +$ jc \fB--help\fP \fB--dig\fP .RE .SH AUTHOR {{ jc.author }} ({{ jc.author_email }}) diff --git a/templates/readme_template b/templates/readme_template index 963c8176..2811435c 100644 --- a/templates/readme_template +++ b/templates/readme_template @@ -70,7 +70,7 @@ values are converted, and, in some cases, additional semantic context fields are added. To access the raw, pre-processed JSON, use the `-r` cli option or the `raw=True` -function parameter in `parse()`. +function parameter in `parse()` when using `jc` as a python library. Schemas for each parser can be found at the documentation link beside each [**Parser**](#parsers) below. @@ -133,14 +133,18 @@ on Github. `jc` accepts piped input from `STDIN` and outputs a JSON representation of the previous command's output to `STDOUT`. ```bash -COMMAND | jc PARSER [OPTIONS] +COMMAND | jc [OPTIONS] PARSER +cat FILE | jc [OPTIONS] PARSER +echo STRING | jc [OPTIONS] PARSER ``` Alternatively, the "magic" syntax can be used by prepending `jc` to the command -to be converted. Options can be passed to `jc` immediately before the command is -given. (Note: command aliases and shell builtins are not supported) +to be converted or in front of the absolute path for Proc files. Options can be +passed to `jc` immediately before the command or Proc file path is given. +(Note: command aliases and shell builtins are not supported) ```bash jc [OPTIONS] COMMAND +jc [OPTIONS] /proc/ ``` The JSON output can be compact (default) or pretty formatted with the `-p` @@ -149,7 +153,7 @@ option. ### Parsers | Argument | Command or Filetype | Documentation | -|-------------------|---------------------------------------------------------|----------------------------------------------------------------------------|{% for parser in jc.parsers %} +|-------------------|---------------------------------------------------------|----------------------------------------------------------------------------|{% for parser in parsers %} | `{{ "{:>15}".format(parser.argument) }}` | {{ "{:<55}".format(parser.description) }} | {{ "{:<74}".format("[details](https://kellyjonbrazil.github.io/jc/docs/parsers/" + parser.name + ")") }} |{% endfor %} ### Options @@ -159,7 +163,7 @@ option. | `-a` | `--about` | About `jc`. Prints information about `jc` and the parsers (in JSON or YAML, of course!) | | `-C` | `--force-color` | Force color output even when using pipes (overrides `-m` and the `NO_COLOR` env variable) | | `-d` | `--debug` | Debug mode. Prints trace messages if parsing issues are encountered (use`-dd` for verbose debugging) | -| `-h` | `--help` | Help. Use `jc -h --parser_name` for parser documentation | +| `-h` | `--help` | Help. Use `jc -h --parser_name` for parser documentation. Use twice to show hidden parsers (e.g. `-hh`) | | `-m` | `--monochrome` | Monochrome output | | `-M` | `--meta-out` | Add metadata to output including timestamp, parser name, magic command, magic command exit code, etc. | | | `-p` | `--pretty` | Pretty format the JSON output | @@ -418,12 +422,12 @@ that case you can suppress the warning message with the `-q` cli option or the macOS: ```bash -cat lsof.out | jc --lsof -q +cat lsof.out | jc -q --lsof ``` or Windows: ```bash -type lsof.out | jc --lsof -q +type lsof.out | jc -q --lsof ``` Tested on: @@ -467,7 +471,7 @@ documentation. ### arp ```bash -arp | jc --arp -p # or: jc -p arp +arp | jc -p --arp # or: jc -p arp ``` ```json [ @@ -506,7 +510,7 @@ cat homes.csv ... ``` ```bash -cat homes.csv | jc --csv -p +cat homes.csv | jc -p --csv ``` ```json [ @@ -547,7 +551,7 @@ cat homes.csv | jc --csv -p ``` ### /etc/hosts file ```bash -cat /etc/hosts | jc --hosts -p +cat /etc/hosts | jc -p --hosts ``` ```json [ @@ -574,7 +578,7 @@ cat /etc/hosts | jc --hosts -p ``` ### ifconfig ```bash -ifconfig | jc --ifconfig -p # or: jc -p ifconfig +ifconfig | jc -p --ifconfig # or: jc -p ifconfig ``` ```json [ @@ -632,29 +636,29 @@ Port = 50022 ForwardX11 = no ``` ```bash -cat example.ini | jc --ini -p +cat example.ini | jc -p --ini ``` ```json { "bitbucket.org": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "yes", - "user": "hg" + "ServeraLiveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "yes", + "User": "hg" }, "topsecret.server.com": { - "serveraliveinterval": "45", - "compression": "yes", - "compressionlevel": "9", - "forwardx11": "no", - "port": "50022" + "ServeraLiveInterval": "45", + "Compression": "yes", + "CompressionLevel": "9", + "ForwardX11": "no", + "Port": "50022" } } ``` ### ls ```bash -$ ls -l /usr/bin | jc --ls -p # or: jc -p ls -l /usr/bin +$ ls -l /usr/bin | jc -p --ls # or: jc -p ls -l /usr/bin ``` ```json [ @@ -690,7 +694,7 @@ $ ls -l /usr/bin | jc --ls -p # or: jc -p ls -l /usr/bin ``` ### netstat ```bash -netstat -apee | jc --netstat -p # or: jc -p netstat -apee +netstat -apee | jc -p --netstat # or: jc -p netstat -apee ``` ```json [ @@ -778,7 +782,7 @@ netstat -apee | jc --netstat -p # or: jc -p netstat -apee ``` ### /etc/passwd file ```bash -cat /etc/passwd | jc --passwd -p +cat /etc/passwd | jc -p --passwd ``` ```json [ @@ -804,7 +808,7 @@ cat /etc/passwd | jc --passwd -p ``` ### ping ```bash -ping 8.8.8.8 -c 3 | jc --ping -p # or: jc -p ping 8.8.8.8 -c 3 +ping 8.8.8.8 -c 3 | jc -p --ping # or: jc -p ping 8.8.8.8 -c 3 ``` ```json { @@ -857,7 +861,7 @@ ping 8.8.8.8 -c 3 | jc --ping -p # or: jc -p ping 8.8.8.8 -c 3 ``` ### ps ```bash -ps axu | jc --ps -p # or: jc -p ps axu +ps axu | jc -p --ps # or: jc -p ps axu ``` ```json [ @@ -904,7 +908,7 @@ ps axu | jc --ps -p # or: jc -p ps axu ``` ### traceroute ```bash -traceroute -m 2 8.8.8.8 | jc --traceroute -p +traceroute -m 2 8.8.8.8 | jc -p --traceroute # or: jc -p traceroute -m 2 8.8.8.8 ``` ```json @@ -969,7 +973,7 @@ traceroute -m 2 8.8.8.8 | jc --traceroute -p ``` ### uptime ```bash -uptime | jc --uptime -p # or: jc -p uptime +uptime | jc -p --uptime # or: jc -p uptime ``` ```json { @@ -1014,7 +1018,7 @@ cat cd_catalog.xml ... ``` ```bash -cat cd_catalog.xml | jc --xml -p +cat cd_catalog.xml | jc -p --xml ``` ```json { @@ -1066,7 +1070,7 @@ spec: mode: ISTIO_MUTUAL ``` ```bash -cat istio.yaml | jc --yaml -p +cat istio.yaml | jc -p --yaml ``` ```json [ @@ -1104,4 +1108,4 @@ cat istio.yaml | jc --yaml -p ] ``` -{{ jc.copyright }} +{{ info.copyright }} diff --git a/tests/fixtures/centos-7.7/free-w.json b/tests/fixtures/centos-7.7/free-w.json new file mode 100644 index 00000000..8992dbdb --- /dev/null +++ b/tests/fixtures/centos-7.7/free-w.json @@ -0,0 +1 @@ +[{"type": "Mem", "total": 8053804, "used": 1262704, "free": 5830864, "shared": 60576, "buffers": 61596, "cache": 898640, "available": 6483996}, {"type": "Swap", "total": 2097152, "used": 0, "free": 2097152}] diff --git a/tests/fixtures/centos-7.7/free-w.out b/tests/fixtures/centos-7.7/free-w.out new file mode 100644 index 00000000..bdb41d53 --- /dev/null +++ b/tests/fixtures/centos-7.7/free-w.out @@ -0,0 +1,3 @@ + total used free shared buffers cache available +Mem: 8053804 1262704 5830864 60576 61596 898640 6483996 +Swap: 2097152 0 2097152 diff --git a/tests/fixtures/generic/ini-iptelserver.json b/tests/fixtures/generic/ini-iptelserver.json index 68a0d7d4..c74d7d4a 100644 --- a/tests/fixtures/generic/ini-iptelserver.json +++ b/tests/fixtures/generic/ini-iptelserver.json @@ -1 +1 @@ -{"Settings": {"detailedlog": "1", "runstatus": "1", "statusport": "6090", "statusrefresh": "10", "archive": "1", "logfile": "/opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log", "version": "0.9 Build 4 Created July 11 2004 14:00", "servername": "Unknown"}, "FTP": {"runftp": "1", "ftpport": "21", "ftpdataport": "20", "ftpdir": "/opt/ecs/mvuser/MV_IPTel/data/FTPdata", "ftp_timeout": "5", "enablesu": "1", "suusername": "mvuser", "supassword": "Avaya"}, "FTPS": {"runftps": "0", "ftpport": "990", "ftpdataport": "889"}, "TFTP": {"runtrivialftp": "1", "trivialftpport": "69", "tftpdir": "/opt/ecs/mvuser/MV_IPTel/data/TFTPdata"}, "HTTP": {"runhttp": "1", "httpport": "81", "httpdir": "/opt/ecs/mvuser/MV_IPTel/data/HTTPdata"}, "HTTPS": {"runhttps": "0", "httpsport": "411", "httpsdir": "/opt/ecs/mvuser/MV_IPTel/data/HTTPSdata", "certfile": "/opt/ecs/mvuser/MV_IPTel/certs/IPTelcert.pem", "keyfile": "/opt/ecs/mvuser/MV_IPTel/certs/IPTelkey.pem", "clientauth": "0", "iptel": "0", "sslv2": "0", "sslv3": "0", "tlsv1": "1", "useproxy": "0", "proxyaddr": "simon.avaya.com", "proxyport": "9000"}, "BACKUP_SERVERS": {"fileserver": "0", "requestupdates": "0", "requestbackup": "0", "useprimarysvr": "0", "primaryip": "192.168.0.13", "usesecondarysvr": "0", "secondaryip": "192.168.0.10", "updateinterval": "2", "customftp": "1", "customftpdir": "home/mvuser/backup", "customftpuname": "tom", "customftppwd": "jerry", "cdrbackup": "0", "bcmsbackup": "0", "retaindays": "7.0"}, "SNMP": {"usesnmp": "1"}} +{"Settings":{"DetailedLog":"1","RunStatus":"1","StatusPort":"6090","StatusRefresh":"10","Archive":"1","LogFile":"/opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log","Version":"0.9 Build 4 Created July 11 2004 14:00","ServerName":"Unknown"},"FTP":{"RunFTP":"1","FTPPort":"21","FTPDataPort":"20","FTPDir":"/opt/ecs/mvuser/MV_IPTel/data/FTPdata","FTP_TimeOut":"5","EnableSU":"1","SUUserName":"mvuser","SUPassword":"Avaya"},"FTPS":{"RunFTPS":"0","FTPPort":"990","FTPDataPort":"889"},"TFTP":{"RunTrivialFTP":"1","TrivialFTPPort":"69","TFTPDir":"/opt/ecs/mvuser/MV_IPTel/data/TFTPdata"},"HTTP":{"RunHTTP":"1","HTTPPort":"81","HTTPDir":"/opt/ecs/mvuser/MV_IPTel/data/HTTPdata"},"HTTPS":{"RunHTTPS":"0","HTTPSPort":"411","HTTPSDir":"/opt/ecs/mvuser/MV_IPTel/data/HTTPSdata","CertFile":"/opt/ecs/mvuser/MV_IPTel/certs/IPTelcert.pem","KeyFile":"/opt/ecs/mvuser/MV_IPTel/certs/IPTelkey.pem","ClientAuth":"0","IPTel":"0","SSLV2":"0","SSLV3":"0","TLSV1":"1","UseProxy":"0","ProxyAddr":"simon.avaya.com","ProxyPort":"9000"},"BACKUP_SERVERS":{"FileServer":"0","RequestUpdates":"0","RequestBackup":"0","UsePrimarySvr":"0","PrimaryIP":"192.168.0.13","UseSecondarySvr":"0","SecondaryIP":"192.168.0.10","UpdateInterval":"2","CustomFTP":"1","CustomFTPDir":"home/mvuser/backup","CustomFTPUName":"tom","CustomFTPPwd":"jerry","CDRBackup":"0","BCMSBackup":"0","RetainDays":"7.0"},"SNMP":{"UseSNMP":"1"}} diff --git a/tests/fixtures/generic/ini-test.json b/tests/fixtures/generic/ini-test.json index 30d55804..c3250682 100644 --- a/tests/fixtures/generic/ini-test.json +++ b/tests/fixtures/generic/ini-test.json @@ -1 +1 @@ -{"bitbucket.org": {"serveraliveinterval": "45", "compression": "yes", "compressionlevel": "9", "forwardx11": "yes", "user": "hg"}, "topsecret.server.com": {"serveraliveinterval": "45", "compression": "yes", "compressionlevel": "9", "forwardx11": "no", "port": "50022"}} +{"bitbucket.org":{"ServerAliveInterval":"45","Compression":"yes","CompressionLevel":"9","ForwardX11":"yes","User":"hg"},"topsecret.server.com":{"ServerAliveInterval":"45","Compression":"yes","CompressionLevel":"9","ForwardX11":"no","Port":"50022"}} diff --git a/tests/fixtures/generic/keyvalue-ifcfg.json b/tests/fixtures/generic/keyvalue-ifcfg.json index 3d399e7e..01e53893 100644 --- a/tests/fixtures/generic/keyvalue-ifcfg.json +++ b/tests/fixtures/generic/keyvalue-ifcfg.json @@ -1 +1 @@ -{"type": "Ethernet", "proxy_method": "none", "browser_only": "no", "bootproto": "dhcp", "defroute": "yes", "ipv4_failure_fatal": "no", "ipv6init": "yes", "ipv6_autoconf": "yes", "ipv6_defroute": "yes", "ipv6_failure_fatal": "no", "ipv6_addr_gen_mode": "stable-privacy", "name": "ens33", "uuid": "d92ece08-9e02-47d5-b2d2-92c80e155744", "device": "ens33", "onboot": "yes", "value_with_spaces": "this value includes spaces", "value_with_quotes_inside": "this value \"has quotation marks\" inside", "value_with_quotes_inside2": "\"this value\" has quotations at the beginning but not the end", "value_with_quotes_inside3": "this value has quotation marks \"at the end\""} +{"TYPE":"Ethernet","PROXY_METHOD":"none","BROWSER_ONLY":"no","BOOTPROTO":"dhcp","DEFROUTE":"yes","IPV4_FAILURE_FATAL":"no","IPV6INIT":"yes","IPV6_AUTOCONF":"yes","IPV6_DEFROUTE":"yes","IPV6_FAILURE_FATAL":"no","IPV6_ADDR_GEN_MODE":"stable-privacy","NAME":"ens33","UUID":"d92ece08-9e02-47d5-b2d2-92c80e155744","DEVICE":"ens33","ONBOOT":"yes","value_with_spaces":"this value includes spaces","value_with_quotes_inside":"this value \"has quotation marks\" inside","value_with_quotes_inside2":"\"this value\" has quotations at the beginning but not the end","value_with_quotes_inside3":"this value has quotation marks \"at the end\""} diff --git a/tests/fixtures/linux-proc/buddyinfo b/tests/fixtures/linux-proc/buddyinfo new file mode 100644 index 00000000..8ec94511 --- /dev/null +++ b/tests/fixtures/linux-proc/buddyinfo @@ -0,0 +1,3 @@ +Node 0, zone DMA 0 0 0 1 1 1 1 1 0 1 3 +Node 0, zone DMA32 78 114 82 52 38 25 13 9 3 4 629 +Node 0, zone Normal 0 22 8 10 1 1 2 11 13 0 0 diff --git a/tests/fixtures/linux-proc/buddyinfo.json b/tests/fixtures/linux-proc/buddyinfo.json new file mode 100644 index 00000000..b10535e1 --- /dev/null +++ b/tests/fixtures/linux-proc/buddyinfo.json @@ -0,0 +1 @@ +[{"node":0,"zone":"DMA","free_chunks":[0,0,0,1,1,1,1,1,0,1,3]},{"node":0,"zone":"DMA32","free_chunks":[78,114,82,52,38,25,13,9,3,4,629]},{"node":0,"zone":"Normal","free_chunks":[0,22,8,10,1,1,2,11,13,0,0]}] diff --git a/tests/fixtures/linux-proc/consoles b/tests/fixtures/linux-proc/consoles new file mode 100644 index 00000000..24927661 --- /dev/null +++ b/tests/fixtures/linux-proc/consoles @@ -0,0 +1 @@ +tty0 -WU (EC p ) 4:1 diff --git a/tests/fixtures/linux-proc/consoles.json b/tests/fixtures/linux-proc/consoles.json new file mode 100644 index 00000000..e3b758a9 --- /dev/null +++ b/tests/fixtures/linux-proc/consoles.json @@ -0,0 +1 @@ +[{"device":"tty0","operations":"-WU","operations_list":["write","unblank"],"flags":"EC p ","flags_list":["enabled","preferred","printk buffer"],"major":4,"minor":1}] diff --git a/tests/fixtures/linux-proc/consoles2 b/tests/fixtures/linux-proc/consoles2 new file mode 100644 index 00000000..ba4ce5f6 --- /dev/null +++ b/tests/fixtures/linux-proc/consoles2 @@ -0,0 +1,2 @@ +tty0 -WU (ECp) 4:7 +ttyS0 -W- (Ep) 4:64 diff --git a/tests/fixtures/linux-proc/consoles2.json b/tests/fixtures/linux-proc/consoles2.json new file mode 100644 index 00000000..f2ffa799 --- /dev/null +++ b/tests/fixtures/linux-proc/consoles2.json @@ -0,0 +1 @@ +[{"device":"tty0","operations":"-WU","operations_list":["write","unblank"],"flags":"ECp","flags_list":["enabled","preferred","printk buffer"],"major":4,"minor":7},{"device":"ttyS0","operations":"-W-","operations_list":["write"],"flags":"Ep","flags_list":["enabled","printk buffer"],"major":4,"minor":64}] diff --git a/tests/fixtures/linux-proc/cpuinfo b/tests/fixtures/linux-proc/cpuinfo new file mode 100644 index 00000000..c0a08587 --- /dev/null +++ b/tests/fixtures/linux-proc/cpuinfo @@ -0,0 +1,24 @@ +processor : 0 +vendor_id : GenuineIntel +cpu family : 6 +model : 142 +model name : Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz +stepping : 9 +cpu MHz : 2303.998 +cache size : 4096 KB +physical id : 0 +siblings : 1 +core id : 0 +cpu cores : 1 +apicid : 0 +initial apicid : 0 +fpu : yes +fpu_exception : yes +cpuid level : 22 +wp : yes +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase avx2 invpcid rdseed clflushopt md_clear flush_l1d +bogomips : 4607.99 +clflush size : 64 +cache_alignment : 64 +address sizes : 39 bits physical, 48 bits virtual +power management: diff --git a/tests/fixtures/linux-proc/cpuinfo.json b/tests/fixtures/linux-proc/cpuinfo.json new file mode 100644 index 00000000..3baeaff1 --- /dev/null +++ b/tests/fixtures/linux-proc/cpuinfo.json @@ -0,0 +1 @@ +[{"processor":0,"vendor_id":"GenuineIntel","cpu family":6,"model":142,"model name":"Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz","stepping":9,"cpu MHz":2303.998,"cache size":"4096 KB","physical id":0,"siblings":1,"core id":0,"cpu cores":1,"apicid":0,"initial apicid":0,"fpu":true,"fpu_exception":true,"cpuid level":22,"wp":true,"flags":["fpu","vme","de","pse","tsc","msr","pae","mce","cx8","apic","sep","mtrr","pge","mca","cmov","pat","pse36","clflush","mmx","fxsr","sse","sse2","ht","syscall","nx","rdtscp","lm","constant_tsc","rep_good","nopl","xtopology","nonstop_tsc","eagerfpu","pni","pclmulqdq","monitor","ssse3","cx16","pcid","sse4_1","sse4_2","x2apic","movbe","popcnt","aes","xsave","avx","rdrand","hypervisor","lahf_lm","abm","3dnowprefetch","fsgsbase","avx2","invpcid","rdseed","clflushopt","md_clear","flush_l1d"],"bogomips":4607.99,"clflush size":64,"cache_alignment":64,"address sizes":"39 bits physical, 48 bits virtual","power management":null,"address_size_physical":39,"address_size_virtual":48,"cache_size_num":4096,"cache_size_unit":"KB"}] diff --git a/tests/fixtures/linux-proc/cpuinfo2 b/tests/fixtures/linux-proc/cpuinfo2 new file mode 100644 index 00000000..7970c910 --- /dev/null +++ b/tests/fixtures/linux-proc/cpuinfo2 @@ -0,0 +1,53 @@ +processor : 0 +vendor_id : GenuineIntel +cpu family : 6 +model : 142 +model name : Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz +stepping : 10 +cpu MHz : 2400.000 +cache size : 6144 KB +physical id : 0 +siblings : 1 +core id : 0 +cpu cores : 1 +apicid : 0 +initial apicid : 0 +fpu : yes +fpu_exception : yes +cpuid level : 22 +wp : yes +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat md_clear flush_l1d arch_capabilities +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds +bogomips : 4800.00 +clflush size : 64 +cache_alignment : 64 +address sizes : 45 bits physical, 48 bits virtual +power management: + +processor : 1 +vendor_id : GenuineIntel +cpu family : 6 +model : 142 +model name : Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz +stepping : 10 +cpu MHz : 2400.000 +cache size : 6144 KB +physical id : 2 +siblings : 1 +core id : 0 +cpu cores : 1 +apicid : 2 +initial apicid : 2 +fpu : yes +fpu_exception : yes +cpuid level : 22 +wp : yes +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat md_clear flush_l1d arch_capabilities +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds +bogomips : 4800.00 +clflush size : 64 +cache_alignment : 64 +address sizes : 45 bits physical, 48 bits virtual +power management: + + diff --git a/tests/fixtures/linux-proc/cpuinfo2.json b/tests/fixtures/linux-proc/cpuinfo2.json new file mode 100644 index 00000000..6a24797c --- /dev/null +++ b/tests/fixtures/linux-proc/cpuinfo2.json @@ -0,0 +1 @@ +[{"processor":0,"vendor_id":"GenuineIntel","cpu family":6,"model":142,"model name":"Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz","stepping":10,"cpu MHz":2400.0,"cache size":"6144 KB","physical id":0,"siblings":1,"core id":0,"cpu cores":1,"apicid":0,"initial apicid":0,"fpu":true,"fpu_exception":true,"cpuid level":22,"wp":true,"flags":["fpu","vme","de","pse","tsc","msr","pae","mce","cx8","apic","sep","mtrr","pge","mca","cmov","pat","pse36","clflush","mmx","fxsr","sse","sse2","ss","syscall","nx","pdpe1gb","rdtscp","lm","constant_tsc","arch_perfmon","nopl","xtopology","tsc_reliable","nonstop_tsc","cpuid","pni","pclmulqdq","ssse3","fma","cx16","pcid","sse4_1","sse4_2","x2apic","movbe","popcnt","tsc_deadline_timer","aes","xsave","avx","f16c","rdrand","hypervisor","lahf_lm","abm","3dnowprefetch","cpuid_fault","invpcid_single","pti","ssbd","ibrs","ibpb","stibp","fsgsbase","tsc_adjust","bmi1","avx2","smep","bmi2","invpcid","rdseed","adx","smap","clflushopt","xsaveopt","xsavec","xgetbv1","xsaves","arat","md_clear","flush_l1d","arch_capabilities"],"bugs":["cpu_meltdown","spectre_v1","spectre_v2","spec_store_bypass","l1tf","mds","swapgs","itlb_multihit","srbds"],"bogomips":4800.0,"clflush size":64,"cache_alignment":64,"address sizes":"45 bits physical, 48 bits virtual","power management":null,"address_size_physical":45,"address_size_virtual":48,"cache_size_num":6144,"cache_size_unit":"KB"},{"processor":1,"vendor_id":"GenuineIntel","cpu family":6,"model":142,"model name":"Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz","stepping":10,"cpu MHz":2400.0,"cache size":"6144 KB","physical id":2,"siblings":1,"core id":0,"cpu cores":1,"apicid":2,"initial apicid":2,"fpu":true,"fpu_exception":true,"cpuid level":22,"wp":true,"flags":["fpu","vme","de","pse","tsc","msr","pae","mce","cx8","apic","sep","mtrr","pge","mca","cmov","pat","pse36","clflush","mmx","fxsr","sse","sse2","ss","syscall","nx","pdpe1gb","rdtscp","lm","constant_tsc","arch_perfmon","nopl","xtopology","tsc_reliable","nonstop_tsc","cpuid","pni","pclmulqdq","ssse3","fma","cx16","pcid","sse4_1","sse4_2","x2apic","movbe","popcnt","tsc_deadline_timer","aes","xsave","avx","f16c","rdrand","hypervisor","lahf_lm","abm","3dnowprefetch","cpuid_fault","invpcid_single","pti","ssbd","ibrs","ibpb","stibp","fsgsbase","tsc_adjust","bmi1","avx2","smep","bmi2","invpcid","rdseed","adx","smap","clflushopt","xsaveopt","xsavec","xgetbv1","xsaves","arat","md_clear","flush_l1d","arch_capabilities"],"bugs":["cpu_meltdown","spectre_v1","spectre_v2","spec_store_bypass","l1tf","mds","swapgs","itlb_multihit","srbds"],"bogomips":4800.0,"clflush size":64,"cache_alignment":64,"address sizes":"45 bits physical, 48 bits virtual","power management":null,"address_size_physical":45,"address_size_virtual":48,"cache_size_num":6144,"cache_size_unit":"KB"}] diff --git a/tests/fixtures/linux-proc/crypto b/tests/fixtures/linux-proc/crypto new file mode 100644 index 00000000..662065bb --- /dev/null +++ b/tests/fixtures/linux-proc/crypto @@ -0,0 +1,806 @@ +name : ecdh +driver : ecdh-generic +module : ecdh_generic +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : kpp + +name : blake2b-512 +driver : blake2b-512-generic +module : blake2b_generic +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 128 +digestsize : 64 + +name : blake2b-384 +driver : blake2b-384-generic +module : blake2b_generic +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 128 +digestsize : 48 + +name : blake2b-256 +driver : blake2b-256-generic +module : blake2b_generic +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 128 +digestsize : 32 + +name : blake2b-160 +driver : blake2b-160-generic +module : blake2b_generic +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 128 +digestsize : 20 + +name : crct10dif +driver : crct10dif-pclmul +module : crct10dif_pclmul +priority : 200 +refcnt : 2 +selftest : passed +internal : no +type : shash +blocksize : 1 +digestsize : 2 + +name : crc32 +driver : crc32-pclmul +module : crc32_pclmul +priority : 200 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 1 +digestsize : 4 + +name : ghash +driver : ghash-clmulni +module : ghash_clmulni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : no +type : ahash +async : yes +blocksize : 16 +digestsize : 16 + +name : __ghash +driver : __ghash-pclmulqdqni +module : ghash_clmulni_intel +priority : 0 +refcnt : 1 +selftest : passed +internal : yes +type : shash +blocksize : 16 +digestsize : 16 + +name : gcm(aes) +driver : generic-gcm-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : no +type : aead +async : yes +blocksize : 1 +ivsize : 12 +maxauthsize : 16 +geniv : + +name : rfc4106(gcm(aes)) +driver : rfc4106-gcm-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : no +type : aead +async : yes +blocksize : 1 +ivsize : 8 +maxauthsize : 16 +geniv : + +name : __gcm(aes) +driver : __generic-gcm-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : yes +type : aead +async : no +blocksize : 1 +ivsize : 12 +maxauthsize : 16 +geniv : + +name : __rfc4106(gcm(aes)) +driver : __rfc4106-gcm-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : yes +type : aead +async : no +blocksize : 1 +ivsize : 8 +maxauthsize : 16 +geniv : + +name : xts(aes) +driver : xts-aes-aesni +module : aesni_intel +priority : 401 +refcnt : 1 +selftest : passed +internal : no +type : skcipher +async : yes +blocksize : 16 +min keysize : 32 +max keysize : 64 +ivsize : 16 +chunksize : 16 +walksize : 16 + +name : ctr(aes) +driver : ctr-aes-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : no +type : skcipher +async : yes +blocksize : 1 +min keysize : 16 +max keysize : 32 +ivsize : 16 +chunksize : 16 +walksize : 16 + +name : cbc(aes) +driver : cbc-aes-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : no +type : skcipher +async : yes +blocksize : 16 +min keysize : 16 +max keysize : 32 +ivsize : 16 +chunksize : 16 +walksize : 16 + +name : ecb(aes) +driver : ecb-aes-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : no +type : skcipher +async : yes +blocksize : 16 +min keysize : 16 +max keysize : 32 +ivsize : 0 +chunksize : 16 +walksize : 16 + +name : __xts(aes) +driver : __xts-aes-aesni +module : aesni_intel +priority : 401 +refcnt : 1 +selftest : passed +internal : yes +type : skcipher +async : no +blocksize : 16 +min keysize : 32 +max keysize : 64 +ivsize : 16 +chunksize : 16 +walksize : 16 + +name : __ctr(aes) +driver : __ctr-aes-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : yes +type : skcipher +async : no +blocksize : 1 +min keysize : 16 +max keysize : 32 +ivsize : 16 +chunksize : 16 +walksize : 16 + +name : __cbc(aes) +driver : __cbc-aes-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : yes +type : skcipher +async : no +blocksize : 16 +min keysize : 16 +max keysize : 32 +ivsize : 16 +chunksize : 16 +walksize : 16 + +name : __ecb(aes) +driver : __ecb-aes-aesni +module : aesni_intel +priority : 400 +refcnt : 1 +selftest : passed +internal : yes +type : skcipher +async : no +blocksize : 16 +min keysize : 16 +max keysize : 32 +ivsize : 0 +chunksize : 16 +walksize : 16 + +name : aes +driver : aes-aesni +module : aesni_intel +priority : 300 +refcnt : 1 +selftest : passed +internal : no +type : cipher +blocksize : 16 +min keysize : 16 +max keysize : 32 + +name : pkcs1pad(rsa,sha512) +driver : pkcs1pad(rsa-generic,sha512) +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : akcipher + +name : hmac(sha256) +driver : hmac(sha256-generic) +module : kernel +priority : 100 +refcnt : 129 +selftest : passed +internal : no +type : shash +blocksize : 64 +digestsize : 32 + +name : hmac(sha1) +driver : hmac(sha1-generic) +module : kernel +priority : 100 +refcnt : 129 +selftest : passed +internal : no +type : shash +blocksize : 64 +digestsize : 20 + +name : jitterentropy_rng +driver : jitterentropy_rng +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : crc32c +driver : crc32c-intel +module : kernel +priority : 200 +refcnt : 6 +selftest : passed +internal : no +type : shash +blocksize : 1 +digestsize : 4 + +name : ghash +driver : ghash-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 16 +digestsize : 16 + +name : stdrng +driver : drbg_nopr_hmac_sha256 +module : kernel +priority : 221 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_hmac_sha512 +module : kernel +priority : 220 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_hmac_sha384 +module : kernel +priority : 219 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_hmac_sha1 +module : kernel +priority : 218 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_sha256 +module : kernel +priority : 217 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_sha512 +module : kernel +priority : 216 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_sha384 +module : kernel +priority : 215 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_sha1 +module : kernel +priority : 214 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_ctr_aes256 +module : kernel +priority : 213 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_ctr_aes192 +module : kernel +priority : 212 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_nopr_ctr_aes128 +module : kernel +priority : 211 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_hmac_sha256 +module : kernel +priority : 210 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_hmac_sha512 +module : kernel +priority : 209 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_hmac_sha384 +module : kernel +priority : 208 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_hmac_sha1 +module : kernel +priority : 207 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_sha256 +module : kernel +priority : 206 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_sha512 +module : kernel +priority : 205 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_sha384 +module : kernel +priority : 204 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_sha1 +module : kernel +priority : 203 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_ctr_aes256 +module : kernel +priority : 202 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_ctr_aes192 +module : kernel +priority : 201 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : stdrng +driver : drbg_pr_ctr_aes128 +module : kernel +priority : 200 +refcnt : 1 +selftest : passed +internal : no +type : rng +seedsize : 0 + +name : lzo-rle +driver : lzo-rle-scomp +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : scomp + +name : lzo-rle +driver : lzo-rle-generic +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : compression + +name : lzo +driver : lzo-scomp +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : scomp + +name : lzo +driver : lzo-generic +module : kernel +priority : 0 +refcnt : 3 +selftest : passed +internal : no +type : compression + +name : crct10dif +driver : crct10dif-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 1 +digestsize : 2 + +name : crc32c +driver : crc32c-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 1 +digestsize : 4 + +name : zlib-deflate +driver : zlib-deflate-scomp +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : scomp + +name : deflate +driver : deflate-scomp +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : scomp + +name : deflate +driver : deflate-generic +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : compression + +name : aes +driver : aes-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : cipher +blocksize : 16 +min keysize : 16 +max keysize : 32 + +name : sha384 +driver : sha384-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 128 +digestsize : 48 + +name : sha512 +driver : sha512-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 128 +digestsize : 64 + +name : sha224 +driver : sha224-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 64 +digestsize : 28 + +name : sha256 +driver : sha256-generic +module : kernel +priority : 100 +refcnt : 130 +selftest : passed +internal : no +type : shash +blocksize : 64 +digestsize : 32 + +name : sha1 +driver : sha1-generic +module : kernel +priority : 100 +refcnt : 132 +selftest : passed +internal : no +type : shash +blocksize : 64 +digestsize : 20 + +name : md5 +driver : md5-generic +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 64 +digestsize : 16 + +name : ecb(cipher_null) +driver : ecb-cipher_null +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : skcipher +async : no +blocksize : 1 +min keysize : 0 +max keysize : 0 +ivsize : 0 +chunksize : 1 +walksize : 1 + +name : digest_null +driver : digest_null-generic +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : shash +blocksize : 1 +digestsize : 0 + +name : compress_null +driver : compress_null-generic +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : compression + +name : cipher_null +driver : cipher_null-generic +module : kernel +priority : 0 +refcnt : 1 +selftest : passed +internal : no +type : cipher +blocksize : 1 +min keysize : 0 +max keysize : 0 + +name : rsa +driver : rsa-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : akcipher + +name : dh +driver : dh-generic +module : kernel +priority : 100 +refcnt : 1 +selftest : passed +internal : no +type : kpp + diff --git a/tests/fixtures/linux-proc/crypto.json b/tests/fixtures/linux-proc/crypto.json new file mode 100644 index 00000000..3ccdc9f4 --- /dev/null +++ b/tests/fixtures/linux-proc/crypto.json @@ -0,0 +1 @@ +[{"name":"ecdh","driver":"ecdh-generic","module":"ecdh_generic","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"kpp"},{"name":"blake2b-512","driver":"blake2b-512-generic","module":"blake2b_generic","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":128,"digestsize":64},{"name":"blake2b-384","driver":"blake2b-384-generic","module":"blake2b_generic","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":128,"digestsize":48},{"name":"blake2b-256","driver":"blake2b-256-generic","module":"blake2b_generic","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":128,"digestsize":32},{"name":"blake2b-160","driver":"blake2b-160-generic","module":"blake2b_generic","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":128,"digestsize":20},{"name":"crct10dif","driver":"crct10dif-pclmul","module":"crct10dif_pclmul","priority":200,"refcnt":2,"selftest":"passed","internal":"no","type":"shash","blocksize":1,"digestsize":2},{"name":"crc32","driver":"crc32-pclmul","module":"crc32_pclmul","priority":200,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":1,"digestsize":4},{"name":"ghash","driver":"ghash-clmulni","module":"ghash_clmulni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"no","type":"ahash","async":"yes","blocksize":16,"digestsize":16},{"name":"__ghash","driver":"__ghash-pclmulqdqni","module":"ghash_clmulni_intel","priority":0,"refcnt":1,"selftest":"passed","internal":"yes","type":"shash","blocksize":16,"digestsize":16},{"name":"gcm(aes)","driver":"generic-gcm-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"no","type":"aead","async":"yes","blocksize":1,"ivsize":12,"maxauthsize":16,"geniv":""},{"name":"rfc4106(gcm(aes))","driver":"rfc4106-gcm-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"no","type":"aead","async":"yes","blocksize":1,"ivsize":8,"maxauthsize":16,"geniv":""},{"name":"__gcm(aes)","driver":"__generic-gcm-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"yes","type":"aead","async":"no","blocksize":1,"ivsize":12,"maxauthsize":16,"geniv":""},{"name":"__rfc4106(gcm(aes))","driver":"__rfc4106-gcm-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"yes","type":"aead","async":"no","blocksize":1,"ivsize":8,"maxauthsize":16,"geniv":""},{"name":"xts(aes)","driver":"xts-aes-aesni","module":"aesni_intel","priority":401,"refcnt":1,"selftest":"passed","internal":"no","type":"skcipher","async":"yes","blocksize":16,"min keysize":32,"max keysize":64,"ivsize":16,"chunksize":16,"walksize":16},{"name":"ctr(aes)","driver":"ctr-aes-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"no","type":"skcipher","async":"yes","blocksize":1,"min keysize":16,"max keysize":32,"ivsize":16,"chunksize":16,"walksize":16},{"name":"cbc(aes)","driver":"cbc-aes-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"no","type":"skcipher","async":"yes","blocksize":16,"min keysize":16,"max keysize":32,"ivsize":16,"chunksize":16,"walksize":16},{"name":"ecb(aes)","driver":"ecb-aes-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"no","type":"skcipher","async":"yes","blocksize":16,"min keysize":16,"max keysize":32,"ivsize":0,"chunksize":16,"walksize":16},{"name":"__xts(aes)","driver":"__xts-aes-aesni","module":"aesni_intel","priority":401,"refcnt":1,"selftest":"passed","internal":"yes","type":"skcipher","async":"no","blocksize":16,"min keysize":32,"max keysize":64,"ivsize":16,"chunksize":16,"walksize":16},{"name":"__ctr(aes)","driver":"__ctr-aes-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"yes","type":"skcipher","async":"no","blocksize":1,"min keysize":16,"max keysize":32,"ivsize":16,"chunksize":16,"walksize":16},{"name":"__cbc(aes)","driver":"__cbc-aes-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"yes","type":"skcipher","async":"no","blocksize":16,"min keysize":16,"max keysize":32,"ivsize":16,"chunksize":16,"walksize":16},{"name":"__ecb(aes)","driver":"__ecb-aes-aesni","module":"aesni_intel","priority":400,"refcnt":1,"selftest":"passed","internal":"yes","type":"skcipher","async":"no","blocksize":16,"min keysize":16,"max keysize":32,"ivsize":0,"chunksize":16,"walksize":16},{"name":"aes","driver":"aes-aesni","module":"aesni_intel","priority":300,"refcnt":1,"selftest":"passed","internal":"no","type":"cipher","blocksize":16,"min keysize":16,"max keysize":32},{"name":"pkcs1pad(rsa,sha512)","driver":"pkcs1pad(rsa-generic,sha512)","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"akcipher"},{"name":"hmac(sha256)","driver":"hmac(sha256-generic)","module":"kernel","priority":100,"refcnt":129,"selftest":"passed","internal":"no","type":"shash","blocksize":64,"digestsize":32},{"name":"hmac(sha1)","driver":"hmac(sha1-generic)","module":"kernel","priority":100,"refcnt":129,"selftest":"passed","internal":"no","type":"shash","blocksize":64,"digestsize":20},{"name":"jitterentropy_rng","driver":"jitterentropy_rng","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"crc32c","driver":"crc32c-intel","module":"kernel","priority":200,"refcnt":6,"selftest":"passed","internal":"no","type":"shash","blocksize":1,"digestsize":4},{"name":"ghash","driver":"ghash-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":16,"digestsize":16},{"name":"stdrng","driver":"drbg_nopr_hmac_sha256","module":"kernel","priority":221,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_hmac_sha512","module":"kernel","priority":220,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_hmac_sha384","module":"kernel","priority":219,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_hmac_sha1","module":"kernel","priority":218,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_sha256","module":"kernel","priority":217,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_sha512","module":"kernel","priority":216,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_sha384","module":"kernel","priority":215,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_sha1","module":"kernel","priority":214,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_ctr_aes256","module":"kernel","priority":213,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_ctr_aes192","module":"kernel","priority":212,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_nopr_ctr_aes128","module":"kernel","priority":211,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_hmac_sha256","module":"kernel","priority":210,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_hmac_sha512","module":"kernel","priority":209,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_hmac_sha384","module":"kernel","priority":208,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_hmac_sha1","module":"kernel","priority":207,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_sha256","module":"kernel","priority":206,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_sha512","module":"kernel","priority":205,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_sha384","module":"kernel","priority":204,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_sha1","module":"kernel","priority":203,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_ctr_aes256","module":"kernel","priority":202,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_ctr_aes192","module":"kernel","priority":201,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"stdrng","driver":"drbg_pr_ctr_aes128","module":"kernel","priority":200,"refcnt":1,"selftest":"passed","internal":"no","type":"rng","seedsize":0},{"name":"lzo-rle","driver":"lzo-rle-scomp","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"scomp"},{"name":"lzo-rle","driver":"lzo-rle-generic","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"compression"},{"name":"lzo","driver":"lzo-scomp","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"scomp"},{"name":"lzo","driver":"lzo-generic","module":"kernel","priority":0,"refcnt":3,"selftest":"passed","internal":"no","type":"compression"},{"name":"crct10dif","driver":"crct10dif-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":1,"digestsize":2},{"name":"crc32c","driver":"crc32c-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":1,"digestsize":4},{"name":"zlib-deflate","driver":"zlib-deflate-scomp","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"scomp"},{"name":"deflate","driver":"deflate-scomp","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"scomp"},{"name":"deflate","driver":"deflate-generic","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"compression"},{"name":"aes","driver":"aes-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"cipher","blocksize":16,"min keysize":16,"max keysize":32},{"name":"sha384","driver":"sha384-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":128,"digestsize":48},{"name":"sha512","driver":"sha512-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":128,"digestsize":64},{"name":"sha224","driver":"sha224-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":64,"digestsize":28},{"name":"sha256","driver":"sha256-generic","module":"kernel","priority":100,"refcnt":130,"selftest":"passed","internal":"no","type":"shash","blocksize":64,"digestsize":32},{"name":"sha1","driver":"sha1-generic","module":"kernel","priority":100,"refcnt":132,"selftest":"passed","internal":"no","type":"shash","blocksize":64,"digestsize":20},{"name":"md5","driver":"md5-generic","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":64,"digestsize":16},{"name":"ecb(cipher_null)","driver":"ecb-cipher_null","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"skcipher","async":"no","blocksize":1,"min keysize":0,"max keysize":0,"ivsize":0,"chunksize":1,"walksize":1},{"name":"digest_null","driver":"digest_null-generic","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"shash","blocksize":1,"digestsize":0},{"name":"compress_null","driver":"compress_null-generic","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"compression"},{"name":"cipher_null","driver":"cipher_null-generic","module":"kernel","priority":0,"refcnt":1,"selftest":"passed","internal":"no","type":"cipher","blocksize":1,"min keysize":0,"max keysize":0},{"name":"rsa","driver":"rsa-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"akcipher"},{"name":"dh","driver":"dh-generic","module":"kernel","priority":100,"refcnt":1,"selftest":"passed","internal":"no","type":"kpp"}] diff --git a/tests/fixtures/linux-proc/devices b/tests/fixtures/linux-proc/devices new file mode 100644 index 00000000..3abad9b5 --- /dev/null +++ b/tests/fixtures/linux-proc/devices @@ -0,0 +1,67 @@ +Character devices: + 1 mem + 4 /dev/vc/0 + 4 tty + 4 ttyS + 5 /dev/tty + 5 /dev/console + 5 /dev/ptmx + 5 ttyprintk + 7 vcs + 10 misc + 13 input + 14 sound/midi + 14 sound/dmmidi + 21 sg + 29 fb + 81 video4linux + 89 i2c +108 ppp +116 alsa +128 ptm +136 pts +180 usb +189 usb_device +204 ttyMAX +226 drm +238 media +239 hidraw +240 aux +241 cec +242 BaseRemoteCtl +243 vfio +244 bsg +245 watchdog +246 ptp +247 pps +248 rtc +249 dma_heap +250 dax +251 dimmctl +252 ndctl +253 tpm +254 gpiochip + +Block devices: + 7 loop + 8 sd + 9 md + 11 sr + 65 sd + 66 sd + 67 sd + 68 sd + 69 sd + 70 sd + 71 sd +128 sd +129 sd +130 sd +131 sd +132 sd +133 sd +134 sd +135 sd +253 device-mapper +254 mdp +259 blkext diff --git a/tests/fixtures/linux-proc/devices.json b/tests/fixtures/linux-proc/devices.json new file mode 100644 index 00000000..daba1bd5 --- /dev/null +++ b/tests/fixtures/linux-proc/devices.json @@ -0,0 +1 @@ +{"character":{"1":["mem"],"4":["/dev/vc/0","tty","ttyS"],"5":["/dev/tty","/dev/console","/dev/ptmx","ttyprintk"],"7":["vcs"],"10":["misc"],"13":["input"],"14":["sound/midi","sound/dmmidi"],"21":["sg"],"29":["fb"],"81":["video4linux"],"89":["i2c"],"108":["ppp"],"116":["alsa"],"128":["ptm"],"136":["pts"],"180":["usb"],"189":["usb_device"],"204":["ttyMAX"],"226":["drm"],"238":["media"],"239":["hidraw"],"240":["aux"],"241":["cec"],"242":["BaseRemoteCtl"],"243":["vfio"],"244":["bsg"],"245":["watchdog"],"246":["ptp"],"247":["pps"],"248":["rtc"],"249":["dma_heap"],"250":["dax"],"251":["dimmctl"],"252":["ndctl"],"253":["tpm"],"254":["gpiochip"]},"block":{"7":["loop"],"8":["sd"],"9":["md"],"11":["sr"],"65":["sd"],"66":["sd"],"67":["sd"],"68":["sd"],"69":["sd"],"70":["sd"],"71":["sd"],"128":["sd"],"129":["sd"],"130":["sd"],"131":["sd"],"132":["sd"],"133":["sd"],"134":["sd"],"135":["sd"],"253":["device-mapper"],"254":["mdp"],"259":["blkext"]}} diff --git a/tests/fixtures/linux-proc/diskstats b/tests/fixtures/linux-proc/diskstats new file mode 100644 index 00000000..ceedc0ad --- /dev/null +++ b/tests/fixtures/linux-proc/diskstats @@ -0,0 +1,16 @@ + 7 0 loop0 48 0 718 19 0 0 0 0 0 36 19 0 0 0 0 0 0 + 7 1 loop1 41 0 688 17 0 0 0 0 0 28 17 0 0 0 0 0 0 + 7 2 loop2 119 0 2956 18 0 0 0 0 0 56 18 0 0 0 0 0 0 + 7 3 loop3 220 0 4432 58 0 0 0 0 0 232 58 0 0 0 0 0 0 + 7 4 loop4 59 0 2184 19 0 0 0 0 0 28 19 0 0 0 0 0 0 + 7 5 loop5 810 0 57906 205 0 0 0 0 0 2360 205 0 0 0 0 0 0 + 7 6 loop6 41 0 688 12 0 0 0 0 0 28 12 0 0 0 0 0 0 + 7 7 loop7 64 0 2220 17 0 0 0 0 0 40 17 0 0 0 0 0 0 + 8 0 sda 14200 3361 892828 5058 18736 13416 715384 12604 0 24940 17663 0 0 0 0 0 0 + 8 1 sda1 171 0 1368 22 0 0 0 0 0 84 22 0 0 0 0 0 0 + 8 2 sda2 153 20 10906 22 14 13 216 3 0 96 26 0 0 0 0 0 0 + 8 3 sda3 6983 3341 876106 3409 18722 13403 715168 12601 0 18276 16010 0 0 0 0 0 0 + 11 0 sr0 283 0 20923 58 0 0 0 0 0 124 58 0 0 0 0 0 0 + 253 0 dm-0 10298 0 873914 7596 31994 0 715168 13140 0 18220 20736 0 0 0 0 0 0 + 7 8 loop8 250 0 4496 16 0 0 0 0 0 180 16 0 0 0 0 0 0 + diff --git a/tests/fixtures/linux-proc/diskstats.json b/tests/fixtures/linux-proc/diskstats.json new file mode 100644 index 00000000..6a11371c --- /dev/null +++ b/tests/fixtures/linux-proc/diskstats.json @@ -0,0 +1 @@ +[{"maj":7,"min":0,"device":"loop0","reads_completed":48,"reads_merged":0,"sectors_read":718,"read_time_ms":19,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":36,"weighted_io_time_ms":19,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":7,"min":1,"device":"loop1","reads_completed":41,"reads_merged":0,"sectors_read":688,"read_time_ms":17,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":28,"weighted_io_time_ms":17,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":7,"min":2,"device":"loop2","reads_completed":119,"reads_merged":0,"sectors_read":2956,"read_time_ms":18,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":56,"weighted_io_time_ms":18,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":7,"min":3,"device":"loop3","reads_completed":220,"reads_merged":0,"sectors_read":4432,"read_time_ms":58,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":232,"weighted_io_time_ms":58,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":7,"min":4,"device":"loop4","reads_completed":59,"reads_merged":0,"sectors_read":2184,"read_time_ms":19,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":28,"weighted_io_time_ms":19,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":7,"min":5,"device":"loop5","reads_completed":810,"reads_merged":0,"sectors_read":57906,"read_time_ms":205,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":2360,"weighted_io_time_ms":205,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":7,"min":6,"device":"loop6","reads_completed":41,"reads_merged":0,"sectors_read":688,"read_time_ms":12,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":28,"weighted_io_time_ms":12,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":7,"min":7,"device":"loop7","reads_completed":64,"reads_merged":0,"sectors_read":2220,"read_time_ms":17,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":40,"weighted_io_time_ms":17,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":8,"min":0,"device":"sda","reads_completed":14200,"reads_merged":3361,"sectors_read":892828,"read_time_ms":5058,"writes_completed":18736,"writes_merged":13416,"sectors_written":715384,"write_time_ms":12604,"io_in_progress":0,"io_time_ms":24940,"weighted_io_time_ms":17663,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":8,"min":1,"device":"sda1","reads_completed":171,"reads_merged":0,"sectors_read":1368,"read_time_ms":22,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":84,"weighted_io_time_ms":22,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":8,"min":2,"device":"sda2","reads_completed":153,"reads_merged":20,"sectors_read":10906,"read_time_ms":22,"writes_completed":14,"writes_merged":13,"sectors_written":216,"write_time_ms":3,"io_in_progress":0,"io_time_ms":96,"weighted_io_time_ms":26,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":8,"min":3,"device":"sda3","reads_completed":6983,"reads_merged":3341,"sectors_read":876106,"read_time_ms":3409,"writes_completed":18722,"writes_merged":13403,"sectors_written":715168,"write_time_ms":12601,"io_in_progress":0,"io_time_ms":18276,"weighted_io_time_ms":16010,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":11,"min":0,"device":"sr0","reads_completed":283,"reads_merged":0,"sectors_read":20923,"read_time_ms":58,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":124,"weighted_io_time_ms":58,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":253,"min":0,"device":"dm-0","reads_completed":10298,"reads_merged":0,"sectors_read":873914,"read_time_ms":7596,"writes_completed":31994,"writes_merged":0,"sectors_written":715168,"write_time_ms":13140,"io_in_progress":0,"io_time_ms":18220,"weighted_io_time_ms":20736,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0},{"maj":7,"min":8,"device":"loop8","reads_completed":250,"reads_merged":0,"sectors_read":4496,"read_time_ms":16,"writes_completed":0,"writes_merged":0,"sectors_written":0,"write_time_ms":0,"io_in_progress":0,"io_time_ms":180,"weighted_io_time_ms":16,"discards_completed_successfully":0,"discards_merged":0,"sectors_discarded":0,"discarding_time_ms":0,"flush_requests_completed_successfully":0,"flushing_time_ms":0}] diff --git a/tests/fixtures/linux-proc/driver_rtc b/tests/fixtures/linux-proc/driver_rtc new file mode 100644 index 00000000..c02feedb --- /dev/null +++ b/tests/fixtures/linux-proc/driver_rtc @@ -0,0 +1,18 @@ +rtc_time : 16:09:21 +rtc_date : 2022-09-03 +alrm_time : 00:00:00 +alrm_date : 2022-09-03 +alarm_IRQ : no +alrm_pending : no +update IRQ enabled : no +periodic IRQ enabled : no +periodic IRQ frequency : 1024 +max user IRQ frequency : 64 +24hr : yes +periodic_IRQ : no +update_IRQ : no +HPET_emulated : yes +BCD : yes +DST_enable : no +periodic_freq : 1024 +batt_status : okay diff --git a/tests/fixtures/linux-proc/driver_rtc.json b/tests/fixtures/linux-proc/driver_rtc.json new file mode 100644 index 00000000..e93b64b0 --- /dev/null +++ b/tests/fixtures/linux-proc/driver_rtc.json @@ -0,0 +1 @@ +{"rtc_time":"16:09:21","rtc_date":"2022-09-03","alrm_time":"00:00:00","alrm_date":"2022-09-03","alarm_IRQ":false,"alrm_pending":false,"update IRQ enabled":false,"periodic IRQ enabled":false,"periodic IRQ frequency":1024,"max user IRQ frequency":64,"24hr":true,"periodic_IRQ":false,"update_IRQ":false,"HPET_emulated":true,"BCD":true,"DST_enable":false,"periodic_freq":1024,"batt_status":"okay"} diff --git a/tests/fixtures/linux-proc/filesystems b/tests/fixtures/linux-proc/filesystems new file mode 100644 index 00000000..307397aa --- /dev/null +++ b/tests/fixtures/linux-proc/filesystems @@ -0,0 +1,32 @@ +nodev sysfs +nodev tmpfs +nodev bdev +nodev proc +nodev cgroup +nodev cgroup2 +nodev cpuset +nodev devtmpfs +nodev configfs +nodev debugfs +nodev tracefs +nodev securityfs +nodev sockfs +nodev bpf +nodev pipefs +nodev ramfs +nodev hugetlbfs +nodev devpts + ext3 + ext2 + ext4 + squashfs + vfat +nodev ecryptfs + fuseblk +nodev fuse +nodev fusectl +nodev mqueue +nodev pstore + btrfs +nodev autofs +nodev binfmt_misc diff --git a/tests/fixtures/linux-proc/filesystems.json b/tests/fixtures/linux-proc/filesystems.json new file mode 100644 index 00000000..756b115f --- /dev/null +++ b/tests/fixtures/linux-proc/filesystems.json @@ -0,0 +1 @@ +[{"filesystem":"sysfs","nodev":true},{"filesystem":"tmpfs","nodev":true},{"filesystem":"bdev","nodev":true},{"filesystem":"proc","nodev":true},{"filesystem":"cgroup","nodev":true},{"filesystem":"cgroup2","nodev":true},{"filesystem":"cpuset","nodev":true},{"filesystem":"devtmpfs","nodev":true},{"filesystem":"configfs","nodev":true},{"filesystem":"debugfs","nodev":true},{"filesystem":"tracefs","nodev":true},{"filesystem":"securityfs","nodev":true},{"filesystem":"sockfs","nodev":true},{"filesystem":"bpf","nodev":true},{"filesystem":"pipefs","nodev":true},{"filesystem":"ramfs","nodev":true},{"filesystem":"hugetlbfs","nodev":true},{"filesystem":"devpts","nodev":true},{"filesystem":"ext3","nodev":false},{"filesystem":"ext2","nodev":false},{"filesystem":"ext4","nodev":false},{"filesystem":"squashfs","nodev":false},{"filesystem":"vfat","nodev":false},{"filesystem":"ecryptfs","nodev":true},{"filesystem":"fuseblk","nodev":false},{"filesystem":"fuse","nodev":true},{"filesystem":"fusectl","nodev":true},{"filesystem":"mqueue","nodev":true},{"filesystem":"pstore","nodev":true},{"filesystem":"btrfs","nodev":false},{"filesystem":"autofs","nodev":true},{"filesystem":"binfmt_misc","nodev":true}] diff --git a/tests/fixtures/linux-proc/interrupts b/tests/fixtures/linux-proc/interrupts new file mode 100644 index 00000000..172baacd --- /dev/null +++ b/tests/fixtures/linux-proc/interrupts @@ -0,0 +1,66 @@ + CPU0 CPU1 + 0: 18 0 IO-APIC 2-edge timer + 1: 0 73 IO-APIC 1-edge i8042 + 8: 1 0 IO-APIC 8-edge rtc0 + 9: 0 0 IO-APIC 9-fasteoi acpi + 12: 18 0 IO-APIC 12-edge i8042 + 14: 0 0 IO-APIC 14-edge ata_piix + 15: 0 0 IO-APIC 15-edge ata_piix + 16: 3545 0 IO-APIC 16-fasteoi vmwgfx, snd_ens1371 + 17: 33795 0 IO-APIC 17-fasteoi ehci_hcd:usb1, ioc0 + 18: 0 368326 IO-APIC 18-fasteoi uhci_hcd:usb2 + 19: 0 126705 IO-APIC 19-fasteoi ens33 + 24: 0 0 PCI-MSI 344064-edge PCIe PME, pciehp + 25: 0 0 PCI-MSI 346112-edge PCIe PME, pciehp + 26: 0 0 PCI-MSI 348160-edge PCIe PME, pciehp + 27: 0 0 PCI-MSI 350208-edge PCIe PME, pciehp + 28: 0 0 PCI-MSI 352256-edge PCIe PME, pciehp + 29: 0 0 PCI-MSI 354304-edge PCIe PME, pciehp + 30: 0 0 PCI-MSI 356352-edge PCIe PME, pciehp + 31: 0 0 PCI-MSI 358400-edge PCIe PME, pciehp + 32: 0 0 PCI-MSI 360448-edge PCIe PME, pciehp + 33: 0 0 PCI-MSI 362496-edge PCIe PME, pciehp + 34: 0 0 PCI-MSI 364544-edge PCIe PME, pciehp + 35: 0 0 PCI-MSI 366592-edge PCIe PME, pciehp + 36: 0 0 PCI-MSI 368640-edge PCIe PME, pciehp + 37: 0 0 PCI-MSI 370688-edge PCIe PME, pciehp + 38: 0 0 PCI-MSI 372736-edge PCIe PME, pciehp + 39: 0 0 PCI-MSI 374784-edge PCIe PME, pciehp + 40: 0 0 PCI-MSI 376832-edge PCIe PME, pciehp + 41: 0 0 PCI-MSI 378880-edge PCIe PME, pciehp + 42: 0 0 PCI-MSI 380928-edge PCIe PME, pciehp + 43: 0 0 PCI-MSI 382976-edge PCIe PME, pciehp + 44: 0 0 PCI-MSI 385024-edge PCIe PME, pciehp + 45: 0 0 PCI-MSI 387072-edge PCIe PME, pciehp + 46: 0 0 PCI-MSI 389120-edge PCIe PME, pciehp + 47: 0 0 PCI-MSI 391168-edge PCIe PME, pciehp + 48: 0 0 PCI-MSI 393216-edge PCIe PME, pciehp + 49: 0 0 PCI-MSI 395264-edge PCIe PME, pciehp + 50: 0 0 PCI-MSI 397312-edge PCIe PME, pciehp + 51: 0 0 PCI-MSI 399360-edge PCIe PME, pciehp + 52: 0 0 PCI-MSI 401408-edge PCIe PME, pciehp + 53: 0 0 PCI-MSI 403456-edge PCIe PME, pciehp + 54: 0 0 PCI-MSI 405504-edge PCIe PME, pciehp + 55: 0 0 PCI-MSI 407552-edge PCIe PME, pciehp + 56: 0 7937 PCI-MSI 1130496-edge ahci[0000:02:05.0] + 57: 0 2061 PCI-MSI 129024-edge vmw_vmci + 58: 0 0 PCI-MSI 129025-edge vmw_vmci + NMI: 0 0 Non-maskable interrupts + LOC: 366351 997227 Local timer interrupts + SPU: 0 0 Spurious interrupts + PMI: 0 0 Performance monitoring interrupts + IWI: 0 3 IRQ work interrupts + RTR: 0 0 APIC ICR read retries + RES: 2763 2933 Rescheduling interrupts + CAL: 175136 130374 Function call interrupts + TLB: 3155 3965 TLB shootdowns + TRM: 0 0 Thermal event interrupts + THR: 0 0 Threshold APIC interrupts + DFR: 0 0 Deferred Error APIC interrupts + MCE: 0 0 Machine check exceptions + MCP: 49 50 Machine check polls + ERR: 0 + MIS: 0 + PIN: 0 0 Posted-interrupt notification event + NPI: 0 0 Nested posted-interrupt event + PIW: 0 0 Posted-interrupt wakeup event diff --git a/tests/fixtures/linux-proc/interrupts.json b/tests/fixtures/linux-proc/interrupts.json new file mode 100644 index 00000000..f673d418 --- /dev/null +++ b/tests/fixtures/linux-proc/interrupts.json @@ -0,0 +1 @@ +[{"irq":"0","cpu_num":2,"interrupts":[18,0],"type":"IO-APIC","device":["2-edge","timer"]},{"irq":"1","cpu_num":2,"interrupts":[0,73],"type":"IO-APIC","device":["1-edge","i8042"]},{"irq":"8","cpu_num":2,"interrupts":[1,0],"type":"IO-APIC","device":["8-edge","rtc0"]},{"irq":"9","cpu_num":2,"interrupts":[0,0],"type":"IO-APIC","device":["9-fasteoi","acpi"]},{"irq":"12","cpu_num":2,"interrupts":[18,0],"type":"IO-APIC","device":["12-edge","i8042"]},{"irq":"14","cpu_num":2,"interrupts":[0,0],"type":"IO-APIC","device":["14-edge","ata_piix"]},{"irq":"15","cpu_num":2,"interrupts":[0,0],"type":"IO-APIC","device":["15-edge","ata_piix"]},{"irq":"16","cpu_num":2,"interrupts":[3545,0],"type":"IO-APIC","device":["16-fasteoi","vmwgfx,","snd_ens1371"]},{"irq":"17","cpu_num":2,"interrupts":[33795,0],"type":"IO-APIC","device":["17-fasteoi","ehci_hcd:usb1,","ioc0"]},{"irq":"18","cpu_num":2,"interrupts":[0,368326],"type":"IO-APIC","device":["18-fasteoi","uhci_hcd:usb2"]},{"irq":"19","cpu_num":2,"interrupts":[0,126705],"type":"IO-APIC","device":["19-fasteoi","ens33"]},{"irq":"24","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["344064-edge","PCIe","PME,","pciehp"]},{"irq":"25","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["346112-edge","PCIe","PME,","pciehp"]},{"irq":"26","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["348160-edge","PCIe","PME,","pciehp"]},{"irq":"27","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["350208-edge","PCIe","PME,","pciehp"]},{"irq":"28","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["352256-edge","PCIe","PME,","pciehp"]},{"irq":"29","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["354304-edge","PCIe","PME,","pciehp"]},{"irq":"30","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["356352-edge","PCIe","PME,","pciehp"]},{"irq":"31","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["358400-edge","PCIe","PME,","pciehp"]},{"irq":"32","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["360448-edge","PCIe","PME,","pciehp"]},{"irq":"33","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["362496-edge","PCIe","PME,","pciehp"]},{"irq":"34","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["364544-edge","PCIe","PME,","pciehp"]},{"irq":"35","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["366592-edge","PCIe","PME,","pciehp"]},{"irq":"36","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["368640-edge","PCIe","PME,","pciehp"]},{"irq":"37","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["370688-edge","PCIe","PME,","pciehp"]},{"irq":"38","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["372736-edge","PCIe","PME,","pciehp"]},{"irq":"39","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["374784-edge","PCIe","PME,","pciehp"]},{"irq":"40","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["376832-edge","PCIe","PME,","pciehp"]},{"irq":"41","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["378880-edge","PCIe","PME,","pciehp"]},{"irq":"42","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["380928-edge","PCIe","PME,","pciehp"]},{"irq":"43","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["382976-edge","PCIe","PME,","pciehp"]},{"irq":"44","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["385024-edge","PCIe","PME,","pciehp"]},{"irq":"45","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["387072-edge","PCIe","PME,","pciehp"]},{"irq":"46","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["389120-edge","PCIe","PME,","pciehp"]},{"irq":"47","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["391168-edge","PCIe","PME,","pciehp"]},{"irq":"48","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["393216-edge","PCIe","PME,","pciehp"]},{"irq":"49","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["395264-edge","PCIe","PME,","pciehp"]},{"irq":"50","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["397312-edge","PCIe","PME,","pciehp"]},{"irq":"51","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["399360-edge","PCIe","PME,","pciehp"]},{"irq":"52","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["401408-edge","PCIe","PME,","pciehp"]},{"irq":"53","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["403456-edge","PCIe","PME,","pciehp"]},{"irq":"54","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["405504-edge","PCIe","PME,","pciehp"]},{"irq":"55","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["407552-edge","PCIe","PME,","pciehp"]},{"irq":"56","cpu_num":2,"interrupts":[0,7937],"type":"PCI-MSI","device":["1130496-edge","ahci[0000:02:05.0]"]},{"irq":"57","cpu_num":2,"interrupts":[0,2061],"type":"PCI-MSI","device":["129024-edge","vmw_vmci"]},{"irq":"58","cpu_num":2,"interrupts":[0,0],"type":"PCI-MSI","device":["129025-edge","vmw_vmci"]},{"irq":"NMI","cpu_num":2,"interrupts":[0,0],"type":"Non-maskable interrupts","device":null},{"irq":"LOC","cpu_num":2,"interrupts":[366351,997227],"type":"Local timer interrupts","device":null},{"irq":"SPU","cpu_num":2,"interrupts":[0,0],"type":"Spurious interrupts","device":null},{"irq":"PMI","cpu_num":2,"interrupts":[0,0],"type":"Performance monitoring interrupts","device":null},{"irq":"IWI","cpu_num":2,"interrupts":[0,3],"type":"IRQ work interrupts","device":null},{"irq":"RTR","cpu_num":2,"interrupts":[0,0],"type":"APIC ICR read retries","device":null},{"irq":"RES","cpu_num":2,"interrupts":[2763,2933],"type":"Rescheduling interrupts","device":null},{"irq":"CAL","cpu_num":2,"interrupts":[175136,130374],"type":"Function call interrupts","device":null},{"irq":"TLB","cpu_num":2,"interrupts":[3155,3965],"type":"TLB shootdowns","device":null},{"irq":"TRM","cpu_num":2,"interrupts":[0,0],"type":"Thermal event interrupts","device":null},{"irq":"THR","cpu_num":2,"interrupts":[0,0],"type":"Threshold APIC interrupts","device":null},{"irq":"DFR","cpu_num":2,"interrupts":[0,0],"type":"Deferred Error APIC interrupts","device":null},{"irq":"MCE","cpu_num":2,"interrupts":[0,0],"type":"Machine check exceptions","device":null},{"irq":"MCP","cpu_num":2,"interrupts":[49,50],"type":"Machine check polls","device":null},{"irq":"ERR","cpu_num":2,"interrupts":[0],"type":"Machine check polls","device":null},{"irq":"MIS","cpu_num":2,"interrupts":[0],"type":"Machine check polls","device":null},{"irq":"PIN","cpu_num":2,"interrupts":[0,0],"type":"Posted-interrupt notification event","device":null},{"irq":"NPI","cpu_num":2,"interrupts":[0,0],"type":"Nested posted-interrupt event","device":null},{"irq":"PIW","cpu_num":2,"interrupts":[0,0],"type":"Posted-interrupt wakeup event","device":null}] diff --git a/tests/fixtures/linux-proc/iomem b/tests/fixtures/linux-proc/iomem new file mode 100644 index 00000000..b77e117f --- /dev/null +++ b/tests/fixtures/linux-proc/iomem @@ -0,0 +1,119 @@ +00000000-00000fff : Reserved +00001000-0009e7ff : System RAM +0009e800-0009ffff : Reserved +000a0000-000bffff : PCI Bus 0000:00 +000c0000-000c7fff : Video ROM +000ca000-000cafff : Adapter ROM +000cb000-000ccfff : Adapter ROM +000d0000-000d3fff : PCI Bus 0000:00 +000d4000-000d7fff : PCI Bus 0000:00 +000d8000-000dbfff : PCI Bus 0000:00 +000dc000-000fffff : Reserved + 000f0000-000fffff : System ROM +00100000-bfecffff : System RAM + 66e00000-67c00d56 : Kernel code + 67e00000-686abfff : Kernel rodata + 68800000-68a7a5bf : Kernel data + 68d36000-691fffff : Kernel bss +bfed0000-bfefefff : ACPI Tables +bfeff000-bfefffff : ACPI Non-volatile Storage +bff00000-bfffffff : System RAM +c0000000-febfffff : PCI Bus 0000:00 + c0008000-c000bfff : 0000:00:10.0 + e5b00000-e5bfffff : PCI Bus 0000:22 + e5c00000-e5cfffff : PCI Bus 0000:1a + e5d00000-e5dfffff : PCI Bus 0000:12 + e5e00000-e5efffff : PCI Bus 0000:0a + e5f00000-e5ffffff : PCI Bus 0000:21 + e6000000-e60fffff : PCI Bus 0000:19 + e6100000-e61fffff : PCI Bus 0000:11 + e6200000-e62fffff : PCI Bus 0000:09 + e6300000-e63fffff : PCI Bus 0000:20 + e6400000-e64fffff : PCI Bus 0000:18 + e6500000-e65fffff : PCI Bus 0000:10 + e6600000-e66fffff : PCI Bus 0000:08 + e6700000-e67fffff : PCI Bus 0000:1f + e6800000-e68fffff : PCI Bus 0000:17 + e6900000-e69fffff : PCI Bus 0000:0f + e6a00000-e6afffff : PCI Bus 0000:07 + e6b00000-e6bfffff : PCI Bus 0000:1e + e6c00000-e6cfffff : PCI Bus 0000:16 + e6d00000-e6dfffff : PCI Bus 0000:0e + e6e00000-e6efffff : PCI Bus 0000:06 + e6f00000-e6ffffff : PCI Bus 0000:1d + e7000000-e70fffff : PCI Bus 0000:15 + e7100000-e71fffff : PCI Bus 0000:0d + e7200000-e72fffff : PCI Bus 0000:05 + e7300000-e73fffff : PCI Bus 0000:1c + e7400000-e74fffff : PCI Bus 0000:14 + e7500000-e75fffff : PCI Bus 0000:0c + e7600000-e76fffff : PCI Bus 0000:04 + e7700000-e77fffff : PCI Bus 0000:1b + e7800000-e78fffff : PCI Bus 0000:13 + e7900000-e79fffff : PCI Bus 0000:0b + e7a00000-e7afffff : PCI Bus 0000:03 + e7b00000-e7ffffff : PCI Bus 0000:02 + e8000000-efffffff : 0000:00:0f.0 + e8000000-efffffff : vmwgfx probe + f0000000-f7ffffff : PCI MMCONFIG 0000 [bus 00-7f] + f0000000-f7ffffff : Reserved + f0000000-f7ffffff : pnp 00:06 + fb500000-fb5fffff : PCI Bus 0000:22 + fb600000-fb6fffff : PCI Bus 0000:1a + fb700000-fb7fffff : PCI Bus 0000:12 + fb800000-fb8fffff : PCI Bus 0000:0a + fb900000-fb9fffff : PCI Bus 0000:21 + fba00000-fbafffff : PCI Bus 0000:19 + fbb00000-fbbfffff : PCI Bus 0000:11 + fbc00000-fbcfffff : PCI Bus 0000:09 + fbd00000-fbdfffff : PCI Bus 0000:20 + fbe00000-fbefffff : PCI Bus 0000:18 + fbf00000-fbffffff : PCI Bus 0000:10 + fc000000-fc0fffff : PCI Bus 0000:08 + fc100000-fc1fffff : PCI Bus 0000:1f + fc200000-fc2fffff : PCI Bus 0000:17 + fc300000-fc3fffff : PCI Bus 0000:0f + fc400000-fc4fffff : PCI Bus 0000:07 + fc500000-fc5fffff : PCI Bus 0000:1e + fc600000-fc6fffff : PCI Bus 0000:16 + fc700000-fc7fffff : PCI Bus 0000:0e + fc800000-fc8fffff : PCI Bus 0000:06 + fc900000-fc9fffff : PCI Bus 0000:1d + fca00000-fcafffff : PCI Bus 0000:15 + fcb00000-fcbfffff : PCI Bus 0000:0d + fcc00000-fccfffff : PCI Bus 0000:05 + fcd00000-fcdfffff : PCI Bus 0000:1c + fce00000-fcefffff : PCI Bus 0000:14 + fcf00000-fcffffff : PCI Bus 0000:0c + fd000000-fd0fffff : PCI Bus 0000:04 + fd100000-fd1fffff : PCI Bus 0000:1b + fd200000-fd2fffff : PCI Bus 0000:13 + fd300000-fd3fffff : PCI Bus 0000:0b + fd400000-fd4fffff : PCI Bus 0000:03 + fd500000-fdffffff : PCI Bus 0000:02 + fd500000-fd50ffff : 0000:02:01.0 + fd510000-fd51ffff : 0000:02:05.0 + fd5c0000-fd5dffff : 0000:02:01.0 + fd5c0000-fd5dffff : e1000 + fd5ee000-fd5eefff : 0000:02:05.0 + fd5ee000-fd5eefff : ahci + fd5ef000-fd5effff : 0000:02:03.0 + fd5ef000-fd5effff : ehci_hcd + fdff0000-fdffffff : 0000:02:01.0 + fdff0000-fdffffff : e1000 + fe000000-fe7fffff : 0000:00:0f.0 + fe000000-fe7fffff : vmwgfx probe + fe800000-fe9fffff : pnp 00:06 + feba0000-febbffff : 0000:00:10.0 + feba0000-febbffff : mpt + febc0000-febdffff : 0000:00:10.0 + febc0000-febdffff : mpt + febfe000-febfffff : 0000:00:07.7 +fec00000-fec0ffff : Reserved + fec00000-fec003ff : IOAPIC 0 +fed00000-fed003ff : HPET 0 + fed00000-fed003ff : pnp 00:04 +fee00000-fee00fff : Local APIC + fee00000-fee00fff : Reserved +fffe0000-ffffffff : Reserved +100000000-13fffffff : System RAM diff --git a/tests/fixtures/linux-proc/iomem.json b/tests/fixtures/linux-proc/iomem.json new file mode 100644 index 00000000..a99da186 --- /dev/null +++ b/tests/fixtures/linux-proc/iomem.json @@ -0,0 +1 @@ +[{"start":"00000000","end":"00000fff","device":"Reserved"},{"start":"00001000","end":"0009e7ff","device":"System RAM"},{"start":"0009e800","end":"0009ffff","device":"Reserved"},{"start":"000a0000","end":"000bffff","device":"PCI Bus 0000:00"},{"start":"000c0000","end":"000c7fff","device":"Video ROM"},{"start":"000ca000","end":"000cafff","device":"Adapter ROM"},{"start":"000cb000","end":"000ccfff","device":"Adapter ROM"},{"start":"000d0000","end":"000d3fff","device":"PCI Bus 0000:00"},{"start":"000d4000","end":"000d7fff","device":"PCI Bus 0000:00"},{"start":"000d8000","end":"000dbfff","device":"PCI Bus 0000:00"},{"start":"000dc000","end":"000fffff","device":"Reserved"},{"start":"000f0000","end":"000fffff","device":"System ROM"},{"start":"00100000","end":"bfecffff","device":"System RAM"},{"start":"66e00000","end":"67c00d56","device":"Kernel code"},{"start":"67e00000","end":"686abfff","device":"Kernel rodata"},{"start":"68800000","end":"68a7a5bf","device":"Kernel data"},{"start":"68d36000","end":"691fffff","device":"Kernel bss"},{"start":"bfed0000","end":"bfefefff","device":"ACPI Tables"},{"start":"bfeff000","end":"bfefffff","device":"ACPI Non-volatile Storage"},{"start":"bff00000","end":"bfffffff","device":"System RAM"},{"start":"c0000000","end":"febfffff","device":"PCI Bus 0000:00"},{"start":"c0008000","end":"c000bfff","device":"0000:00:10.0"},{"start":"e5b00000","end":"e5bfffff","device":"PCI Bus 0000:22"},{"start":"e5c00000","end":"e5cfffff","device":"PCI Bus 0000:1a"},{"start":"e5d00000","end":"e5dfffff","device":"PCI Bus 0000:12"},{"start":"e5e00000","end":"e5efffff","device":"PCI Bus 0000:0a"},{"start":"e5f00000","end":"e5ffffff","device":"PCI Bus 0000:21"},{"start":"e6000000","end":"e60fffff","device":"PCI Bus 0000:19"},{"start":"e6100000","end":"e61fffff","device":"PCI Bus 0000:11"},{"start":"e6200000","end":"e62fffff","device":"PCI Bus 0000:09"},{"start":"e6300000","end":"e63fffff","device":"PCI Bus 0000:20"},{"start":"e6400000","end":"e64fffff","device":"PCI Bus 0000:18"},{"start":"e6500000","end":"e65fffff","device":"PCI Bus 0000:10"},{"start":"e6600000","end":"e66fffff","device":"PCI Bus 0000:08"},{"start":"e6700000","end":"e67fffff","device":"PCI Bus 0000:1f"},{"start":"e6800000","end":"e68fffff","device":"PCI Bus 0000:17"},{"start":"e6900000","end":"e69fffff","device":"PCI Bus 0000:0f"},{"start":"e6a00000","end":"e6afffff","device":"PCI Bus 0000:07"},{"start":"e6b00000","end":"e6bfffff","device":"PCI Bus 0000:1e"},{"start":"e6c00000","end":"e6cfffff","device":"PCI Bus 0000:16"},{"start":"e6d00000","end":"e6dfffff","device":"PCI Bus 0000:0e"},{"start":"e6e00000","end":"e6efffff","device":"PCI Bus 0000:06"},{"start":"e6f00000","end":"e6ffffff","device":"PCI Bus 0000:1d"},{"start":"e7000000","end":"e70fffff","device":"PCI Bus 0000:15"},{"start":"e7100000","end":"e71fffff","device":"PCI Bus 0000:0d"},{"start":"e7200000","end":"e72fffff","device":"PCI Bus 0000:05"},{"start":"e7300000","end":"e73fffff","device":"PCI Bus 0000:1c"},{"start":"e7400000","end":"e74fffff","device":"PCI Bus 0000:14"},{"start":"e7500000","end":"e75fffff","device":"PCI Bus 0000:0c"},{"start":"e7600000","end":"e76fffff","device":"PCI Bus 0000:04"},{"start":"e7700000","end":"e77fffff","device":"PCI Bus 0000:1b"},{"start":"e7800000","end":"e78fffff","device":"PCI Bus 0000:13"},{"start":"e7900000","end":"e79fffff","device":"PCI Bus 0000:0b"},{"start":"e7a00000","end":"e7afffff","device":"PCI Bus 0000:03"},{"start":"e7b00000","end":"e7ffffff","device":"PCI Bus 0000:02"},{"start":"e8000000","end":"efffffff","device":"0000:00:0f.0"},{"start":"e8000000","end":"efffffff","device":"vmwgfx probe"},{"start":"f0000000","end":"f7ffffff","device":"PCI MMCONFIG 0000 [bus 00-7f]"},{"start":"f0000000","end":"f7ffffff","device":"Reserved"},{"start":"f0000000","end":"f7ffffff","device":"pnp 00:06"},{"start":"fb500000","end":"fb5fffff","device":"PCI Bus 0000:22"},{"start":"fb600000","end":"fb6fffff","device":"PCI Bus 0000:1a"},{"start":"fb700000","end":"fb7fffff","device":"PCI Bus 0000:12"},{"start":"fb800000","end":"fb8fffff","device":"PCI Bus 0000:0a"},{"start":"fb900000","end":"fb9fffff","device":"PCI Bus 0000:21"},{"start":"fba00000","end":"fbafffff","device":"PCI Bus 0000:19"},{"start":"fbb00000","end":"fbbfffff","device":"PCI Bus 0000:11"},{"start":"fbc00000","end":"fbcfffff","device":"PCI Bus 0000:09"},{"start":"fbd00000","end":"fbdfffff","device":"PCI Bus 0000:20"},{"start":"fbe00000","end":"fbefffff","device":"PCI Bus 0000:18"},{"start":"fbf00000","end":"fbffffff","device":"PCI Bus 0000:10"},{"start":"fc000000","end":"fc0fffff","device":"PCI Bus 0000:08"},{"start":"fc100000","end":"fc1fffff","device":"PCI Bus 0000:1f"},{"start":"fc200000","end":"fc2fffff","device":"PCI Bus 0000:17"},{"start":"fc300000","end":"fc3fffff","device":"PCI Bus 0000:0f"},{"start":"fc400000","end":"fc4fffff","device":"PCI Bus 0000:07"},{"start":"fc500000","end":"fc5fffff","device":"PCI Bus 0000:1e"},{"start":"fc600000","end":"fc6fffff","device":"PCI Bus 0000:16"},{"start":"fc700000","end":"fc7fffff","device":"PCI Bus 0000:0e"},{"start":"fc800000","end":"fc8fffff","device":"PCI Bus 0000:06"},{"start":"fc900000","end":"fc9fffff","device":"PCI Bus 0000:1d"},{"start":"fca00000","end":"fcafffff","device":"PCI Bus 0000:15"},{"start":"fcb00000","end":"fcbfffff","device":"PCI Bus 0000:0d"},{"start":"fcc00000","end":"fccfffff","device":"PCI Bus 0000:05"},{"start":"fcd00000","end":"fcdfffff","device":"PCI Bus 0000:1c"},{"start":"fce00000","end":"fcefffff","device":"PCI Bus 0000:14"},{"start":"fcf00000","end":"fcffffff","device":"PCI Bus 0000:0c"},{"start":"fd000000","end":"fd0fffff","device":"PCI Bus 0000:04"},{"start":"fd100000","end":"fd1fffff","device":"PCI Bus 0000:1b"},{"start":"fd200000","end":"fd2fffff","device":"PCI Bus 0000:13"},{"start":"fd300000","end":"fd3fffff","device":"PCI Bus 0000:0b"},{"start":"fd400000","end":"fd4fffff","device":"PCI Bus 0000:03"},{"start":"fd500000","end":"fdffffff","device":"PCI Bus 0000:02"},{"start":"fd500000","end":"fd50ffff","device":"0000:02:01.0"},{"start":"fd510000","end":"fd51ffff","device":"0000:02:05.0"},{"start":"fd5c0000","end":"fd5dffff","device":"0000:02:01.0"},{"start":"fd5c0000","end":"fd5dffff","device":"e1000"},{"start":"fd5ee000","end":"fd5eefff","device":"0000:02:05.0"},{"start":"fd5ee000","end":"fd5eefff","device":"ahci"},{"start":"fd5ef000","end":"fd5effff","device":"0000:02:03.0"},{"start":"fd5ef000","end":"fd5effff","device":"ehci_hcd"},{"start":"fdff0000","end":"fdffffff","device":"0000:02:01.0"},{"start":"fdff0000","end":"fdffffff","device":"e1000"},{"start":"fe000000","end":"fe7fffff","device":"0000:00:0f.0"},{"start":"fe000000","end":"fe7fffff","device":"vmwgfx probe"},{"start":"fe800000","end":"fe9fffff","device":"pnp 00:06"},{"start":"feba0000","end":"febbffff","device":"0000:00:10.0"},{"start":"feba0000","end":"febbffff","device":"mpt"},{"start":"febc0000","end":"febdffff","device":"0000:00:10.0"},{"start":"febc0000","end":"febdffff","device":"mpt"},{"start":"febfe000","end":"febfffff","device":"0000:00:07.7"},{"start":"fec00000","end":"fec0ffff","device":"Reserved"},{"start":"fec00000","end":"fec003ff","device":"IOAPIC 0"},{"start":"fed00000","end":"fed003ff","device":"HPET 0"},{"start":"fed00000","end":"fed003ff","device":"pnp 00:04"},{"start":"fee00000","end":"fee00fff","device":"Local APIC"},{"start":"fee00000","end":"fee00fff","device":"Reserved"},{"start":"fffe0000","end":"ffffffff","device":"Reserved"},{"start":"100000000","end":"13fffffff","device":"System RAM"}] diff --git a/tests/fixtures/linux-proc/ioports b/tests/fixtures/linux-proc/ioports new file mode 100644 index 00000000..5500d445 --- /dev/null +++ b/tests/fixtures/linux-proc/ioports @@ -0,0 +1,63 @@ +0000-0cf7 : PCI Bus 0000:00 + 0000-001f : dma1 + 0020-0021 : PNP0001:00 + 0020-0021 : pic1 + 0040-0043 : timer0 + 0050-0053 : timer1 + 0060-0060 : keyboard + 0061-0061 : PNP0800:00 + 0064-0064 : keyboard + 0070-0071 : rtc0 + 0080-008f : dma page reg + 00a0-00a1 : PNP0001:00 + 00a0-00a1 : pic2 + 00c0-00df : dma2 + 00f0-00ff : fpu + 0170-0177 : 0000:00:07.1 + 0170-0177 : ata_piix + 01f0-01f7 : 0000:00:07.1 + 01f0-01f7 : ata_piix + 0376-0376 : 0000:00:07.1 + 0376-0376 : ata_piix + 03c0-03df : vga+ + 03f6-03f6 : 0000:00:07.1 + 03f6-03f6 : ata_piix + 03f8-03ff : serial + 04d0-04d1 : PNP0001:00 + 0cf0-0cf1 : pnp 00:00 +0cf8-0cff : PCI conf1 +0d00-feff : PCI Bus 0000:00 + 1000-103f : 0000:00:07.3 + 1000-103f : pnp 00:00 + 1000-1003 : ACPI PM1a_EVT_BLK + 1004-1005 : ACPI PM1a_CNT_BLK + 1008-100b : ACPI PM_TMR + 100c-100f : ACPI GPE0_BLK + 1040-104f : 0000:00:07.3 + 1040-104f : pnp 00:00 + 1060-106f : 0000:00:07.1 + 1060-106f : ata_piix + 1070-107f : 0000:00:0f.0 + 1070-107f : vmwgfx probe + 1080-10bf : 0000:00:07.7 + 1080-10bf : vmw_vmci + 1400-14ff : 0000:00:10.0 + 2000-3fff : PCI Bus 0000:02 + 2000-203f : 0000:02:01.0 + 2000-203f : e1000 + 2040-207f : 0000:02:02.0 + 2040-207f : Ensoniq AudioPCI + 2080-209f : 0000:02:00.0 + 2080-209f : uhci_hcd + 4000-4fff : PCI Bus 0000:03 + 5000-5fff : PCI Bus 0000:0b + 6000-6fff : PCI Bus 0000:13 + 7000-7fff : PCI Bus 0000:1b + 8000-8fff : PCI Bus 0000:04 + 9000-9fff : PCI Bus 0000:0c + a000-afff : PCI Bus 0000:14 + b000-bfff : PCI Bus 0000:1c + c000-cfff : PCI Bus 0000:05 + d000-dfff : PCI Bus 0000:0d + e000-efff : PCI Bus 0000:15 + fce0-fcff : pnp 00:06 diff --git a/tests/fixtures/linux-proc/ioports.json b/tests/fixtures/linux-proc/ioports.json new file mode 100644 index 00000000..be0f65e8 --- /dev/null +++ b/tests/fixtures/linux-proc/ioports.json @@ -0,0 +1 @@ +[{"start":"0000","end":"0cf7","device":"PCI Bus 0000:00"},{"start":"0000","end":"001f","device":"dma1"},{"start":"0020","end":"0021","device":"PNP0001:00"},{"start":"0020","end":"0021","device":"pic1"},{"start":"0040","end":"0043","device":"timer0"},{"start":"0050","end":"0053","device":"timer1"},{"start":"0060","end":"0060","device":"keyboard"},{"start":"0061","end":"0061","device":"PNP0800:00"},{"start":"0064","end":"0064","device":"keyboard"},{"start":"0070","end":"0071","device":"rtc0"},{"start":"0080","end":"008f","device":"dma page reg"},{"start":"00a0","end":"00a1","device":"PNP0001:00"},{"start":"00a0","end":"00a1","device":"pic2"},{"start":"00c0","end":"00df","device":"dma2"},{"start":"00f0","end":"00ff","device":"fpu"},{"start":"0170","end":"0177","device":"0000:00:07.1"},{"start":"0170","end":"0177","device":"ata_piix"},{"start":"01f0","end":"01f7","device":"0000:00:07.1"},{"start":"01f0","end":"01f7","device":"ata_piix"},{"start":"0376","end":"0376","device":"0000:00:07.1"},{"start":"0376","end":"0376","device":"ata_piix"},{"start":"03c0","end":"03df","device":"vga+"},{"start":"03f6","end":"03f6","device":"0000:00:07.1"},{"start":"03f6","end":"03f6","device":"ata_piix"},{"start":"03f8","end":"03ff","device":"serial"},{"start":"04d0","end":"04d1","device":"PNP0001:00"},{"start":"0cf0","end":"0cf1","device":"pnp 00:00"},{"start":"0cf8","end":"0cff","device":"PCI conf1"},{"start":"0d00","end":"feff","device":"PCI Bus 0000:00"},{"start":"1000","end":"103f","device":"0000:00:07.3"},{"start":"1000","end":"103f","device":"pnp 00:00"},{"start":"1000","end":"1003","device":"ACPI PM1a_EVT_BLK"},{"start":"1004","end":"1005","device":"ACPI PM1a_CNT_BLK"},{"start":"1008","end":"100b","device":"ACPI PM_TMR"},{"start":"100c","end":"100f","device":"ACPI GPE0_BLK"},{"start":"1040","end":"104f","device":"0000:00:07.3"},{"start":"1040","end":"104f","device":"pnp 00:00"},{"start":"1060","end":"106f","device":"0000:00:07.1"},{"start":"1060","end":"106f","device":"ata_piix"},{"start":"1070","end":"107f","device":"0000:00:0f.0"},{"start":"1070","end":"107f","device":"vmwgfx probe"},{"start":"1080","end":"10bf","device":"0000:00:07.7"},{"start":"1080","end":"10bf","device":"vmw_vmci"},{"start":"1400","end":"14ff","device":"0000:00:10.0"},{"start":"2000","end":"3fff","device":"PCI Bus 0000:02"},{"start":"2000","end":"203f","device":"0000:02:01.0"},{"start":"2000","end":"203f","device":"e1000"},{"start":"2040","end":"207f","device":"0000:02:02.0"},{"start":"2040","end":"207f","device":"Ensoniq AudioPCI"},{"start":"2080","end":"209f","device":"0000:02:00.0"},{"start":"2080","end":"209f","device":"uhci_hcd"},{"start":"4000","end":"4fff","device":"PCI Bus 0000:03"},{"start":"5000","end":"5fff","device":"PCI Bus 0000:0b"},{"start":"6000","end":"6fff","device":"PCI Bus 0000:13"},{"start":"7000","end":"7fff","device":"PCI Bus 0000:1b"},{"start":"8000","end":"8fff","device":"PCI Bus 0000:04"},{"start":"9000","end":"9fff","device":"PCI Bus 0000:0c"},{"start":"a000","end":"afff","device":"PCI Bus 0000:14"},{"start":"b000","end":"bfff","device":"PCI Bus 0000:1c"},{"start":"c000","end":"cfff","device":"PCI Bus 0000:05"},{"start":"d000","end":"dfff","device":"PCI Bus 0000:0d"},{"start":"e000","end":"efff","device":"PCI Bus 0000:15"},{"start":"fce0","end":"fcff","device":"pnp 00:06"}] diff --git a/tests/fixtures/linux-proc/loadavg b/tests/fixtures/linux-proc/loadavg new file mode 100644 index 00000000..3cada372 --- /dev/null +++ b/tests/fixtures/linux-proc/loadavg @@ -0,0 +1 @@ +0.00 0.01 0.03 2/111 2039 diff --git a/tests/fixtures/linux-proc/loadavg.json b/tests/fixtures/linux-proc/loadavg.json new file mode 100644 index 00000000..ac3575df --- /dev/null +++ b/tests/fixtures/linux-proc/loadavg.json @@ -0,0 +1 @@ +{"load_1m":0.0,"load_5m":0.01,"load_15m":0.03,"running":2,"available":111,"last_pid":2039} diff --git a/tests/fixtures/linux-proc/locks b/tests/fixtures/linux-proc/locks new file mode 100644 index 00000000..c5335b04 --- /dev/null +++ b/tests/fixtures/linux-proc/locks @@ -0,0 +1,4 @@ +1: POSIX ADVISORY WRITE 877 00:19:812 0 EOF +2: FLOCK ADVISORY WRITE 854 00:19:805 0 EOF +3: POSIX ADVISORY WRITE 701 00:19:702 0 EOF +4: FLOCK ADVISORY WRITE 870 fd:00:264967 0 EOF diff --git a/tests/fixtures/linux-proc/locks.json b/tests/fixtures/linux-proc/locks.json new file mode 100644 index 00000000..a03330fe --- /dev/null +++ b/tests/fixtures/linux-proc/locks.json @@ -0,0 +1 @@ +[{"id":1,"class":"POSIX","type":"ADVISORY","access":"WRITE","pid":877,"maj":"00","min":"19","inode":812,"start":"0","end":"EOF"},{"id":2,"class":"FLOCK","type":"ADVISORY","access":"WRITE","pid":854,"maj":"00","min":"19","inode":805,"start":"0","end":"EOF"},{"id":3,"class":"POSIX","type":"ADVISORY","access":"WRITE","pid":701,"maj":"00","min":"19","inode":702,"start":"0","end":"EOF"},{"id":4,"class":"FLOCK","type":"ADVISORY","access":"WRITE","pid":870,"maj":"fd","min":"00","inode":264967,"start":"0","end":"EOF"}] diff --git a/tests/fixtures/linux-proc/meminfo b/tests/fixtures/linux-proc/meminfo new file mode 100644 index 00000000..e992abf5 --- /dev/null +++ b/tests/fixtures/linux-proc/meminfo @@ -0,0 +1,51 @@ +MemTotal: 3997272 kB +MemFree: 2760316 kB +MemAvailable: 3386876 kB +Buffers: 40452 kB +Cached: 684856 kB +SwapCached: 0 kB +Active: 475816 kB +Inactive: 322064 kB +Active(anon): 70216 kB +Inactive(anon): 148 kB +Active(file): 405600 kB +Inactive(file): 321916 kB +Unevictable: 19476 kB +Mlocked: 19476 kB +SwapTotal: 3996668 kB +SwapFree: 3996668 kB +Dirty: 152 kB +Writeback: 0 kB +AnonPages: 92064 kB +Mapped: 79464 kB +Shmem: 1568 kB +KReclaimable: 188216 kB +Slab: 288096 kB +SReclaimable: 188216 kB +SUnreclaim: 99880 kB +KernelStack: 5872 kB +PageTables: 1812 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 5995304 kB +Committed_AS: 445240 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 21932 kB +VmallocChunk: 0 kB +Percpu: 107520 kB +HardwareCorrupted: 0 kB +AnonHugePages: 0 kB +ShmemHugePages: 0 kB +ShmemPmdMapped: 0 kB +FileHugePages: 0 kB +FilePmdMapped: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 192320 kB +DirectMap2M: 4001792 kB +DirectMap1G: 2097152 kB diff --git a/tests/fixtures/linux-proc/meminfo.json b/tests/fixtures/linux-proc/meminfo.json new file mode 100644 index 00000000..cb294730 --- /dev/null +++ b/tests/fixtures/linux-proc/meminfo.json @@ -0,0 +1 @@ +{"MemTotal":3997272,"MemFree":2760316,"MemAvailable":3386876,"Buffers":40452,"Cached":684856,"SwapCached":0,"Active":475816,"Inactive":322064,"Active(anon)":70216,"Inactive(anon)":148,"Active(file)":405600,"Inactive(file)":321916,"Unevictable":19476,"Mlocked":19476,"SwapTotal":3996668,"SwapFree":3996668,"Dirty":152,"Writeback":0,"AnonPages":92064,"Mapped":79464,"Shmem":1568,"KReclaimable":188216,"Slab":288096,"SReclaimable":188216,"SUnreclaim":99880,"KernelStack":5872,"PageTables":1812,"NFS_Unstable":0,"Bounce":0,"WritebackTmp":0,"CommitLimit":5995304,"Committed_AS":445240,"VmallocTotal":34359738367,"VmallocUsed":21932,"VmallocChunk":0,"Percpu":107520,"HardwareCorrupted":0,"AnonHugePages":0,"ShmemHugePages":0,"ShmemPmdMapped":0,"FileHugePages":0,"FilePmdMapped":0,"HugePages_Total":0,"HugePages_Free":0,"HugePages_Rsvd":0,"HugePages_Surp":0,"Hugepagesize":2048,"Hugetlb":0,"DirectMap4k":192320,"DirectMap2M":4001792,"DirectMap1G":2097152} diff --git a/tests/fixtures/linux-proc/modules b/tests/fixtures/linux-proc/modules new file mode 100644 index 00000000..03c15612 --- /dev/null +++ b/tests/fixtures/linux-proc/modules @@ -0,0 +1,92 @@ +binfmt_misc 24576 1 - Live 0xffffffffc0ab4000 +vsock_loopback 16384 0 - Live 0xffffffffc0a14000 +vmw_vsock_virtio_transport_common 36864 1 vsock_loopback, Live 0xffffffffc0a03000 +vmw_vsock_vmci_transport 32768 1 - Live 0xffffffffc0a1b000 +vsock 45056 5 vsock_loopback,vmw_vsock_virtio_transport_common,vmw_vsock_vmci_transport, Live 0xffffffffc09f7000 +dm_multipath 36864 0 - Live 0xffffffffc09b6000 +scsi_dh_rdac 16384 0 - Live 0xffffffffc09a2000 +scsi_dh_emc 16384 0 - Live 0xffffffffc0967000 +scsi_dh_alua 20480 0 - Live 0xffffffffc090b000 +intel_rapl_msr 20480 0 - Live 0xffffffffc0947000 +intel_rapl_common 28672 1 intel_rapl_msr, Live 0xffffffffc09ae000 +rapl 20480 0 - Live 0xffffffffc0941000 +vmw_balloon 24576 0 - Live 0xffffffffc09a7000 +joydev 28672 0 - Live 0xffffffffc092f000 +input_leds 16384 0 - Live 0xffffffffc093c000 +serio_raw 20480 0 - Live 0xffffffffc0921000 +snd_ens1371 32768 0 - Live 0xffffffffc0999000 +snd_ac97_codec 163840 1 snd_ens1371, Live 0xffffffffc0970000 +uvcvideo 98304 0 - Live 0xffffffffc094e000 +btusb 57344 0 - Live 0xffffffffc0912000 +btrtl 24576 1 btusb, Live 0xffffffffc0904000 +gameport 24576 1 snd_ens1371, Live 0xffffffffc082b000 +videobuf2_vmalloc 20480 1 uvcvideo, Live 0xffffffffc0798000 +videobuf2_memops 20480 1 videobuf2_vmalloc, Live 0xffffffffc0929000 +btbcm 16384 1 btusb, Live 0xffffffffc0937000 +snd_rawmidi 36864 1 snd_ens1371, Live 0xffffffffc0851000 +btintel 28672 1 btusb, Live 0xffffffffc0823000 +snd_seq_device 16384 1 snd_rawmidi, Live 0xffffffffc081e000 +ac97_bus 16384 1 snd_ac97_codec, Live 0xffffffffc07b2000 +videobuf2_v4l2 28672 1 uvcvideo, Live 0xffffffffc07c3000 +bluetooth 602112 5 btusb,btrtl,btbcm,btintel, Live 0xffffffffc086c000 +videobuf2_common 57344 2 uvcvideo,videobuf2_v4l2, Live 0xffffffffc085d000 +snd_pcm 118784 2 snd_ens1371,snd_ac97_codec, Live 0xffffffffc0833000 +videodev 245760 3 uvcvideo,videobuf2_v4l2,videobuf2_common, Live 0xffffffffc07e1000 +snd_timer 40960 1 snd_pcm, Live 0xffffffffc07d6000 +ecdh_generic 16384 1 bluetooth, Live 0xffffffffc07cf000 +ecc 32768 1 ecdh_generic, Live 0xffffffffc07ba000 +mc 57344 4 uvcvideo,videobuf2_v4l2,videobuf2_common,videodev, Live 0xffffffffc07a3000 +snd 94208 6 snd_ens1371,snd_ac97_codec,snd_rawmidi,snd_seq_device,snd_pcm,snd_timer, Live 0xffffffffc0780000 +soundcore 16384 1 snd, Live 0xffffffffc0777000 +vmw_vmci 77824 2 vmw_vsock_vmci_transport,vmw_balloon, Live 0xffffffffc0763000 +mac_hid 16384 0 - Live 0xffffffffc075e000 +sch_fq_codel 20480 2 - Live 0xffffffffc072c000 +ip_tables 32768 0 - Live 0xffffffffc0714000 +x_tables 49152 1 ip_tables, Live 0xffffffffc0700000 +autofs4 45056 2 - Live 0xffffffffc06f4000 +btrfs 1323008 0 - Live 0xffffffffc05b0000 +blake2b_generic 20480 0 - Live 0xffffffffc038a000 +raid10 61440 0 - Live 0xffffffffc05a0000 +raid456 155648 0 - Live 0xffffffffc056f000 +async_raid6_recov 24576 1 raid456, Live 0xffffffffc0568000 +async_memcpy 20480 2 raid456,async_raid6_recov, Live 0xffffffffc0562000 +async_pq 24576 2 raid456,async_raid6_recov, Live 0xffffffffc0558000 +async_xor 20480 3 raid456,async_raid6_recov,async_pq, Live 0xffffffffc0552000 +async_tx 20480 5 raid456,async_raid6_recov,async_memcpy,async_pq,async_xor, Live 0xffffffffc054c000 +xor 24576 2 btrfs,async_xor, Live 0xffffffffc046d000 +raid6_pq 114688 4 btrfs,raid456,async_raid6_recov,async_pq, Live 0xffffffffc052b000 +libcrc32c 16384 2 btrfs,raid456, Live 0xffffffffc0468000 +raid1 49152 0 - Live 0xffffffffc03ea000 +raid0 24576 0 - Live 0xffffffffc03e3000 +multipath 20480 0 - Live 0xffffffffc0348000 +linear 20480 0 - Live 0xffffffffc030f000 +hid_generic 16384 0 - Live 0xffffffffc0327000 +usbhid 57344 0 - Live 0xffffffffc051c000 +hid 135168 2 hid_generic,usbhid, Live 0xffffffffc04fa000 +crct10dif_pclmul 16384 1 - Live 0xffffffffc03de000 +crc32_pclmul 16384 0 - Live 0xffffffffc035e000 +ghash_clmulni_intel 16384 0 - Live 0xffffffffc02f0000 +aesni_intel 372736 0 - Live 0xffffffffc049e000 +crypto_simd 16384 1 aesni_intel, Live 0xffffffffc0338000 +cryptd 24576 2 ghash_clmulni_intel,crypto_simd, Live 0xffffffffc02df000 +glue_helper 16384 1 aesni_intel, Live 0xffffffffc02da000 +psmouse 163840 0 - Live 0xffffffffc0475000 +vmwgfx 323584 1 - Live 0xffffffffc0413000 +ttm 102400 1 vmwgfx, Live 0xffffffffc03f9000 +drm_kms_helper 225280 1 vmwgfx, Live 0xffffffffc03a6000 +syscopyarea 16384 1 drm_kms_helper, Live 0xffffffffc02d5000 +mptspi 24576 3 - Live 0xffffffffc02ca000 +sysfillrect 16384 1 drm_kms_helper, Live 0xffffffffc02c3000 +sysimgblt 16384 1 drm_kms_helper, Live 0xffffffffc02be000 +fb_sys_fops 16384 1 drm_kms_helper, Live 0xffffffffc02b9000 +mptscsih 45056 1 mptspi, Live 0xffffffffc0395000 +e1000 151552 0 - Live 0xffffffffc0364000 +cec 53248 1 drm_kms_helper, Live 0xffffffffc0350000 +ahci 40960 0 - Live 0xffffffffc033d000 +libahci 36864 1 ahci, Live 0xffffffffc032e000 +rc_core 61440 1 cec, Live 0xffffffffc0317000 +mptbase 98304 2 mptspi,mptscsih, Live 0xffffffffc02f6000 +scsi_transport_spi 32768 1 mptspi, Live 0xffffffffc02e7000 +drm 565248 4 vmwgfx,ttm,drm_kms_helper, Live 0xffffffffc022e000 +i2c_piix4 28672 0 - Live 0xffffffffc0222000 +pata_acpi 16384 0 - Live 0xffffffffc021a000 diff --git a/tests/fixtures/linux-proc/modules.json b/tests/fixtures/linux-proc/modules.json new file mode 100644 index 00000000..1d7f264b --- /dev/null +++ b/tests/fixtures/linux-proc/modules.json @@ -0,0 +1 @@ +[{"module":"binfmt_misc","size":24576,"used":1,"used_by":[],"status":"Live","location":"0xffffffffc0ab4000"},{"module":"vsock_loopback","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0a14000"},{"module":"vmw_vsock_virtio_transport_common","size":36864,"used":1,"used_by":["vsock_loopback"],"status":"Live","location":"0xffffffffc0a03000"},{"module":"vmw_vsock_vmci_transport","size":32768,"used":1,"used_by":[],"status":"Live","location":"0xffffffffc0a1b000"},{"module":"vsock","size":45056,"used":5,"used_by":["vsock_loopback","vmw_vsock_virtio_transport_common","vmw_vsock_vmci_transport"],"status":"Live","location":"0xffffffffc09f7000"},{"module":"dm_multipath","size":36864,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc09b6000"},{"module":"scsi_dh_rdac","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc09a2000"},{"module":"scsi_dh_emc","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0967000"},{"module":"scsi_dh_alua","size":20480,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc090b000"},{"module":"intel_rapl_msr","size":20480,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0947000"},{"module":"intel_rapl_common","size":28672,"used":1,"used_by":["intel_rapl_msr"],"status":"Live","location":"0xffffffffc09ae000"},{"module":"rapl","size":20480,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0941000"},{"module":"vmw_balloon","size":24576,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc09a7000"},{"module":"joydev","size":28672,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc092f000"},{"module":"input_leds","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc093c000"},{"module":"serio_raw","size":20480,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0921000"},{"module":"snd_ens1371","size":32768,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0999000"},{"module":"snd_ac97_codec","size":163840,"used":1,"used_by":["snd_ens1371"],"status":"Live","location":"0xffffffffc0970000"},{"module":"uvcvideo","size":98304,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc094e000"},{"module":"btusb","size":57344,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0912000"},{"module":"btrtl","size":24576,"used":1,"used_by":["btusb"],"status":"Live","location":"0xffffffffc0904000"},{"module":"gameport","size":24576,"used":1,"used_by":["snd_ens1371"],"status":"Live","location":"0xffffffffc082b000"},{"module":"videobuf2_vmalloc","size":20480,"used":1,"used_by":["uvcvideo"],"status":"Live","location":"0xffffffffc0798000"},{"module":"videobuf2_memops","size":20480,"used":1,"used_by":["videobuf2_vmalloc"],"status":"Live","location":"0xffffffffc0929000"},{"module":"btbcm","size":16384,"used":1,"used_by":["btusb"],"status":"Live","location":"0xffffffffc0937000"},{"module":"snd_rawmidi","size":36864,"used":1,"used_by":["snd_ens1371"],"status":"Live","location":"0xffffffffc0851000"},{"module":"btintel","size":28672,"used":1,"used_by":["btusb"],"status":"Live","location":"0xffffffffc0823000"},{"module":"snd_seq_device","size":16384,"used":1,"used_by":["snd_rawmidi"],"status":"Live","location":"0xffffffffc081e000"},{"module":"ac97_bus","size":16384,"used":1,"used_by":["snd_ac97_codec"],"status":"Live","location":"0xffffffffc07b2000"},{"module":"videobuf2_v4l2","size":28672,"used":1,"used_by":["uvcvideo"],"status":"Live","location":"0xffffffffc07c3000"},{"module":"bluetooth","size":602112,"used":5,"used_by":["btusb","btrtl","btbcm","btintel"],"status":"Live","location":"0xffffffffc086c000"},{"module":"videobuf2_common","size":57344,"used":2,"used_by":["uvcvideo","videobuf2_v4l2"],"status":"Live","location":"0xffffffffc085d000"},{"module":"snd_pcm","size":118784,"used":2,"used_by":["snd_ens1371","snd_ac97_codec"],"status":"Live","location":"0xffffffffc0833000"},{"module":"videodev","size":245760,"used":3,"used_by":["uvcvideo","videobuf2_v4l2","videobuf2_common"],"status":"Live","location":"0xffffffffc07e1000"},{"module":"snd_timer","size":40960,"used":1,"used_by":["snd_pcm"],"status":"Live","location":"0xffffffffc07d6000"},{"module":"ecdh_generic","size":16384,"used":1,"used_by":["bluetooth"],"status":"Live","location":"0xffffffffc07cf000"},{"module":"ecc","size":32768,"used":1,"used_by":["ecdh_generic"],"status":"Live","location":"0xffffffffc07ba000"},{"module":"mc","size":57344,"used":4,"used_by":["uvcvideo","videobuf2_v4l2","videobuf2_common","videodev"],"status":"Live","location":"0xffffffffc07a3000"},{"module":"snd","size":94208,"used":6,"used_by":["snd_ens1371","snd_ac97_codec","snd_rawmidi","snd_seq_device","snd_pcm","snd_timer"],"status":"Live","location":"0xffffffffc0780000"},{"module":"soundcore","size":16384,"used":1,"used_by":["snd"],"status":"Live","location":"0xffffffffc0777000"},{"module":"vmw_vmci","size":77824,"used":2,"used_by":["vmw_vsock_vmci_transport","vmw_balloon"],"status":"Live","location":"0xffffffffc0763000"},{"module":"mac_hid","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc075e000"},{"module":"sch_fq_codel","size":20480,"used":2,"used_by":[],"status":"Live","location":"0xffffffffc072c000"},{"module":"ip_tables","size":32768,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0714000"},{"module":"x_tables","size":49152,"used":1,"used_by":["ip_tables"],"status":"Live","location":"0xffffffffc0700000"},{"module":"autofs4","size":45056,"used":2,"used_by":[],"status":"Live","location":"0xffffffffc06f4000"},{"module":"btrfs","size":1323008,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc05b0000"},{"module":"blake2b_generic","size":20480,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc038a000"},{"module":"raid10","size":61440,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc05a0000"},{"module":"raid456","size":155648,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc056f000"},{"module":"async_raid6_recov","size":24576,"used":1,"used_by":["raid456"],"status":"Live","location":"0xffffffffc0568000"},{"module":"async_memcpy","size":20480,"used":2,"used_by":["raid456","async_raid6_recov"],"status":"Live","location":"0xffffffffc0562000"},{"module":"async_pq","size":24576,"used":2,"used_by":["raid456","async_raid6_recov"],"status":"Live","location":"0xffffffffc0558000"},{"module":"async_xor","size":20480,"used":3,"used_by":["raid456","async_raid6_recov","async_pq"],"status":"Live","location":"0xffffffffc0552000"},{"module":"async_tx","size":20480,"used":5,"used_by":["raid456","async_raid6_recov","async_memcpy","async_pq","async_xor"],"status":"Live","location":"0xffffffffc054c000"},{"module":"xor","size":24576,"used":2,"used_by":["btrfs","async_xor"],"status":"Live","location":"0xffffffffc046d000"},{"module":"raid6_pq","size":114688,"used":4,"used_by":["btrfs","raid456","async_raid6_recov","async_pq"],"status":"Live","location":"0xffffffffc052b000"},{"module":"libcrc32c","size":16384,"used":2,"used_by":["btrfs","raid456"],"status":"Live","location":"0xffffffffc0468000"},{"module":"raid1","size":49152,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc03ea000"},{"module":"raid0","size":24576,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc03e3000"},{"module":"multipath","size":20480,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0348000"},{"module":"linear","size":20480,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc030f000"},{"module":"hid_generic","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0327000"},{"module":"usbhid","size":57344,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc051c000"},{"module":"hid","size":135168,"used":2,"used_by":["hid_generic","usbhid"],"status":"Live","location":"0xffffffffc04fa000"},{"module":"crct10dif_pclmul","size":16384,"used":1,"used_by":[],"status":"Live","location":"0xffffffffc03de000"},{"module":"crc32_pclmul","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc035e000"},{"module":"ghash_clmulni_intel","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc02f0000"},{"module":"aesni_intel","size":372736,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc049e000"},{"module":"crypto_simd","size":16384,"used":1,"used_by":["aesni_intel"],"status":"Live","location":"0xffffffffc0338000"},{"module":"cryptd","size":24576,"used":2,"used_by":["ghash_clmulni_intel","crypto_simd"],"status":"Live","location":"0xffffffffc02df000"},{"module":"glue_helper","size":16384,"used":1,"used_by":["aesni_intel"],"status":"Live","location":"0xffffffffc02da000"},{"module":"psmouse","size":163840,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0475000"},{"module":"vmwgfx","size":323584,"used":1,"used_by":[],"status":"Live","location":"0xffffffffc0413000"},{"module":"ttm","size":102400,"used":1,"used_by":["vmwgfx"],"status":"Live","location":"0xffffffffc03f9000"},{"module":"drm_kms_helper","size":225280,"used":1,"used_by":["vmwgfx"],"status":"Live","location":"0xffffffffc03a6000"},{"module":"syscopyarea","size":16384,"used":1,"used_by":["drm_kms_helper"],"status":"Live","location":"0xffffffffc02d5000"},{"module":"mptspi","size":24576,"used":3,"used_by":[],"status":"Live","location":"0xffffffffc02ca000"},{"module":"sysfillrect","size":16384,"used":1,"used_by":["drm_kms_helper"],"status":"Live","location":"0xffffffffc02c3000"},{"module":"sysimgblt","size":16384,"used":1,"used_by":["drm_kms_helper"],"status":"Live","location":"0xffffffffc02be000"},{"module":"fb_sys_fops","size":16384,"used":1,"used_by":["drm_kms_helper"],"status":"Live","location":"0xffffffffc02b9000"},{"module":"mptscsih","size":45056,"used":1,"used_by":["mptspi"],"status":"Live","location":"0xffffffffc0395000"},{"module":"e1000","size":151552,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0364000"},{"module":"cec","size":53248,"used":1,"used_by":["drm_kms_helper"],"status":"Live","location":"0xffffffffc0350000"},{"module":"ahci","size":40960,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc033d000"},{"module":"libahci","size":36864,"used":1,"used_by":["ahci"],"status":"Live","location":"0xffffffffc032e000"},{"module":"rc_core","size":61440,"used":1,"used_by":["cec"],"status":"Live","location":"0xffffffffc0317000"},{"module":"mptbase","size":98304,"used":2,"used_by":["mptspi","mptscsih"],"status":"Live","location":"0xffffffffc02f6000"},{"module":"scsi_transport_spi","size":32768,"used":1,"used_by":["mptspi"],"status":"Live","location":"0xffffffffc02e7000"},{"module":"drm","size":565248,"used":4,"used_by":["vmwgfx","ttm","drm_kms_helper"],"status":"Live","location":"0xffffffffc022e000"},{"module":"i2c_piix4","size":28672,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc0222000"},{"module":"pata_acpi","size":16384,"used":0,"used_by":[],"status":"Live","location":"0xffffffffc021a000"}] diff --git a/tests/fixtures/linux-proc/mtrr b/tests/fixtures/linux-proc/mtrr new file mode 100644 index 00000000..8a1f565d --- /dev/null +++ b/tests/fixtures/linux-proc/mtrr @@ -0,0 +1,12 @@ +reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back +reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back +reg02: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back +reg03: base=0x200000000 ( 8192MB), size= 8192MB, count=1: write-back +reg04: base=0x400000000 (16384MB), size=16384MB, count=1: write-back +reg05: base=0x800000000 (32768MB), size=32768MB, count=1: write-back +reg06: base=0x1000000000 (65536MB), size=65536MB, count=1: write-back +reg07: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1 +reg08: base=0xe8000000 (3712MB), size= 32MB: write-combining, count=1 +reg09: base=0x00000000 ( 0MB), size= 64MB: write-back, count=1 +reg10: base=0xfb000000 (4016MB), size= 16MB: write-combining, count=1 +reg11: base=0xfb000000 (4016MB), size= 4kB: uncachable, count=1 diff --git a/tests/fixtures/linux-proc/mtrr.json b/tests/fixtures/linux-proc/mtrr.json new file mode 100644 index 00000000..1b8e6a29 --- /dev/null +++ b/tests/fixtures/linux-proc/mtrr.json @@ -0,0 +1 @@ +[{"register":"reg00","type":"write-back","base":"0x000000000","base_mb":0,"size":2048,"count":1},{"register":"reg01","type":"write-back","base":"0x080000000","base_mb":2048,"size":1024,"count":1},{"register":"reg02","type":"write-back","base":"0x100000000","base_mb":4096,"size":4096,"count":1},{"register":"reg03","type":"write-back","base":"0x200000000","base_mb":8192,"size":8192,"count":1},{"register":"reg04","type":"write-back","base":"0x400000000","base_mb":16384,"size":16384,"count":1},{"register":"reg05","type":"write-back","base":"0x800000000","base_mb":32768,"size":32768,"count":1},{"register":"reg06","type":"write-back","base":"0x1000000000","base_mb":65536,"size":65536,"count":1},{"register":"reg07","type":"write-back","base":"0x00000000","base_mb":0,"size":256,"count":1},{"register":"reg08","type":"write-combining","base":"0xe8000000","base_mb":3712,"size":32,"count":1},{"register":"reg09","type":"write-back","base":"0x00000000","base_mb":0,"size":64,"count":1},{"register":"reg10","type":"write-combining","base":"0xfb000000","base_mb":4016,"size":16,"count":1},{"register":"reg11","type":"uncachable","base":"0xfb000000","base_mb":4016,"size":4,"count":1}] diff --git a/tests/fixtures/linux-proc/net_arp b/tests/fixtures/linux-proc/net_arp new file mode 100644 index 00000000..2926f235 --- /dev/null +++ b/tests/fixtures/linux-proc/net_arp @@ -0,0 +1,4 @@ +IP address HW type Flags HW address Mask Device +192.168.71.254 0x1 0x2 00:50:56:f3:2f:ae * ens33 +192.168.71.2 0x1 0x2 00:50:56:f7:4a:fc * ens33 +192.168.71.1 0x1 0x2 a6:83:e7:d2:a9:65 * ens33 diff --git a/tests/fixtures/linux-proc/net_arp.json b/tests/fixtures/linux-proc/net_arp.json new file mode 100644 index 00000000..e961a02d --- /dev/null +++ b/tests/fixtures/linux-proc/net_arp.json @@ -0,0 +1 @@ +[{"IP_address":"192.168.71.254","HW_type":"0x1","Flags":"0x2","HW_address":"00:50:56:f3:2f:ae","Mask":"*","Device":"ens33"},{"IP_address":"192.168.71.2","HW_type":"0x1","Flags":"0x2","HW_address":"00:50:56:f7:4a:fc","Mask":"*","Device":"ens33"},{"IP_address":"192.168.71.1","HW_type":"0x1","Flags":"0x2","HW_address":"a6:83:e7:d2:a9:65","Mask":"*","Device":"ens33"}] diff --git a/tests/fixtures/linux-proc/net_dev b/tests/fixtures/linux-proc/net_dev new file mode 100644 index 00000000..ed23bb15 --- /dev/null +++ b/tests/fixtures/linux-proc/net_dev @@ -0,0 +1,4 @@ +Inter-| Receive | Transmit + face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed + lo: 13222 152 0 0 0 0 0 0 13222 152 0 0 0 0 0 0 + ens33: 60600053 109378 0 0 0 0 0 0 44256546 121425 0 0 0 0 0 0 diff --git a/tests/fixtures/linux-proc/net_dev.json b/tests/fixtures/linux-proc/net_dev.json new file mode 100644 index 00000000..28844511 --- /dev/null +++ b/tests/fixtures/linux-proc/net_dev.json @@ -0,0 +1 @@ +[{"interface":"lo","r_bytes":13222,"r_packets":152,"r_errs":0,"r_drop":0,"r_fifo":0,"r_frame":0,"r_compressed":0,"r_multicast":0,"t_bytes":13222,"t_packets":152,"t_errs":0,"t_drop":0,"t_fifo":0,"t_colls":0,"t_carrier":0,"t_compressed":0},{"interface":"ens33","r_bytes":60600053,"r_packets":109378,"r_errs":0,"r_drop":0,"r_fifo":0,"r_frame":0,"r_compressed":0,"r_multicast":0,"t_bytes":44256546,"t_packets":121425,"t_errs":0,"t_drop":0,"t_fifo":0,"t_colls":0,"t_carrier":0,"t_compressed":0}] diff --git a/tests/fixtures/linux-proc/net_dev_mcast b/tests/fixtures/linux-proc/net_dev_mcast new file mode 100644 index 00000000..a1962666 --- /dev/null +++ b/tests/fixtures/linux-proc/net_dev_mcast @@ -0,0 +1,6 @@ +2 ens33 1 0 333300000001 +2 ens33 1 0 01005e000001 +2 ens33 1 0 0180c2000000 +2 ens33 1 0 0180c2000003 +2 ens33 1 0 0180c200000e +2 ens33 1 0 3333ffa4e315 diff --git a/tests/fixtures/linux-proc/net_dev_mcast.json b/tests/fixtures/linux-proc/net_dev_mcast.json new file mode 100644 index 00000000..f0f348ea --- /dev/null +++ b/tests/fixtures/linux-proc/net_dev_mcast.json @@ -0,0 +1 @@ +[{"index":2,"interface":"ens33","dmi_u":1,"dmi_g":0,"dmi_address":"333300000001"},{"index":2,"interface":"ens33","dmi_u":1,"dmi_g":0,"dmi_address":"01005e000001"},{"index":2,"interface":"ens33","dmi_u":1,"dmi_g":0,"dmi_address":"0180c2000000"},{"index":2,"interface":"ens33","dmi_u":1,"dmi_g":0,"dmi_address":"0180c2000003"},{"index":2,"interface":"ens33","dmi_u":1,"dmi_g":0,"dmi_address":"0180c200000e"},{"index":2,"interface":"ens33","dmi_u":1,"dmi_g":0,"dmi_address":"3333ffa4e315"}] diff --git a/tests/fixtures/linux-proc/net_if_inet6 b/tests/fixtures/linux-proc/net_if_inet6 new file mode 100644 index 00000000..26565fc2 --- /dev/null +++ b/tests/fixtures/linux-proc/net_if_inet6 @@ -0,0 +1,2 @@ +fe80000000000000020c29fffea4e315 02 40 20 80 ens33 +00000000000000000000000000000001 01 80 10 80 lo diff --git a/tests/fixtures/linux-proc/net_if_inet6.json b/tests/fixtures/linux-proc/net_if_inet6.json new file mode 100644 index 00000000..8b1ca114 --- /dev/null +++ b/tests/fixtures/linux-proc/net_if_inet6.json @@ -0,0 +1 @@ +[{"address":"fe80000000000000020c29fffea4e315","index":"02","prefix":"40","scope":"20","flags":"80","name":"ens33"},{"address":"00000000000000000000000000000001","index":"01","prefix":"80","scope":"10","flags":"80","name":"lo"}] diff --git a/tests/fixtures/linux-proc/net_igmp b/tests/fixtures/linux-proc/net_igmp new file mode 100644 index 00000000..9b0dde85 --- /dev/null +++ b/tests/fixtures/linux-proc/net_igmp @@ -0,0 +1,5 @@ +Idx Device : Count Querier Group Users Timer Reporter +1 lo : 1 V3 + 010000E0 1 0:00000000 0 +2 ens33 : 1 V3 + 010000E0 1 0:00000000 0 diff --git a/tests/fixtures/linux-proc/net_igmp.json b/tests/fixtures/linux-proc/net_igmp.json new file mode 100644 index 00000000..50647e4c --- /dev/null +++ b/tests/fixtures/linux-proc/net_igmp.json @@ -0,0 +1 @@ +[{"index":1,"device":"lo","count":1,"querier":"V3","groups":[{"address":"010000E0","users":1,"timer":"0:00000000","reporter":0}]},{"index":2,"device":"ens33","count":1,"querier":"V3","groups":[{"address":"010000E0","users":1,"timer":"0:00000000","reporter":0}]}] diff --git a/tests/fixtures/linux-proc/net_igmp6 b/tests/fixtures/linux-proc/net_igmp6 new file mode 100644 index 00000000..84b5e807 --- /dev/null +++ b/tests/fixtures/linux-proc/net_igmp6 @@ -0,0 +1,5 @@ +1 lo ff020000000000000000000000000001 1 0000000C 0 +1 lo ff010000000000000000000000000001 1 00000008 0 +2 ens33 ff0200000000000000000001ffa4e315 1 00000004 0 +2 ens33 ff020000000000000000000000000001 2 0000000C 0 +2 ens33 ff010000000000000000000000000001 1 00000008 0 diff --git a/tests/fixtures/linux-proc/net_igmp6.json b/tests/fixtures/linux-proc/net_igmp6.json new file mode 100644 index 00000000..aafe98ba --- /dev/null +++ b/tests/fixtures/linux-proc/net_igmp6.json @@ -0,0 +1 @@ +[{"index":1,"name":"lo","address":"ff020000000000000000000000000001","users":1,"group":"0000000C","reporters":0},{"index":1,"name":"lo","address":"ff010000000000000000000000000001","users":1,"group":"00000008","reporters":0},{"index":2,"name":"ens33","address":"ff0200000000000000000001ffa4e315","users":1,"group":"00000004","reporters":0},{"index":2,"name":"ens33","address":"ff020000000000000000000000000001","users":2,"group":"0000000C","reporters":0},{"index":2,"name":"ens33","address":"ff010000000000000000000000000001","users":1,"group":"00000008","reporters":0}] diff --git a/tests/fixtures/linux-proc/net_igmp_more b/tests/fixtures/linux-proc/net_igmp_more new file mode 100644 index 00000000..11d8a94d --- /dev/null +++ b/tests/fixtures/linux-proc/net_igmp_more @@ -0,0 +1,30 @@ +Idx Device : Count Querier Group Users Timer Reporter +0 lo : 0 V3 + 010000E0 1 0:00000000 0 +2 eth0 : 26 V2 + 260301E0 1 0:00000000 1 + 9B0101E0 1 0:00000000 1 + 439501E0 1 0:00000000 1 + 990101E0 1 0:00000000 1 + 580101E0 1 0:00000000 1 + 2A0301E0 1 0:00000000 1 + 290301E0 1 0:00000000 1 + 280301E0 1 0:00000000 1 + 9BD901E0 1 0:00000000 1 + 2D0301E0 1 0:00000000 1 + 2C0301E0 1 0:00000000 1 + 370301E0 1 0:00000000 1 + 050101E0 1 0:00000000 1 + 620201E0 1 0:00000000 1 + 040201E0 1 0:00000000 1 + 5F0101E0 1 0:00000000 1 + 520101E0 1 0:00000000 1 + 2BEF01E0 1 0:00000000 1 + 4D0101E0 1 0:00000000 1 + E00C01E0 1 0:00000000 1 + 400301E0 1 0:00000000 1 + FB0000E0 1 0:00000000 1 + 010000E0 1 0:00000000 0 +3 eth1 : 5 V2 + FB0000E0 1 0:00000000 1 + 010000E0 1 0:00000000 0 diff --git a/tests/fixtures/linux-proc/net_igmp_more.json b/tests/fixtures/linux-proc/net_igmp_more.json new file mode 100644 index 00000000..e7f9ec97 --- /dev/null +++ b/tests/fixtures/linux-proc/net_igmp_more.json @@ -0,0 +1 @@ +[{"index":0,"device":"lo","count":0,"querier":"V3","groups":[{"address":"010000E0","users":1,"timer":"0:00000000","reporter":0}]},{"index":2,"device":"eth0","count":26,"querier":"V2","groups":[{"address":"260301E0","users":1,"timer":"0:00000000","reporter":1},{"address":"9B0101E0","users":1,"timer":"0:00000000","reporter":1},{"address":"439501E0","users":1,"timer":"0:00000000","reporter":1},{"address":"990101E0","users":1,"timer":"0:00000000","reporter":1},{"address":"580101E0","users":1,"timer":"0:00000000","reporter":1},{"address":"2A0301E0","users":1,"timer":"0:00000000","reporter":1},{"address":"290301E0","users":1,"timer":"0:00000000","reporter":1},{"address":"280301E0","users":1,"timer":"0:00000000","reporter":1},{"address":"9BD901E0","users":1,"timer":"0:00000000","reporter":1},{"address":"2D0301E0","users":1,"timer":"0:00000000","reporter":1},{"address":"2C0301E0","users":1,"timer":"0:00000000","reporter":1},{"address":"370301E0","users":1,"timer":"0:00000000","reporter":1},{"address":"050101E0","users":1,"timer":"0:00000000","reporter":1},{"address":"620201E0","users":1,"timer":"0:00000000","reporter":1},{"address":"040201E0","users":1,"timer":"0:00000000","reporter":1},{"address":"5F0101E0","users":1,"timer":"0:00000000","reporter":1},{"address":"520101E0","users":1,"timer":"0:00000000","reporter":1},{"address":"2BEF01E0","users":1,"timer":"0:00000000","reporter":1},{"address":"4D0101E0","users":1,"timer":"0:00000000","reporter":1},{"address":"E00C01E0","users":1,"timer":"0:00000000","reporter":1},{"address":"400301E0","users":1,"timer":"0:00000000","reporter":1},{"address":"FB0000E0","users":1,"timer":"0:00000000","reporter":1},{"address":"010000E0","users":1,"timer":"0:00000000","reporter":0}]},{"index":3,"device":"eth1","count":5,"querier":"V2","groups":[{"address":"FB0000E0","users":1,"timer":"0:00000000","reporter":1},{"address":"010000E0","users":1,"timer":"0:00000000","reporter":0}]}] diff --git a/tests/fixtures/linux-proc/net_ipv6_route b/tests/fixtures/linux-proc/net_ipv6_route new file mode 100644 index 00000000..e4507725 --- /dev/null +++ b/tests/fixtures/linux-proc/net_ipv6_route @@ -0,0 +1,7 @@ +00000000000000000000000000000001 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000001 00000000 00000001 lo +fe800000000000000000000000000000 40 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000001 00000000 00000001 ens33 +00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200 lo +00000000000000000000000000000001 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000004 00000000 80200001 lo +fe80000000000000020c29fffea4e315 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000002 00000000 80200001 ens33 +ff000000000000000000000000000000 08 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000004 00000000 00000001 ens33 +00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200 lo diff --git a/tests/fixtures/linux-proc/net_ipv6_route.json b/tests/fixtures/linux-proc/net_ipv6_route.json new file mode 100644 index 00000000..aa0dc1c7 --- /dev/null +++ b/tests/fixtures/linux-proc/net_ipv6_route.json @@ -0,0 +1 @@ +[{"dest_net":"00000000000000000000000000000001","dest_prefix":"80","source_net":"00000000000000000000000000000000","source_prefix":"00","next_hop":"00000000000000000000000000000000","metric":"00000100","ref_count":"00000001","use_count":"00000000","flags":"00000001","device":"lo"},{"dest_net":"fe800000000000000000000000000000","dest_prefix":"40","source_net":"00000000000000000000000000000000","source_prefix":"00","next_hop":"00000000000000000000000000000000","metric":"00000100","ref_count":"00000001","use_count":"00000000","flags":"00000001","device":"ens33"},{"dest_net":"00000000000000000000000000000000","dest_prefix":"00","source_net":"00000000000000000000000000000000","source_prefix":"00","next_hop":"00000000000000000000000000000000","metric":"ffffffff","ref_count":"00000001","use_count":"00000000","flags":"00200200","device":"lo"},{"dest_net":"00000000000000000000000000000001","dest_prefix":"80","source_net":"00000000000000000000000000000000","source_prefix":"00","next_hop":"00000000000000000000000000000000","metric":"00000000","ref_count":"00000004","use_count":"00000000","flags":"80200001","device":"lo"},{"dest_net":"fe80000000000000020c29fffea4e315","dest_prefix":"80","source_net":"00000000000000000000000000000000","source_prefix":"00","next_hop":"00000000000000000000000000000000","metric":"00000000","ref_count":"00000002","use_count":"00000000","flags":"80200001","device":"ens33"},{"dest_net":"ff000000000000000000000000000000","dest_prefix":"08","source_net":"00000000000000000000000000000000","source_prefix":"00","next_hop":"00000000000000000000000000000000","metric":"00000100","ref_count":"00000004","use_count":"00000000","flags":"00000001","device":"ens33"},{"dest_net":"00000000000000000000000000000000","dest_prefix":"00","source_net":"00000000000000000000000000000000","source_prefix":"00","next_hop":"00000000000000000000000000000000","metric":"ffffffff","ref_count":"00000001","use_count":"00000000","flags":"00200200","device":"lo"}] diff --git a/tests/fixtures/linux-proc/net_netlink b/tests/fixtures/linux-proc/net_netlink new file mode 100644 index 00000000..2cc3f377 --- /dev/null +++ b/tests/fixtures/linux-proc/net_netlink @@ -0,0 +1,27 @@ +sk Eth Pid Groups Rmem Wmem Dump Locks Drops Inode +ffff9b61adaff000 0 1 800405d5 0 0 0 2 0 29791 +ffff9b61a792a000 0 837 00000111 0 0 0 2 0 35337 +ffff9b61b8e4d000 0 0 00000000 0 0 0 2 0 17 +ffff9b61a7464800 4 0 00000000 0 0 0 2 0 24798 +ffff9b61b8216800 7 0 00000000 0 0 0 2 0 17250 +ffff9b61a7592000 9 2875 00000000 0 0 0 2 0 89117 +ffff9b61adafc000 9 4095138316 00000000 0 0 0 2 0 29927 +ffff9b61b8e4e800 9 0 00000000 0 0 0 2 0 22 +ffff9b61b71c4800 9 1 00000001 0 0 0 2 0 29784 +ffff9b61b82ef000 10 0 00000000 0 0 0 2 0 14333 +ffff9b61b821d000 11 0 00000000 0 0 0 2 0 1026 +ffff9b61a6ca7800 15 3496194766 00000002 0 0 0 2 0 38994 +ffff9b61b5a60800 15 835 00000002 0 0 0 2 0 34728 +ffff9b61adafc800 15 3516054882 00000001 0 0 0 2 0 29794 +ffff9b61acb18800 15 701 00000002 0 0 0 2 0 33113 +ffff9b61b71c0800 15 1 00000002 0 0 0 2 0 29760 +ffff9b61a6ca4000 15 4232252993 00000002 0 0 0 2 0 38995 +ffff9b61b1f08800 15 1207 00000002 0 0 0 2 0 41861 +ffff9b61a768d000 15 872 00000002 0 0 0 2 0 38992 +ffff9b61b3c84000 15 870 00000002 0 0 0 2 0 40752 +ffff9b61ad435800 15 8470 00000002 0 0 0 2 0 104872 +ffff9b61a6ca2800 15 3571242113 00000002 0 0 0 2 0 38993 +ffff9b61b8e48800 15 0 00000000 0 0 0 2 0 24 +ffff9b61b821b800 16 0 00000000 0 0 0 2 0 1037 +ffff9b61b5a64000 16 835 00000000 0 0 0 2 0 34727 +ffff9b61b8218800 18 0 00000000 0 0 0 2 0 1029 diff --git a/tests/fixtures/linux-proc/net_netlink.json b/tests/fixtures/linux-proc/net_netlink.json new file mode 100644 index 00000000..aaa0f5fa --- /dev/null +++ b/tests/fixtures/linux-proc/net_netlink.json @@ -0,0 +1 @@ +[{"sk":"ffff9b61adaff000","Eth":0,"Pid":1,"Groups":"800405d5","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":29791},{"sk":"ffff9b61a792a000","Eth":0,"Pid":837,"Groups":"00000111","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":35337},{"sk":"ffff9b61b8e4d000","Eth":0,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":17},{"sk":"ffff9b61a7464800","Eth":4,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":24798},{"sk":"ffff9b61b8216800","Eth":7,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":17250},{"sk":"ffff9b61a7592000","Eth":9,"Pid":2875,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":89117},{"sk":"ffff9b61adafc000","Eth":9,"Pid":4095138316,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":29927},{"sk":"ffff9b61b8e4e800","Eth":9,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":22},{"sk":"ffff9b61b71c4800","Eth":9,"Pid":1,"Groups":"00000001","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":29784},{"sk":"ffff9b61b82ef000","Eth":10,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":14333},{"sk":"ffff9b61b821d000","Eth":11,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":1026},{"sk":"ffff9b61a6ca7800","Eth":15,"Pid":3496194766,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":38994},{"sk":"ffff9b61b5a60800","Eth":15,"Pid":835,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":34728},{"sk":"ffff9b61adafc800","Eth":15,"Pid":3516054882,"Groups":"00000001","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":29794},{"sk":"ffff9b61acb18800","Eth":15,"Pid":701,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":33113},{"sk":"ffff9b61b71c0800","Eth":15,"Pid":1,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":29760},{"sk":"ffff9b61a6ca4000","Eth":15,"Pid":4232252993,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":38995},{"sk":"ffff9b61b1f08800","Eth":15,"Pid":1207,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":41861},{"sk":"ffff9b61a768d000","Eth":15,"Pid":872,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":38992},{"sk":"ffff9b61b3c84000","Eth":15,"Pid":870,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":40752},{"sk":"ffff9b61ad435800","Eth":15,"Pid":8470,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":104872},{"sk":"ffff9b61a6ca2800","Eth":15,"Pid":3571242113,"Groups":"00000002","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":38993},{"sk":"ffff9b61b8e48800","Eth":15,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":24},{"sk":"ffff9b61b821b800","Eth":16,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":1037},{"sk":"ffff9b61b5a64000","Eth":16,"Pid":835,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":34727},{"sk":"ffff9b61b8218800","Eth":18,"Pid":0,"Groups":"00000000","Rmem":0,"Wmem":0,"Dump":0,"Locks":2,"Drops":0,"Inode":1029}] diff --git a/tests/fixtures/linux-proc/net_netstat b/tests/fixtures/linux-proc/net_netstat new file mode 100644 index 00000000..8c3eb396 --- /dev/null +++ b/tests/fixtures/linux-proc/net_netstat @@ -0,0 +1,6 @@ +TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed EmbryonicRsts PruneCalled RcvPruned OfoPruned OutOfWindowIcmps LockDroppedIcmps ArpFilter TW TWRecycled TWKilled PAWSActive PAWSEstab DelayedACKs DelayedACKLocked DelayedACKLost ListenOverflows ListenDrops TCPHPHits TCPPureAcks TCPHPAcks TCPRenoRecovery TCPSackRecovery TCPSACKReneging TCPSACKReorder TCPRenoReorder TCPTSReorder TCPFullUndo TCPPartialUndo TCPDSACKUndo TCPLossUndo TCPLostRetransmit TCPRenoFailures TCPSackFailures TCPLossFailures TCPFastRetrans TCPSlowStartRetrans TCPTimeouts TCPLossProbes TCPLossProbeRecovery TCPRenoRecoveryFail TCPSackRecoveryFail TCPRcvCollapsed TCPBacklogCoalesce TCPDSACKOldSent TCPDSACKOfoSent TCPDSACKRecv TCPDSACKOfoRecv TCPAbortOnData TCPAbortOnClose TCPAbortOnMemory TCPAbortOnTimeout TCPAbortOnLinger TCPAbortFailed TCPMemoryPressures TCPMemoryPressuresChrono TCPSACKDiscard TCPDSACKIgnoredOld TCPDSACKIgnoredNoUndo TCPSpuriousRTOs TCPMD5NotFound TCPMD5Unexpected TCPMD5Failure TCPSackShifted TCPSackMerged TCPSackShiftFallback TCPBacklogDrop PFMemallocDrop TCPMinTTLDrop TCPDeferAcceptDrop IPReversePathFilter TCPTimeWaitOverflow TCPReqQFullDoCookies TCPReqQFullDrop TCPRetransFail TCPRcvCoalesce TCPOFOQueue TCPOFODrop TCPOFOMerge TCPChallengeACK TCPSYNChallenge TCPFastOpenActive TCPFastOpenActiveFail TCPFastOpenPassive TCPFastOpenPassiveFail TCPFastOpenListenOverflow TCPFastOpenCookieReqd TCPFastOpenBlackhole TCPSpuriousRtxHostQueues BusyPollRxPackets TCPAutoCorking TCPFromZeroWindowAdv TCPToZeroWindowAdv TCPWantZeroWindowAdv TCPSynRetrans TCPOrigDataSent TCPHystartTrainDetect TCPHystartTrainCwnd TCPHystartDelayDetect TCPHystartDelayCwnd TCPACKSkippedSynRecv TCPACKSkippedPAWS TCPACKSkippedSeq TCPACKSkippedFinWait2 TCPACKSkippedTimeWait TCPACKSkippedChallenge TCPWinProbe TCPKeepAlive TCPMTUPFail TCPMTUPSuccess TCPDelivered TCPDeliveredCE TCPAckCompressed TCPZeroWindowDrop TCPRcvQDrop TCPWqueueTooBig TCPFastOpenPassiveAltKey TcpTimeoutRehash TcpDuplicateDataRehash +TcpExt: 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 10 53 0 0 0 2387 12711 53535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2883 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28376 0 0 0 0 119438 3 60 0 0 0 0 0 0 0 0 0 6 0 0 119453 0 0 0 0 0 0 0 0 +IpExt: InNoRoutes InTruncatedPkts InMcastPkts OutMcastPkts InBcastPkts OutBcastPkts InOctets OutOctets InMcastOctets OutMcastOctets InBcastOctets OutBcastOctets InCsumErrors InNoECTPkts InECT1Pkts InECT0Pkts InCEPkts ReasmOverlaps +IpExt: 0 0 0 0 366 0 57734503 42330709 0 0 31466 0 0 106821 0 3273 0 0 +MPTcpExt: MPCapableSYNRX MPCapableACKRX MPCapableFallbackACK MPCapableFallbackSYNACK MPTCPRetrans MPJoinNoTokenFound MPJoinSynRx MPJoinSynAckRx MPJoinSynAckHMacFailure MPJoinAckRx MPJoinAckHMacFailure DSSNotMatching InfiniteMapRx +MPTcpExt: 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/tests/fixtures/linux-proc/net_netstat.json b/tests/fixtures/linux-proc/net_netstat.json new file mode 100644 index 00000000..922a442a --- /dev/null +++ b/tests/fixtures/linux-proc/net_netstat.json @@ -0,0 +1 @@ +[{"SyncookiesSent":0,"SyncookiesRecv":0,"SyncookiesFailed":0,"EmbryonicRsts":0,"PruneCalled":0,"RcvPruned":0,"OfoPruned":0,"OutOfWindowIcmps":0,"LockDroppedIcmps":0,"ArpFilter":0,"TW":3,"TWRecycled":0,"TWKilled":0,"PAWSActive":0,"PAWSEstab":0,"DelayedACKs":10,"DelayedACKLocked":53,"DelayedACKLost":0,"ListenOverflows":0,"ListenDrops":0,"TCPHPHits":2387,"TCPPureAcks":12711,"TCPHPAcks":53535,"TCPRenoRecovery":0,"TCPSackRecovery":0,"TCPSACKReneging":0,"TCPSACKReorder":0,"TCPRenoReorder":0,"TCPTSReorder":0,"TCPFullUndo":0,"TCPPartialUndo":0,"TCPDSACKUndo":0,"TCPLossUndo":0,"TCPLostRetransmit":0,"TCPRenoFailures":0,"TCPSackFailures":0,"TCPLossFailures":0,"TCPFastRetrans":0,"TCPSlowStartRetrans":0,"TCPTimeouts":0,"TCPLossProbes":0,"TCPLossProbeRecovery":0,"TCPRenoRecoveryFail":0,"TCPSackRecoveryFail":0,"TCPRcvCollapsed":0,"TCPBacklogCoalesce":2883,"TCPDSACKOldSent":0,"TCPDSACKOfoSent":0,"TCPDSACKRecv":0,"TCPDSACKOfoRecv":0,"TCPAbortOnData":0,"TCPAbortOnClose":1,"TCPAbortOnMemory":0,"TCPAbortOnTimeout":0,"TCPAbortOnLinger":0,"TCPAbortFailed":0,"TCPMemoryPressures":0,"TCPMemoryPressuresChrono":0,"TCPSACKDiscard":0,"TCPDSACKIgnoredOld":0,"TCPDSACKIgnoredNoUndo":0,"TCPSpuriousRTOs":0,"TCPMD5NotFound":0,"TCPMD5Unexpected":0,"TCPMD5Failure":0,"TCPSackShifted":0,"TCPSackMerged":0,"TCPSackShiftFallback":0,"TCPBacklogDrop":0,"PFMemallocDrop":0,"TCPMinTTLDrop":0,"TCPDeferAcceptDrop":0,"IPReversePathFilter":0,"TCPTimeWaitOverflow":0,"TCPReqQFullDoCookies":0,"TCPReqQFullDrop":0,"TCPRetransFail":0,"TCPRcvCoalesce":151,"TCPOFOQueue":0,"TCPOFODrop":0,"TCPOFOMerge":0,"TCPChallengeACK":0,"TCPSYNChallenge":0,"TCPFastOpenActive":0,"TCPFastOpenActiveFail":0,"TCPFastOpenPassive":0,"TCPFastOpenPassiveFail":0,"TCPFastOpenListenOverflow":0,"TCPFastOpenCookieReqd":0,"TCPFastOpenBlackhole":0,"TCPSpuriousRtxHostQueues":0,"BusyPollRxPackets":0,"TCPAutoCorking":28376,"TCPFromZeroWindowAdv":0,"TCPToZeroWindowAdv":0,"TCPWantZeroWindowAdv":0,"TCPSynRetrans":0,"TCPOrigDataSent":119438,"TCPHystartTrainDetect":3,"TCPHystartTrainCwnd":60,"TCPHystartDelayDetect":0,"TCPHystartDelayCwnd":0,"TCPACKSkippedSynRecv":0,"TCPACKSkippedPAWS":0,"TCPACKSkippedSeq":0,"TCPACKSkippedFinWait2":0,"TCPACKSkippedTimeWait":0,"TCPACKSkippedChallenge":0,"TCPWinProbe":0,"TCPKeepAlive":6,"TCPMTUPFail":0,"TCPMTUPSuccess":0,"TCPDelivered":119453,"TCPDeliveredCE":0,"TCPAckCompressed":0,"TCPZeroWindowDrop":0,"TCPRcvQDrop":0,"TCPWqueueTooBig":0,"TCPFastOpenPassiveAltKey":0,"TcpTimeoutRehash":0,"TcpDuplicateDataRehash":0,"type":"TcpExt"},{"InNoRoutes":0,"InTruncatedPkts":0,"InMcastPkts":0,"OutMcastPkts":0,"InBcastPkts":366,"OutBcastPkts":0,"InOctets":57734503,"OutOctets":42330709,"InMcastOctets":0,"OutMcastOctets":0,"InBcastOctets":31466,"OutBcastOctets":0,"InCsumErrors":0,"InNoECTPkts":106821,"InECT1Pkts":0,"InECT0Pkts":3273,"InCEPkts":0,"ReasmOverlaps":0,"type":"IpExt"},{"MPCapableSYNRX":0,"MPCapableACKRX":0,"MPCapableFallbackACK":0,"MPCapableFallbackSYNACK":0,"MPTCPRetrans":0,"MPJoinNoTokenFound":0,"MPJoinSynRx":0,"MPJoinSynAckRx":0,"MPJoinSynAckHMacFailure":0,"MPJoinAckRx":0,"MPJoinAckHMacFailure":0,"DSSNotMatching":0,"InfiniteMapRx":0,"type":"MPTcpExt"}] diff --git a/tests/fixtures/linux-proc/net_packet b/tests/fixtures/linux-proc/net_packet new file mode 100644 index 00000000..ce24cada --- /dev/null +++ b/tests/fixtures/linux-proc/net_packet @@ -0,0 +1,2 @@ +sk RefCnt Type Proto Iface R Rmem User Inode +ffff9b61b56c1800 3 3 88cc 2 1 0 101 34754 diff --git a/tests/fixtures/linux-proc/net_packet.json b/tests/fixtures/linux-proc/net_packet.json new file mode 100644 index 00000000..cdfee322 --- /dev/null +++ b/tests/fixtures/linux-proc/net_packet.json @@ -0,0 +1 @@ +{"sk":"ffff9b61b56c1800","RefCnt":3,"Type":3,"Proto":"88cc","Iface":2,"R":1,"Rmem":0,"User":101,"Inode":34754} diff --git a/tests/fixtures/linux-proc/net_protocols b/tests/fixtures/linux-proc/net_protocols new file mode 100644 index 00000000..bd8429d1 --- /dev/null +++ b/tests/fixtures/linux-proc/net_protocols @@ -0,0 +1,21 @@ +protocol size sockets memory press maxhdr slab module cl co di ac io in de sh ss gs se re sp bi br ha uh gp em +AF_VSOCK 1216 0 -1 NI 0 yes vsock n n n n n n n n n n n n n n n n n n n +SCO 832 0 -1 NI 0 no bluetooth n n n n n n n n n n n n n n n n n n n +L2CAP 816 0 -1 NI 0 no bluetooth n n n n n n n n n n n n n n n n n n n +HCI 880 0 -1 NI 0 no bluetooth n n n n n n n n n n n n n n n n n n n +PACKET 1472 1 -1 NI 0 no kernel n n n n n n n n n n n n n n n n n n n +MPTCPv6 1824 0 1 no 0 yes kernel y n y y n y y y y y y y n n n y y y n +PINGv6 1176 0 -1 NI 0 yes kernel y y y n n y n n y y y y n y y y y y n +RAWv6 1176 1 -1 NI 0 yes kernel y y y n y y y n y y y y n y y y y n n +UDPLITEv6 1344 0 1 NI 0 yes kernel y y y n y y y n y y y y n n n y y y n +UDPv6 1344 0 1 NI 0 yes kernel y y y n y y y n y y y y n n n y y y n +TCPv6 2368 1 1 no 320 yes kernel y y y y y y y y y y y y y n y y y y y +XDP 960 0 -1 NI 0 no kernel n n n n n n n n n n n n n n n n n n n +UNIX 1024 131 -1 NI 0 yes kernel n n n n n n n n n n n n n n n n n n n +UDP-Lite 1152 0 1 NI 0 yes kernel y y y n y y y n y y y y y n n y y y n +MPTCP 1664 0 1 no 0 yes kernel y n y y n y y y y y y y n n n y y y n +PING 968 0 -1 NI 0 yes kernel y y y n n y n n y y y y n y y y y y n +RAW 976 0 -1 NI 0 yes kernel y y y n y y y n y y y y n y y y y n n +UDP 1152 2 1 NI 0 yes kernel y y y n y y y n y y y y y n n y y y n +TCP 2208 3 1 no 320 yes kernel y y y y y y y y y y y y y n y y y y y +NETLINK 1096 18 -1 NI 0 no kernel n n n n n n n n n n n n n n n n n n n diff --git a/tests/fixtures/linux-proc/net_protocols.json b/tests/fixtures/linux-proc/net_protocols.json new file mode 100644 index 00000000..651071a2 --- /dev/null +++ b/tests/fixtures/linux-proc/net_protocols.json @@ -0,0 +1 @@ +[{"protocol":"AF_VSOCK","size":1216,"sockets":0,"memory":-1,"press":"NI","maxhdr":0,"slab":true,"module":"vsock","cl":false,"co":false,"di":false,"ac":false,"io":false,"in":false,"de":false,"sh":false,"ss":false,"gs":false,"se":false,"re":false,"sp":false,"bi":false,"br":false,"ha":false,"uh":false,"gp":false,"em":false},{"protocol":"SCO","size":832,"sockets":0,"memory":-1,"press":"NI","maxhdr":0,"slab":false,"module":"bluetooth","cl":false,"co":false,"di":false,"ac":false,"io":false,"in":false,"de":false,"sh":false,"ss":false,"gs":false,"se":false,"re":false,"sp":false,"bi":false,"br":false,"ha":false,"uh":false,"gp":false,"em":false},{"protocol":"L2CAP","size":816,"sockets":0,"memory":-1,"press":"NI","maxhdr":0,"slab":false,"module":"bluetooth","cl":false,"co":false,"di":false,"ac":false,"io":false,"in":false,"de":false,"sh":false,"ss":false,"gs":false,"se":false,"re":false,"sp":false,"bi":false,"br":false,"ha":false,"uh":false,"gp":false,"em":false},{"protocol":"HCI","size":880,"sockets":0,"memory":-1,"press":"NI","maxhdr":0,"slab":false,"module":"bluetooth","cl":false,"co":false,"di":false,"ac":false,"io":false,"in":false,"de":false,"sh":false,"ss":false,"gs":false,"se":false,"re":false,"sp":false,"bi":false,"br":false,"ha":false,"uh":false,"gp":false,"em":false},{"protocol":"PACKET","size":1472,"sockets":1,"memory":-1,"press":"NI","maxhdr":0,"slab":false,"module":"kernel","cl":false,"co":false,"di":false,"ac":false,"io":false,"in":false,"de":false,"sh":false,"ss":false,"gs":false,"se":false,"re":false,"sp":false,"bi":false,"br":false,"ha":false,"uh":false,"gp":false,"em":false},{"protocol":"MPTCPv6","size":1824,"sockets":0,"memory":1,"press":"no","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":false,"di":true,"ac":true,"io":false,"in":true,"de":true,"sh":true,"ss":true,"gs":true,"se":true,"re":true,"sp":false,"bi":false,"br":false,"ha":true,"uh":true,"gp":true,"em":false},{"protocol":"PINGv6","size":1176,"sockets":0,"memory":-1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":false,"io":false,"in":true,"de":false,"sh":false,"ss":true,"gs":true,"se":true,"re":true,"sp":false,"bi":true,"br":true,"ha":true,"uh":true,"gp":true,"em":false},{"protocol":"RAWv6","size":1176,"sockets":1,"memory":-1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":false,"io":true,"in":true,"de":true,"sh":false,"ss":true,"gs":true,"se":true,"re":true,"sp":false,"bi":true,"br":true,"ha":true,"uh":true,"gp":false,"em":false},{"protocol":"UDPLITEv6","size":1344,"sockets":0,"memory":1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":false,"io":true,"in":true,"de":true,"sh":false,"ss":true,"gs":true,"se":true,"re":true,"sp":false,"bi":false,"br":false,"ha":true,"uh":true,"gp":true,"em":false},{"protocol":"UDPv6","size":1344,"sockets":0,"memory":1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":false,"io":true,"in":true,"de":true,"sh":false,"ss":true,"gs":true,"se":true,"re":true,"sp":false,"bi":false,"br":false,"ha":true,"uh":true,"gp":true,"em":false},{"protocol":"TCPv6","size":2368,"sockets":1,"memory":1,"press":"no","maxhdr":320,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":true,"io":true,"in":true,"de":true,"sh":true,"ss":true,"gs":true,"se":true,"re":true,"sp":true,"bi":false,"br":true,"ha":true,"uh":true,"gp":true,"em":true},{"protocol":"XDP","size":960,"sockets":0,"memory":-1,"press":"NI","maxhdr":0,"slab":false,"module":"kernel","cl":false,"co":false,"di":false,"ac":false,"io":false,"in":false,"de":false,"sh":false,"ss":false,"gs":false,"se":false,"re":false,"sp":false,"bi":false,"br":false,"ha":false,"uh":false,"gp":false,"em":false},{"protocol":"UNIX","size":1024,"sockets":131,"memory":-1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":false,"co":false,"di":false,"ac":false,"io":false,"in":false,"de":false,"sh":false,"ss":false,"gs":false,"se":false,"re":false,"sp":false,"bi":false,"br":false,"ha":false,"uh":false,"gp":false,"em":false},{"protocol":"UDP-Lite","size":1152,"sockets":0,"memory":1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":false,"io":true,"in":true,"de":true,"sh":false,"ss":true,"gs":true,"se":true,"re":true,"sp":true,"bi":false,"br":false,"ha":true,"uh":true,"gp":true,"em":false},{"protocol":"MPTCP","size":1664,"sockets":0,"memory":1,"press":"no","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":false,"di":true,"ac":true,"io":false,"in":true,"de":true,"sh":true,"ss":true,"gs":true,"se":true,"re":true,"sp":false,"bi":false,"br":false,"ha":true,"uh":true,"gp":true,"em":false},{"protocol":"PING","size":968,"sockets":0,"memory":-1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":false,"io":false,"in":true,"de":false,"sh":false,"ss":true,"gs":true,"se":true,"re":true,"sp":false,"bi":true,"br":true,"ha":true,"uh":true,"gp":true,"em":false},{"protocol":"RAW","size":976,"sockets":0,"memory":-1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":false,"io":true,"in":true,"de":true,"sh":false,"ss":true,"gs":true,"se":true,"re":true,"sp":false,"bi":true,"br":true,"ha":true,"uh":true,"gp":false,"em":false},{"protocol":"UDP","size":1152,"sockets":2,"memory":1,"press":"NI","maxhdr":0,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":false,"io":true,"in":true,"de":true,"sh":false,"ss":true,"gs":true,"se":true,"re":true,"sp":true,"bi":false,"br":false,"ha":true,"uh":true,"gp":true,"em":false},{"protocol":"TCP","size":2208,"sockets":3,"memory":1,"press":"no","maxhdr":320,"slab":true,"module":"kernel","cl":true,"co":true,"di":true,"ac":true,"io":true,"in":true,"de":true,"sh":true,"ss":true,"gs":true,"se":true,"re":true,"sp":true,"bi":false,"br":true,"ha":true,"uh":true,"gp":true,"em":true},{"protocol":"NETLINK","size":1096,"sockets":18,"memory":-1,"press":"NI","maxhdr":0,"slab":false,"module":"kernel","cl":false,"co":false,"di":false,"ac":false,"io":false,"in":false,"de":false,"sh":false,"ss":false,"gs":false,"se":false,"re":false,"sp":false,"bi":false,"br":false,"ha":false,"uh":false,"gp":false,"em":false}] diff --git a/tests/fixtures/linux-proc/net_route b/tests/fixtures/linux-proc/net_route new file mode 100644 index 00000000..eb9946d4 --- /dev/null +++ b/tests/fixtures/linux-proc/net_route @@ -0,0 +1,4 @@ +Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT +ens33 00000000 0247A8C0 0003 0 0 100 00000000 0 0 0 +ens33 0047A8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0 +ens33 0247A8C0 00000000 0005 0 0 100 FFFFFFFF 0 0 0 diff --git a/tests/fixtures/linux-proc/net_route.json b/tests/fixtures/linux-proc/net_route.json new file mode 100644 index 00000000..f0c18248 --- /dev/null +++ b/tests/fixtures/linux-proc/net_route.json @@ -0,0 +1 @@ +[{"Iface":"ens33","Destination":"00000000","Gateway":"0247A8C0","Flags":"0003","RefCnt":0,"Use":0,"Metric":100,"Mask":"00000000","MTU":0,"Window":0,"IRTT":0},{"Iface":"ens33","Destination":"0047A8C0","Gateway":"00000000","Flags":"0001","RefCnt":0,"Use":0,"Metric":0,"Mask":"00FFFFFF","MTU":0,"Window":0,"IRTT":0},{"Iface":"ens33","Destination":"0247A8C0","Gateway":"00000000","Flags":"0005","RefCnt":0,"Use":0,"Metric":100,"Mask":"FFFFFFFF","MTU":0,"Window":0,"IRTT":0}] diff --git a/tests/fixtures/linux-proc/net_unix b/tests/fixtures/linux-proc/net_unix new file mode 100644 index 00000000..bd1f1cba --- /dev/null +++ b/tests/fixtures/linux-proc/net_unix @@ -0,0 +1,131 @@ +Num RefCount Protocol Flags Type St Inode Path +ffff9b61ac49c400: 00000002 00000000 00010000 0001 01 42776 /var/snap/lxd/common/lxd/unix.socket +ffff9b61b509bc00: 00000002 00000000 00010000 0001 01 35128 /var/run/vmware/guestServicePipe +ffff9b61a77b9800: 00000002 00000000 00010000 0005 01 29792 /run/udev/control +ffff9b61ac49a800: 00000002 00000000 00010000 0001 01 42769 /var/snap/lxd/common/lxd-user/unix.socket +ffff9b61b0e54800: 00000002 00000000 00000000 0002 01 41863 /run/user/1000/systemd/notify +ffff9b61b0e56c00: 00000002 00000000 00010000 0001 01 41866 /run/user/1000/systemd/private +ffff9b61b0e52c00: 00000002 00000000 00010000 0001 01 41874 /run/user/1000/bus +ffff9b61a77bb800: 00000002 00000000 00010000 0001 01 29777 @/org/kernel/linux/storage/multipathd +ffff9b61b0e50000: 00000002 00000000 00010000 0001 01 41875 /run/user/1000/gnupg/S.dirmngr +ffff9b61b0e51000: 00000002 00000000 00010000 0001 01 41876 /run/user/1000/gnupg/S.gpg-agent.browser +ffff9b61b0e50c00: 00000002 00000000 00010000 0001 01 41877 /run/user/1000/gnupg/S.gpg-agent.extra +ffff9b61b0e51400: 00000002 00000000 00010000 0001 01 41878 /run/user/1000/gnupg/S.gpg-agent.ssh +ffff9b61a777d400: 00000002 00000000 00010000 0001 01 35973 /run/dbus/system_bus_socket +ffff9b61b0e52400: 00000002 00000000 00010000 0001 01 41879 /run/user/1000/gnupg/S.gpg-agent +ffff9b61a7779800: 00000002 00000000 00010000 0001 01 35990 /run/snapd.socket +ffff9b61b0e57000: 00000002 00000000 00010000 0001 01 41903 /run/user/1000/pk-debconf-socket +ffff9b61a777d000: 00000002 00000000 00010000 0001 01 35992 /run/snapd-snap.socket +ffff9b61b0e54c00: 00000002 00000000 00010000 0001 01 41904 /run/user/1000/snapd-session-agent.socket +ffff9b61a777ac00: 00000002 00000000 00010000 0001 01 35994 /run/uuidd/request +ffff9b61b2919c00: 00000002 00000000 00010000 0001 01 37637 /run/irqbalance/irqbalance861.sock +ffff9b61a77bfc00: 00000003 00000000 00000000 0002 01 29761 /run/systemd/notify +ffff9b61a77b9c00: 00000002 00000000 00010000 0001 01 29764 /run/systemd/private +ffff9b61a77ba000: 00000002 00000000 00010000 0001 01 29766 /run/systemd/userdb/io.systemd.DynamicUser +ffff9b61a77bec00: 00000002 00000000 00010000 0001 01 29775 /run/lvm/lvmpolld.socket +ffff9b61a77be000: 00000002 00000000 00000000 0002 01 29778 /run/systemd/journal/syslog +ffff9b61a77bdc00: 0000000A 00000000 00000000 0002 01 29785 /run/systemd/journal/dev-log +ffff9b61a77bc000: 00000002 00000000 00010000 0001 01 29787 /run/systemd/journal/stdout +ffff9b61a77bcc00: 00000009 00000000 00000000 0002 01 29789 /run/systemd/journal/socket +ffff9b61a777c000: 00000002 00000000 00010000 0001 01 30858 /run/systemd/journal/io.systemd.journal +ffff9b61a777f800: 00000002 00000000 00010000 0001 01 35985 @ISCSIADM_ABSTRACT_NAMESPACE +ffff9b61b0e55400: 00000003 00000000 00000000 0002 01 41865 +ffff9b61b2c07800: 00000003 00000000 00000000 0001 03 40074 /run/dbus/system_bus_socket +ffff9b61b2d56c00: 00000002 00000000 00000000 0002 01 37639 +ffff9b61a7842800: 00000002 00000000 00000000 0002 01 34191 +ffff9b61b5a91000: 00000003 00000000 00000000 0002 01 34731 +ffff9b61a7842c00: 00000003 00000000 00000000 0002 01 34198 +ffff9b61b4a40000: 00000003 00000000 00000000 0001 03 37395 +ffff9b61ac18a400: 00000002 00000000 00000000 0002 01 34187 +ffff9b61b0e54400: 00000003 00000000 00000000 0001 03 41868 /run/dbus/system_bus_socket +ffff9b61ab65dc00: 00000003 00000000 00000000 0001 03 32191 /run/systemd/journal/stdout +ffff9b61b4a40400: 00000003 00000000 00000000 0001 03 37695 /run/dbus/system_bus_socket +ffff9b61b5a90800: 00000003 00000000 00000000 0002 01 34732 +ffff9b61a777c400: 00000003 00000000 00000000 0001 03 34123 +ffff9b61a77bc400: 00000003 00000000 00000000 0001 03 104866 +ffff9b61b279d000: 00000003 00000000 00000000 0001 03 39056 +ffff9b61a777cc00: 00000003 00000000 00000000 0001 03 37694 /run/dbus/system_bus_socket +ffff9b61b579d000: 00000003 00000000 00000000 0001 03 35846 /run/systemd/journal/stdout +ffff9b61b4a43000: 00000003 00000000 00000000 0001 03 35594 /run/systemd/journal/stdout +ffff9b61ab65ec00: 00000003 00000000 00000000 0001 03 33108 +ffff9b61a7840000: 00000003 00000000 00000000 0002 01 34195 +ffff9b61a77bf800: 00000003 00000000 00000000 0001 03 30127 +ffff9b61b633a000: 00000003 00000000 00000000 0002 01 30139 +ffff9b61a77bf400: 00000003 00000000 00000000 0001 03 37473 +ffff9b61b633ac00: 00000003 00000000 00000000 0002 01 30140 +ffff9b61b5a93000: 00000003 00000000 00000000 0002 01 34729 +ffff9b61a77bf000: 00000003 00000000 00000000 0002 01 29762 +ffff9b61ab7fe400: 00000002 00000000 00000000 0002 01 30860 +ffff9b61b0e56400: 00000003 00000000 00000000 0002 01 41864 +ffff9b61b4058000: 00000003 00000000 00000000 0001 03 35735 /run/systemd/journal/stdout +ffff9b61a777e400: 00000003 00000000 00000000 0001 03 36549 +ffff9b61b0e56000: 00000003 00000000 00000000 0001 03 41867 +ffff9b61b4820000: 00000003 00000000 00000000 0001 03 37693 /run/dbus/system_bus_socket +ffff9b61b3af2400: 00000003 00000000 00000000 0001 03 37400 /run/systemd/journal/stdout +ffff9b61a77be400: 00000003 00000000 00000000 0002 01 29763 +ffff9b61a7841800: 00000003 00000000 00000000 0002 01 34196 +ffff9b61a777ec00: 00000003 00000000 00000000 0001 03 36166 +ffff9b61b633b800: 00000003 00000000 00000000 0001 03 30891 /run/systemd/journal/stdout +ffff9b61a7779000: 00000003 00000000 00000000 0001 03 36010 +ffff9b61b2897800: 00000003 00000000 00000000 0001 03 37635 /run/systemd/journal/stdout +ffff9b61b5a95800: 00000003 00000000 00000000 0001 03 37691 /run/dbus/system_bus_socket +ffff9b61b2798c00: 00000003 00000000 00000000 0001 03 39057 +ffff9b61ac18fc00: 00000003 00000000 00000000 0001 03 32701 /run/systemd/journal/stdout +ffff9b61a7846800: 00000003 00000000 00000000 0001 03 33991 /run/systemd/journal/stdout +ffff9b61a7778000: 00000003 00000000 00000000 0001 03 35845 +ffff9b61a7847000: 00000003 00000000 00000000 0001 03 35984 +ffff9b61a77b8800: 00000003 00000000 00000000 0001 03 35734 +ffff9b61b5a94800: 00000002 00000000 00000000 0002 01 34725 +ffff9b61a77b8400: 00000003 00000000 00000000 0001 03 35806 +ffff9b61a7778800: 00000003 00000000 00000000 0001 03 34722 +ffff9b61a7778c00: 00000003 00000000 00000000 0001 03 38537 +ffff9b61a77b8000: 00000003 00000000 00000000 0001 03 35593 +ffff9b61b5a94000: 00000003 00000000 00000000 0001 03 35262 /run/systemd/journal/stdout +ffff9b61b2799400: 00000003 00000000 00000000 0001 03 39051 +ffff9b61a777b000: 00000003 00000000 00000000 0001 03 33989 +ffff9b61b2c01400: 00000003 00000000 00000000 0001 03 37547 /run/systemd/journal/stdout +ffff9b61a77bb400: 00000003 00000000 00000000 0001 03 41833 /run/systemd/journal/stdout +ffff9b61b5a97400: 00000003 00000000 00000000 0001 03 35983 +ffff9b61b4825c00: 00000003 00000000 00000000 0001 03 35453 +ffff9b61a7844800: 00000003 00000000 00000000 0002 01 34197 +ffff9b61a77bb000: 00000003 00000000 00000000 0001 03 42102 +ffff9b61b0e53800: 00000002 00000000 00000000 0002 01 41844 +ffff9b61a7844c00: 00000003 00000000 00000000 0001 03 37692 /run/dbus/system_bus_socket +ffff9b61a777a000: 00000003 00000000 00000000 0001 03 36317 +ffff9b61b2c00000: 00000003 00000000 00000000 0001 03 38743 +ffff9b61b4824400: 00000002 00000000 00000000 0002 01 35335 +ffff9b61b279b800: 00000003 00000000 00000000 0001 03 39052 /run/dbus/system_bus_socket +ffff9b61b08e4800: 00000003 00000000 00000000 0001 03 32702 /run/systemd/journal/stdout +ffff9b61b5a96400: 00000003 00000000 00000000 0002 01 34730 +ffff9b61a777a800: 00000003 00000000 00000000 0001 03 34066 +ffff9b61a77ba400: 00000002 00000000 00000000 0002 01 30241 +ffff9b61b633f800: 00000002 00000000 00000000 0002 01 30136 +ffff9b61b288b800: 00000003 00000000 00000000 0001 03 37721 /run/systemd/journal/stdout +ffff9b61b48ab800: 00000003 00000000 00000000 0001 03 39006 /run/systemd/journal/stdout +ffff9b61b0defc00: 00000002 00000000 00000000 0002 01 42110 +ffff9b61b3b5ac00: 00000003 00000000 00000000 0001 03 39035 /run/dbus/system_bus_socket +ffff9b612acc4800: 00000003 00000000 00000000 0001 03 104870 /run/dbus/system_bus_socket +ffff9b612acc5000: 00000003 00000000 00000000 0001 03 103612 /run/systemd/journal/stdout +ffff9b61b4121c00: 00000002 00000000 00000000 0002 01 37688 +ffff9b61ab534400: 00000002 00000000 00000000 0002 01 40763 +ffff9b61b24a3800: 00000003 00000000 00000000 0001 03 37831 +ffff9b61b6334400: 00000002 00000000 00000000 0002 01 38990 +ffff9b612acc2400: 00000003 00000000 00000000 0001 03 104869 +ffff9b61af8ce800: 00000002 00000000 00000000 0002 01 89141 +ffff9b61af8cf000: 00000003 00000000 00000000 0001 03 86011 +ffff9b61b6335000: 00000003 00000000 00000000 0001 03 38997 /run/dbus/system_bus_socket +ffff9b61b3b5d000: 00000003 00000000 00000000 0001 03 39038 +ffff9b61b4127000: 00000003 00000000 00000000 0001 03 35808 /run/systemd/journal/stdout +ffff9b61b3b5e400: 00000003 00000000 00000000 0001 03 37474 /run/systemd/journal/stdout +ffff9b61b42d7c00: 00000002 00000000 00000000 0002 01 36009 +ffff9b61b3b5ec00: 00000003 00000000 00000000 0001 03 39037 +ffff9b61af8cc800: 00000003 00000000 00000000 0001 03 86012 +ffff9b61b3b5e800: 00000003 00000000 00000000 0001 03 39034 +ffff9b61b6337400: 00000003 00000000 00000000 0001 03 38996 +ffff9b61b4125400: 00000003 00000000 00000000 0001 03 37690 +ffff9b61af8cd000: 00000002 00000000 00000000 0002 01 89121 +ffff9b61b288cc00: 00000002 00000000 00000000 0002 01 85934 +ffff9b61b4125000: 00000003 00000000 00000000 0001 03 37689 +ffff9b61b288c000: 00000002 00000000 00000000 0001 03 85914 +ffff9b61b24a0400: 00000003 00000000 00000000 0001 03 37832 /run/dbus/system_bus_socket +ffff9b61b288c400: 00000003 00000000 00000000 0001 03 38139 diff --git a/tests/fixtures/linux-proc/net_unix.json b/tests/fixtures/linux-proc/net_unix.json new file mode 100644 index 00000000..4106e4bf --- /dev/null +++ b/tests/fixtures/linux-proc/net_unix.json @@ -0,0 +1 @@ +[{"Num":"ffff9b61ac49c400:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":42776,"Path":"/var/snap/lxd/common/lxd/unix.socket"},{"Num":"ffff9b61b509bc00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35128,"Path":"/var/run/vmware/guestServicePipe"},{"Num":"ffff9b61a77b9800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0005","St":"01","Inode":29792,"Path":"/run/udev/control"},{"Num":"ffff9b61ac49a800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":42769,"Path":"/var/snap/lxd/common/lxd-user/unix.socket"},{"Num":"ffff9b61b0e54800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":41863,"Path":"/run/user/1000/systemd/notify"},{"Num":"ffff9b61b0e56c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41866,"Path":"/run/user/1000/systemd/private"},{"Num":"ffff9b61b0e52c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41874,"Path":"/run/user/1000/bus"},{"Num":"ffff9b61a77bb800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29777,"Path":"@/org/kernel/linux/storage/multipathd"},{"Num":"ffff9b61b0e50000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41875,"Path":"/run/user/1000/gnupg/S.dirmngr"},{"Num":"ffff9b61b0e51000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41876,"Path":"/run/user/1000/gnupg/S.gpg-agent.browser"},{"Num":"ffff9b61b0e50c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41877,"Path":"/run/user/1000/gnupg/S.gpg-agent.extra"},{"Num":"ffff9b61b0e51400:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41878,"Path":"/run/user/1000/gnupg/S.gpg-agent.ssh"},{"Num":"ffff9b61a777d400:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35973,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b0e52400:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41879,"Path":"/run/user/1000/gnupg/S.gpg-agent"},{"Num":"ffff9b61a7779800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35990,"Path":"/run/snapd.socket"},{"Num":"ffff9b61b0e57000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41903,"Path":"/run/user/1000/pk-debconf-socket"},{"Num":"ffff9b61a777d000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35992,"Path":"/run/snapd-snap.socket"},{"Num":"ffff9b61b0e54c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41904,"Path":"/run/user/1000/snapd-session-agent.socket"},{"Num":"ffff9b61a777ac00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35994,"Path":"/run/uuidd/request"},{"Num":"ffff9b61b2919c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":37637,"Path":"/run/irqbalance/irqbalance861.sock"},{"Num":"ffff9b61a77bfc00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29761,"Path":"/run/systemd/notify"},{"Num":"ffff9b61a77b9c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29764,"Path":"/run/systemd/private"},{"Num":"ffff9b61a77ba000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29766,"Path":"/run/systemd/userdb/io.systemd.DynamicUser"},{"Num":"ffff9b61a77bec00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29775,"Path":"/run/lvm/lvmpolld.socket"},{"Num":"ffff9b61a77be000:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29778,"Path":"/run/systemd/journal/syslog"},{"Num":"ffff9b61a77bdc00:","RefCount":"0000000A","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29785,"Path":"/run/systemd/journal/dev-log"},{"Num":"ffff9b61a77bc000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29787,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a77bcc00:","RefCount":"00000009","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29789,"Path":"/run/systemd/journal/socket"},{"Num":"ffff9b61a777c000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":30858,"Path":"/run/systemd/journal/io.systemd.journal"},{"Num":"ffff9b61a777f800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35985,"Path":"@ISCSIADM_ABSTRACT_NAMESPACE"},{"Num":"ffff9b61b0e55400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":41865},{"Num":"ffff9b61b2c07800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":40074,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b2d56c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":37639},{"Num":"ffff9b61a7842800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34191},{"Num":"ffff9b61b5a91000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34731},{"Num":"ffff9b61a7842c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34198},{"Num":"ffff9b61b4a40000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37395},{"Num":"ffff9b61ac18a400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34187},{"Num":"ffff9b61b0e54400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":41868,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61ab65dc00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":32191,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b4a40400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37695,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b5a90800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34732},{"Num":"ffff9b61a777c400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":34123},{"Num":"ffff9b61a77bc400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":104866},{"Num":"ffff9b61b279d000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39056},{"Num":"ffff9b61a777cc00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37694,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b579d000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35846,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b4a43000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35594,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61ab65ec00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":33108},{"Num":"ffff9b61a7840000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34195},{"Num":"ffff9b61a77bf800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":30127},{"Num":"ffff9b61b633a000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30139},{"Num":"ffff9b61a77bf400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37473},{"Num":"ffff9b61b633ac00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30140},{"Num":"ffff9b61b5a93000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34729},{"Num":"ffff9b61a77bf000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29762},{"Num":"ffff9b61ab7fe400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30860},{"Num":"ffff9b61b0e56400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":41864},{"Num":"ffff9b61b4058000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35735,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a777e400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":36549},{"Num":"ffff9b61b0e56000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":41867},{"Num":"ffff9b61b4820000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37693,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b3af2400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37400,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a77be400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29763},{"Num":"ffff9b61a7841800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34196},{"Num":"ffff9b61a777ec00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":36166},{"Num":"ffff9b61b633b800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":30891,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a7779000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":36010},{"Num":"ffff9b61b2897800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37635,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b5a95800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37691,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b2798c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39057},{"Num":"ffff9b61ac18fc00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":32701,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a7846800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":33991,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a7778000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35845},{"Num":"ffff9b61a7847000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35984},{"Num":"ffff9b61a77b8800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35734},{"Num":"ffff9b61b5a94800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34725},{"Num":"ffff9b61a77b8400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35806},{"Num":"ffff9b61a7778800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":34722},{"Num":"ffff9b61a7778c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38537},{"Num":"ffff9b61a77b8000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35593},{"Num":"ffff9b61b5a94000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35262,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b2799400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39051},{"Num":"ffff9b61a777b000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":33989},{"Num":"ffff9b61b2c01400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37547,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a77bb400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":41833,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b5a97400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35983},{"Num":"ffff9b61b4825c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35453},{"Num":"ffff9b61a7844800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34197},{"Num":"ffff9b61a77bb000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":42102},{"Num":"ffff9b61b0e53800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":41844},{"Num":"ffff9b61a7844c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37692,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61a777a000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":36317},{"Num":"ffff9b61b2c00000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38743},{"Num":"ffff9b61b4824400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":35335},{"Num":"ffff9b61b279b800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39052,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b08e4800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":32702,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b5a96400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34730},{"Num":"ffff9b61a777a800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":34066},{"Num":"ffff9b61a77ba400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30241},{"Num":"ffff9b61b633f800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30136},{"Num":"ffff9b61b288b800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37721,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b48ab800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39006,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b0defc00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":42110},{"Num":"ffff9b61b3b5ac00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39035,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b612acc4800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":104870,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b612acc5000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":103612,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b4121c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":37688},{"Num":"ffff9b61ab534400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":40763},{"Num":"ffff9b61b24a3800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37831},{"Num":"ffff9b61b6334400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":38990},{"Num":"ffff9b612acc2400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":104869},{"Num":"ffff9b61af8ce800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":89141},{"Num":"ffff9b61af8cf000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":86011},{"Num":"ffff9b61b6335000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38997,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b3b5d000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39038},{"Num":"ffff9b61b4127000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35808,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b3b5e400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37474,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b42d7c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":36009},{"Num":"ffff9b61b3b5ec00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39037},{"Num":"ffff9b61af8cc800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":86012},{"Num":"ffff9b61b3b5e800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39034},{"Num":"ffff9b61b6337400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38996},{"Num":"ffff9b61b4125400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37690},{"Num":"ffff9b61af8cd000:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":89121},{"Num":"ffff9b61b288cc00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":85934},{"Num":"ffff9b61b4125000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37689},{"Num":"ffff9b61b288c000:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":85914},{"Num":"ffff9b61b24a0400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37832,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b288c400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38139}] diff --git a/tests/fixtures/linux-proc/pagetypeinfo b/tests/fixtures/linux-proc/pagetypeinfo new file mode 100644 index 00000000..6c7d0ed8 --- /dev/null +++ b/tests/fixtures/linux-proc/pagetypeinfo @@ -0,0 +1,24 @@ +Page block order: 9 +Pages per block: 512 + +Free pages count per migrate type at order 0 1 2 3 4 5 6 7 8 9 10 +Node 0, zone DMA, type Unmovable 0 0 0 1 1 1 1 1 0 0 0 +Node 0, zone DMA, type Movable 0 0 0 0 0 0 0 0 0 1 3 +Node 0, zone DMA, type Reclaimable 0 0 0 0 0 0 0 0 0 0 0 +Node 0, zone DMA, type HighAtomic 0 0 0 0 0 0 0 0 0 0 0 +Node 0, zone DMA, type Isolate 0 0 0 0 0 0 0 0 0 0 0 +Node 0, zone DMA32, type Unmovable 1 2 1 3 5 2 1 0 0 1 0 +Node 0, zone DMA32, type Movable 20 52 78 47 32 23 11 9 2 2 629 +Node 0, zone DMA32, type Reclaimable 2 1 3 0 1 0 1 0 1 1 0 +Node 0, zone DMA32, type HighAtomic 0 0 0 0 0 0 0 0 0 0 0 +Node 0, zone DMA32, type Isolate 0 0 0 0 0 0 0 0 0 0 0 +Node 0, zone Normal, type Unmovable 0 22 7 9 0 0 0 0 0 0 0 +Node 0, zone Normal, type Movable 0 0 1 1 1 1 2 11 13 0 0 +Node 0, zone Normal, type Reclaimable 0 0 0 0 0 0 0 0 0 0 0 +Node 0, zone Normal, type HighAtomic 0 0 0 0 0 0 0 0 0 0 0 +Node 0, zone Normal, type Isolate 0 0 0 0 0 0 0 0 0 0 0 + +Number of blocks type Unmovable Movable Reclaimable HighAtomic Isolate +Node 0, zone DMA 1 7 0 0 0 +Node 0, zone DMA32 8 1472 48 0 0 +Node 0, zone Normal 120 345 47 0 0 diff --git a/tests/fixtures/linux-proc/pagetypeinfo.json b/tests/fixtures/linux-proc/pagetypeinfo.json new file mode 100644 index 00000000..b0b4fe13 --- /dev/null +++ b/tests/fixtures/linux-proc/pagetypeinfo.json @@ -0,0 +1 @@ +{"page_block_order":9,"pages_per_block":512,"free_pages":[{"node":0,"zone":"DMA","type":"Unmovable","free":[0,0,0,1,1,1,1,1,0,0,0]},{"node":0,"zone":"DMA","type":"Movable","free":[0,0,0,0,0,0,0,0,0,1,3]},{"node":0,"zone":"DMA","type":"Reclaimable","free":[0,0,0,0,0,0,0,0,0,0,0]},{"node":0,"zone":"DMA","type":"HighAtomic","free":[0,0,0,0,0,0,0,0,0,0,0]},{"node":0,"zone":"DMA","type":"Isolate","free":[0,0,0,0,0,0,0,0,0,0,0]},{"node":0,"zone":"DMA32","type":"Unmovable","free":[1,2,1,3,5,2,1,0,0,1,0]},{"node":0,"zone":"DMA32","type":"Movable","free":[20,52,78,47,32,23,11,9,2,2,629]},{"node":0,"zone":"DMA32","type":"Reclaimable","free":[2,1,3,0,1,0,1,0,1,1,0]},{"node":0,"zone":"DMA32","type":"HighAtomic","free":[0,0,0,0,0,0,0,0,0,0,0]},{"node":0,"zone":"DMA32","type":"Isolate","free":[0,0,0,0,0,0,0,0,0,0,0]},{"node":0,"zone":"Normal","type":"Unmovable","free":[0,22,7,9,0,0,0,0,0,0,0]},{"node":0,"zone":"Normal","type":"Movable","free":[0,0,1,1,1,1,2,11,13,0,0]},{"node":0,"zone":"Normal","type":"Reclaimable","free":[0,0,0,0,0,0,0,0,0,0,0]},{"node":0,"zone":"Normal","type":"HighAtomic","free":[0,0,0,0,0,0,0,0,0,0,0]},{"node":0,"zone":"Normal","type":"Isolate","free":[0,0,0,0,0,0,0,0,0,0,0]}],"num_blocks_type":[{"node":0,"zone":"DMA","unmovable":1,"movable":7,"reclaimable":0,"high_atomic":0,"isolate":0},{"node":0,"zone":"DMA32","unmovable":8,"movable":1472,"reclaimable":48,"high_atomic":0,"isolate":0},{"node":0,"zone":"Normal","unmovable":120,"movable":345,"reclaimable":47,"high_atomic":0,"isolate":0}]} diff --git a/tests/fixtures/linux-proc/partitions b/tests/fixtures/linux-proc/partitions new file mode 100644 index 00000000..cbbf74af --- /dev/null +++ b/tests/fixtures/linux-proc/partitions @@ -0,0 +1,16 @@ +major minor #blocks name + + 7 0 56896 loop0 + 7 1 56868 loop1 + 7 2 111248 loop2 + 7 3 63448 loop3 + 7 5 48088 loop5 + 7 6 48080 loop6 + 7 7 105464 loop7 + 8 0 20971520 sda + 8 1 1024 sda1 + 8 2 1048576 sda2 + 8 3 19919872 sda3 + 11 0 1021566 sr0 + 253 0 19918848 dm-0 + 7 8 63444 loop8 diff --git a/tests/fixtures/linux-proc/partitions.json b/tests/fixtures/linux-proc/partitions.json new file mode 100644 index 00000000..2a7d5cd6 --- /dev/null +++ b/tests/fixtures/linux-proc/partitions.json @@ -0,0 +1 @@ +[{"major":7,"minor":0,"num_blocks":56896,"name":"loop0"},{"major":7,"minor":1,"num_blocks":56868,"name":"loop1"},{"major":7,"minor":2,"num_blocks":111248,"name":"loop2"},{"major":7,"minor":3,"num_blocks":63448,"name":"loop3"},{"major":7,"minor":5,"num_blocks":48088,"name":"loop5"},{"major":7,"minor":6,"num_blocks":48080,"name":"loop6"},{"major":7,"minor":7,"num_blocks":105464,"name":"loop7"},{"major":8,"minor":0,"num_blocks":20971520,"name":"sda"},{"major":8,"minor":1,"num_blocks":1024,"name":"sda1"},{"major":8,"minor":2,"num_blocks":1048576,"name":"sda2"},{"major":8,"minor":3,"num_blocks":19919872,"name":"sda3"},{"major":11,"minor":0,"num_blocks":1021566,"name":"sr0"},{"major":253,"minor":0,"num_blocks":19918848,"name":"dm-0"},{"major":7,"minor":8,"num_blocks":63444,"name":"loop8"}] diff --git a/tests/fixtures/linux-proc/pid_fdinfo b/tests/fixtures/linux-proc/pid_fdinfo new file mode 100644 index 00000000..67a47247 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo @@ -0,0 +1,6 @@ +pos: 0 +flags: 02004002 +mnt_id: 9 +scm_fds: 0 +ino: 63107 +lock: 1: FLOCK ADVISORY WRITE 359 00:13:11691 0 EOF diff --git a/tests/fixtures/linux-proc/pid_fdinfo.json b/tests/fixtures/linux-proc/pid_fdinfo.json new file mode 100644 index 00000000..f787616a --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo.json @@ -0,0 +1 @@ +{"pos":0,"flags":2004002,"mnt_id":9,"scm_fds":"0","ino":63107,"lock":"1: FLOCK ADVISORY WRITE 359 00:13:11691 0 EOF"} diff --git a/tests/fixtures/linux-proc/pid_fdinfo_dma b/tests/fixtures/linux-proc/pid_fdinfo_dma new file mode 100644 index 00000000..a7f63a13 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_dma @@ -0,0 +1,7 @@ +pos: 0 +flags: 04002 +mnt_id: 9 +ino: 63107 +size: 32768 +count: 2 +exp_name: system-heap diff --git a/tests/fixtures/linux-proc/pid_fdinfo_dma.json b/tests/fixtures/linux-proc/pid_fdinfo_dma.json new file mode 100644 index 00000000..9fc5b3f1 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_dma.json @@ -0,0 +1 @@ +{"pos":0,"flags":4002,"mnt_id":9,"ino":63107,"size":32768,"count":2,"exp_name":"system-heap"} diff --git a/tests/fixtures/linux-proc/pid_fdinfo_epoll b/tests/fixtures/linux-proc/pid_fdinfo_epoll new file mode 100644 index 00000000..fd1ccb8e --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_epoll @@ -0,0 +1,5 @@ +pos: 0 +flags: 02 +mnt_id: 9 +ino: 63107 +tfd: 5 events: 1d data: ffffffffffffffff pos:0 ino:61af sdev:7 diff --git a/tests/fixtures/linux-proc/pid_fdinfo_epoll.json b/tests/fixtures/linux-proc/pid_fdinfo_epoll.json new file mode 100644 index 00000000..90d1e98f --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_epoll.json @@ -0,0 +1 @@ +{"pos":0,"flags":2,"mnt_id":9,"ino":63107,"epoll":{"tfd":5,"events":"1d","data":"ffffffffffffffff","pos":0,"ino":"61af","sdev":"7"}} diff --git a/tests/fixtures/linux-proc/pid_fdinfo_fanotify b/tests/fixtures/linux-proc/pid_fdinfo_fanotify new file mode 100644 index 00000000..e7a8938e --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_fanotify @@ -0,0 +1,7 @@ +pos: 0 +flags: 02 +mnt_id: 9 +ino: 63107 +fanotify flags:10 event-flags:0 +fanotify mnt_id:12 mflags:40 mask:38 ignored_mask:40000003 +fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type:1 f_handle:69f90400c275b5b4 diff --git a/tests/fixtures/linux-proc/pid_fdinfo_fanotify.json b/tests/fixtures/linux-proc/pid_fdinfo_fanotify.json new file mode 100644 index 00000000..029f99ec --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_fanotify.json @@ -0,0 +1 @@ +{"pos":0,"flags":2,"mnt_id":9,"ino":63107,"fanotify":{"flags":"10","event-flags":"0","mnt_id":"12","mflags":"0","mask":"3b","ignored_mask":"40000000","ino":"4f969","sdev":"800013","fhandle-bytes":"8","fhandle-type":"1","f_handle":"69f90400c275b5b4"}} diff --git a/tests/fixtures/linux-proc/pid_fdinfo_inotify b/tests/fixtures/linux-proc/pid_fdinfo_inotify new file mode 100644 index 00000000..2c3599ea --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_inotify @@ -0,0 +1,5 @@ +pos: 0 +flags: 02000000 +mnt_id: 9 +ino: 63107 +inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:7e9e0000640d1b6d diff --git a/tests/fixtures/linux-proc/pid_fdinfo_inotify.json b/tests/fixtures/linux-proc/pid_fdinfo_inotify.json new file mode 100644 index 00000000..0c990895 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_inotify.json @@ -0,0 +1 @@ +{"pos":0,"flags":2000000,"mnt_id":9,"ino":63107,"inotify":{"wd":3,"ino":"9e7e","sdev":"800013","mask":"800afce","ignored_mask":"0","fhandle-bytes":"8","fhandle-type":"1","f_handle":"7e9e0000640d1b6d"}} diff --git a/tests/fixtures/linux-proc/pid_fdinfo_timerfd b/tests/fixtures/linux-proc/pid_fdinfo_timerfd new file mode 100644 index 00000000..8c426f9e --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_timerfd @@ -0,0 +1,9 @@ +pos: 0 +flags: 02 +mnt_id: 9 +ino: 63107 +clockid: 0 +ticks: 0 +settime flags: 01 +it_value: (0, 49406829) +it_interval: (1, 0) diff --git a/tests/fixtures/linux-proc/pid_fdinfo_timerfd.json b/tests/fixtures/linux-proc/pid_fdinfo_timerfd.json new file mode 100644 index 00000000..d0bf262c --- /dev/null +++ b/tests/fixtures/linux-proc/pid_fdinfo_timerfd.json @@ -0,0 +1 @@ +{"pos":0,"flags":2,"mnt_id":9,"ino":63107,"clockid":0,"ticks":0,"settime flags":1,"it_value":[0,49406829],"it_interval":[1,0]} diff --git a/tests/fixtures/linux-proc/pid_io b/tests/fixtures/linux-proc/pid_io new file mode 100644 index 00000000..3c09d314 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_io @@ -0,0 +1,7 @@ +rchar: 4699288382 +wchar: 2931802997 +syscr: 661897 +syscw: 890910 +read_bytes: 168468480 +write_bytes: 27357184 +cancelled_write_bytes: 16883712 diff --git a/tests/fixtures/linux-proc/pid_io.json b/tests/fixtures/linux-proc/pid_io.json new file mode 100644 index 00000000..96035be5 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_io.json @@ -0,0 +1 @@ +{"rchar":4699288382,"wchar":2931802997,"syscr":661897,"syscw":890910,"read_bytes":168468480,"write_bytes":27357184,"cancelled_write_bytes":16883712} diff --git a/tests/fixtures/linux-proc/pid_maps b/tests/fixtures/linux-proc/pid_maps new file mode 100644 index 00000000..c3a6b432 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_maps @@ -0,0 +1,214 @@ +55a9e753c000-55a9e7570000 r--p 00000000 fd:00 798126 /usr/lib/systemd/systemd +55a9e7570000-55a9e763a000 r-xp 00034000 fd:00 798126 /usr/lib/systemd/systemd +55a9e763a000-55a9e7694000 r--p 000fe000 fd:00 798126 /usr/lib/systemd/systemd +55a9e7695000-55a9e76da000 r--p 00158000 fd:00 798126 /usr/lib/systemd/systemd +55a9e76da000-55a9e76db000 rw-p 0019d000 fd:00 798126 /usr/lib/systemd/systemd +55a9e8cd4000-55a9e8f68000 rw-p 00000000 00:00 0 [heap] +7f53a4000000-7f53a4021000 rw-p 00000000 00:00 0 +7f53a4021000-7f53a8000000 ---p 00000000 00:00 0 +7f53ac000000-7f53ac021000 rw-p 00000000 00:00 0 +7f53ac021000-7f53b0000000 ---p 00000000 00:00 0 +7f53b2fb8000-7f53b2fb9000 ---p 00000000 00:00 0 +7f53b2fb9000-7f53b37b9000 rw-p 00000000 00:00 0 +7f53b37b9000-7f53b37ba000 ---p 00000000 00:00 0 +7f53b37ba000-7f53b3fc1000 rw-p 00000000 00:00 0 +7f53b3fc1000-7f53b3fd0000 r--p 00000000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +7f53b3fd0000-7f53b4077000 r-xp 0000f000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +7f53b4077000-7f53b410e000 r--p 000b6000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +7f53b410e000-7f53b410f000 r--p 0014c000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +7f53b410f000-7f53b4110000 rw-p 0014d000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +7f53b4110000-7f53b4114000 r--p 00000000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +7f53b4114000-7f53b412d000 r-xp 00004000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +7f53b412d000-7f53b4136000 r--p 0001d000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +7f53b4136000-7f53b4137000 r--p 00025000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +7f53b4137000-7f53b4138000 rw-p 00026000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +7f53b4138000-7f53b4148000 r--p 00000000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +7f53b4148000-7f53b417e000 r-xp 00010000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +7f53b417e000-7f53b42b5000 r--p 00046000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +7f53b42b5000-7f53b42b6000 ---p 0017d000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +7f53b42b6000-7f53b42b9000 r--p 0017d000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +7f53b42b9000-7f53b42ba000 rw-p 00180000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +7f53b42ba000-7f53b42bf000 r--p 00000000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +7f53b42bf000-7f53b42d4000 r-xp 00005000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +7f53b42d4000-7f53b42de000 r--p 0001a000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +7f53b42de000-7f53b42df000 ---p 00024000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +7f53b42df000-7f53b42e0000 r--p 00024000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +7f53b42e0000-7f53b42e1000 rw-p 00025000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +7f53b42e1000-7f53b42e5000 r--p 00000000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +7f53b42e5000-7f53b42ee000 r-xp 00004000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +7f53b42ee000-7f53b42f2000 r--p 0000d000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +7f53b42f2000-7f53b42f3000 r--p 00010000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +7f53b42f3000-7f53b42f4000 rw-p 00011000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +7f53b42f4000-7f53b42f6000 rw-p 00000000 00:00 0 +7f53b42f6000-7f53b42f7000 r--p 00000000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +7f53b42f7000-7f53b42fc000 r-xp 00001000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +7f53b42fc000-7f53b42fe000 r--p 00006000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +7f53b42fe000-7f53b42ff000 r--p 00007000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +7f53b42ff000-7f53b4300000 rw-p 00008000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +7f53b4300000-7f53b430a000 r--p 00000000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +7f53b430a000-7f53b4352000 r-xp 0000a000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +7f53b4352000-7f53b4366000 r--p 00052000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +7f53b4366000-7f53b4367000 r--p 00065000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +7f53b4367000-7f53b436a000 rw-p 00066000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +7f53b436a000-7f53b436b000 rw-p 00000000 00:00 0 +7f53b436b000-7f53b436d000 r--p 00000000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +7f53b436d000-7f53b4371000 r-xp 00002000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +7f53b4371000-7f53b4372000 r--p 00006000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +7f53b4372000-7f53b4373000 r--p 00006000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +7f53b4373000-7f53b4374000 rw-p 00007000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +7f53b4374000-7f53b43ec000 r--p 00000000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +7f53b43ec000-7f53b458e000 r-xp 00078000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +7f53b458e000-7f53b461e000 r--p 0021a000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +7f53b461e000-7f53b461f000 ---p 002aa000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +7f53b461f000-7f53b464b000 r--p 002aa000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +7f53b464b000-7f53b464d000 rw-p 002d6000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +7f53b464d000-7f53b4651000 rw-p 00000000 00:00 0 +7f53b4651000-7f53b4653000 r--p 00000000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +7f53b4653000-7f53b4656000 r-xp 00002000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +7f53b4656000-7f53b4657000 r--p 00005000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +7f53b4657000-7f53b4658000 r--p 00005000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +7f53b4658000-7f53b4659000 rw-p 00006000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +7f53b4659000-7f53b465b000 r--p 00000000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +7f53b465b000-7f53b46bf000 r-xp 00002000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +7f53b46bf000-7f53b46e7000 r--p 00066000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +7f53b46e7000-7f53b46e8000 r--p 0008d000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +7f53b46e8000-7f53b46e9000 rw-p 0008e000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +7f53b46e9000-7f53b46eb000 rw-p 00000000 00:00 0 +7f53b46eb000-7f53b46f2000 r--p 00000000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +7f53b46f2000-7f53b4702000 r-xp 00007000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +7f53b4702000-7f53b4707000 r--p 00017000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +7f53b4707000-7f53b4708000 r--p 0001b000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +7f53b4708000-7f53b4709000 rw-p 0001c000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +7f53b4709000-7f53b470d000 rw-p 00000000 00:00 0 +7f53b470d000-7f53b470e000 r--p 00000000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +7f53b470e000-7f53b4710000 r-xp 00001000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +7f53b4710000-7f53b4711000 r--p 00003000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +7f53b4711000-7f53b4712000 r--p 00003000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +7f53b4712000-7f53b4713000 rw-p 00004000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +7f53b4713000-7f53b4716000 r--p 00000000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +7f53b4716000-7f53b472e000 r-xp 00003000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +7f53b472e000-7f53b4739000 r--p 0001b000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +7f53b4739000-7f53b473a000 ---p 00026000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +7f53b473a000-7f53b473b000 r--p 00026000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +7f53b473b000-7f53b473c000 rw-p 00027000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +7f53b473c000-7f53b4740000 r--p 00000000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +7f53b4740000-7f53b47f8000 r-xp 00004000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +7f53b47f8000-7f53b480a000 r--p 000bc000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +7f53b480a000-7f53b480b000 r--p 000cd000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +7f53b480b000-7f53b480c000 rw-p 000ce000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +7f53b480c000-7f53b480e000 r--p 00000000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +7f53b480e000-7f53b4829000 r-xp 00002000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +7f53b4829000-7f53b482c000 r--p 0001d000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +7f53b482c000-7f53b482d000 r--p 0001f000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +7f53b482d000-7f53b482e000 rw-p 00020000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +7f53b482e000-7f53b4830000 rw-p 00000000 00:00 0 +7f53b4830000-7f53b4832000 r--p 00000000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +7f53b4832000-7f53b4836000 r-xp 00002000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +7f53b4836000-7f53b4838000 r--p 00006000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +7f53b4838000-7f53b4839000 r--p 00007000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +7f53b4839000-7f53b483a000 rw-p 00008000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +7f53b483a000-7f53b483c000 r--p 00000000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +7f53b483c000-7f53b4841000 r-xp 00002000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +7f53b4841000-7f53b485a000 r--p 00007000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +7f53b485a000-7f53b485b000 r--p 0001f000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +7f53b485b000-7f53b485c000 rw-p 00020000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +7f53b485c000-7f53b4868000 r--p 00000000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +7f53b4868000-7f53b4936000 r-xp 0000c000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +7f53b4936000-7f53b4973000 r--p 000da000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +7f53b4973000-7f53b4975000 r--p 00116000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +7f53b4975000-7f53b497a000 rw-p 00118000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +7f53b497a000-7f53b4981000 r--p 00000000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +7f53b4981000-7f53b49d2000 r-xp 00007000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +7f53b49d2000-7f53b49ec000 r--p 00058000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +7f53b49ec000-7f53b49ed000 ---p 00072000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +7f53b49ed000-7f53b49ef000 r--p 00072000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +7f53b49ef000-7f53b49f1000 rw-p 00074000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +7f53b49f1000-7f53b49f3000 r--p 00000000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +7f53b49f3000-7f53b4a08000 r-xp 00002000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +7f53b4a08000-7f53b4a22000 r--p 00017000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +7f53b4a22000-7f53b4a23000 r--p 00030000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +7f53b4a23000-7f53b4a24000 rw-p 00031000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +7f53b4a24000-7f53b4a2c000 rw-p 00000000 00:00 0 +7f53b4a2c000-7f53b4a2f000 r--p 00000000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +7f53b4a2f000-7f53b4a33000 r-xp 00003000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +7f53b4a33000-7f53b4a35000 r--p 00007000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +7f53b4a35000-7f53b4a36000 r--p 00008000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +7f53b4a36000-7f53b4a37000 rw-p 00009000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +7f53b4a37000-7f53b4a39000 rw-p 00000000 00:00 0 +7f53b4a39000-7f53b4a42000 r--p 00000000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +7f53b4a42000-7f53b4a76000 r-xp 00009000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +7f53b4a76000-7f53b4a86000 r--p 0003d000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +7f53b4a86000-7f53b4a87000 ---p 0004d000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +7f53b4a87000-7f53b4a8b000 r--p 0004d000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +7f53b4a8b000-7f53b4a8c000 rw-p 00051000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +7f53b4a8c000-7f53b4a8e000 r--p 00000000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +7f53b4a8e000-7f53b4a93000 r-xp 00002000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +7f53b4a93000-7f53b4a95000 r--p 00007000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +7f53b4a95000-7f53b4a96000 r--p 00008000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +7f53b4a96000-7f53b4a97000 rw-p 00009000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +7f53b4a97000-7f53b4abd000 r--p 00000000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +7f53b4abd000-7f53b4c2a000 r-xp 00026000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +7f53b4c2a000-7f53b4c76000 r--p 00193000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +7f53b4c76000-7f53b4c77000 ---p 001df000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +7f53b4c77000-7f53b4c7a000 r--p 001df000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +7f53b4c7a000-7f53b4c7d000 rw-p 001e2000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +7f53b4c7d000-7f53b4c81000 rw-p 00000000 00:00 0 +7f53b4c81000-7f53b4c84000 r--p 00000000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +7f53b4c84000-7f53b4c8d000 r-xp 00003000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +7f53b4c8d000-7f53b4c94000 r--p 0000c000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +7f53b4c94000-7f53b4c95000 r--p 00012000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +7f53b4c95000-7f53b4c96000 rw-p 00013000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +7f53b4c96000-7f53b4c99000 r--p 00000000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +7f53b4c99000-7f53b4ca9000 r-xp 00003000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +7f53b4ca9000-7f53b4caf000 r--p 00013000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +7f53b4caf000-7f53b4cb0000 r--p 00018000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +7f53b4cb0000-7f53b4cb1000 rw-p 00019000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +7f53b4cb1000-7f53b4cb4000 r--p 00000000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +7f53b4cb4000-7f53b4cbc000 r-xp 00003000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +7f53b4cbc000-7f53b4cd0000 r--p 0000b000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +7f53b4cd0000-7f53b4cd1000 ---p 0001f000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +7f53b4cd1000-7f53b4cd2000 r--p 0001f000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +7f53b4cd2000-7f53b4cd3000 rw-p 00020000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +7f53b4cd3000-7f53b4cdf000 rw-p 00000000 00:00 0 +7f53b4cdf000-7f53b4ce2000 r--p 00000000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +7f53b4ce2000-7f53b4ceb000 r-xp 00003000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +7f53b4ceb000-7f53b4cef000 r--p 0000c000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +7f53b4cef000-7f53b4cf0000 r--p 0000f000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +7f53b4cf0000-7f53b4cf1000 rw-p 00010000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +7f53b4cf1000-7f53b4cfb000 r--p 00000000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +7f53b4cfb000-7f53b4d39000 r-xp 0000a000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +7f53b4d39000-7f53b4d4c000 r--p 00048000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +7f53b4d4c000-7f53b4d4e000 r--p 0005a000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +7f53b4d4e000-7f53b4d4f000 rw-p 0005c000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +7f53b4d4f000-7f53b4d55000 r--p 00000000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7f53b4d55000-7f53b4d6e000 r-xp 00006000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7f53b4d6e000-7f53b4d76000 r--p 0001f000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7f53b4d76000-7f53b4d77000 r--p 00026000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7f53b4d77000-7f53b4d78000 rw-p 00027000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7f53b4d78000-7f53b4d7a000 rw-p 00000000 00:00 0 +7f53b4d7a000-7f53b4da2000 r--p 00000000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +7f53b4da2000-7f53b4dad000 r-xp 00028000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +7f53b4dad000-7f53b4db1000 r--p 00033000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +7f53b4db1000-7f53b4dcc000 r--p 00036000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +7f53b4dcc000-7f53b4dcd000 rw-p 00051000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +7f53b4dcd000-7f53b4dd0000 r--p 00000000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +7f53b4dd0000-7f53b4dd4000 r-xp 00003000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +7f53b4dd4000-7f53b4dd6000 r--p 00007000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +7f53b4dd6000-7f53b4dd7000 r--p 00008000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +7f53b4dd7000-7f53b4dd8000 rw-p 00009000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +7f53b4ddf000-7f53b4e29000 r--p 00000000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +7f53b4e29000-7f53b4fac000 r-xp 0004a000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +7f53b4fac000-7f53b503f000 r--p 001cd000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +7f53b503f000-7f53b5040000 ---p 00260000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +7f53b5040000-7f53b5050000 r--p 00260000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +7f53b5050000-7f53b5051000 rw-p 00270000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +7f53b5051000-7f53b5054000 rw-p 00000000 00:00 0 +7f53b5054000-7f53b5055000 r--p 00000000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +7f53b5055000-7f53b5079000 r-xp 00001000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +7f53b5079000-7f53b5082000 r--p 00025000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +7f53b5082000-7f53b5083000 r--p 0002d000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +7f53b5083000-7f53b5085000 rw-p 0002e000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +7ffd1b23e000-7ffd1b340000 rw-p 00000000 00:00 0 [stack] +7ffd1b3b1000-7ffd1b3b5000 r--p 00000000 00:00 0 [vvar] +7ffd1b3b5000-7ffd1b3b7000 r-xp 00000000 00:00 0 [vdso] +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] diff --git a/tests/fixtures/linux-proc/pid_maps.json b/tests/fixtures/linux-proc/pid_maps.json new file mode 100644 index 00000000..30f4109a --- /dev/null +++ b/tests/fixtures/linux-proc/pid_maps.json @@ -0,0 +1 @@ +[{"perms":["read","private"],"offset":"00000000","inode":798126,"pathname":"/usr/lib/systemd/systemd","start":"55a9e753c000","end":"55a9e7570000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00034000","inode":798126,"pathname":"/usr/lib/systemd/systemd","start":"55a9e7570000","end":"55a9e763a000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"000fe000","inode":798126,"pathname":"/usr/lib/systemd/systemd","start":"55a9e763a000","end":"55a9e7694000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00158000","inode":798126,"pathname":"/usr/lib/systemd/systemd","start":"55a9e7695000","end":"55a9e76da000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"0019d000","inode":798126,"pathname":"/usr/lib/systemd/systemd","start":"55a9e76da000","end":"55a9e76db000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"pathname":"[heap]","start":"55a9e8cd4000","end":"55a9e8f68000","maj":"00","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53a4000000","end":"7f53a4021000","maj":"00","min":"00"},{"perms":["private"],"offset":"00000000","inode":0,"start":"7f53a4021000","end":"7f53a8000000","maj":"00","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53ac000000","end":"7f53ac021000","maj":"00","min":"00"},{"perms":["private"],"offset":"00000000","inode":0,"start":"7f53ac021000","end":"7f53b0000000","maj":"00","min":"00"},{"perms":["private"],"offset":"00000000","inode":0,"start":"7f53b2fb8000","end":"7f53b2fb9000","maj":"00","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b2fb9000","end":"7f53b37b9000","maj":"00","min":"00"},{"perms":["private"],"offset":"00000000","inode":0,"start":"7f53b37b9000","end":"7f53b37ba000","maj":"00","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b37ba000","end":"7f53b3fc1000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","start":"7f53b3fc1000","end":"7f53b3fd0000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"0000f000","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","start":"7f53b3fd0000","end":"7f53b4077000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"000b6000","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","start":"7f53b4077000","end":"7f53b410e000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0014c000","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","start":"7f53b410e000","end":"7f53b410f000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"0014d000","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","start":"7f53b410f000","end":"7f53b4110000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","start":"7f53b4110000","end":"7f53b4114000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00004000","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","start":"7f53b4114000","end":"7f53b412d000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001d000","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","start":"7f53b412d000","end":"7f53b4136000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00025000","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","start":"7f53b4136000","end":"7f53b4137000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00026000","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","start":"7f53b4137000","end":"7f53b4138000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","start":"7f53b4138000","end":"7f53b4148000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00010000","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","start":"7f53b4148000","end":"7f53b417e000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00046000","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","start":"7f53b417e000","end":"7f53b42b5000","maj":"fd","min":"00"},{"perms":["private"],"offset":"0017d000","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","start":"7f53b42b5000","end":"7f53b42b6000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0017d000","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","start":"7f53b42b6000","end":"7f53b42b9000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00180000","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","start":"7f53b42b9000","end":"7f53b42ba000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","start":"7f53b42ba000","end":"7f53b42bf000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00005000","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","start":"7f53b42bf000","end":"7f53b42d4000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001a000","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","start":"7f53b42d4000","end":"7f53b42de000","maj":"fd","min":"00"},{"perms":["private"],"offset":"00024000","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","start":"7f53b42de000","end":"7f53b42df000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00024000","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","start":"7f53b42df000","end":"7f53b42e0000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00025000","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","start":"7f53b42e0000","end":"7f53b42e1000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","start":"7f53b42e1000","end":"7f53b42e5000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00004000","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","start":"7f53b42e5000","end":"7f53b42ee000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0000d000","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","start":"7f53b42ee000","end":"7f53b42f2000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00010000","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","start":"7f53b42f2000","end":"7f53b42f3000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00011000","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","start":"7f53b42f3000","end":"7f53b42f4000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b42f4000","end":"7f53b42f6000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","start":"7f53b42f6000","end":"7f53b42f7000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00001000","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","start":"7f53b42f7000","end":"7f53b42fc000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00006000","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","start":"7f53b42fc000","end":"7f53b42fe000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00007000","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","start":"7f53b42fe000","end":"7f53b42ff000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00008000","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","start":"7f53b42ff000","end":"7f53b4300000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","start":"7f53b4300000","end":"7f53b430a000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"0000a000","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","start":"7f53b430a000","end":"7f53b4352000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00052000","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","start":"7f53b4352000","end":"7f53b4366000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00065000","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","start":"7f53b4366000","end":"7f53b4367000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00066000","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","start":"7f53b4367000","end":"7f53b436a000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b436a000","end":"7f53b436b000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","start":"7f53b436b000","end":"7f53b436d000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00002000","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","start":"7f53b436d000","end":"7f53b4371000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00006000","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","start":"7f53b4371000","end":"7f53b4372000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00006000","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","start":"7f53b4372000","end":"7f53b4373000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00007000","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","start":"7f53b4373000","end":"7f53b4374000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","start":"7f53b4374000","end":"7f53b43ec000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00078000","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","start":"7f53b43ec000","end":"7f53b458e000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0021a000","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","start":"7f53b458e000","end":"7f53b461e000","maj":"fd","min":"00"},{"perms":["private"],"offset":"002aa000","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","start":"7f53b461e000","end":"7f53b461f000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"002aa000","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","start":"7f53b461f000","end":"7f53b464b000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"002d6000","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","start":"7f53b464b000","end":"7f53b464d000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b464d000","end":"7f53b4651000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","start":"7f53b4651000","end":"7f53b4653000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00002000","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","start":"7f53b4653000","end":"7f53b4656000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00005000","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","start":"7f53b4656000","end":"7f53b4657000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00005000","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","start":"7f53b4657000","end":"7f53b4658000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00006000","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","start":"7f53b4658000","end":"7f53b4659000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","start":"7f53b4659000","end":"7f53b465b000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00002000","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","start":"7f53b465b000","end":"7f53b46bf000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00066000","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","start":"7f53b46bf000","end":"7f53b46e7000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0008d000","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","start":"7f53b46e7000","end":"7f53b46e8000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"0008e000","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","start":"7f53b46e8000","end":"7f53b46e9000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b46e9000","end":"7f53b46eb000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","start":"7f53b46eb000","end":"7f53b46f2000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00007000","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","start":"7f53b46f2000","end":"7f53b4702000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00017000","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","start":"7f53b4702000","end":"7f53b4707000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001b000","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","start":"7f53b4707000","end":"7f53b4708000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"0001c000","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","start":"7f53b4708000","end":"7f53b4709000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b4709000","end":"7f53b470d000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","start":"7f53b470d000","end":"7f53b470e000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00001000","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","start":"7f53b470e000","end":"7f53b4710000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00003000","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","start":"7f53b4710000","end":"7f53b4711000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00003000","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","start":"7f53b4711000","end":"7f53b4712000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00004000","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","start":"7f53b4712000","end":"7f53b4713000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","start":"7f53b4713000","end":"7f53b4716000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00003000","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","start":"7f53b4716000","end":"7f53b472e000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001b000","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","start":"7f53b472e000","end":"7f53b4739000","maj":"fd","min":"00"},{"perms":["private"],"offset":"00026000","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","start":"7f53b4739000","end":"7f53b473a000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00026000","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","start":"7f53b473a000","end":"7f53b473b000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00027000","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","start":"7f53b473b000","end":"7f53b473c000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","start":"7f53b473c000","end":"7f53b4740000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00004000","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","start":"7f53b4740000","end":"7f53b47f8000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"000bc000","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","start":"7f53b47f8000","end":"7f53b480a000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"000cd000","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","start":"7f53b480a000","end":"7f53b480b000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"000ce000","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","start":"7f53b480b000","end":"7f53b480c000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","start":"7f53b480c000","end":"7f53b480e000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00002000","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","start":"7f53b480e000","end":"7f53b4829000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001d000","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","start":"7f53b4829000","end":"7f53b482c000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001f000","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","start":"7f53b482c000","end":"7f53b482d000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00020000","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","start":"7f53b482d000","end":"7f53b482e000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b482e000","end":"7f53b4830000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","start":"7f53b4830000","end":"7f53b4832000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00002000","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","start":"7f53b4832000","end":"7f53b4836000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00006000","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","start":"7f53b4836000","end":"7f53b4838000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00007000","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","start":"7f53b4838000","end":"7f53b4839000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00008000","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","start":"7f53b4839000","end":"7f53b483a000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","start":"7f53b483a000","end":"7f53b483c000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00002000","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","start":"7f53b483c000","end":"7f53b4841000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00007000","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","start":"7f53b4841000","end":"7f53b485a000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001f000","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","start":"7f53b485a000","end":"7f53b485b000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00020000","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","start":"7f53b485b000","end":"7f53b485c000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","start":"7f53b485c000","end":"7f53b4868000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"0000c000","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","start":"7f53b4868000","end":"7f53b4936000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"000da000","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","start":"7f53b4936000","end":"7f53b4973000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00116000","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","start":"7f53b4973000","end":"7f53b4975000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00118000","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","start":"7f53b4975000","end":"7f53b497a000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","start":"7f53b497a000","end":"7f53b4981000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00007000","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","start":"7f53b4981000","end":"7f53b49d2000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00058000","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","start":"7f53b49d2000","end":"7f53b49ec000","maj":"fd","min":"00"},{"perms":["private"],"offset":"00072000","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","start":"7f53b49ec000","end":"7f53b49ed000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00072000","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","start":"7f53b49ed000","end":"7f53b49ef000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00074000","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","start":"7f53b49ef000","end":"7f53b49f1000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","start":"7f53b49f1000","end":"7f53b49f3000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00002000","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","start":"7f53b49f3000","end":"7f53b4a08000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00017000","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","start":"7f53b4a08000","end":"7f53b4a22000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00030000","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","start":"7f53b4a22000","end":"7f53b4a23000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00031000","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","start":"7f53b4a23000","end":"7f53b4a24000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b4a24000","end":"7f53b4a2c000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","start":"7f53b4a2c000","end":"7f53b4a2f000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00003000","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","start":"7f53b4a2f000","end":"7f53b4a33000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00007000","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","start":"7f53b4a33000","end":"7f53b4a35000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00008000","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","start":"7f53b4a35000","end":"7f53b4a36000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00009000","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","start":"7f53b4a36000","end":"7f53b4a37000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b4a37000","end":"7f53b4a39000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","start":"7f53b4a39000","end":"7f53b4a42000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00009000","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","start":"7f53b4a42000","end":"7f53b4a76000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0003d000","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","start":"7f53b4a76000","end":"7f53b4a86000","maj":"fd","min":"00"},{"perms":["private"],"offset":"0004d000","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","start":"7f53b4a86000","end":"7f53b4a87000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0004d000","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","start":"7f53b4a87000","end":"7f53b4a8b000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00051000","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","start":"7f53b4a8b000","end":"7f53b4a8c000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","start":"7f53b4a8c000","end":"7f53b4a8e000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00002000","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","start":"7f53b4a8e000","end":"7f53b4a93000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00007000","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","start":"7f53b4a93000","end":"7f53b4a95000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00008000","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","start":"7f53b4a95000","end":"7f53b4a96000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00009000","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","start":"7f53b4a96000","end":"7f53b4a97000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","start":"7f53b4a97000","end":"7f53b4abd000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00026000","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","start":"7f53b4abd000","end":"7f53b4c2a000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00193000","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","start":"7f53b4c2a000","end":"7f53b4c76000","maj":"fd","min":"00"},{"perms":["private"],"offset":"001df000","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","start":"7f53b4c76000","end":"7f53b4c77000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"001df000","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","start":"7f53b4c77000","end":"7f53b4c7a000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"001e2000","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","start":"7f53b4c7a000","end":"7f53b4c7d000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b4c7d000","end":"7f53b4c81000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","start":"7f53b4c81000","end":"7f53b4c84000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00003000","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","start":"7f53b4c84000","end":"7f53b4c8d000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0000c000","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","start":"7f53b4c8d000","end":"7f53b4c94000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00012000","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","start":"7f53b4c94000","end":"7f53b4c95000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00013000","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","start":"7f53b4c95000","end":"7f53b4c96000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","start":"7f53b4c96000","end":"7f53b4c99000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00003000","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","start":"7f53b4c99000","end":"7f53b4ca9000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00013000","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","start":"7f53b4ca9000","end":"7f53b4caf000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00018000","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","start":"7f53b4caf000","end":"7f53b4cb0000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00019000","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","start":"7f53b4cb0000","end":"7f53b4cb1000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","start":"7f53b4cb1000","end":"7f53b4cb4000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00003000","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","start":"7f53b4cb4000","end":"7f53b4cbc000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0000b000","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","start":"7f53b4cbc000","end":"7f53b4cd0000","maj":"fd","min":"00"},{"perms":["private"],"offset":"0001f000","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","start":"7f53b4cd0000","end":"7f53b4cd1000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001f000","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","start":"7f53b4cd1000","end":"7f53b4cd2000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00020000","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","start":"7f53b4cd2000","end":"7f53b4cd3000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b4cd3000","end":"7f53b4cdf000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","start":"7f53b4cdf000","end":"7f53b4ce2000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00003000","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","start":"7f53b4ce2000","end":"7f53b4ceb000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0000c000","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","start":"7f53b4ceb000","end":"7f53b4cef000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0000f000","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","start":"7f53b4cef000","end":"7f53b4cf0000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00010000","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","start":"7f53b4cf0000","end":"7f53b4cf1000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","start":"7f53b4cf1000","end":"7f53b4cfb000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"0000a000","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","start":"7f53b4cfb000","end":"7f53b4d39000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00048000","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","start":"7f53b4d39000","end":"7f53b4d4c000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0005a000","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","start":"7f53b4d4c000","end":"7f53b4d4e000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"0005c000","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","start":"7f53b4d4e000","end":"7f53b4d4f000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","start":"7f53b4d4f000","end":"7f53b4d55000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00006000","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","start":"7f53b4d55000","end":"7f53b4d6e000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0001f000","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","start":"7f53b4d6e000","end":"7f53b4d76000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00026000","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","start":"7f53b4d76000","end":"7f53b4d77000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00027000","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","start":"7f53b4d77000","end":"7f53b4d78000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b4d78000","end":"7f53b4d7a000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","start":"7f53b4d7a000","end":"7f53b4da2000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00028000","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","start":"7f53b4da2000","end":"7f53b4dad000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00033000","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","start":"7f53b4dad000","end":"7f53b4db1000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00036000","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","start":"7f53b4db1000","end":"7f53b4dcc000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00051000","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","start":"7f53b4dcc000","end":"7f53b4dcd000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","start":"7f53b4dcd000","end":"7f53b4dd0000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00003000","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","start":"7f53b4dd0000","end":"7f53b4dd4000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00007000","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","start":"7f53b4dd4000","end":"7f53b4dd6000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00008000","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","start":"7f53b4dd6000","end":"7f53b4dd7000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00009000","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","start":"7f53b4dd7000","end":"7f53b4dd8000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","start":"7f53b4ddf000","end":"7f53b4e29000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"0004a000","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","start":"7f53b4e29000","end":"7f53b4fac000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"001cd000","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","start":"7f53b4fac000","end":"7f53b503f000","maj":"fd","min":"00"},{"perms":["private"],"offset":"00260000","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","start":"7f53b503f000","end":"7f53b5040000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00260000","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","start":"7f53b5040000","end":"7f53b5050000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00270000","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","start":"7f53b5050000","end":"7f53b5051000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"start":"7f53b5051000","end":"7f53b5054000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","start":"7f53b5054000","end":"7f53b5055000","maj":"fd","min":"00"},{"perms":["read","execute","private"],"offset":"00001000","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","start":"7f53b5055000","end":"7f53b5079000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"00025000","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","start":"7f53b5079000","end":"7f53b5082000","maj":"fd","min":"00"},{"perms":["read","private"],"offset":"0002d000","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","start":"7f53b5082000","end":"7f53b5083000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"0002e000","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","start":"7f53b5083000","end":"7f53b5085000","maj":"fd","min":"00"},{"perms":["read","write","private"],"offset":"00000000","inode":0,"pathname":"[stack]","start":"7ffd1b23e000","end":"7ffd1b340000","maj":"00","min":"00"},{"perms":["read","private"],"offset":"00000000","inode":0,"pathname":"[vvar]","start":"7ffd1b3b1000","end":"7ffd1b3b5000","maj":"00","min":"00"},{"perms":["read","execute","private"],"offset":"00000000","inode":0,"pathname":"[vdso]","start":"7ffd1b3b5000","end":"7ffd1b3b7000","maj":"00","min":"00"},{"perms":["execute","private"],"offset":"00000000","inode":0,"pathname":"[vsyscall]","start":"ffffffffff600000","end":"ffffffffff601000","maj":"00","min":"00"}] diff --git a/tests/fixtures/linux-proc/pid_mountinfo b/tests/fixtures/linux-proc/pid_mountinfo new file mode 100644 index 00000000..c4ad1cee --- /dev/null +++ b/tests/fixtures/linux-proc/pid_mountinfo @@ -0,0 +1,46 @@ +24 30 0:22 / /sys rw,nosuid,nodev,noexec,relatime master:1 shared:7 - sysfs sysfs rw +25 30 0:23 / /proc rw,nosuid,nodev,noexec,relatime shared:14 - proc proc rw +26 30 0:5 / /dev rw,nosuid,noexec,relatime - devtmpfs udev rw,size=1951480k,nr_inodes=487870,mode=755 +27 26 0:24 / /dev/pts rw,nosuid,noexec,relatime shared:3 - devpts devpts rw,gid=5,mode=620,ptmxmode=000 +28 30 0:25 / /run rw,nosuid,nodev,noexec,relatime shared:5 - tmpfs tmpfs rw,size=399728k,mode=755 +30 1 253:0 / / rw,relatime shared:1 - ext4 /dev/mapper/ubuntu--vg-ubuntu--lv +31 24 0:6 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime unbindable - securityfs securityfs rw +32 26 0:27 / /dev/shm rw,nosuid,nodev shared:4 - tmpfs tmpfs rw +33 28 0:28 / /run/lock rw,nosuid,nodev,noexec,relatime shared:6 - tmpfs tmpfs rw,size=5120k +34 24 0:29 / /sys/fs/cgroup ro,nosuid,nodev,noexec shared:9 - tmpfs tmpfs ro,size=4096k,nr_inodes=1024,mode=755 +35 34 0:30 / /sys/fs/cgroup/unified rw,nosuid,nodev,noexec,relatime shared:10 - cgroup2 cgroup2 rw,nsdelegate +36 34 0:31 / /sys/fs/cgroup/systemd rw,nosuid,nodev,noexec,relatime shared:11 - cgroup cgroup rw,xattr,name=systemd +37 24 0:32 / /sys/fs/pstore rw,nosuid,nodev,noexec,relatime shared:12 - pstore pstore rw +38 24 0:33 / /sys/fs/bpf rw,nosuid,nodev,noexec,relatime shared:13 - bpf none rw,mode=700 +39 34 0:34 / /sys/fs/cgroup/hugetlb rw,nosuid,nodev,noexec,relatime shared:15 - cgroup cgroup rw,hugetlb +40 34 0:35 / /sys/fs/cgroup/net_cls,net_prio rw,nosuid,nodev,noexec,relatime shared:16 - cgroup cgroup rw,net_cls,net_prio +41 34 0:36 / /sys/fs/cgroup/pids rw,nosuid,nodev,noexec,relatime shared:17 - cgroup cgroup rw,pids +42 34 0:37 / /sys/fs/cgroup/blkio rw,nosuid,nodev,noexec,relatime shared:18 - cgroup cgroup rw,blkio +43 34 0:38 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:19 - cgroup cgroup rw,memory +44 34 0:39 / /sys/fs/cgroup/devices rw,nosuid,nodev,noexec,relatime shared:20 - cgroup cgroup rw,devices +45 34 0:40 / /sys/fs/cgroup/cpu,cpuacct rw,nosuid,nodev,noexec,relatime shared:21 - cgroup cgroup rw,cpu,cpuacct +46 34 0:41 / /sys/fs/cgroup/rdma rw,nosuid,nodev,noexec,relatime shared:22 - cgroup cgroup rw,rdma +47 34 0:42 / /sys/fs/cgroup/perf_event rw,nosuid,nodev,noexec,relatime shared:23 - cgroup cgroup rw,perf_event +48 34 0:43 / /sys/fs/cgroup/freezer rw,nosuid,nodev,noexec,relatime shared:24 - cgroup cgroup rw,freezer +49 34 0:44 / /sys/fs/cgroup/cpuset rw,nosuid,nodev,noexec,relatime shared:25 - cgroup cgroup rw,cpuset +50 25 0:45 / /proc/sys/fs/binfmt_misc rw,relatime shared:26 - autofs systemd-1 rw,fd=28,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=29773 +51 26 0:46 / /dev/hugepages rw,relatime shared:27 - hugetlbfs hugetlbfs rw,pagesize=2M +52 26 0:20 / /dev/mqueue rw,nosuid,nodev,noexec,relatime shared:28 - mqueue mqueue rw +53 24 0:7 / /sys/kernel/debug rw,nosuid,nodev,noexec,relatime shared:29 - debugfs debugfs rw +54 24 0:11 / /sys/kernel/tracing rw,nosuid,nodev,noexec,relatime shared:30 - tracefs tracefs rw +55 24 0:47 / /sys/fs/fuse/connections rw,nosuid,nodev,noexec,relatime shared:31 - fusectl fusectl rw +56 24 0:21 / /sys/kernel/config rw,nosuid,nodev,noexec,relatime shared:32 - configfs configfs rw +125 30 8:2 / /boot rw,relatime shared:67 - ext4 /dev/sda2 rw +131 30 7:0 / /snap/core18/2538 ro,nodev,relatime shared:71 - squashfs /dev/loop0 ro +134 30 7:1 / /snap/core18/2409 ro,nodev,relatime shared:73 - squashfs /dev/loop1 ro +137 30 7:3 / /snap/core20/1587 ro,nodev,relatime shared:75 - squashfs /dev/loop3 ro +140 30 7:5 / /snap/snapd/16292 ro,nodev,relatime shared:77 - squashfs /dev/loop5 ro +146 30 7:7 / /snap/lxd/23339 ro,nodev,relatime shared:81 - squashfs /dev/loop7 ro +149 30 7:6 / /snap/snapd/16010 ro,nodev,relatime shared:83 - squashfs /dev/loop6 ro +466 28 0:25 /snapd/ns /run/snapd/ns rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=399728k,mode=755 +832 28 0:52 / /run/user/1000 rw,nosuid,nodev,relatime shared:426 - tmpfs tmpfs rw,size=399724k,nr_inodes=99931,mode=700,uid=1000,gid=1000 +849 30 7:8 / /snap/core20/1611 ro,nodev,relatime shared:434 - squashfs /dev/loop8 ro +128 30 7:2 / /snap/lxd/23537 ro,nodev,relatime shared:69 - squashfs /dev/loop2 ro +481 466 0:4 mnt:[4026532641] /run/snapd/ns/lxd.mnt rw - nsfs nsfs rw +143 50 0:53 / /proc/sys/fs/binfmt_misc rw,nosuid,nodev,noexec,relatime shared:70 - binfmt_misc binfmt_misc rw +493 53 0:11 / /sys/kernel/debug/tracing rw,nosuid,nodev,noexec,relatime shared:265 - tracefs tracefs rw diff --git a/tests/fixtures/linux-proc/pid_mountinfo.json b/tests/fixtures/linux-proc/pid_mountinfo.json new file mode 100644 index 00000000..8b7fe4d6 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_mountinfo.json @@ -0,0 +1 @@ +[{"mount_id":24,"parent_id":30,"maj":0,"min":22,"root":"/","mount_point":"/sys","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"master":1,"shared":7},"fs_type":"sysfs","mount_source":"sysfs","super_options":["rw"]},{"mount_id":25,"parent_id":30,"maj":0,"min":23,"root":"/","mount_point":"/proc","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":14},"fs_type":"proc","mount_source":"proc","super_options":["rw"]},{"mount_id":26,"parent_id":30,"maj":0,"min":5,"root":"/","mount_point":"/dev","mount_options":["rw","nosuid","noexec","relatime"],"optional_fields":{},"fs_type":"devtmpfs","mount_source":"udev","super_options":["rw"],"super_options_fields":{"size":1951480,"nr_inodes":487870,"mode":755}},{"mount_id":27,"parent_id":26,"maj":0,"min":24,"root":"/","mount_point":"/dev/pts","mount_options":["rw","nosuid","noexec","relatime"],"optional_fields":{"shared":3},"fs_type":"devpts","mount_source":"devpts","super_options":["rw"],"super_options_fields":{"gid":5,"mode":620,"ptmxmode":0}},{"mount_id":28,"parent_id":30,"maj":0,"min":25,"root":"/","mount_point":"/run","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":5},"fs_type":"tmpfs","mount_source":"tmpfs","super_options":["rw"],"super_options_fields":{"size":399728,"mode":755}},{"mount_id":30,"parent_id":1,"maj":253,"min":0,"root":"/","mount_point":"/","mount_options":["rw","relatime"],"optional_fields":{"shared":1},"fs_type":"ext4","mount_source":"/dev/mapper/ubuntu--vg-ubuntu--lv"},{"mount_id":31,"parent_id":24,"maj":0,"min":6,"root":"/","mount_point":"/sys/kernel/security","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"unbindable":0},"fs_type":"securityfs","mount_source":"securityfs","super_options":["rw"]},{"mount_id":32,"parent_id":26,"maj":0,"min":27,"root":"/","mount_point":"/dev/shm","mount_options":["rw","nosuid","nodev"],"optional_fields":{"shared":4},"fs_type":"tmpfs","mount_source":"tmpfs","super_options":["rw"]},{"mount_id":33,"parent_id":28,"maj":0,"min":28,"root":"/","mount_point":"/run/lock","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":6},"fs_type":"tmpfs","mount_source":"tmpfs","super_options":["rw"],"super_options_fields":{"size":5120}},{"mount_id":34,"parent_id":24,"maj":0,"min":29,"root":"/","mount_point":"/sys/fs/cgroup","mount_options":["ro","nosuid","nodev","noexec"],"optional_fields":{"shared":9},"fs_type":"tmpfs","mount_source":"tmpfs","super_options":["ro"],"super_options_fields":{"size":4096,"nr_inodes":1024,"mode":755}},{"mount_id":35,"parent_id":34,"maj":0,"min":30,"root":"/","mount_point":"/sys/fs/cgroup/unified","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":10},"fs_type":"cgroup2","mount_source":"cgroup2","super_options":["rw","nsdelegate"]},{"mount_id":36,"parent_id":34,"maj":0,"min":31,"root":"/","mount_point":"/sys/fs/cgroup/systemd","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":11},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","xattr"],"super_options_fields":{"name":null}},{"mount_id":37,"parent_id":24,"maj":0,"min":32,"root":"/","mount_point":"/sys/fs/pstore","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":12},"fs_type":"pstore","mount_source":"pstore","super_options":["rw"]},{"mount_id":38,"parent_id":24,"maj":0,"min":33,"root":"/","mount_point":"/sys/fs/bpf","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":13},"fs_type":"bpf","mount_source":"none","super_options":["rw"],"super_options_fields":{"mode":700}},{"mount_id":39,"parent_id":34,"maj":0,"min":34,"root":"/","mount_point":"/sys/fs/cgroup/hugetlb","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":15},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","hugetlb"]},{"mount_id":40,"parent_id":34,"maj":0,"min":35,"root":"/","mount_point":"/sys/fs/cgroup/net_cls,net_prio","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":16},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","net_cls","net_prio"]},{"mount_id":41,"parent_id":34,"maj":0,"min":36,"root":"/","mount_point":"/sys/fs/cgroup/pids","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":17},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","pids"]},{"mount_id":42,"parent_id":34,"maj":0,"min":37,"root":"/","mount_point":"/sys/fs/cgroup/blkio","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":18},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","blkio"]},{"mount_id":43,"parent_id":34,"maj":0,"min":38,"root":"/","mount_point":"/sys/fs/cgroup/memory","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":19},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","memory"]},{"mount_id":44,"parent_id":34,"maj":0,"min":39,"root":"/","mount_point":"/sys/fs/cgroup/devices","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":20},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","devices"]},{"mount_id":45,"parent_id":34,"maj":0,"min":40,"root":"/","mount_point":"/sys/fs/cgroup/cpu,cpuacct","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":21},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","cpu","cpuacct"]},{"mount_id":46,"parent_id":34,"maj":0,"min":41,"root":"/","mount_point":"/sys/fs/cgroup/rdma","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":22},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","rdma"]},{"mount_id":47,"parent_id":34,"maj":0,"min":42,"root":"/","mount_point":"/sys/fs/cgroup/perf_event","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":23},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","perf_event"]},{"mount_id":48,"parent_id":34,"maj":0,"min":43,"root":"/","mount_point":"/sys/fs/cgroup/freezer","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":24},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","freezer"]},{"mount_id":49,"parent_id":34,"maj":0,"min":44,"root":"/","mount_point":"/sys/fs/cgroup/cpuset","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":25},"fs_type":"cgroup","mount_source":"cgroup","super_options":["rw","cpuset"]},{"mount_id":50,"parent_id":25,"maj":0,"min":45,"root":"/","mount_point":"/proc/sys/fs/binfmt_misc","mount_options":["rw","relatime"],"optional_fields":{"shared":26},"fs_type":"autofs","mount_source":"systemd-1","super_options":["rw","direct"],"super_options_fields":{"fd":28,"pgrp":1,"timeout":0,"minproto":5,"maxproto":5,"pipe_ino":29773}},{"mount_id":51,"parent_id":26,"maj":0,"min":46,"root":"/","mount_point":"/dev/hugepages","mount_options":["rw","relatime"],"optional_fields":{"shared":27},"fs_type":"hugetlbfs","mount_source":"hugetlbfs","super_options":["rw"],"super_options_fields":{"pagesize":2}},{"mount_id":52,"parent_id":26,"maj":0,"min":20,"root":"/","mount_point":"/dev/mqueue","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":28},"fs_type":"mqueue","mount_source":"mqueue","super_options":["rw"]},{"mount_id":53,"parent_id":24,"maj":0,"min":7,"root":"/","mount_point":"/sys/kernel/debug","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":29},"fs_type":"debugfs","mount_source":"debugfs","super_options":["rw"]},{"mount_id":54,"parent_id":24,"maj":0,"min":11,"root":"/","mount_point":"/sys/kernel/tracing","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":30},"fs_type":"tracefs","mount_source":"tracefs","super_options":["rw"]},{"mount_id":55,"parent_id":24,"maj":0,"min":47,"root":"/","mount_point":"/sys/fs/fuse/connections","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":31},"fs_type":"fusectl","mount_source":"fusectl","super_options":["rw"]},{"mount_id":56,"parent_id":24,"maj":0,"min":21,"root":"/","mount_point":"/sys/kernel/config","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":32},"fs_type":"configfs","mount_source":"configfs","super_options":["rw"]},{"mount_id":125,"parent_id":30,"maj":8,"min":2,"root":"/","mount_point":"/boot","mount_options":["rw","relatime"],"optional_fields":{"shared":67},"fs_type":"ext4","mount_source":"/dev/sda2","super_options":["rw"]},{"mount_id":131,"parent_id":30,"maj":7,"min":0,"root":"/","mount_point":"/snap/core18/2538","mount_options":["ro","nodev","relatime"],"optional_fields":{"shared":71},"fs_type":"squashfs","mount_source":"/dev/loop0","super_options":["ro"]},{"mount_id":134,"parent_id":30,"maj":7,"min":1,"root":"/","mount_point":"/snap/core18/2409","mount_options":["ro","nodev","relatime"],"optional_fields":{"shared":73},"fs_type":"squashfs","mount_source":"/dev/loop1","super_options":["ro"]},{"mount_id":137,"parent_id":30,"maj":7,"min":3,"root":"/","mount_point":"/snap/core20/1587","mount_options":["ro","nodev","relatime"],"optional_fields":{"shared":75},"fs_type":"squashfs","mount_source":"/dev/loop3","super_options":["ro"]},{"mount_id":140,"parent_id":30,"maj":7,"min":5,"root":"/","mount_point":"/snap/snapd/16292","mount_options":["ro","nodev","relatime"],"optional_fields":{"shared":77},"fs_type":"squashfs","mount_source":"/dev/loop5","super_options":["ro"]},{"mount_id":146,"parent_id":30,"maj":7,"min":7,"root":"/","mount_point":"/snap/lxd/23339","mount_options":["ro","nodev","relatime"],"optional_fields":{"shared":81},"fs_type":"squashfs","mount_source":"/dev/loop7","super_options":["ro"]},{"mount_id":149,"parent_id":30,"maj":7,"min":6,"root":"/","mount_point":"/snap/snapd/16010","mount_options":["ro","nodev","relatime"],"optional_fields":{"shared":83},"fs_type":"squashfs","mount_source":"/dev/loop6","super_options":["ro"]},{"mount_id":466,"parent_id":28,"maj":0,"min":25,"root":"/snapd/ns","mount_point":"/run/snapd/ns","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{},"fs_type":"tmpfs","mount_source":"tmpfs","super_options":["rw"],"super_options_fields":{"size":399728,"mode":755}},{"mount_id":832,"parent_id":28,"maj":0,"min":52,"root":"/","mount_point":"/run/user/1000","mount_options":["rw","nosuid","nodev","relatime"],"optional_fields":{"shared":426},"fs_type":"tmpfs","mount_source":"tmpfs","super_options":["rw"],"super_options_fields":{"size":399724,"nr_inodes":99931,"mode":700,"uid":1000,"gid":1000}},{"mount_id":849,"parent_id":30,"maj":7,"min":8,"root":"/","mount_point":"/snap/core20/1611","mount_options":["ro","nodev","relatime"],"optional_fields":{"shared":434},"fs_type":"squashfs","mount_source":"/dev/loop8","super_options":["ro"]},{"mount_id":128,"parent_id":30,"maj":7,"min":2,"root":"/","mount_point":"/snap/lxd/23537","mount_options":["ro","nodev","relatime"],"optional_fields":{"shared":69},"fs_type":"squashfs","mount_source":"/dev/loop2","super_options":["ro"]},{"mount_id":481,"parent_id":466,"maj":0,"min":4,"root":"mnt:[4026532641]","mount_point":"/run/snapd/ns/lxd.mnt","mount_options":["rw"],"optional_fields":{},"fs_type":"nsfs","mount_source":"nsfs","super_options":["rw"]},{"mount_id":143,"parent_id":50,"maj":0,"min":53,"root":"/","mount_point":"/proc/sys/fs/binfmt_misc","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":70},"fs_type":"binfmt_misc","mount_source":"binfmt_misc","super_options":["rw"]},{"mount_id":493,"parent_id":53,"maj":0,"min":11,"root":"/","mount_point":"/sys/kernel/debug/tracing","mount_options":["rw","nosuid","nodev","noexec","relatime"],"optional_fields":{"shared":265},"fs_type":"tracefs","mount_source":"tracefs","super_options":["rw"]}] diff --git a/tests/fixtures/linux-proc/pid_numa_maps b/tests/fixtures/linux-proc/pid_numa_maps new file mode 100644 index 00000000..7f7c42b8 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_numa_maps @@ -0,0 +1,213 @@ +55a9e753c000 default file=/usr/lib/systemd/systemd mapped=52 mapmax=2 active=16 N0=52 kernelpagesize_kB=4 +55a9e7570000 default file=/usr/lib/systemd/systemd mapped=200 mapmax=3 active=120 N0=200 kernelpagesize_kB=4 +55a9e763a000 default file=/usr/lib/systemd/systemd mapped=69 mapmax=3 N0=69 kernelpagesize_kB=4 +55a9e7695000 default file=/usr/lib/systemd/systemd anon=63 dirty=63 mapped=67 mapmax=3 active=63 N0=67 kernelpagesize_kB=4 +55a9e76da000 default file=/usr/lib/systemd/systemd anon=1 dirty=1 N0=1 kernelpagesize_kB=4 +55a9e8cd4000 default heap anon=611 dirty=611 mapmax=2 N0=611 kernelpagesize_kB=4 +7f53a4000000 default anon=3 dirty=3 N0=3 kernelpagesize_kB=4 +7f53a4021000 default +7f53ac000000 default anon=3 dirty=3 N0=3 kernelpagesize_kB=4 +7f53ac021000 default +7f53b2fb8000 default +7f53b2fb9000 default anon=2 dirty=2 N0=2 kernelpagesize_kB=4 +7f53b37b9000 default +7f53b37ba000 default anon=8 dirty=8 mapmax=2 N0=8 kernelpagesize_kB=4 +7f53b3fc1000 default file=/usr/lib/x86_64-linux-gnu/libm-2.32.so mapped=14 mapmax=12 N0=14 kernelpagesize_kB=4 +7f53b3fd0000 default file=/usr/lib/x86_64-linux-gnu/libm-2.32.so mapped=71 mapmax=12 N0=71 kernelpagesize_kB=4 +7f53b4077000 default file=/usr/lib/x86_64-linux-gnu/libm-2.32.so +7f53b410e000 default file=/usr/lib/x86_64-linux-gnu/libm-2.32.so anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b410f000 default file=/usr/lib/x86_64-linux-gnu/libm-2.32.so anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4110000 default file=/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 mapped=4 mapmax=9 N0=4 kernelpagesize_kB=4 +7f53b4114000 default file=/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 mapped=16 mapmax=9 N0=16 kernelpagesize_kB=4 +7f53b412d000 default file=/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +7f53b4136000 default file=/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4137000 default file=/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4138000 default file=/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 mapped=16 mapmax=7 N0=16 kernelpagesize_kB=4 +7f53b4148000 default file=/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 mapped=15 mapmax=7 N0=15 kernelpagesize_kB=4 +7f53b417e000 default file=/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +7f53b42b5000 default file=/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +7f53b42b6000 default file=/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 anon=3 dirty=3 mapmax=2 N0=3 kernelpagesize_kB=4 +7f53b42b9000 default file=/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b42ba000 default file=/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 mapped=5 mapmax=17 N0=5 kernelpagesize_kB=4 +7f53b42bf000 default file=/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 mapped=20 mapmax=17 N0=20 kernelpagesize_kB=4 +7f53b42d4000 default file=/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 mapped=9 mapmax=17 N0=9 kernelpagesize_kB=4 +7f53b42de000 default file=/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +7f53b42df000 default file=/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b42e0000 default file=/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b42e1000 default file=/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 mapped=4 mapmax=7 N0=4 kernelpagesize_kB=4 +7f53b42e5000 default file=/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 mapped=8 mapmax=7 N0=8 kernelpagesize_kB=4 +7f53b42ee000 default file=/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +7f53b42f2000 default file=/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b42f3000 default file=/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b42f4000 default anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b42f6000 default file=/usr/lib/x86_64-linux-gnu/libargon2.so.1 mapped=1 mapmax=7 N0=1 kernelpagesize_kB=4 +7f53b42f7000 default file=/usr/lib/x86_64-linux-gnu/libargon2.so.1 mapped=5 mapmax=7 N0=5 kernelpagesize_kB=4 +7f53b42fc000 default file=/usr/lib/x86_64-linux-gnu/libargon2.so.1 +7f53b42fe000 default file=/usr/lib/x86_64-linux-gnu/libargon2.so.1 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b42ff000 default file=/usr/lib/x86_64-linux-gnu/libargon2.so.1 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4300000 default file=/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 mapped=10 mapmax=8 N0=10 kernelpagesize_kB=4 +7f53b430a000 default file=/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 mapped=15 mapmax=8 N0=15 kernelpagesize_kB=4 +7f53b4352000 default file=/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 mapped=16 mapmax=8 N0=16 kernelpagesize_kB=4 +7f53b4366000 default file=/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4367000 default file=/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 anon=2 dirty=2 mapped=3 mapmax=8 N0=3 kernelpagesize_kB=4 +7f53b436a000 default +7f53b436b000 default file=/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 mapped=2 mapmax=8 N0=2 kernelpagesize_kB=4 +7f53b436d000 default file=/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 mapped=4 mapmax=8 N0=4 kernelpagesize_kB=4 +7f53b4371000 default file=/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +7f53b4372000 default file=/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4373000 default file=/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4374000 default file=/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 mapped=120 mapmax=13 N0=120 kernelpagesize_kB=4 +7f53b43ec000 default file=/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 mapped=45 mapmax=13 N0=45 kernelpagesize_kB=4 +7f53b458e000 default file=/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 mapped=16 mapmax=13 N0=16 kernelpagesize_kB=4 +7f53b461e000 default file=/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +7f53b461f000 default file=/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 anon=44 dirty=44 mapmax=2 N0=44 kernelpagesize_kB=4 +7f53b464b000 default file=/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b464d000 default anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4651000 default file=/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 mapped=2 mapmax=17 N0=2 kernelpagesize_kB=4 +7f53b4653000 default file=/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 mapped=3 mapmax=18 N0=3 kernelpagesize_kB=4 +7f53b4656000 default file=/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +7f53b4657000 default file=/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4658000 default file=/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 anon=1 dirty=1 N0=1 kernelpagesize_kB=4 +7f53b4659000 default file=/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 mapped=2 mapmax=22 N0=2 kernelpagesize_kB=4 +7f53b465b000 default file=/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 mapped=15 mapmax=21 N0=15 kernelpagesize_kB=4 +7f53b46bf000 default file=/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +7f53b46e7000 default file=/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b46e8000 default file=/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b46e9000 default anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b46eb000 default file=/usr/lib/x86_64-linux-gnu/libpthread-2.32.so mapped=7 mapmax=26 N0=7 kernelpagesize_kB=4 +7f53b46f2000 default file=/usr/lib/x86_64-linux-gnu/libpthread-2.32.so mapped=16 mapmax=28 N0=16 kernelpagesize_kB=4 +7f53b4702000 default file=/usr/lib/x86_64-linux-gnu/libpthread-2.32.so mapped=5 mapmax=17 N0=5 kernelpagesize_kB=4 +7f53b4707000 default file=/usr/lib/x86_64-linux-gnu/libpthread-2.32.so anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4708000 default file=/usr/lib/x86_64-linux-gnu/libpthread-2.32.so anon=1 dirty=1 N0=1 kernelpagesize_kB=4 +7f53b4709000 default anon=1 dirty=1 N0=1 kernelpagesize_kB=4 +7f53b470d000 default file=/usr/lib/x86_64-linux-gnu/libdl-2.32.so mapped=1 mapmax=28 N0=1 kernelpagesize_kB=4 +7f53b470e000 default file=/usr/lib/x86_64-linux-gnu/libdl-2.32.so mapped=2 mapmax=27 N0=2 kernelpagesize_kB=4 +7f53b4710000 default file=/usr/lib/x86_64-linux-gnu/libdl-2.32.so +7f53b4711000 default file=/usr/lib/x86_64-linux-gnu/libdl-2.32.so anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4712000 default file=/usr/lib/x86_64-linux-gnu/libdl-2.32.so anon=1 dirty=1 N0=1 kernelpagesize_kB=4 +7f53b4713000 default file=/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 mapped=3 mapmax=19 N0=3 kernelpagesize_kB=4 +7f53b4716000 default file=/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 mapped=15 mapmax=19 N0=15 kernelpagesize_kB=4 +7f53b472e000 default file=/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +7f53b4739000 default file=/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +7f53b473a000 default file=/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b473b000 default file=/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b473c000 default file=/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 mapped=4 mapmax=17 N0=4 kernelpagesize_kB=4 +7f53b4740000 default file=/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 mapped=16 mapmax=17 N0=16 kernelpagesize_kB=4 +7f53b47f8000 default file=/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +7f53b480a000 default file=/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b480b000 default file=/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b480c000 default file=/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 mapped=2 mapmax=17 N0=2 kernelpagesize_kB=4 +7f53b480e000 default file=/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 mapped=16 mapmax=17 N0=16 kernelpagesize_kB=4 +7f53b4829000 default file=/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +7f53b482c000 default file=/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b482d000 default file=/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b482e000 default anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b4830000 default file=/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 mapped=2 mapmax=7 N0=2 kernelpagesize_kB=4 +7f53b4832000 default file=/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 mapped=4 mapmax=7 N0=4 kernelpagesize_kB=4 +7f53b4836000 default file=/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +7f53b4838000 default file=/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4839000 default file=/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b483a000 default file=/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 mapped=2 mapmax=7 N0=2 kernelpagesize_kB=4 +7f53b483c000 default file=/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 mapped=5 mapmax=7 N0=5 kernelpagesize_kB=4 +7f53b4841000 default file=/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +7f53b485a000 default file=/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b485b000 default file=/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b485c000 default file=/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 mapped=12 mapmax=17 N0=12 kernelpagesize_kB=4 +7f53b4868000 default file=/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 mapped=15 mapmax=17 N0=15 kernelpagesize_kB=4 +7f53b4936000 default file=/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +7f53b4973000 default file=/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b4975000 default file=/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 anon=5 dirty=5 mapmax=2 N0=5 kernelpagesize_kB=4 +7f53b497a000 default file=/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 mapped=7 mapmax=7 N0=7 kernelpagesize_kB=4 +7f53b4981000 default file=/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 mapped=16 mapmax=7 N0=16 kernelpagesize_kB=4 +7f53b49d2000 default file=/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +7f53b49ec000 default file=/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +7f53b49ed000 default file=/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b49ef000 default file=/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b49f1000 default file=/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 mapped=2 mapmax=13 N0=2 kernelpagesize_kB=4 +7f53b49f3000 default file=/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 mapped=12 mapmax=12 N0=12 kernelpagesize_kB=4 +7f53b4a08000 default file=/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +7f53b4a22000 default file=/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4a23000 default file=/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4a24000 default +7f53b4a2c000 default file=/usr/lib/x86_64-linux-gnu/libcap.so.2.43 mapped=3 mapmax=11 N0=3 kernelpagesize_kB=4 +7f53b4a2f000 default file=/usr/lib/x86_64-linux-gnu/libcap.so.2.43 mapped=4 mapmax=12 N0=4 kernelpagesize_kB=4 +7f53b4a33000 default file=/usr/lib/x86_64-linux-gnu/libcap.so.2.43 +7f53b4a35000 default file=/usr/lib/x86_64-linux-gnu/libcap.so.2.43 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4a36000 default file=/usr/lib/x86_64-linux-gnu/libcap.so.2.43 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4a37000 default anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b4a39000 default file=/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 mapped=9 mapmax=12 N0=9 kernelpagesize_kB=4 +7f53b4a42000 default file=/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 mapped=15 mapmax=12 N0=15 kernelpagesize_kB=4 +7f53b4a76000 default file=/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +7f53b4a86000 default file=/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +7f53b4a87000 default file=/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 anon=4 dirty=4 mapmax=2 N0=4 kernelpagesize_kB=4 +7f53b4a8b000 default file=/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4a8c000 default file=/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 mapped=2 mapmax=8 N0=2 kernelpagesize_kB=4 +7f53b4a8e000 default file=/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 mapped=5 mapmax=8 N0=5 kernelpagesize_kB=4 +7f53b4a93000 default file=/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +7f53b4a95000 default file=/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4a96000 default file=/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4a97000 default file=/usr/lib/x86_64-linux-gnu/libc-2.32.so mapped=37 mapmax=31 N0=37 kernelpagesize_kB=4 +7f53b4abd000 default file=/usr/lib/x86_64-linux-gnu/libc-2.32.so mapped=314 mapmax=32 N0=314 kernelpagesize_kB=4 +7f53b4c2a000 default file=/usr/lib/x86_64-linux-gnu/libc-2.32.so mapped=36 mapmax=32 N0=36 kernelpagesize_kB=4 +7f53b4c76000 default file=/usr/lib/x86_64-linux-gnu/libc-2.32.so +7f53b4c77000 default file=/usr/lib/x86_64-linux-gnu/libc-2.32.so anon=3 dirty=3 mapmax=2 N0=3 kernelpagesize_kB=4 +7f53b4c7a000 default file=/usr/lib/x86_64-linux-gnu/libc-2.32.so anon=3 dirty=3 N0=3 kernelpagesize_kB=4 +7f53b4c7d000 default anon=3 dirty=3 N0=3 kernelpagesize_kB=4 +7f53b4c81000 default file=/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 mapped=3 mapmax=3 N0=3 kernelpagesize_kB=4 +7f53b4c84000 default file=/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 mapped=9 mapmax=3 active=0 N0=9 kernelpagesize_kB=4 +7f53b4c8d000 default file=/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 mapped=6 mapmax=2 active=0 N0=6 kernelpagesize_kB=4 +7f53b4c94000 default file=/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4c95000 default file=/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4c96000 default file=/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 mapped=3 mapmax=8 N0=3 kernelpagesize_kB=4 +7f53b4c99000 default file=/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 mapped=16 mapmax=8 N0=16 kernelpagesize_kB=4 +7f53b4ca9000 default file=/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 mapped=6 mapmax=2 N0=6 kernelpagesize_kB=4 +7f53b4caf000 default file=/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4cb0000 default file=/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4cb1000 default file=/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 mapped=3 mapmax=16 N0=3 kernelpagesize_kB=4 +7f53b4cb4000 default file=/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 mapped=8 mapmax=16 N0=8 kernelpagesize_kB=4 +7f53b4cbc000 default file=/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 mapped=15 mapmax=6 active=14 N0=15 kernelpagesize_kB=4 +7f53b4cd0000 default file=/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +7f53b4cd1000 default file=/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4cd2000 default file=/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 anon=1 dirty=1 N0=1 kernelpagesize_kB=4 +7f53b4cd3000 default anon=3 dirty=3 mapmax=2 N0=3 kernelpagesize_kB=4 +7f53b4cdf000 default file=/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 mapped=3 mapmax=15 N0=3 kernelpagesize_kB=4 +7f53b4ce2000 default file=/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 mapped=8 mapmax=15 N0=8 kernelpagesize_kB=4 +7f53b4ceb000 default file=/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +7f53b4cef000 default file=/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4cf0000 default file=/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 anon=1 dirty=1 N0=1 kernelpagesize_kB=4 +7f53b4cf1000 default file=/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 mapped=10 mapmax=11 N0=10 kernelpagesize_kB=4 +7f53b4cfb000 default file=/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 mapped=52 mapmax=11 N0=52 kernelpagesize_kB=4 +7f53b4d39000 default file=/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 mapped=15 mapmax=2 N0=15 kernelpagesize_kB=4 +7f53b4d4c000 default file=/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b4d4e000 default file=/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4d4f000 default file=/usr/lib/x86_64-linux-gnu/libselinux.so.1 mapped=6 mapmax=22 N0=6 kernelpagesize_kB=4 +7f53b4d55000 default file=/usr/lib/x86_64-linux-gnu/libselinux.so.1 mapped=25 mapmax=22 N0=25 kernelpagesize_kB=4 +7f53b4d6e000 default file=/usr/lib/x86_64-linux-gnu/libselinux.so.1 mapped=8 mapmax=21 N0=8 kernelpagesize_kB=4 +7f53b4d76000 default file=/usr/lib/x86_64-linux-gnu/libselinux.so.1 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4d77000 default file=/usr/lib/x86_64-linux-gnu/libselinux.so.1 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4d78000 default anon=2 dirty=2 mapmax=2 N0=2 kernelpagesize_kB=4 +7f53b4d7a000 default file=/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 mapped=40 mapmax=7 N0=40 kernelpagesize_kB=4 +7f53b4da2000 default file=/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 mapped=11 mapmax=7 N0=11 kernelpagesize_kB=4 +7f53b4dad000 default file=/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 mapped=4 N0=4 kernelpagesize_kB=4 +7f53b4db1000 default file=/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 anon=27 dirty=27 mapmax=2 N0=27 kernelpagesize_kB=4 +7f53b4dcc000 default file=/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4dcd000 default file=/usr/lib/x86_64-linux-gnu/librt-2.32.so mapped=3 mapmax=17 N0=3 kernelpagesize_kB=4 +7f53b4dd0000 default file=/usr/lib/x86_64-linux-gnu/librt-2.32.so mapped=4 mapmax=17 N0=4 kernelpagesize_kB=4 +7f53b4dd4000 default file=/usr/lib/x86_64-linux-gnu/librt-2.32.so +7f53b4dd6000 default file=/usr/lib/x86_64-linux-gnu/librt-2.32.so anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4dd7000 default file=/usr/lib/x86_64-linux-gnu/librt-2.32.so anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b4ddf000 default file=/usr/lib/systemd/libsystemd-shared-246.so mapped=74 mapmax=7 N0=74 kernelpagesize_kB=4 +7f53b4e29000 default file=/usr/lib/systemd/libsystemd-shared-246.so mapped=354 mapmax=8 active=348 N0=354 kernelpagesize_kB=4 +7f53b4fac000 default file=/usr/lib/systemd/libsystemd-shared-246.so mapped=84 mapmax=7 N0=84 kernelpagesize_kB=4 +7f53b503f000 default file=/usr/lib/systemd/libsystemd-shared-246.so +7f53b5040000 default file=/usr/lib/systemd/libsystemd-shared-246.so anon=16 dirty=16 mapmax=2 N0=16 kernelpagesize_kB=4 +7f53b5050000 default file=/usr/lib/systemd/libsystemd-shared-246.so anon=1 dirty=1 N0=1 kernelpagesize_kB=4 +7f53b5051000 default anon=3 dirty=3 N0=3 kernelpagesize_kB=4 +7f53b5054000 default file=/usr/lib/x86_64-linux-gnu/ld-2.32.so mapped=1 mapmax=31 N0=1 kernelpagesize_kB=4 +7f53b5055000 default file=/usr/lib/x86_64-linux-gnu/ld-2.32.so mapped=36 mapmax=32 N0=36 kernelpagesize_kB=4 +7f53b5079000 default file=/usr/lib/x86_64-linux-gnu/ld-2.32.so mapped=8 mapmax=31 N0=8 kernelpagesize_kB=4 +7f53b5082000 default file=/usr/lib/x86_64-linux-gnu/ld-2.32.so anon=1 dirty=1 mapmax=2 N0=1 kernelpagesize_kB=4 +7f53b5083000 default file=/usr/lib/x86_64-linux-gnu/ld-2.32.so anon=2 dirty=2 N0=2 kernelpagesize_kB=4 +7ffd1b23e000 default stack anon=258 dirty=258 N0=258 kernelpagesize_kB=4 +7ffd1b3b1000 default +7ffd1b3b5000 default diff --git a/tests/fixtures/linux-proc/pid_numa_maps.json b/tests/fixtures/linux-proc/pid_numa_maps.json new file mode 100644 index 00000000..400c781c --- /dev/null +++ b/tests/fixtures/linux-proc/pid_numa_maps.json @@ -0,0 +1 @@ +[{"address":"55a9e753c000","policy":"default","file":"/usr/lib/systemd/systemd","mapped":52,"mapmax":2,"active":16,"N0":52,"kernelpagesize_kB":4},{"address":"55a9e7570000","policy":"default","file":"/usr/lib/systemd/systemd","mapped":200,"mapmax":3,"active":120,"N0":200,"kernelpagesize_kB":4},{"address":"55a9e763a000","policy":"default","file":"/usr/lib/systemd/systemd","mapped":69,"mapmax":3,"N0":69,"kernelpagesize_kB":4},{"address":"55a9e7695000","policy":"default","file":"/usr/lib/systemd/systemd","anon":63,"dirty":63,"mapped":67,"mapmax":3,"active":63,"N0":67,"kernelpagesize_kB":4},{"address":"55a9e76da000","policy":"default","file":"/usr/lib/systemd/systemd","anon":1,"dirty":1,"N0":1,"kernelpagesize_kB":4},{"address":"55a9e8cd4000","policy":"default","anon":611,"dirty":611,"mapmax":2,"N0":611,"kernelpagesize_kB":4,"options":["heap"]},{"address":"7f53a4000000","policy":"default","anon":3,"dirty":3,"N0":3,"kernelpagesize_kB":4},{"address":"7f53a4021000","policy":"default"},{"address":"7f53ac000000","policy":"default","anon":3,"dirty":3,"N0":3,"kernelpagesize_kB":4},{"address":"7f53ac021000","policy":"default"},{"address":"7f53b2fb8000","policy":"default"},{"address":"7f53b2fb9000","policy":"default","anon":2,"dirty":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b37b9000","policy":"default"},{"address":"7f53b37ba000","policy":"default","anon":8,"dirty":8,"mapmax":2,"N0":8,"kernelpagesize_kB":4},{"address":"7f53b3fc1000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","mapped":14,"mapmax":12,"N0":14,"kernelpagesize_kB":4},{"address":"7f53b3fd0000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","mapped":71,"mapmax":12,"N0":71,"kernelpagesize_kB":4},{"address":"7f53b4077000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libm-2.32.so"},{"address":"7f53b410e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b410f000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4110000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","mapped":4,"mapmax":9,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b4114000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","mapped":16,"mapmax":9,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b412d000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18"},{"address":"7f53b4136000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4137000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4138000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","mapped":16,"mapmax":7,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b4148000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","mapped":15,"mapmax":7,"N0":15,"kernelpagesize_kB":4},{"address":"7f53b417e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0"},{"address":"7f53b42b5000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0"},{"address":"7f53b42b6000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","anon":3,"dirty":3,"mapmax":2,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b42b9000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b42ba000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","mapped":5,"mapmax":17,"N0":5,"kernelpagesize_kB":4},{"address":"7f53b42bf000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","mapped":20,"mapmax":17,"N0":20,"kernelpagesize_kB":4},{"address":"7f53b42d4000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","mapped":9,"mapmax":17,"N0":9,"kernelpagesize_kB":4},{"address":"7f53b42de000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0"},{"address":"7f53b42df000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b42e0000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b42e1000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","mapped":4,"mapmax":7,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b42e5000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","mapped":8,"mapmax":7,"N0":8,"kernelpagesize_kB":4},{"address":"7f53b42ee000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0"},{"address":"7f53b42f2000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b42f3000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b42f4000","policy":"default","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b42f6000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","mapped":1,"mapmax":7,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b42f7000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","mapped":5,"mapmax":7,"N0":5,"kernelpagesize_kB":4},{"address":"7f53b42fc000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libargon2.so.1"},{"address":"7f53b42fe000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b42ff000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4300000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","mapped":10,"mapmax":8,"N0":10,"kernelpagesize_kB":4},{"address":"7f53b430a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","mapped":15,"mapmax":8,"N0":15,"kernelpagesize_kB":4},{"address":"7f53b4352000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","mapped":16,"mapmax":8,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b4366000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4367000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","anon":2,"dirty":2,"mapped":3,"mapmax":8,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b436a000","policy":"default"},{"address":"7f53b436b000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","mapped":2,"mapmax":8,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b436d000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","mapped":4,"mapmax":8,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b4371000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0"},{"address":"7f53b4372000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4373000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4374000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","mapped":120,"mapmax":13,"N0":120,"kernelpagesize_kB":4},{"address":"7f53b43ec000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","mapped":45,"mapmax":13,"N0":45,"kernelpagesize_kB":4},{"address":"7f53b458e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","mapped":16,"mapmax":13,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b461e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1"},{"address":"7f53b461f000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","anon":44,"dirty":44,"mapmax":2,"N0":44,"kernelpagesize_kB":4},{"address":"7f53b464b000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b464d000","policy":"default","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4651000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","mapped":2,"mapmax":17,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4653000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","mapped":3,"mapmax":18,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4656000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0"},{"address":"7f53b4657000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4658000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","anon":1,"dirty":1,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4659000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","mapped":2,"mapmax":22,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b465b000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","mapped":15,"mapmax":21,"N0":15,"kernelpagesize_kB":4},{"address":"7f53b46bf000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0"},{"address":"7f53b46e7000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b46e8000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b46e9000","policy":"default","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b46eb000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","mapped":7,"mapmax":26,"N0":7,"kernelpagesize_kB":4},{"address":"7f53b46f2000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","mapped":16,"mapmax":28,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b4702000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","mapped":5,"mapmax":17,"N0":5,"kernelpagesize_kB":4},{"address":"7f53b4707000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4708000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","anon":1,"dirty":1,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4709000","policy":"default","anon":1,"dirty":1,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b470d000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","mapped":1,"mapmax":28,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b470e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","mapped":2,"mapmax":27,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4710000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so"},{"address":"7f53b4711000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4712000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","anon":1,"dirty":1,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4713000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","mapped":3,"mapmax":19,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4716000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","mapped":15,"mapmax":19,"N0":15,"kernelpagesize_kB":4},{"address":"7f53b472e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4"},{"address":"7f53b4739000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4"},{"address":"7f53b473a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b473b000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b473c000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","mapped":4,"mapmax":17,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b4740000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","mapped":16,"mapmax":17,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b47f8000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5"},{"address":"7f53b480a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b480b000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b480c000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","mapped":2,"mapmax":17,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b480e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","mapped":16,"mapmax":17,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b4829000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2"},{"address":"7f53b482c000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b482d000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b482e000","policy":"default","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4830000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","mapped":2,"mapmax":7,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4832000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","mapped":4,"mapmax":7,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b4836000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0"},{"address":"7f53b4838000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4839000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b483a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","mapped":2,"mapmax":7,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b483c000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","mapped":5,"mapmax":7,"N0":5,"kernelpagesize_kB":4},{"address":"7f53b4841000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7"},{"address":"7f53b485a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b485b000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b485c000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","mapped":12,"mapmax":17,"N0":12,"kernelpagesize_kB":4},{"address":"7f53b4868000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","mapped":15,"mapmax":17,"N0":15,"kernelpagesize_kB":4},{"address":"7f53b4936000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5"},{"address":"7f53b4973000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4975000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","anon":5,"dirty":5,"mapmax":2,"N0":5,"kernelpagesize_kB":4},{"address":"7f53b497a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","mapped":7,"mapmax":7,"N0":7,"kernelpagesize_kB":4},{"address":"7f53b4981000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","mapped":16,"mapmax":7,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b49d2000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0"},{"address":"7f53b49ec000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0"},{"address":"7f53b49ed000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b49ef000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b49f1000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","mapped":2,"mapmax":13,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b49f3000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","mapped":12,"mapmax":12,"N0":12,"kernelpagesize_kB":4},{"address":"7f53b4a08000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0"},{"address":"7f53b4a22000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4a23000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4a24000","policy":"default"},{"address":"7f53b4a2c000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","mapped":3,"mapmax":11,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4a2f000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","mapped":4,"mapmax":12,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b4a33000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43"},{"address":"7f53b4a35000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4a36000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4a37000","policy":"default","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4a39000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","mapped":9,"mapmax":12,"N0":9,"kernelpagesize_kB":4},{"address":"7f53b4a42000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","mapped":15,"mapmax":12,"N0":15,"kernelpagesize_kB":4},{"address":"7f53b4a76000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0"},{"address":"7f53b4a86000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0"},{"address":"7f53b4a87000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","anon":4,"dirty":4,"mapmax":2,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b4a8b000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4a8c000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","mapped":2,"mapmax":8,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4a8e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","mapped":5,"mapmax":8,"N0":5,"kernelpagesize_kB":4},{"address":"7f53b4a93000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253"},{"address":"7f53b4a95000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4a96000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4a97000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","mapped":37,"mapmax":31,"N0":37,"kernelpagesize_kB":4},{"address":"7f53b4abd000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","mapped":314,"mapmax":32,"N0":314,"kernelpagesize_kB":4},{"address":"7f53b4c2a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","mapped":36,"mapmax":32,"N0":36,"kernelpagesize_kB":4},{"address":"7f53b4c76000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libc-2.32.so"},{"address":"7f53b4c77000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","anon":3,"dirty":3,"mapmax":2,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4c7a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","anon":3,"dirty":3,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4c7d000","policy":"default","anon":3,"dirty":3,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4c81000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","mapped":3,"mapmax":3,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4c84000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","mapped":9,"mapmax":3,"active":0,"N0":9,"kernelpagesize_kB":4},{"address":"7f53b4c8d000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","mapped":6,"mapmax":2,"active":0,"N0":6,"kernelpagesize_kB":4},{"address":"7f53b4c94000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4c95000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4c96000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","mapped":3,"mapmax":8,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4c99000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","mapped":16,"mapmax":8,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b4ca9000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","mapped":6,"mapmax":2,"N0":6,"kernelpagesize_kB":4},{"address":"7f53b4caf000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4cb0000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4cb1000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","mapped":3,"mapmax":16,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4cb4000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","mapped":8,"mapmax":16,"N0":8,"kernelpagesize_kB":4},{"address":"7f53b4cbc000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","mapped":15,"mapmax":6,"active":14,"N0":15,"kernelpagesize_kB":4},{"address":"7f53b4cd0000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0"},{"address":"7f53b4cd1000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4cd2000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","anon":1,"dirty":1,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4cd3000","policy":"default","anon":3,"dirty":3,"mapmax":2,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4cdf000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","mapped":3,"mapmax":15,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4ce2000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","mapped":8,"mapmax":15,"N0":8,"kernelpagesize_kB":4},{"address":"7f53b4ceb000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2"},{"address":"7f53b4cef000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4cf0000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","anon":1,"dirty":1,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4cf1000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","mapped":10,"mapmax":11,"N0":10,"kernelpagesize_kB":4},{"address":"7f53b4cfb000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","mapped":52,"mapmax":11,"N0":52,"kernelpagesize_kB":4},{"address":"7f53b4d39000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","mapped":15,"mapmax":2,"N0":15,"kernelpagesize_kB":4},{"address":"7f53b4d4c000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4d4e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4d4f000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","mapped":6,"mapmax":22,"N0":6,"kernelpagesize_kB":4},{"address":"7f53b4d55000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","mapped":25,"mapmax":22,"N0":25,"kernelpagesize_kB":4},{"address":"7f53b4d6e000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","mapped":8,"mapmax":21,"N0":8,"kernelpagesize_kB":4},{"address":"7f53b4d76000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4d77000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4d78000","policy":"default","anon":2,"dirty":2,"mapmax":2,"N0":2,"kernelpagesize_kB":4},{"address":"7f53b4d7a000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","mapped":40,"mapmax":7,"N0":40,"kernelpagesize_kB":4},{"address":"7f53b4da2000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","mapped":11,"mapmax":7,"N0":11,"kernelpagesize_kB":4},{"address":"7f53b4dad000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","mapped":4,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b4db1000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","anon":27,"dirty":27,"mapmax":2,"N0":27,"kernelpagesize_kB":4},{"address":"7f53b4dcc000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4dcd000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","mapped":3,"mapmax":17,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b4dd0000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","mapped":4,"mapmax":17,"N0":4,"kernelpagesize_kB":4},{"address":"7f53b4dd4000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/librt-2.32.so"},{"address":"7f53b4dd6000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4dd7000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b4ddf000","policy":"default","file":"/usr/lib/systemd/libsystemd-shared-246.so","mapped":74,"mapmax":7,"N0":74,"kernelpagesize_kB":4},{"address":"7f53b4e29000","policy":"default","file":"/usr/lib/systemd/libsystemd-shared-246.so","mapped":354,"mapmax":8,"active":348,"N0":354,"kernelpagesize_kB":4},{"address":"7f53b4fac000","policy":"default","file":"/usr/lib/systemd/libsystemd-shared-246.so","mapped":84,"mapmax":7,"N0":84,"kernelpagesize_kB":4},{"address":"7f53b503f000","policy":"default","file":"/usr/lib/systemd/libsystemd-shared-246.so"},{"address":"7f53b5040000","policy":"default","file":"/usr/lib/systemd/libsystemd-shared-246.so","anon":16,"dirty":16,"mapmax":2,"N0":16,"kernelpagesize_kB":4},{"address":"7f53b5050000","policy":"default","file":"/usr/lib/systemd/libsystemd-shared-246.so","anon":1,"dirty":1,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b5051000","policy":"default","anon":3,"dirty":3,"N0":3,"kernelpagesize_kB":4},{"address":"7f53b5054000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","mapped":1,"mapmax":31,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b5055000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","mapped":36,"mapmax":32,"N0":36,"kernelpagesize_kB":4},{"address":"7f53b5079000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","mapped":8,"mapmax":31,"N0":8,"kernelpagesize_kB":4},{"address":"7f53b5082000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","anon":1,"dirty":1,"mapmax":2,"N0":1,"kernelpagesize_kB":4},{"address":"7f53b5083000","policy":"default","file":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","anon":2,"dirty":2,"N0":2,"kernelpagesize_kB":4},{"address":"7ffd1b23e000","policy":"default","anon":258,"dirty":258,"N0":258,"kernelpagesize_kB":4,"options":["stack"]},{"address":"7ffd1b3b1000","policy":"default"},{"address":"7ffd1b3b5000","policy":"default"}] diff --git a/tests/fixtures/linux-proc/pid_smaps b/tests/fixtures/linux-proc/pid_smaps new file mode 100644 index 00000000..62cbd24f --- /dev/null +++ b/tests/fixtures/linux-proc/pid_smaps @@ -0,0 +1,4922 @@ +55a9e753c000-55a9e7570000 r--p 00000000 fd:00 798126 /usr/lib/systemd/systemd +Size: 208 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 208 kB +Pss: 104 kB +Shared_Clean: 208 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 208 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me dw sd +55a9e7570000-55a9e763a000 r-xp 00034000 fd:00 798126 /usr/lib/systemd/systemd +Size: 808 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 800 kB +Pss: 378 kB +Shared_Clean: 800 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 800 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me dw sd +55a9e763a000-55a9e7694000 r--p 000fe000 fd:00 798126 /usr/lib/systemd/systemd +Size: 360 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 276 kB +Pss: 127 kB +Shared_Clean: 276 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 276 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me dw sd +55a9e7695000-55a9e76da000 r--p 00158000 fd:00 798126 /usr/lib/systemd/systemd +Size: 276 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 268 kB +Pss: 131 kB +Shared_Clean: 16 kB +Shared_Dirty: 252 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 268 kB +Anonymous: 252 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me dw ac sd +55a9e76da000-55a9e76db000 rw-p 0019d000 fd:00 798126 /usr/lib/systemd/systemd +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me dw ac sd +55a9e8cd4000-55a9e8f68000 rw-p 00000000 00:00 0 [heap] +Size: 2640 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 2444 kB +Pss: 2414 kB +Shared_Clean: 0 kB +Shared_Dirty: 60 kB +Private_Clean: 0 kB +Private_Dirty: 2384 kB +Referenced: 2444 kB +Anonymous: 2444 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53a4000000-7f53a4021000 rw-p 00000000 00:00 0 +Size: 132 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 12 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 12 kB +Referenced: 12 kB +Anonymous: 12 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me nr sd +7f53a4021000-7f53a8000000 ---p 00000000 00:00 0 +Size: 65404 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me nr sd +7f53ac000000-7f53ac021000 rw-p 00000000 00:00 0 +Size: 132 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 12 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 12 kB +Referenced: 12 kB +Anonymous: 12 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me nr sd +7f53ac021000-7f53b0000000 ---p 00000000 00:00 0 +Size: 65404 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me nr sd +7f53b2fb8000-7f53b2fb9000 ---p 00000000 00:00 0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b2fb9000-7f53b37b9000 rw-p 00000000 00:00 0 +Size: 8192 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 8 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 8 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b37b9000-7f53b37ba000 ---p 00000000 00:00 0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b37ba000-7f53b3fc1000 rw-p 00000000 00:00 0 +Size: 8220 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 32 kB +Pss: 26 kB +Shared_Clean: 0 kB +Shared_Dirty: 12 kB +Private_Clean: 0 kB +Private_Dirty: 20 kB +Referenced: 32 kB +Anonymous: 32 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b3fc1000-7f53b3fd0000 r--p 00000000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +Size: 60 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 56 kB +Pss: 4 kB +Shared_Clean: 56 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 56 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b3fd0000-7f53b4077000 r-xp 0000f000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +Size: 668 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 284 kB +Pss: 23 kB +Shared_Clean: 284 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 284 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4077000-7f53b410e000 r--p 000b6000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +Size: 604 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b410e000-7f53b410f000 r--p 0014c000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b410f000-7f53b4110000 rw-p 0014d000 fd:00 793156 /usr/lib/x86_64-linux-gnu/libm-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4110000-7f53b4114000 r--p 00000000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 1 kB +Shared_Clean: 16 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4114000-7f53b412d000 r-xp 00004000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +Size: 100 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 7 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b412d000-7f53b4136000 r--p 0001d000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +Size: 36 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4136000-7f53b4137000 r--p 00025000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4137000-7f53b4138000 rw-p 00026000 fd:00 788923 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.18 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4138000-7f53b4148000 r--p 00000000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +Size: 64 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 9 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4148000-7f53b417e000 r-xp 00010000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +Size: 216 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 60 kB +Pss: 8 kB +Shared_Clean: 60 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 60 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b417e000-7f53b42b5000 r--p 00046000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +Size: 1244 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b42b5000-7f53b42b6000 ---p 0017d000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b42b6000-7f53b42b9000 r--p 0017d000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 6 kB +Shared_Clean: 0 kB +Shared_Dirty: 12 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 12 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b42b9000-7f53b42ba000 rw-p 00180000 fd:00 793263 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b42ba000-7f53b42bf000 r--p 00000000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +Size: 20 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 20 kB +Pss: 1 kB +Shared_Clean: 20 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 20 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b42bf000-7f53b42d4000 r-xp 00005000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +Size: 84 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 80 kB +Pss: 4 kB +Shared_Clean: 80 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 80 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b42d4000-7f53b42de000 r--p 0001a000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +Size: 40 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 36 kB +Pss: 2 kB +Shared_Clean: 36 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 36 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b42de000-7f53b42df000 ---p 00024000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b42df000-7f53b42e0000 r--p 00024000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b42e0000-7f53b42e1000 rw-p 00025000 fd:00 793102 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b42e1000-7f53b42e5000 r--p 00000000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 2 kB +Shared_Clean: 16 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b42e5000-7f53b42ee000 r-xp 00004000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +Size: 36 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 32 kB +Pss: 4 kB +Shared_Clean: 32 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 32 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b42ee000-7f53b42f2000 r--p 0000d000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b42f2000-7f53b42f3000 r--p 00010000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b42f3000-7f53b42f4000 rw-p 00011000 fd:00 793139 /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b42f4000-7f53b42f6000 rw-p 00000000 00:00 0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 6 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b42f6000-7f53b42f7000 r--p 00000000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 0 kB +Shared_Clean: 4 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b42f7000-7f53b42fc000 r-xp 00001000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +Size: 20 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 20 kB +Pss: 2 kB +Shared_Clean: 20 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 20 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b42fc000-7f53b42fe000 r--p 00006000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b42fe000-7f53b42ff000 r--p 00007000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b42ff000-7f53b4300000 rw-p 00008000 fd:00 793030 /usr/lib/x86_64-linux-gnu/libargon2.so.1 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4300000-7f53b430a000 r--p 00000000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +Size: 40 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 40 kB +Pss: 5 kB +Shared_Clean: 40 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 40 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b430a000-7f53b4352000 r-xp 0000a000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +Size: 288 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 60 kB +Pss: 7 kB +Shared_Clean: 60 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 60 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4352000-7f53b4366000 r--p 00052000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +Size: 80 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 8 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4366000-7f53b4367000 r--p 00065000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4367000-7f53b436a000 rw-p 00066000 fd:00 793061 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 4 kB +Shared_Clean: 4 kB +Shared_Dirty: 8 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b436a000-7f53b436b000 rw-p 00000000 00:00 0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b436b000-7f53b436d000 r--p 00000000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 1 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b436d000-7f53b4371000 r-xp 00002000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 2 kB +Shared_Clean: 16 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4371000-7f53b4372000 r--p 00006000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4372000-7f53b4373000 r--p 00006000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4373000-7f53b4374000 rw-p 00007000 fd:00 793279 /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4374000-7f53b43ec000 r--p 00000000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +Size: 480 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 480 kB +Pss: 39 kB +Shared_Clean: 480 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 480 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b43ec000-7f53b458e000 r-xp 00078000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +Size: 1672 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 180 kB +Pss: 20 kB +Shared_Clean: 180 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 180 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b458e000-7f53b461e000 r--p 0021a000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +Size: 576 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 7 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b461e000-7f53b461f000 ---p 002aa000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b461f000-7f53b464b000 r--p 002aa000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +Size: 176 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 176 kB +Pss: 88 kB +Shared_Clean: 0 kB +Shared_Dirty: 176 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 176 kB +Anonymous: 176 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b464b000-7f53b464d000 rw-p 002d6000 fd:00 790506 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 8 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b464d000-7f53b4651000 rw-p 00000000 00:00 0 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4651000-7f53b4653000 r--p 00000000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 0 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4653000-7f53b4656000 r-xp 00002000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 0 kB +Shared_Clean: 12 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4656000-7f53b4657000 r--p 00005000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4657000-7f53b4658000 r--p 00005000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4658000-7f53b4659000 rw-p 00006000 fd:00 793046 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4659000-7f53b465b000 r--p 00000000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 0 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b465b000-7f53b46bf000 r-xp 00002000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +Size: 400 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 60 kB +Pss: 2 kB +Shared_Clean: 60 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 60 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b46bf000-7f53b46e7000 r--p 00066000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +Size: 160 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b46e7000-7f53b46e8000 r--p 0008d000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b46e8000-7f53b46e9000 rw-p 0008e000 fd:00 793203 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b46e9000-7f53b46eb000 rw-p 00000000 00:00 0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 6 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b46eb000-7f53b46f2000 r--p 00000000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +Size: 28 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 28 kB +Pss: 1 kB +Shared_Clean: 28 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 28 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b46f2000-7f53b4702000 r-xp 00007000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +Size: 64 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 2 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4702000-7f53b4707000 r--p 00017000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +Size: 20 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 20 kB +Pss: 1 kB +Shared_Clean: 20 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 20 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4707000-7f53b4708000 r--p 0001b000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4708000-7f53b4709000 rw-p 0001c000 fd:00 793218 /usr/lib/x86_64-linux-gnu/libpthread-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4709000-7f53b470d000 rw-p 00000000 00:00 0 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b470d000-7f53b470e000 r--p 00000000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 0 kB +Shared_Clean: 4 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b470e000-7f53b4710000 r-xp 00001000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 0 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4710000-7f53b4711000 r--p 00003000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4711000-7f53b4712000 r--p 00003000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4712000-7f53b4713000 rw-p 00004000 fd:00 793062 /usr/lib/x86_64-linux-gnu/libdl-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4713000-7f53b4716000 r--p 00000000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 0 kB +Shared_Clean: 12 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4716000-7f53b472e000 r-xp 00003000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +Size: 96 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 60 kB +Pss: 3 kB +Shared_Clean: 60 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 60 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b472e000-7f53b4739000 r--p 0001b000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +Size: 44 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4739000-7f53b473a000 ---p 00026000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b473a000-7f53b473b000 r--p 00026000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b473b000-7f53b473c000 rw-p 00027000 fd:00 793154 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b473c000-7f53b4740000 r--p 00000000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 0 kB +Shared_Clean: 16 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4740000-7f53b47f8000 r-xp 00004000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +Size: 736 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 3 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b47f8000-7f53b480a000 r--p 000bc000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +Size: 72 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b480a000-7f53b480b000 r--p 000cd000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b480b000-7f53b480c000 rw-p 000ce000 fd:00 792974 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b480c000-7f53b480e000 r--p 00000000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 0 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b480e000-7f53b4829000 r-xp 00002000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +Size: 108 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 3 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4829000-7f53b482c000 r--p 0001d000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b482c000-7f53b482d000 r--p 0001f000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b482d000-7f53b482e000 rw-p 00020000 fd:00 787663 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b482e000-7f53b4830000 rw-p 00000000 00:00 0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 6 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4830000-7f53b4832000 r--p 00000000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 1 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4832000-7f53b4836000 r-xp 00002000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 2 kB +Shared_Clean: 16 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4836000-7f53b4838000 r--p 00006000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4838000-7f53b4839000 r--p 00007000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4839000-7f53b483a000 rw-p 00008000 fd:00 793129 /usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b483a000-7f53b483c000 r--p 00000000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 1 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b483c000-7f53b4841000 r-xp 00002000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +Size: 20 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 20 kB +Pss: 2 kB +Shared_Clean: 20 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 20 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4841000-7f53b485a000 r--p 00007000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +Size: 100 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b485a000-7f53b485b000 r--p 0001f000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b485b000-7f53b485c000 rw-p 00020000 fd:00 793128 /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b485c000-7f53b4868000 r--p 00000000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +Size: 48 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 48 kB +Pss: 2 kB +Shared_Clean: 48 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 48 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4868000-7f53b4936000 r-xp 0000c000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +Size: 824 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 60 kB +Pss: 3 kB +Shared_Clean: 60 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 60 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4936000-7f53b4973000 r--p 000da000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +Size: 244 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4973000-7f53b4975000 r--p 00116000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 8 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4975000-7f53b497a000 rw-p 00118000 fd:00 793092 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5 +Size: 20 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 20 kB +Pss: 10 kB +Shared_Clean: 0 kB +Shared_Dirty: 20 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 20 kB +Anonymous: 20 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b497a000-7f53b4981000 r--p 00000000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +Size: 28 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 28 kB +Pss: 3 kB +Shared_Clean: 28 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 28 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4981000-7f53b49d2000 r-xp 00007000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +Size: 324 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 9 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b49d2000-7f53b49ec000 r--p 00058000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +Size: 104 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b49ec000-7f53b49ed000 ---p 00072000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b49ed000-7f53b49ef000 r--p 00072000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 8 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b49ef000-7f53b49f1000 rw-p 00074000 fd:00 793052 /usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 8 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b49f1000-7f53b49f3000 r--p 00000000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 0 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b49f3000-7f53b4a08000 r-xp 00002000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +Size: 84 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 48 kB +Pss: 3 kB +Shared_Clean: 48 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 48 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4a08000-7f53b4a22000 r--p 00017000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +Size: 104 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4a22000-7f53b4a23000 r--p 00030000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4a23000-7f53b4a24000 rw-p 00031000 fd:00 793050 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4a24000-7f53b4a2c000 rw-p 00000000 00:00 0 +Size: 32 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4a2c000-7f53b4a2f000 r--p 00000000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 1 kB +Shared_Clean: 12 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4a2f000-7f53b4a33000 r-xp 00003000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 1 kB +Shared_Clean: 16 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4a33000-7f53b4a35000 r--p 00007000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4a35000-7f53b4a36000 r--p 00008000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4a36000-7f53b4a37000 rw-p 00009000 fd:00 793047 /usr/lib/x86_64-linux-gnu/libcap.so.2.43 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4a37000-7f53b4a39000 rw-p 00000000 00:00 0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 6 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4a39000-7f53b4a42000 r--p 00000000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +Size: 36 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 36 kB +Pss: 2 kB +Shared_Clean: 36 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 36 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4a42000-7f53b4a76000 r-xp 00009000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +Size: 208 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 60 kB +Pss: 4 kB +Shared_Clean: 60 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 60 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4a76000-7f53b4a86000 r--p 0003d000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +Size: 64 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4a86000-7f53b4a87000 ---p 0004d000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b4a87000-7f53b4a8b000 r--p 0004d000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 8 kB +Shared_Clean: 0 kB +Shared_Dirty: 16 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 16 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4a8b000-7f53b4a8c000 rw-p 00051000 fd:00 793038 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4a8c000-7f53b4a8e000 r--p 00000000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 1 kB +Shared_Clean: 8 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4a8e000-7f53b4a93000 r-xp 00002000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +Size: 20 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 20 kB +Pss: 2 kB +Shared_Clean: 20 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 20 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4a93000-7f53b4a95000 r--p 00007000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4a95000-7f53b4a96000 r--p 00008000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4a96000-7f53b4a97000 rw-p 00009000 fd:00 793022 /usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4a97000-7f53b4abd000 r--p 00000000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +Size: 152 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 148 kB +Pss: 4 kB +Shared_Clean: 148 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 148 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4abd000-7f53b4c2a000 r-xp 00026000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +Size: 1460 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 1256 kB +Pss: 48 kB +Shared_Clean: 1256 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 1256 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4c2a000-7f53b4c76000 r--p 00193000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +Size: 304 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 144 kB +Pss: 4 kB +Shared_Clean: 144 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 144 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4c76000-7f53b4c77000 ---p 001df000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b4c77000-7f53b4c7a000 r--p 001df000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 6 kB +Shared_Clean: 0 kB +Shared_Dirty: 12 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 12 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4c7a000-7f53b4c7d000 rw-p 001e2000 fd:00 793044 /usr/lib/x86_64-linux-gnu/libc-2.32.so +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 12 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 12 kB +Referenced: 12 kB +Anonymous: 12 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4c7d000-7f53b4c81000 rw-p 00000000 00:00 0 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 12 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 12 kB +Referenced: 12 kB +Anonymous: 12 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4c81000-7f53b4c84000 r--p 00000000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 3 kB +Shared_Clean: 12 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4c84000-7f53b4c8d000 r-xp 00003000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +Size: 36 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 36 kB +Pss: 11 kB +Shared_Clean: 36 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 36 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4c8d000-7f53b4c94000 r--p 0000c000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +Size: 28 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 24 kB +Pss: 12 kB +Shared_Clean: 24 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 24 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4c94000-7f53b4c95000 r--p 00012000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4c95000-7f53b4c96000 rw-p 00013000 fd:00 793025 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4c96000-7f53b4c99000 r--p 00000000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 1 kB +Shared_Clean: 12 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4c99000-7f53b4ca9000 r-xp 00003000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +Size: 64 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 8 kB +Shared_Clean: 64 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4ca9000-7f53b4caf000 r--p 00013000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +Size: 24 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 24 kB +Pss: 12 kB +Shared_Clean: 24 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 24 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4caf000-7f53b4cb0000 r--p 00018000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4cb0000-7f53b4cb1000 rw-p 00019000 fd:00 793143 /usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4cb1000-7f53b4cb4000 r--p 00000000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 0 kB +Shared_Clean: 12 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4cb4000-7f53b4cbc000 r-xp 00003000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +Size: 32 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 32 kB +Pss: 2 kB +Shared_Clean: 32 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 32 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4cbc000-7f53b4cd0000 r--p 0000b000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +Size: 80 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 60 kB +Pss: 36 kB +Shared_Clean: 32 kB +Shared_Dirty: 0 kB +Private_Clean: 28 kB +Private_Dirty: 0 kB +Referenced: 60 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4cd0000-7f53b4cd1000 ---p 0001f000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b4cd1000-7f53b4cd2000 r--p 0001f000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4cd2000-7f53b4cd3000 rw-p 00020000 fd:00 793036 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4cd3000-7f53b4cdf000 rw-p 00000000 00:00 0 +Size: 48 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 10 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 8 kB +Referenced: 12 kB +Anonymous: 12 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4cdf000-7f53b4ce2000 r--p 00000000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 0 kB +Shared_Clean: 12 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4ce2000-7f53b4ceb000 r-xp 00003000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +Size: 36 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 32 kB +Pss: 2 kB +Shared_Clean: 32 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 32 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4ceb000-7f53b4cef000 r--p 0000c000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4cef000-7f53b4cf0000 r--p 0000f000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4cf0000-7f53b4cf1000 rw-p 00010000 fd:00 793193 /usr/lib/x86_64-linux-gnu/libpam.so.0.84.2 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4cf1000-7f53b4cfb000 r--p 00000000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +Size: 40 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 40 kB +Pss: 3 kB +Shared_Clean: 40 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 40 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4cfb000-7f53b4d39000 r-xp 0000a000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +Size: 248 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 208 kB +Pss: 78 kB +Shared_Clean: 208 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 208 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4d39000-7f53b4d4c000 r--p 00048000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +Size: 76 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 60 kB +Pss: 30 kB +Shared_Clean: 60 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 60 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4d4c000-7f53b4d4e000 r--p 0005a000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 8 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4d4e000-7f53b4d4f000 rw-p 0005c000 fd:00 793163 /usr/lib/x86_64-linux-gnu/libmount.so.1.1.0 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4d4f000-7f53b4d55000 r--p 00000000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +Size: 24 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 24 kB +Pss: 1 kB +Shared_Clean: 24 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 24 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4d55000-7f53b4d6e000 r-xp 00006000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +Size: 100 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 100 kB +Pss: 14 kB +Shared_Clean: 100 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 100 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4d6e000-7f53b4d76000 r--p 0001f000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +Size: 32 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 32 kB +Pss: 1 kB +Shared_Clean: 32 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 32 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4d76000-7f53b4d77000 r--p 00026000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4d77000-7f53b4d78000 rw-p 00027000 fd:00 793228 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4d78000-7f53b4d7a000 rw-p 00000000 00:00 0 +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 8 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4d7a000-7f53b4da2000 r--p 00000000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +Size: 160 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 160 kB +Pss: 22 kB +Shared_Clean: 160 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 160 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4da2000-7f53b4dad000 r-xp 00028000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +Size: 44 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 44 kB +Pss: 6 kB +Shared_Clean: 44 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 44 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4dad000-7f53b4db1000 r--p 00033000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 16 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 16 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4db1000-7f53b4dcc000 r--p 00036000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +Size: 108 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 108 kB +Pss: 54 kB +Shared_Clean: 0 kB +Shared_Dirty: 108 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 108 kB +Anonymous: 108 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4dcc000-7f53b4dcd000 rw-p 00051000 fd:00 793227 /usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3 +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4dcd000-7f53b4dd0000 r--p 00000000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 0 kB +Shared_Clean: 12 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 12 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4dd0000-7f53b4dd4000 r-xp 00003000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 16 kB +Pss: 0 kB +Shared_Clean: 16 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 16 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4dd4000-7f53b4dd6000 r--p 00007000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4dd6000-7f53b4dd7000 r--p 00008000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b4dd7000-7f53b4dd8000 rw-p 00009000 fd:00 793224 /usr/lib/x86_64-linux-gnu/librt-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b4ddf000-7f53b4e29000 r--p 00000000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +Size: 296 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 296 kB +Pss: 42 kB +Shared_Clean: 296 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 296 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b4e29000-7f53b4fac000 r-xp 0004a000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +Size: 1548 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 1416 kB +Pss: 286 kB +Shared_Clean: 1416 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 1416 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me sd +7f53b4fac000-7f53b503f000 r--p 001cd000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +Size: 588 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 336 kB +Pss: 53 kB +Shared_Clean: 336 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 336 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me sd +7f53b503f000-7f53b5040000 ---p 00260000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: mr mw me sd +7f53b5040000-7f53b5050000 r--p 00260000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +Size: 64 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 64 kB +Pss: 32 kB +Shared_Clean: 0 kB +Shared_Dirty: 64 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 64 kB +Anonymous: 64 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me ac sd +7f53b5050000-7f53b5051000 rw-p 00270000 fd:00 798124 /usr/lib/systemd/libsystemd-shared-246.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 4 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 4 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b5051000-7f53b5054000 rw-p 00000000 00:00 0 +Size: 12 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 12 kB +Pss: 12 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 12 kB +Referenced: 12 kB +Anonymous: 12 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me ac sd +7f53b5054000-7f53b5055000 r--p 00000000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 0 kB +Shared_Clean: 4 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me dw sd +7f53b5055000-7f53b5079000 r-xp 00001000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +Size: 144 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 144 kB +Pss: 4 kB +Shared_Clean: 144 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 144 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me dw sd +7f53b5079000-7f53b5082000 r--p 00025000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +Size: 36 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 32 kB +Pss: 1 kB +Shared_Clean: 32 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 32 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me dw sd +7f53b5082000-7f53b5083000 r--p 0002d000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 2 kB +Shared_Clean: 0 kB +Shared_Dirty: 4 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 4 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr mw me dw ac sd +7f53b5083000-7f53b5085000 rw-p 0002e000 fd:00 793013 /usr/lib/x86_64-linux-gnu/ld-2.32.so +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 8 kB +Pss: 8 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 8 kB +Referenced: 8 kB +Anonymous: 8 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me dw ac sd +7ffd1b23e000-7ffd1b340000 rw-p 00000000 00:00 0 [stack] +Size: 1032 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 1032 kB +Pss: 1032 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 1032 kB +Referenced: 1032 kB +Anonymous: 1032 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd wr mr mw me gd ac +7ffd1b3b1000-7ffd1b3b5000 r--p 00000000 00:00 0 [vvar] +Size: 16 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd mr pf io de dd sd +7ffd1b3b5000-7ffd1b3b7000 r-xp 00000000 00:00 0 [vdso] +Size: 8 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 4 kB +Pss: 0 kB +Shared_Clean: 4 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 4 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: rd ex mr mw me de sd +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] +Size: 4 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Rss: 0 kB +Pss: 0 kB +Shared_Clean: 0 kB +Shared_Dirty: 0 kB +Private_Clean: 0 kB +Private_Dirty: 0 kB +Referenced: 0 kB +Anonymous: 0 kB +LazyFree: 0 kB +AnonHugePages: 0 kB +ShmemPmdMapped: 0 kB +FilePmdMapped: 0 kB +Shared_Hugetlb: 0 kB +Private_Hugetlb: 0 kB +Swap: 0 kB +SwapPss: 0 kB +Locked: 0 kB +THPeligible: 0 +VmFlags: ex diff --git a/tests/fixtures/linux-proc/pid_smaps.json b/tests/fixtures/linux-proc/pid_smaps.json new file mode 100644 index 00000000..a0e42538 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_smaps.json @@ -0,0 +1 @@ +[{"start":"55a9e753c000","end":"55a9e7570000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":798126,"pathname":"/usr/lib/systemd/systemd","Size":208,"KernelPageSize":4,"MMUPageSize":4,"Rss":208,"Pss":104,"Shared_Clean":208,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":208,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","dw","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","disabled write to the mapped file","soft-dirty flag"]},{"start":"55a9e7570000","end":"55a9e763a000","perms":["read","execute","private"],"offset":"00034000","maj":"fd","min":"00","inode":798126,"pathname":"/usr/lib/systemd/systemd","Size":808,"KernelPageSize":4,"MMUPageSize":4,"Rss":800,"Pss":378,"Shared_Clean":800,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":800,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","dw","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","disabled write to the mapped file","soft-dirty flag"]},{"start":"55a9e763a000","end":"55a9e7694000","perms":["read","private"],"offset":"000fe000","maj":"fd","min":"00","inode":798126,"pathname":"/usr/lib/systemd/systemd","Size":360,"KernelPageSize":4,"MMUPageSize":4,"Rss":276,"Pss":127,"Shared_Clean":276,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":276,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","dw","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","disabled write to the mapped file","soft-dirty flag"]},{"start":"55a9e7695000","end":"55a9e76da000","perms":["read","private"],"offset":"00158000","maj":"fd","min":"00","inode":798126,"pathname":"/usr/lib/systemd/systemd","Size":276,"KernelPageSize":4,"MMUPageSize":4,"Rss":268,"Pss":131,"Shared_Clean":16,"Shared_Dirty":252,"Private_Clean":0,"Private_Dirty":0,"Referenced":268,"Anonymous":252,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","dw","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","disabled write to the mapped file","area is accountable","soft-dirty flag"]},{"start":"55a9e76da000","end":"55a9e76db000","perms":["read","write","private"],"offset":"0019d000","maj":"fd","min":"00","inode":798126,"pathname":"/usr/lib/systemd/systemd","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":4,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":4,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","dw","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","disabled write to the mapped file","area is accountable","soft-dirty flag"]},{"start":"55a9e8cd4000","end":"55a9e8f68000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"[heap]","Size":2640,"KernelPageSize":4,"MMUPageSize":4,"Rss":2444,"Pss":2414,"Shared_Clean":0,"Shared_Dirty":60,"Private_Clean":0,"Private_Dirty":2384,"Referenced":2444,"Anonymous":2444,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53a4000000","end":"7f53a4021000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":132,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":12,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":12,"Referenced":12,"Anonymous":12,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","nr","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","swap space is not reserved for the area","soft-dirty flag"]},{"start":"7f53a4021000","end":"7f53a8000000","perms":["private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":65404,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","nr","sd"],"VmFlags_pretty":["may read","may write","may execute","swap space is not reserved for the area","soft-dirty flag"]},{"start":"7f53ac000000","end":"7f53ac021000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":132,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":12,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":12,"Referenced":12,"Anonymous":12,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","nr","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","swap space is not reserved for the area","soft-dirty flag"]},{"start":"7f53ac021000","end":"7f53b0000000","perms":["private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":65404,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","nr","sd"],"VmFlags_pretty":["may read","may write","may execute","swap space is not reserved for the area","soft-dirty flag"]},{"start":"7f53b2fb8000","end":"7f53b2fb9000","perms":["private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b2fb9000","end":"7f53b37b9000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":8192,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":8,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":8,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b37b9000","end":"7f53b37ba000","perms":["private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b37ba000","end":"7f53b3fc1000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":8220,"KernelPageSize":4,"MMUPageSize":4,"Rss":32,"Pss":26,"Shared_Clean":0,"Shared_Dirty":12,"Private_Clean":0,"Private_Dirty":20,"Referenced":32,"Anonymous":32,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b3fc1000","end":"7f53b3fd0000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","Size":60,"KernelPageSize":4,"MMUPageSize":4,"Rss":56,"Pss":4,"Shared_Clean":56,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":56,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b3fd0000","end":"7f53b4077000","perms":["read","execute","private"],"offset":"0000f000","maj":"fd","min":"00","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","Size":668,"KernelPageSize":4,"MMUPageSize":4,"Rss":284,"Pss":23,"Shared_Clean":284,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":284,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4077000","end":"7f53b410e000","perms":["read","private"],"offset":"000b6000","maj":"fd","min":"00","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","Size":604,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b410e000","end":"7f53b410f000","perms":["read","private"],"offset":"0014c000","maj":"fd","min":"00","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b410f000","end":"7f53b4110000","perms":["read","write","private"],"offset":"0014d000","maj":"fd","min":"00","inode":793156,"pathname":"/usr/lib/x86_64-linux-gnu/libm-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4110000","end":"7f53b4114000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":1,"Shared_Clean":16,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":16,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4114000","end":"7f53b412d000","perms":["read","execute","private"],"offset":"00004000","maj":"fd","min":"00","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","Size":100,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":7,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b412d000","end":"7f53b4136000","perms":["read","private"],"offset":"0001d000","maj":"fd","min":"00","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","Size":36,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4136000","end":"7f53b4137000","perms":["read","private"],"offset":"00025000","maj":"fd","min":"00","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4137000","end":"7f53b4138000","perms":["read","write","private"],"offset":"00026000","maj":"fd","min":"00","inode":788923,"pathname":"/usr/lib/x86_64-linux-gnu/libudev.so.1.6.18","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4138000","end":"7f53b4148000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","Size":64,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":9,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4148000","end":"7f53b417e000","perms":["read","execute","private"],"offset":"00010000","maj":"fd","min":"00","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","Size":216,"KernelPageSize":4,"MMUPageSize":4,"Rss":60,"Pss":8,"Shared_Clean":60,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":60,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b417e000","end":"7f53b42b5000","perms":["read","private"],"offset":"00046000","maj":"fd","min":"00","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","Size":1244,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42b5000","end":"7f53b42b6000","perms":["private"],"offset":"0017d000","maj":"fd","min":"00","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42b6000","end":"7f53b42b9000","perms":["read","private"],"offset":"0017d000","maj":"fd","min":"00","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":6,"Shared_Clean":0,"Shared_Dirty":12,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":12,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b42b9000","end":"7f53b42ba000","perms":["read","write","private"],"offset":"00180000","maj":"fd","min":"00","inode":793263,"pathname":"/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b42ba000","end":"7f53b42bf000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","Size":20,"KernelPageSize":4,"MMUPageSize":4,"Rss":20,"Pss":1,"Shared_Clean":20,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":20,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42bf000","end":"7f53b42d4000","perms":["read","execute","private"],"offset":"00005000","maj":"fd","min":"00","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","Size":84,"KernelPageSize":4,"MMUPageSize":4,"Rss":80,"Pss":4,"Shared_Clean":80,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":80,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42d4000","end":"7f53b42de000","perms":["read","private"],"offset":"0001a000","maj":"fd","min":"00","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","Size":40,"KernelPageSize":4,"MMUPageSize":4,"Rss":36,"Pss":2,"Shared_Clean":36,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":36,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42de000","end":"7f53b42df000","perms":["private"],"offset":"00024000","maj":"fd","min":"00","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42df000","end":"7f53b42e0000","perms":["read","private"],"offset":"00024000","maj":"fd","min":"00","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b42e0000","end":"7f53b42e1000","perms":["read","write","private"],"offset":"00025000","maj":"fd","min":"00","inode":793102,"pathname":"/usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b42e1000","end":"7f53b42e5000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":2,"Shared_Clean":16,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":16,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42e5000","end":"7f53b42ee000","perms":["read","execute","private"],"offset":"00004000","maj":"fd","min":"00","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","Size":36,"KernelPageSize":4,"MMUPageSize":4,"Rss":32,"Pss":4,"Shared_Clean":32,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":32,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42ee000","end":"7f53b42f2000","perms":["read","private"],"offset":"0000d000","maj":"fd","min":"00","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42f2000","end":"7f53b42f3000","perms":["read","private"],"offset":"00010000","maj":"fd","min":"00","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b42f3000","end":"7f53b42f4000","perms":["read","write","private"],"offset":"00011000","maj":"fd","min":"00","inode":793139,"pathname":"/usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b42f4000","end":"7f53b42f6000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":6,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":4,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b42f6000","end":"7f53b42f7000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":0,"Shared_Clean":4,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42f7000","end":"7f53b42fc000","perms":["read","execute","private"],"offset":"00001000","maj":"fd","min":"00","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","Size":20,"KernelPageSize":4,"MMUPageSize":4,"Rss":20,"Pss":2,"Shared_Clean":20,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":20,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42fc000","end":"7f53b42fe000","perms":["read","private"],"offset":"00006000","maj":"fd","min":"00","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b42fe000","end":"7f53b42ff000","perms":["read","private"],"offset":"00007000","maj":"fd","min":"00","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b42ff000","end":"7f53b4300000","perms":["read","write","private"],"offset":"00008000","maj":"fd","min":"00","inode":793030,"pathname":"/usr/lib/x86_64-linux-gnu/libargon2.so.1","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4300000","end":"7f53b430a000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","Size":40,"KernelPageSize":4,"MMUPageSize":4,"Rss":40,"Pss":5,"Shared_Clean":40,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":40,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b430a000","end":"7f53b4352000","perms":["read","execute","private"],"offset":"0000a000","maj":"fd","min":"00","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","Size":288,"KernelPageSize":4,"MMUPageSize":4,"Rss":60,"Pss":7,"Shared_Clean":60,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":60,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4352000","end":"7f53b4366000","perms":["read","private"],"offset":"00052000","maj":"fd","min":"00","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","Size":80,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":8,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4366000","end":"7f53b4367000","perms":["read","private"],"offset":"00065000","maj":"fd","min":"00","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4367000","end":"7f53b436a000","perms":["read","write","private"],"offset":"00066000","maj":"fd","min":"00","inode":793061,"pathname":"/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":4,"Shared_Clean":4,"Shared_Dirty":8,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b436a000","end":"7f53b436b000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b436b000","end":"7f53b436d000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":1,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b436d000","end":"7f53b4371000","perms":["read","execute","private"],"offset":"00002000","maj":"fd","min":"00","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":2,"Shared_Clean":16,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":16,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4371000","end":"7f53b4372000","perms":["read","private"],"offset":"00006000","maj":"fd","min":"00","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4372000","end":"7f53b4373000","perms":["read","private"],"offset":"00006000","maj":"fd","min":"00","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4373000","end":"7f53b4374000","perms":["read","write","private"],"offset":"00007000","maj":"fd","min":"00","inode":793279,"pathname":"/usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4374000","end":"7f53b43ec000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","Size":480,"KernelPageSize":4,"MMUPageSize":4,"Rss":480,"Pss":39,"Shared_Clean":480,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":480,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b43ec000","end":"7f53b458e000","perms":["read","execute","private"],"offset":"00078000","maj":"fd","min":"00","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","Size":1672,"KernelPageSize":4,"MMUPageSize":4,"Rss":180,"Pss":20,"Shared_Clean":180,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":180,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b458e000","end":"7f53b461e000","perms":["read","private"],"offset":"0021a000","maj":"fd","min":"00","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","Size":576,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":7,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b461e000","end":"7f53b461f000","perms":["private"],"offset":"002aa000","maj":"fd","min":"00","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b461f000","end":"7f53b464b000","perms":["read","private"],"offset":"002aa000","maj":"fd","min":"00","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","Size":176,"KernelPageSize":4,"MMUPageSize":4,"Rss":176,"Pss":88,"Shared_Clean":0,"Shared_Dirty":176,"Private_Clean":0,"Private_Dirty":0,"Referenced":176,"Anonymous":176,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b464b000","end":"7f53b464d000","perms":["read","write","private"],"offset":"002d6000","maj":"fd","min":"00","inode":790506,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":4,"Shared_Clean":0,"Shared_Dirty":8,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b464d000","end":"7f53b4651000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4651000","end":"7f53b4653000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":0,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4653000","end":"7f53b4656000","perms":["read","execute","private"],"offset":"00002000","maj":"fd","min":"00","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":0,"Shared_Clean":12,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4656000","end":"7f53b4657000","perms":["read","private"],"offset":"00005000","maj":"fd","min":"00","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4657000","end":"7f53b4658000","perms":["read","private"],"offset":"00005000","maj":"fd","min":"00","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4658000","end":"7f53b4659000","perms":["read","write","private"],"offset":"00006000","maj":"fd","min":"00","inode":793046,"pathname":"/usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":4,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":4,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4659000","end":"7f53b465b000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":0,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b465b000","end":"7f53b46bf000","perms":["read","execute","private"],"offset":"00002000","maj":"fd","min":"00","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","Size":400,"KernelPageSize":4,"MMUPageSize":4,"Rss":60,"Pss":2,"Shared_Clean":60,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":60,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b46bf000","end":"7f53b46e7000","perms":["read","private"],"offset":"00066000","maj":"fd","min":"00","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","Size":160,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b46e7000","end":"7f53b46e8000","perms":["read","private"],"offset":"0008d000","maj":"fd","min":"00","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b46e8000","end":"7f53b46e9000","perms":["read","write","private"],"offset":"0008e000","maj":"fd","min":"00","inode":793203,"pathname":"/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b46e9000","end":"7f53b46eb000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":6,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":4,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b46eb000","end":"7f53b46f2000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","Size":28,"KernelPageSize":4,"MMUPageSize":4,"Rss":28,"Pss":1,"Shared_Clean":28,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":28,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b46f2000","end":"7f53b4702000","perms":["read","execute","private"],"offset":"00007000","maj":"fd","min":"00","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","Size":64,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":2,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4702000","end":"7f53b4707000","perms":["read","private"],"offset":"00017000","maj":"fd","min":"00","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","Size":20,"KernelPageSize":4,"MMUPageSize":4,"Rss":20,"Pss":1,"Shared_Clean":20,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":20,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4707000","end":"7f53b4708000","perms":["read","private"],"offset":"0001b000","maj":"fd","min":"00","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4708000","end":"7f53b4709000","perms":["read","write","private"],"offset":"0001c000","maj":"fd","min":"00","inode":793218,"pathname":"/usr/lib/x86_64-linux-gnu/libpthread-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":4,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":4,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4709000","end":"7f53b470d000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":4,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":4,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b470d000","end":"7f53b470e000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":0,"Shared_Clean":4,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b470e000","end":"7f53b4710000","perms":["read","execute","private"],"offset":"00001000","maj":"fd","min":"00","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":0,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4710000","end":"7f53b4711000","perms":["read","private"],"offset":"00003000","maj":"fd","min":"00","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4711000","end":"7f53b4712000","perms":["read","private"],"offset":"00003000","maj":"fd","min":"00","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4712000","end":"7f53b4713000","perms":["read","write","private"],"offset":"00004000","maj":"fd","min":"00","inode":793062,"pathname":"/usr/lib/x86_64-linux-gnu/libdl-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":4,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":4,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4713000","end":"7f53b4716000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":0,"Shared_Clean":12,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4716000","end":"7f53b472e000","perms":["read","execute","private"],"offset":"00003000","maj":"fd","min":"00","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","Size":96,"KernelPageSize":4,"MMUPageSize":4,"Rss":60,"Pss":3,"Shared_Clean":60,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":60,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b472e000","end":"7f53b4739000","perms":["read","private"],"offset":"0001b000","maj":"fd","min":"00","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","Size":44,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4739000","end":"7f53b473a000","perms":["private"],"offset":"00026000","maj":"fd","min":"00","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b473a000","end":"7f53b473b000","perms":["read","private"],"offset":"00026000","maj":"fd","min":"00","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b473b000","end":"7f53b473c000","perms":["read","write","private"],"offset":"00027000","maj":"fd","min":"00","inode":793154,"pathname":"/usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b473c000","end":"7f53b4740000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":0,"Shared_Clean":16,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":16,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4740000","end":"7f53b47f8000","perms":["read","execute","private"],"offset":"00004000","maj":"fd","min":"00","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","Size":736,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":3,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b47f8000","end":"7f53b480a000","perms":["read","private"],"offset":"000bc000","maj":"fd","min":"00","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","Size":72,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b480a000","end":"7f53b480b000","perms":["read","private"],"offset":"000cd000","maj":"fd","min":"00","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b480b000","end":"7f53b480c000","perms":["read","write","private"],"offset":"000ce000","maj":"fd","min":"00","inode":792974,"pathname":"/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.5","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b480c000","end":"7f53b480e000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":0,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b480e000","end":"7f53b4829000","perms":["read","execute","private"],"offset":"00002000","maj":"fd","min":"00","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","Size":108,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":3,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4829000","end":"7f53b482c000","perms":["read","private"],"offset":"0001d000","maj":"fd","min":"00","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b482c000","end":"7f53b482d000","perms":["read","private"],"offset":"0001f000","maj":"fd","min":"00","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b482d000","end":"7f53b482e000","perms":["read","write","private"],"offset":"00020000","maj":"fd","min":"00","inode":787663,"pathname":"/usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b482e000","end":"7f53b4830000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":6,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":4,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4830000","end":"7f53b4832000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":1,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4832000","end":"7f53b4836000","perms":["read","execute","private"],"offset":"00002000","maj":"fd","min":"00","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":2,"Shared_Clean":16,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":16,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4836000","end":"7f53b4838000","perms":["read","private"],"offset":"00006000","maj":"fd","min":"00","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4838000","end":"7f53b4839000","perms":["read","private"],"offset":"00007000","maj":"fd","min":"00","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4839000","end":"7f53b483a000","perms":["read","write","private"],"offset":"00008000","maj":"fd","min":"00","inode":793129,"pathname":"/usr/lib/x86_64-linux-gnu/libip4tc.so.2.0.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b483a000","end":"7f53b483c000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":1,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b483c000","end":"7f53b4841000","perms":["read","execute","private"],"offset":"00002000","maj":"fd","min":"00","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","Size":20,"KernelPageSize":4,"MMUPageSize":4,"Rss":20,"Pss":2,"Shared_Clean":20,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":20,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4841000","end":"7f53b485a000","perms":["read","private"],"offset":"00007000","maj":"fd","min":"00","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","Size":100,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b485a000","end":"7f53b485b000","perms":["read","private"],"offset":"0001f000","maj":"fd","min":"00","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b485b000","end":"7f53b485c000","perms":["read","write","private"],"offset":"00020000","maj":"fd","min":"00","inode":793128,"pathname":"/usr/lib/x86_64-linux-gnu/libidn2.so.0.3.7","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b485c000","end":"7f53b4868000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","Size":48,"KernelPageSize":4,"MMUPageSize":4,"Rss":48,"Pss":2,"Shared_Clean":48,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":48,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4868000","end":"7f53b4936000","perms":["read","execute","private"],"offset":"0000c000","maj":"fd","min":"00","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","Size":824,"KernelPageSize":4,"MMUPageSize":4,"Rss":60,"Pss":3,"Shared_Clean":60,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":60,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4936000","end":"7f53b4973000","perms":["read","private"],"offset":"000da000","maj":"fd","min":"00","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","Size":244,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4973000","end":"7f53b4975000","perms":["read","private"],"offset":"00116000","maj":"fd","min":"00","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":4,"Shared_Clean":0,"Shared_Dirty":8,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4975000","end":"7f53b497a000","perms":["read","write","private"],"offset":"00118000","maj":"fd","min":"00","inode":793092,"pathname":"/usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5","Size":20,"KernelPageSize":4,"MMUPageSize":4,"Rss":20,"Pss":10,"Shared_Clean":0,"Shared_Dirty":20,"Private_Clean":0,"Private_Dirty":0,"Referenced":20,"Anonymous":20,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b497a000","end":"7f53b4981000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","Size":28,"KernelPageSize":4,"MMUPageSize":4,"Rss":28,"Pss":3,"Shared_Clean":28,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":28,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4981000","end":"7f53b49d2000","perms":["read","execute","private"],"offset":"00007000","maj":"fd","min":"00","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","Size":324,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":9,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b49d2000","end":"7f53b49ec000","perms":["read","private"],"offset":"00058000","maj":"fd","min":"00","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","Size":104,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b49ec000","end":"7f53b49ed000","perms":["private"],"offset":"00072000","maj":"fd","min":"00","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b49ed000","end":"7f53b49ef000","perms":["read","private"],"offset":"00072000","maj":"fd","min":"00","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":4,"Shared_Clean":0,"Shared_Dirty":8,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b49ef000","end":"7f53b49f1000","perms":["read","write","private"],"offset":"00074000","maj":"fd","min":"00","inode":793052,"pathname":"/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":4,"Shared_Clean":0,"Shared_Dirty":8,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b49f1000","end":"7f53b49f3000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":0,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b49f3000","end":"7f53b4a08000","perms":["read","execute","private"],"offset":"00002000","maj":"fd","min":"00","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","Size":84,"KernelPageSize":4,"MMUPageSize":4,"Rss":48,"Pss":3,"Shared_Clean":48,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":48,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a08000","end":"7f53b4a22000","perms":["read","private"],"offset":"00017000","maj":"fd","min":"00","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","Size":104,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a22000","end":"7f53b4a23000","perms":["read","private"],"offset":"00030000","maj":"fd","min":"00","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a23000","end":"7f53b4a24000","perms":["read","write","private"],"offset":"00031000","maj":"fd","min":"00","inode":793050,"pathname":"/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a24000","end":"7f53b4a2c000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":32,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a2c000","end":"7f53b4a2f000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":1,"Shared_Clean":12,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a2f000","end":"7f53b4a33000","perms":["read","execute","private"],"offset":"00003000","maj":"fd","min":"00","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":1,"Shared_Clean":16,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":16,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a33000","end":"7f53b4a35000","perms":["read","private"],"offset":"00007000","maj":"fd","min":"00","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a35000","end":"7f53b4a36000","perms":["read","private"],"offset":"00008000","maj":"fd","min":"00","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a36000","end":"7f53b4a37000","perms":["read","write","private"],"offset":"00009000","maj":"fd","min":"00","inode":793047,"pathname":"/usr/lib/x86_64-linux-gnu/libcap.so.2.43","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a37000","end":"7f53b4a39000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":6,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":4,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a39000","end":"7f53b4a42000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","Size":36,"KernelPageSize":4,"MMUPageSize":4,"Rss":36,"Pss":2,"Shared_Clean":36,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":36,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a42000","end":"7f53b4a76000","perms":["read","execute","private"],"offset":"00009000","maj":"fd","min":"00","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","Size":208,"KernelPageSize":4,"MMUPageSize":4,"Rss":60,"Pss":4,"Shared_Clean":60,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":60,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a76000","end":"7f53b4a86000","perms":["read","private"],"offset":"0003d000","maj":"fd","min":"00","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","Size":64,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a86000","end":"7f53b4a87000","perms":["private"],"offset":"0004d000","maj":"fd","min":"00","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a87000","end":"7f53b4a8b000","perms":["read","private"],"offset":"0004d000","maj":"fd","min":"00","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":8,"Shared_Clean":0,"Shared_Dirty":16,"Private_Clean":0,"Private_Dirty":0,"Referenced":16,"Anonymous":16,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a8b000","end":"7f53b4a8c000","perms":["read","write","private"],"offset":"00051000","maj":"fd","min":"00","inode":793038,"pathname":"/usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a8c000","end":"7f53b4a8e000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":1,"Shared_Clean":8,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a8e000","end":"7f53b4a93000","perms":["read","execute","private"],"offset":"00002000","maj":"fd","min":"00","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","Size":20,"KernelPageSize":4,"MMUPageSize":4,"Rss":20,"Pss":2,"Shared_Clean":20,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":20,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a93000","end":"7f53b4a95000","perms":["read","private"],"offset":"00007000","maj":"fd","min":"00","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4a95000","end":"7f53b4a96000","perms":["read","private"],"offset":"00008000","maj":"fd","min":"00","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a96000","end":"7f53b4a97000","perms":["read","write","private"],"offset":"00009000","maj":"fd","min":"00","inode":793022,"pathname":"/usr/lib/x86_64-linux-gnu/libacl.so.1.1.2253","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4a97000","end":"7f53b4abd000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","Size":152,"KernelPageSize":4,"MMUPageSize":4,"Rss":148,"Pss":4,"Shared_Clean":148,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":148,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4abd000","end":"7f53b4c2a000","perms":["read","execute","private"],"offset":"00026000","maj":"fd","min":"00","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","Size":1460,"KernelPageSize":4,"MMUPageSize":4,"Rss":1256,"Pss":48,"Shared_Clean":1256,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":1256,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4c2a000","end":"7f53b4c76000","perms":["read","private"],"offset":"00193000","maj":"fd","min":"00","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","Size":304,"KernelPageSize":4,"MMUPageSize":4,"Rss":144,"Pss":4,"Shared_Clean":144,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":144,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4c76000","end":"7f53b4c77000","perms":["private"],"offset":"001df000","maj":"fd","min":"00","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4c77000","end":"7f53b4c7a000","perms":["read","private"],"offset":"001df000","maj":"fd","min":"00","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":6,"Shared_Clean":0,"Shared_Dirty":12,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":12,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4c7a000","end":"7f53b4c7d000","perms":["read","write","private"],"offset":"001e2000","maj":"fd","min":"00","inode":793044,"pathname":"/usr/lib/x86_64-linux-gnu/libc-2.32.so","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":12,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":12,"Referenced":12,"Anonymous":12,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4c7d000","end":"7f53b4c81000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":12,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":12,"Referenced":12,"Anonymous":12,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4c81000","end":"7f53b4c84000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":3,"Shared_Clean":12,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4c84000","end":"7f53b4c8d000","perms":["read","execute","private"],"offset":"00003000","maj":"fd","min":"00","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","Size":36,"KernelPageSize":4,"MMUPageSize":4,"Rss":36,"Pss":11,"Shared_Clean":36,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":36,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4c8d000","end":"7f53b4c94000","perms":["read","private"],"offset":"0000c000","maj":"fd","min":"00","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","Size":28,"KernelPageSize":4,"MMUPageSize":4,"Rss":24,"Pss":12,"Shared_Clean":24,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":24,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4c94000","end":"7f53b4c95000","perms":["read","private"],"offset":"00012000","maj":"fd","min":"00","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4c95000","end":"7f53b4c96000","perms":["read","write","private"],"offset":"00013000","maj":"fd","min":"00","inode":793025,"pathname":"/usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4c96000","end":"7f53b4c99000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":1,"Shared_Clean":12,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4c99000","end":"7f53b4ca9000","perms":["read","execute","private"],"offset":"00003000","maj":"fd","min":"00","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","Size":64,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":8,"Shared_Clean":64,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4ca9000","end":"7f53b4caf000","perms":["read","private"],"offset":"00013000","maj":"fd","min":"00","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","Size":24,"KernelPageSize":4,"MMUPageSize":4,"Rss":24,"Pss":12,"Shared_Clean":24,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":24,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4caf000","end":"7f53b4cb0000","perms":["read","private"],"offset":"00018000","maj":"fd","min":"00","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4cb0000","end":"7f53b4cb1000","perms":["read","write","private"],"offset":"00019000","maj":"fd","min":"00","inode":793143,"pathname":"/usr/lib/x86_64-linux-gnu/libkmod.so.2.3.5","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4cb1000","end":"7f53b4cb4000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":0,"Shared_Clean":12,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4cb4000","end":"7f53b4cbc000","perms":["read","execute","private"],"offset":"00003000","maj":"fd","min":"00","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","Size":32,"KernelPageSize":4,"MMUPageSize":4,"Rss":32,"Pss":2,"Shared_Clean":32,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":32,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4cbc000","end":"7f53b4cd0000","perms":["read","private"],"offset":"0000b000","maj":"fd","min":"00","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","Size":80,"KernelPageSize":4,"MMUPageSize":4,"Rss":60,"Pss":36,"Shared_Clean":32,"Shared_Dirty":0,"Private_Clean":28,"Private_Dirty":0,"Referenced":60,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4cd0000","end":"7f53b4cd1000","perms":["private"],"offset":"0001f000","maj":"fd","min":"00","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4cd1000","end":"7f53b4cd2000","perms":["read","private"],"offset":"0001f000","maj":"fd","min":"00","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4cd2000","end":"7f53b4cd3000","perms":["read","write","private"],"offset":"00020000","maj":"fd","min":"00","inode":793036,"pathname":"/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":4,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":4,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4cd3000","end":"7f53b4cdf000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":48,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":10,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":8,"Referenced":12,"Anonymous":12,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4cdf000","end":"7f53b4ce2000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":0,"Shared_Clean":12,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4ce2000","end":"7f53b4ceb000","perms":["read","execute","private"],"offset":"00003000","maj":"fd","min":"00","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","Size":36,"KernelPageSize":4,"MMUPageSize":4,"Rss":32,"Pss":2,"Shared_Clean":32,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":32,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4ceb000","end":"7f53b4cef000","perms":["read","private"],"offset":"0000c000","maj":"fd","min":"00","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4cef000","end":"7f53b4cf0000","perms":["read","private"],"offset":"0000f000","maj":"fd","min":"00","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4cf0000","end":"7f53b4cf1000","perms":["read","write","private"],"offset":"00010000","maj":"fd","min":"00","inode":793193,"pathname":"/usr/lib/x86_64-linux-gnu/libpam.so.0.84.2","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":4,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":4,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4cf1000","end":"7f53b4cfb000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","Size":40,"KernelPageSize":4,"MMUPageSize":4,"Rss":40,"Pss":3,"Shared_Clean":40,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":40,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4cfb000","end":"7f53b4d39000","perms":["read","execute","private"],"offset":"0000a000","maj":"fd","min":"00","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","Size":248,"KernelPageSize":4,"MMUPageSize":4,"Rss":208,"Pss":78,"Shared_Clean":208,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":208,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4d39000","end":"7f53b4d4c000","perms":["read","private"],"offset":"00048000","maj":"fd","min":"00","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","Size":76,"KernelPageSize":4,"MMUPageSize":4,"Rss":60,"Pss":30,"Shared_Clean":60,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":60,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4d4c000","end":"7f53b4d4e000","perms":["read","private"],"offset":"0005a000","maj":"fd","min":"00","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":4,"Shared_Clean":0,"Shared_Dirty":8,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4d4e000","end":"7f53b4d4f000","perms":["read","write","private"],"offset":"0005c000","maj":"fd","min":"00","inode":793163,"pathname":"/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4d4f000","end":"7f53b4d55000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","Size":24,"KernelPageSize":4,"MMUPageSize":4,"Rss":24,"Pss":1,"Shared_Clean":24,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":24,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4d55000","end":"7f53b4d6e000","perms":["read","execute","private"],"offset":"00006000","maj":"fd","min":"00","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","Size":100,"KernelPageSize":4,"MMUPageSize":4,"Rss":100,"Pss":14,"Shared_Clean":100,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":100,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4d6e000","end":"7f53b4d76000","perms":["read","private"],"offset":"0001f000","maj":"fd","min":"00","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","Size":32,"KernelPageSize":4,"MMUPageSize":4,"Rss":32,"Pss":1,"Shared_Clean":32,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":32,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4d76000","end":"7f53b4d77000","perms":["read","private"],"offset":"00026000","maj":"fd","min":"00","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4d77000","end":"7f53b4d78000","perms":["read","write","private"],"offset":"00027000","maj":"fd","min":"00","inode":793228,"pathname":"/usr/lib/x86_64-linux-gnu/libselinux.so.1","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4d78000","end":"7f53b4d7a000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":4,"Shared_Clean":0,"Shared_Dirty":8,"Private_Clean":0,"Private_Dirty":0,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4d7a000","end":"7f53b4da2000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","Size":160,"KernelPageSize":4,"MMUPageSize":4,"Rss":160,"Pss":22,"Shared_Clean":160,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":160,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4da2000","end":"7f53b4dad000","perms":["read","execute","private"],"offset":"00028000","maj":"fd","min":"00","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","Size":44,"KernelPageSize":4,"MMUPageSize":4,"Rss":44,"Pss":6,"Shared_Clean":44,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":44,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4dad000","end":"7f53b4db1000","perms":["read","private"],"offset":"00033000","maj":"fd","min":"00","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":16,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":16,"Private_Dirty":0,"Referenced":16,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4db1000","end":"7f53b4dcc000","perms":["read","private"],"offset":"00036000","maj":"fd","min":"00","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","Size":108,"KernelPageSize":4,"MMUPageSize":4,"Rss":108,"Pss":54,"Shared_Clean":0,"Shared_Dirty":108,"Private_Clean":0,"Private_Dirty":0,"Referenced":108,"Anonymous":108,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4dcc000","end":"7f53b4dcd000","perms":["read","write","private"],"offset":"00051000","maj":"fd","min":"00","inode":793227,"pathname":"/usr/lib/x86_64-linux-gnu/libseccomp.so.2.4.3","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4dcd000","end":"7f53b4dd0000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":0,"Shared_Clean":12,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":12,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4dd0000","end":"7f53b4dd4000","perms":["read","execute","private"],"offset":"00003000","maj":"fd","min":"00","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":16,"Pss":0,"Shared_Clean":16,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":16,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4dd4000","end":"7f53b4dd6000","perms":["read","private"],"offset":"00007000","maj":"fd","min":"00","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4dd6000","end":"7f53b4dd7000","perms":["read","private"],"offset":"00008000","maj":"fd","min":"00","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4dd7000","end":"7f53b4dd8000","perms":["read","write","private"],"offset":"00009000","maj":"fd","min":"00","inode":793224,"pathname":"/usr/lib/x86_64-linux-gnu/librt-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b4ddf000","end":"7f53b4e29000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","Size":296,"KernelPageSize":4,"MMUPageSize":4,"Rss":296,"Pss":42,"Shared_Clean":296,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":296,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4e29000","end":"7f53b4fac000","perms":["read","execute","private"],"offset":"0004a000","maj":"fd","min":"00","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","Size":1548,"KernelPageSize":4,"MMUPageSize":4,"Rss":1416,"Pss":286,"Shared_Clean":1416,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":1416,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b4fac000","end":"7f53b503f000","perms":["read","private"],"offset":"001cd000","maj":"fd","min":"00","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","Size":588,"KernelPageSize":4,"MMUPageSize":4,"Rss":336,"Pss":53,"Shared_Clean":336,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":336,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b503f000","end":"7f53b5040000","perms":["private"],"offset":"00260000","maj":"fd","min":"00","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["mr","mw","me","sd"],"VmFlags_pretty":["may read","may write","may execute","soft-dirty flag"]},{"start":"7f53b5040000","end":"7f53b5050000","perms":["read","private"],"offset":"00260000","maj":"fd","min":"00","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","Size":64,"KernelPageSize":4,"MMUPageSize":4,"Rss":64,"Pss":32,"Shared_Clean":0,"Shared_Dirty":64,"Private_Clean":0,"Private_Dirty":0,"Referenced":64,"Anonymous":64,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b5050000","end":"7f53b5051000","perms":["read","write","private"],"offset":"00270000","maj":"fd","min":"00","inode":798124,"pathname":"/usr/lib/systemd/libsystemd-shared-246.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":4,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":4,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b5051000","end":"7f53b5054000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"","Size":12,"KernelPageSize":4,"MMUPageSize":4,"Rss":12,"Pss":12,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":12,"Referenced":12,"Anonymous":12,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","area is accountable","soft-dirty flag"]},{"start":"7f53b5054000","end":"7f53b5055000","perms":["read","private"],"offset":"00000000","maj":"fd","min":"00","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":0,"Shared_Clean":4,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","dw","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","disabled write to the mapped file","soft-dirty flag"]},{"start":"7f53b5055000","end":"7f53b5079000","perms":["read","execute","private"],"offset":"00001000","maj":"fd","min":"00","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","Size":144,"KernelPageSize":4,"MMUPageSize":4,"Rss":144,"Pss":4,"Shared_Clean":144,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":144,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","dw","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","disabled write to the mapped file","soft-dirty flag"]},{"start":"7f53b5079000","end":"7f53b5082000","perms":["read","private"],"offset":"00025000","maj":"fd","min":"00","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","Size":36,"KernelPageSize":4,"MMUPageSize":4,"Rss":32,"Pss":1,"Shared_Clean":32,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":32,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","dw","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","disabled write to the mapped file","soft-dirty flag"]},{"start":"7f53b5082000","end":"7f53b5083000","perms":["read","private"],"offset":"0002d000","maj":"fd","min":"00","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":2,"Shared_Clean":0,"Shared_Dirty":4,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":4,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","mw","me","dw","ac","sd"],"VmFlags_pretty":["readable","may read","may write","may execute","disabled write to the mapped file","area is accountable","soft-dirty flag"]},{"start":"7f53b5083000","end":"7f53b5085000","perms":["read","write","private"],"offset":"0002e000","maj":"fd","min":"00","inode":793013,"pathname":"/usr/lib/x86_64-linux-gnu/ld-2.32.so","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":8,"Pss":8,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":8,"Referenced":8,"Anonymous":8,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","dw","ac","sd"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","disabled write to the mapped file","area is accountable","soft-dirty flag"]},{"start":"7ffd1b23e000","end":"7ffd1b340000","perms":["read","write","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"[stack]","Size":1032,"KernelPageSize":4,"MMUPageSize":4,"Rss":1032,"Pss":1032,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":1032,"Referenced":1032,"Anonymous":1032,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","wr","mr","mw","me","gd","ac"],"VmFlags_pretty":["readable","writeable","may read","may write","may execute","stack segment growns down","area is accountable"]},{"start":"7ffd1b3b1000","end":"7ffd1b3b5000","perms":["read","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"[vvar]","Size":16,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","mr","pf","io","de","dd","sd"],"VmFlags_pretty":["readable","may read","pure PFN range","memory mapped I/O area","do not expand area on remapping","do not include area into core dump","soft-dirty flag"]},{"start":"7ffd1b3b5000","end":"7ffd1b3b7000","perms":["read","execute","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"[vdso]","Size":8,"KernelPageSize":4,"MMUPageSize":4,"Rss":4,"Pss":0,"Shared_Clean":4,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":4,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["rd","ex","mr","mw","me","de","sd"],"VmFlags_pretty":["readable","executable","may read","may write","may execute","do not expand area on remapping","soft-dirty flag"]},{"start":"ffffffffff600000","end":"ffffffffff601000","perms":["execute","private"],"offset":"00000000","maj":"00","min":"00","inode":0,"pathname":"[vsyscall]","Size":4,"KernelPageSize":4,"MMUPageSize":4,"Rss":0,"Pss":0,"Shared_Clean":0,"Shared_Dirty":0,"Private_Clean":0,"Private_Dirty":0,"Referenced":0,"Anonymous":0,"LazyFree":0,"AnonHugePages":0,"ShmemPmdMapped":0,"FilePmdMapped":0,"Shared_Hugetlb":0,"Private_Hugetlb":0,"Swap":0,"SwapPss":0,"Locked":0,"THPeligible":0,"VmFlags":["ex"],"VmFlags_pretty":["executable"]}] diff --git a/tests/fixtures/linux-proc/pid_stat b/tests/fixtures/linux-proc/pid_stat new file mode 100644 index 00000000..d15a749a --- /dev/null +++ b/tests/fixtures/linux-proc/pid_stat @@ -0,0 +1 @@ +1 (systemd) S 0 1 1 0 -1 4194560 23478 350218 99 472 107 461 2672 4402 20 0 1 0 128 174063616 3313 18446744073709551615 94188219072512 94188219899461 140725059845296 0 0 0 671173123 4096 1260 1 0 0 17 0 0 0 18 0 0 94188220274448 94188220555504 94188243599360 140725059845923 140725059845934 140725059845934 140725059846125 0 diff --git a/tests/fixtures/linux-proc/pid_stat.json b/tests/fixtures/linux-proc/pid_stat.json new file mode 100644 index 00000000..cf77b8df --- /dev/null +++ b/tests/fixtures/linux-proc/pid_stat.json @@ -0,0 +1 @@ +{"pid":1,"comm":"systemd","state":"S","ppid":0,"pgrp":1,"session":1,"tty_nr":0,"tpg_id":-1,"flags":4194560,"minflt":23478,"cminflt":350218,"majflt":99,"cmajflt":472,"utime":107,"stime":461,"cutime":2672,"cstime":4402,"priority":20,"nice":0,"num_threads":1,"itrealvalue":0,"starttime":128,"vsize":174063616,"rss":3313,"rsslim":18446744073709551615,"startcode":94188219072512,"endcode":94188219899461,"startstack":140725059845296,"kstkeep":0,"kstkeip":0,"signal":0,"blocked":671173123,"sigignore":4096,"sigcatch":1260,"wchan":1,"nswap":0,"cnswap":0,"exit_signal":17,"processor":0,"rt_priority":0,"policy":0,"delayacct_blkio_ticks":18,"guest_time":0,"cguest_time":0,"start_data":94188220274448,"end_data":94188220555504,"start_brk":94188243599360,"arg_start":140725059845923,"arg_end":140725059845934,"env_start":140725059845934,"env_end":140725059846125,"exit_code":0,"state_pretty":"Sleeping in an interruptible wait"} diff --git a/tests/fixtures/linux-proc/pid_statm b/tests/fixtures/linux-proc/pid_statm new file mode 100644 index 00000000..30634865 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_statm @@ -0,0 +1 @@ +42496 3313 2169 202 0 5180 0 diff --git a/tests/fixtures/linux-proc/pid_statm.json b/tests/fixtures/linux-proc/pid_statm.json new file mode 100644 index 00000000..f19cabe4 --- /dev/null +++ b/tests/fixtures/linux-proc/pid_statm.json @@ -0,0 +1 @@ +{"size":42496,"resident":3313,"shared":2169,"text":202,"lib":0,"data":5180,"dt":0} diff --git a/tests/fixtures/linux-proc/pid_status b/tests/fixtures/linux-proc/pid_status new file mode 100644 index 00000000..a7f7a6cb --- /dev/null +++ b/tests/fixtures/linux-proc/pid_status @@ -0,0 +1,56 @@ +Name: systemd +Umask: 0000 +State: S (sleeping) +Tgid: 1 +Ngid: 0 +Pid: 1 +PPid: 0 +TracerPid: 0 +Uid: 0 0 0 0 +Gid: 0 0 0 0 +FDSize: 128 +Groups: +NStgid: 1 +NSpid: 1 +NSpgid: 1 +NSsid: 1 +VmPeak: 235380 kB +VmSize: 169984 kB +VmLck: 0 kB +VmPin: 0 kB +VmHWM: 13252 kB +VmRSS: 13252 kB +RssAnon: 4576 kB +RssFile: 8676 kB +RssShmem: 0 kB +VmData: 19688 kB +VmStk: 1032 kB +VmExe: 808 kB +VmLib: 9772 kB +VmPTE: 96 kB +VmSwap: 0 kB +HugetlbPages: 0 kB +CoreDumping: 0 +THP_enabled: 1 +Threads: 1 +SigQ: 0/15245 +SigPnd: 0000000000000000 +ShdPnd: 0000000000000000 +SigBlk: 7be3c0fe28014a03 +SigIgn: 0000000000001000 +SigCgt: 00000001800004ec +CapInh: 0000000000000000 +CapPrm: 000000ffffffffff +CapEff: 000000ffffffffff +CapBnd: 000000ffffffffff +CapAmb: 0000000000000000 +NoNewPrivs: 0 +Seccomp: 0 +Speculation_Store_Bypass: thread vulnerable +Cpus_allowed: ffffffff,ffffffff,ffffffff,ffffffff +Cpus_allowed_list: 0-127 +Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001 +Mems_allowed_list: 0 +voluntary_ctxt_switches: 1856 +nonvoluntary_ctxt_switches: 6620 + diff --git a/tests/fixtures/linux-proc/pid_status.json b/tests/fixtures/linux-proc/pid_status.json new file mode 100644 index 00000000..ce9f376f --- /dev/null +++ b/tests/fixtures/linux-proc/pid_status.json @@ -0,0 +1 @@ +{"Name":"systemd","Umask":"0000","State":"S","Tgid":1,"Ngid":0,"Pid":1,"PPid":0,"TracerPid":0,"Uid":[0,0,0,0],"Gid":[0,0,0,0],"FDSize":128,"Groups":"","NStgid":1,"NSpid":1,"NSpgid":1,"NSsid":1,"VmPeak":235380,"VmSize":169984,"VmLck":0,"VmPin":0,"VmHWM":13252,"VmRSS":13252,"RssAnon":4576,"RssFile":8676,"RssShmem":0,"VmData":19688,"VmStk":1032,"VmExe":808,"VmLib":9772,"VmPTE":96,"VmSwap":0,"HugetlbPages":0,"CoreDumping":0,"THP_enabled":1,"Threads":1,"SigQ":"0/15245","SigPnd":"0000000000000000","ShdPnd":"0000000000000000","SigBlk":"7be3c0fe28014a03","SigIgn":"0000000000001000","SigCgt":"00000001800004ec","CapInh":"0000000000000000","CapPrm":"000000ffffffffff","CapEff":"000000ffffffffff","CapBnd":"000000ffffffffff","CapAmb":"0000000000000000","NoNewPrivs":0,"Seccomp":0,"Speculation_Store_Bypass":"thread vulnerable","Cpus_allowed":["ffffffff","ffffffff","ffffffff","ffffffff"],"Cpus_allowed_list":"0-127","Mems_allowed":["00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000000","00000001"],"Mems_allowed_list":"0","voluntary_ctxt_switches":1856,"nonvoluntary_ctxt_switches":6620,"State_pretty":"sleeping","SigQ_current":0,"SigQ_limit":15245} diff --git a/tests/fixtures/linux-proc/scsi_device_info b/tests/fixtures/linux-proc/scsi_device_info new file mode 100644 index 00000000..396f3670 --- /dev/null +++ b/tests/fixtures/linux-proc/scsi_device_info @@ -0,0 +1,181 @@ +'Aashima' 'IMAGERY 2400SP' 0x1 +'CHINON' 'CD-ROM CDS-431' 0x1 +'CHINON' 'CD-ROM CDS-535' 0x1 +'DENON' 'DRD-25X' 0x1 +'HITACHI' 'DK312C' 0x1 +'HITACHI' 'DK314C' 0x1 +'IBM' '2104-DU3' 0x1 +'IBM' '2104-TU3' 0x1 +'IMS' 'CDD521/10' 0x1 +'MAXTOR' 'XT-3280' 0x1 +'MAXTOR' 'XT-4380S' 0x1 +'MAXTOR' 'MXT-1240S' 0x1 +'MAXTOR' 'XT-4170S' 0x1 +'MAXTOR' 'XT-8760S' 0x1 +'MEDIAVIS' 'RENO CD-ROMX2A' 0x1 +'MICROTEK' 'ScanMakerIII' 0x1 +'NEC' 'CD-ROM DRIVE:841' 0x1 +'PHILIPS' 'PCA80SC' 0x1 +'RODIME' 'RO3000S' 0x1 +'SUN' 'SENA' 0x1 +'SANYO' 'CRD-250S' 0x1 +'SEAGATE' 'ST157N' 0x1 +'SEAGATE' 'ST296' 0x1 +'SEAGATE' 'ST1581' 0x1 +'SONY' 'CD-ROM CDU-541' 0x1 +'SONY' 'CD-ROM CDU-55S' 0x1 +'SONY' 'CD-ROM CDU-561' 0x1 +'SONY' 'CD-ROM CDU-8012' 0x1 +'SONY' 'SDT-5000' 0x200000 +'TANDBERG' 'TDC 3600' 0x1 +'TEAC' 'CD-R55S' 0x1 +'TEAC' 'CD-ROM' 0x1 +'TEAC' 'MT-2ST/45S2-27' 0x1 +'HP' 'C1750A' 0x1 +'HP' 'C1790A' 0x1 +'HP' 'C2500A' 0x1 +'MEDIAVIS' 'CDR-H93MV' 0x1 +'MICROTEK' 'ScanMaker II' 0x1 +'MITSUMI' 'CD-R CR-2201CS' 0x1 +'NEC' 'D3856' 0x1 +'QUANTUM' 'LPS525S' 0x1 +'QUANTUM' 'PD1225S' 0x1 +'QUANTUM' 'FIREBALL ST4.3S' 0x1 +'RELISYS' 'Scorpio' 0x1 +'SANKYO' 'CP525' 0x1 +'TEXEL' 'CD-ROM' 0x5 +'transtec' 'T5008' 0x40000 +'YAMAHA' 'CDR100' 0x1 +'YAMAHA' 'CDR102' 0x1 +'YAMAHA' 'CRW8424S' 0x1 +'YAMAHA' 'CRW6416S' 0x1 +'' 'Scanner' 0x1 +'3PARdata' 'VV' 0x20000 +'ADAPTEC' 'AACRAID' 0x2 +'ADAPTEC' 'Adaptec 5400S' 0x2 +'AIX' 'VDASD' 0x10000000 +'AFT PRO' '-IX CF' 0x2 +'BELKIN' 'USB 2 HS-CF' 0x402 +'BROWNIE' '1200U3P' 0x40000 +'BROWNIE' '1600U3P' 0x40000 +'CANON' 'IPUBJD' 0x40 +'CBOX3' 'USB Storage-SMC' 0x402 +'CMD' 'CRA-7280' 0x40 +'CNSI' 'G7324' 0x40 +'CNSi' 'G8324' 0x40 +'COMPAQ' 'ARRAY CONTROLLER' 0x820240 +'COMPAQ' 'LOGICAL VOLUME' 0x800002 +'COMPAQ' 'CR3500' 0x2 +'COMPAQ' 'MSA1000' 0x1040 +'COMPAQ' 'MSA1000 VOLUME' 0x1040 +'COMPAQ' 'HSV110' 0x21000 +'DDN' 'SAN DataDirector' 0x40 +'DEC' 'HSG80' 0x21000 +'DELL' 'PV660F' 0x40 +'DELL' 'PV660F PSEUDO' 0x40 +'DELL' 'PSEUDO DEVICE .' 0x40 +'DELL' 'PV530F' 0x40 +'DELL' 'PERCRAID' 0x2 +'DGC' 'RAID' 0x40 +'DGC' 'DISK' 0x40 +'EMC' 'Invista' 0x240 +'EMC' 'SYMMETRIX' 0x100020240 +'EMULEX' 'MD21/S2 ESDI' 0x10 +'easyRAID' '16P' 0x40000 +'easyRAID' 'X6P' 0x40000 +'easyRAID' 'F8' 0x40000 +'FSC' 'CentricStor' 0x240 +'FUJITSU' 'ETERNUS_DXM' 0x200000000 +'Generic' 'USB SD Reader' 0x402 +'Generic' 'USB Storage-SMC' 0x402 +'HITACHI' 'DF400' 0x20000 +'HITACHI' 'DF500' 0x20000 +'HITACHI' 'DISK-SUBSYSTEM' 0x20000 +'HITACHI' 'HUS1530' 0x2000000 +'HITACHI' 'OPEN-' 0x10020000 +'HP' 'A6189A' 0x240 +'HP' 'OPEN-' 0x10020000 +'HP' 'NetRAID-4M' 0x2 +'HP' 'HSV100' 0x21000 +'HP' 'C1557A' 0x2 +'HP' 'C3323-300' 0x20 +'HP' 'C5713A' 0x40000 +'HP' 'DISK-SUBSYSTEM' 0x20000 +'IBM' 'AuSaV1S2' 0x2 +'IBM' 'ProFibre 4000R' 0x240 +'IBM' '2105' 0x400000 +'iomega' 'jaz 1GB' 0x21 +'IOMEGA' 'ZIP' 0x21 +'IOMEGA' 'Io20S *F' 0x8 +'INSITE' 'Floptical F*8I' 0x8 +'INSITE' 'I325VM' 0x8 +'Intel' 'Multi-Flex' 0x20000000 +'iRiver' 'iFP Mass Driver' 0x80400 +'LASOUND' 'CDX7405' 0x90 +'Marvell' 'Console' 0x4000000 +'Marvell' '91xx Config' 0x4000000 +'MATSHITA' 'PD-1' 0x12 +'MATSHITA' 'DMC-LC5' 0x80400 +'MATSHITA' 'DMC-LC40' 0x80400 +'Medion' 'Flash XL MMC/SD' 0x2 +'MegaRAID' 'LD' 0x2 +'MICROP' '4110' 0x20 +'MSFT' 'Virtual HD' 0x60000000 +'MYLEX' 'DACARMRB' 0x20000 +'nCipher' 'Fastness Crypto' 0x2 +'NAKAMICH' 'MJ-4.8S' 0x12 +'NAKAMICH' 'MJ-5.16S' 0x12 +'NEC' 'PD-1 ODX654P' 0x12 +'NEC' 'iStorage' 0x20000 +'NRC' 'MBR-7' 0x12 +'NRC' 'MBR-7.4' 0x12 +'PIONEER' 'CD-ROM DRM-600' 0x12 +'PIONEER' 'CD-ROM DRM-602X' 0x12 +'PIONEER' 'CD-ROM DRM-604X' 0x12 +'PIONEER' 'CD-ROM DRM-624X' 0x12 +'Promise' 'VTrak E610f' 0x20000040 +'Promise' '' 0x40 +'QEMU' 'QEMU CD-ROM' 0x4000000 +'QNAP' 'iSCSI Storage' 0x40000000 +'SYNOLOGY' 'iSCSI Storage' 0x40000000 +'QUANTUM' 'XP34301' 0x20 +'REGAL' 'CDC-4X' 0x90 +'SanDisk' 'ImageMate CF-SD1' 0x2 +'SEAGATE' 'ST34555N' 0x20 +'SEAGATE' 'ST3390N' 0x20 +'SEAGATE' 'ST900MM0006' 0x4000000 +'SGI' 'RAID3' 0x40 +'SGI' 'RAID5' 0x40 +'SGI' 'TP9100' 0x20000 +'SGI' 'Universal Xport' 0x100000 +'IBM' 'Universal Xport' 0x100000 +'SUN' 'Universal Xport' 0x100000 +'DELL' 'Universal Xport' 0x100000 +'STK' 'Universal Xport' 0x100000 +'NETAPP' 'Universal Xport' 0x100000 +'LSI' 'Universal Xport' 0x100000 +'ENGENIO' 'Universal Xport' 0x100000 +'LENOVO' 'Universal Xport' 0x100000 +'FUJITSU' 'Universal Xport' 0x100000 +'SanDisk' 'Cruzer Blade' 0x10000400 +'SMSC' 'USB 2 HS-CF' 0x440 +'SONY' 'CD-ROM CDU-8001' 0x4 +'SONY' 'TSL' 0x2 +'ST650211' 'CF' 0x400000 +'SUN' 'T300' 0x40 +'SUN' 'T4' 0x40 +'Tornado-' 'F4' 0x40000 +'TOSHIBA' 'CDROM' 0x100 +'TOSHIBA' 'CD-ROM' 0x100 +'Traxdata' 'CDR4120' 0x1 +'USB2.0' 'SMARTMEDIA/XD' 0x402 +'WangDAT' 'Model 2600' 0x200000 +'WangDAT' 'Model 3200' 0x200000 +'WangDAT' 'Model 1300' 0x200000 +'WDC WD25' '00JB-00FUA0' 0x40000 +'XYRATEX' 'RS' 0x240 +'Zzyzx' 'RocketStor 500S' 0x40 +'Zzyzx' 'RocketStor 2000' 0x40 +[SCSI Parallel Transport Class]: +'HP' 'Ultrium 3-SCSI' 0x1 +'IBM' 'ULTRIUM-TD3' 0x1 diff --git a/tests/fixtures/linux-proc/scsi_scsi b/tests/fixtures/linux-proc/scsi_scsi new file mode 100644 index 00000000..83dbcf33 --- /dev/null +++ b/tests/fixtures/linux-proc/scsi_scsi @@ -0,0 +1,7 @@ +Attached devices: +Host: scsi0 Channel: 00 Id: 00 Lun: 00 + Vendor: IBM Model: DGHS09U Rev: 03E0 + Type: Direct-Access ANSI SCSI revision: 03 +Host: scsi0 Channel: 00 Id: 06 Lun: 00 + Vendor: PIONEER Model: CD-ROM DR-U06S Rev: 1.04 + Type: CD-ROM ANSI SCSI revision: 02 diff --git a/tests/fixtures/linux-proc/slabinfo b/tests/fixtures/linux-proc/slabinfo new file mode 100644 index 00000000..a78d8dab --- /dev/null +++ b/tests/fixtures/linux-proc/slabinfo @@ -0,0 +1,147 @@ +slabinfo - version: 2.1 +# name : tunables : slabdata +ext4_groupinfo_4k 224 224 144 56 2 : tunables 0 0 0 : slabdata 4 4 0 +btrfs_delayed_node 0 0 312 52 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_ordered_extent 0 0 416 39 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_inode 0 0 1184 27 8 : tunables 0 0 0 : slabdata 0 0 0 +fsverity_info 0 0 256 64 4 : tunables 0 0 0 : slabdata 0 0 0 +MPTCPv6 0 0 1856 17 8 : tunables 0 0 0 : slabdata 0 0 0 +ip6-frags 0 0 184 44 2 : tunables 0 0 0 : slabdata 0 0 0 +PINGv6 104 104 1216 26 8 : tunables 0 0 0 : slabdata 4 4 0 +RAWv6 312 312 1216 26 8 : tunables 0 0 0 : slabdata 12 12 0 +UDPv6 96 96 1344 24 8 : tunables 0 0 0 : slabdata 4 4 0 +tw_sock_TCPv6 0 0 248 66 4 : tunables 0 0 0 : slabdata 0 0 0 +request_sock_TCPv6 0 0 304 53 4 : tunables 0 0 0 : slabdata 0 0 0 +TCPv6 26 26 2432 13 8 : tunables 0 0 0 : slabdata 2 2 0 +kcopyd_job 0 0 3312 9 8 : tunables 0 0 0 : slabdata 0 0 0 +dm_uevent 0 0 2888 11 8 : tunables 0 0 0 : slabdata 0 0 0 +scsi_sense_cache 1472 1472 128 64 2 : tunables 0 0 0 : slabdata 23 23 0 +mqueue_inode_cache 34 34 960 34 8 : tunables 0 0 0 : slabdata 1 1 0 +fuse_inode 0 0 832 39 8 : tunables 0 0 0 : slabdata 0 0 0 +ecryptfs_key_record_cache 0 0 576 56 8 : tunables 0 0 0 : slabdata 0 0 0 +ecryptfs_inode_cache 0 0 1024 32 8 : tunables 0 0 0 : slabdata 0 0 0 +ecryptfs_file_cache 0 0 16 256 1 : tunables 0 0 0 : slabdata 0 0 0 +ecryptfs_auth_tok_list_item 0 0 832 39 8 : tunables 0 0 0 : slabdata 0 0 0 +fat_inode_cache 0 0 744 44 8 : tunables 0 0 0 : slabdata 0 0 0 +fat_cache 0 0 40 102 1 : tunables 0 0 0 : slabdata 0 0 0 +squashfs_inode_cache 363 552 704 46 8 : tunables 0 0 0 : slabdata 12 12 0 +jbd2_journal_head 952 952 120 68 2 : tunables 0 0 0 : slabdata 14 14 0 +jbd2_revoke_table_s 512 512 16 256 1 : tunables 0 0 0 : slabdata 2 2 0 +ext4_inode_cache 14466 15573 1096 29 8 : tunables 0 0 0 : slabdata 537 537 0 +ext4_allocation_context 128 128 128 64 2 : tunables 0 0 0 : slabdata 2 2 0 +ext4_io_end 128 128 64 64 1 : tunables 0 0 0 : slabdata 2 2 0 +ext4_pending_reservation 256 256 32 128 1 : tunables 0 0 0 : slabdata 2 2 0 +ext4_extent_status 4590 4590 40 102 1 : tunables 0 0 0 : slabdata 45 45 0 +mbcache 146 146 56 73 1 : tunables 0 0 0 : slabdata 2 2 0 +userfaultfd_ctx_cache 0 0 192 42 2 : tunables 0 0 0 : slabdata 0 0 0 +dnotify_struct 0 0 32 128 1 : tunables 0 0 0 : slabdata 0 0 0 +pid_namespace 0 0 144 56 2 : tunables 0 0 0 : slabdata 0 0 0 +ip4-frags 0 0 200 40 2 : tunables 0 0 0 : slabdata 0 0 0 +MPTCP 0 0 1664 19 8 : tunables 0 0 0 : slabdata 0 0 0 +request_sock_subflow 0 0 360 45 4 : tunables 0 0 0 : slabdata 0 0 0 +xfrm_state 0 0 768 42 8 : tunables 0 0 0 : slabdata 0 0 0 +PING 2080 2080 1024 32 8 : tunables 0 0 0 : slabdata 65 65 0 +RAW 512 512 1024 32 8 : tunables 0 0 0 : slabdata 16 16 0 +tw_sock_TCP 66 66 248 66 4 : tunables 0 0 0 : slabdata 1 1 0 +request_sock_TCP 53 53 304 53 4 : tunables 0 0 0 : slabdata 1 1 0 +TCP 56 56 2240 14 8 : tunables 0 0 0 : slabdata 4 4 0 +hugetlbfs_inode_cache 102 102 632 51 8 : tunables 0 0 0 : slabdata 2 2 0 +dquot 128 128 256 64 4 : tunables 0 0 0 : slabdata 2 2 0 +eventpoll_pwq 1792 1792 72 56 1 : tunables 0 0 0 : slabdata 32 32 0 +dax_cache 42 42 768 42 8 : tunables 0 0 0 : slabdata 1 1 0 +bio_crypt_ctx 306 306 40 102 1 : tunables 0 0 0 : slabdata 3 3 0 +request_queue 30 30 2096 15 8 : tunables 0 0 0 : slabdata 2 2 0 +biovec-max 114 120 4096 8 8 : tunables 0 0 0 : slabdata 15 15 0 +biovec-128 32 32 2048 16 8 : tunables 0 0 0 : slabdata 2 2 0 +biovec-64 64 64 1024 32 8 : tunables 0 0 0 : slabdata 2 2 0 +khugepaged_mm_slot 36 36 112 36 1 : tunables 0 0 0 : slabdata 1 1 0 +user_namespace 60 60 544 60 8 : tunables 0 0 0 : slabdata 1 1 0 +dmaengine-unmap-256 15 15 2112 15 8 : tunables 0 0 0 : slabdata 1 1 0 +dmaengine-unmap-128 30 30 1088 30 8 : tunables 0 0 0 : slabdata 1 1 0 +sock_inode_cache 2847 2847 832 39 8 : tunables 0 0 0 : slabdata 73 73 0 +skbuff_ext_cache 84 84 192 42 2 : tunables 0 0 0 : slabdata 2 2 0 +skbuff_fclone_cache 128 128 512 64 8 : tunables 0 0 0 : slabdata 2 2 0 +skbuff_head_cache 4160 4416 256 64 4 : tunables 0 0 0 : slabdata 69 69 0 +file_lock_cache 74 74 216 37 2 : tunables 0 0 0 : slabdata 2 2 0 +file_lock_ctx 219 219 56 73 1 : tunables 0 0 0 : slabdata 3 3 0 +fsnotify_mark_connector 384 384 32 128 1 : tunables 0 0 0 : slabdata 3 3 0 +net_namespace 6 6 4992 6 8 : tunables 0 0 0 : slabdata 1 1 0 +task_delay_info 2958 2958 80 51 1 : tunables 0 0 0 : slabdata 58 58 0 +taskstats 92 92 352 46 4 : tunables 0 0 0 : slabdata 2 2 0 +proc_dir_entry 882 882 192 42 2 : tunables 0 0 0 : slabdata 21 21 0 +pde_opener 3366 3366 40 102 1 : tunables 0 0 0 : slabdata 33 33 0 +proc_inode_cache 51317 52752 680 48 8 : tunables 0 0 0 : slabdata 1099 1099 0 +seq_file 4760 4760 120 68 2 : tunables 0 0 0 : slabdata 70 70 0 +bdev_cache 78 78 832 39 8 : tunables 0 0 0 : slabdata 2 2 0 +shmem_inode_cache 2647 2970 720 45 8 : tunables 0 0 0 : slabdata 66 66 0 +kernfs_node_cache 115254 115904 128 64 2 : tunables 0 0 0 : slabdata 1811 1811 0 +mnt_cache 1251 1326 320 51 4 : tunables 0 0 0 : slabdata 26 26 0 +filp 19960 22464 256 64 4 : tunables 0 0 0 : slabdata 351 351 0 +inode_cache 137462 138754 608 53 8 : tunables 0 0 0 : slabdata 2618 2618 0 +dentry 205198 211008 192 42 2 : tunables 0 0 0 : slabdata 5024 5024 0 +names_cache 32 32 4096 8 8 : tunables 0 0 0 : slabdata 4 4 0 +iint_cache 0 0 120 68 2 : tunables 0 0 0 : slabdata 0 0 0 +lsm_file_cache 2040 2040 24 170 1 : tunables 0 0 0 : slabdata 12 12 0 +buffer_head 87912 89349 104 39 1 : tunables 0 0 0 : slabdata 2291 2291 0 +uts_namespace 74 74 440 37 4 : tunables 0 0 0 : slabdata 2 2 0 +vm_area_struct 19609 20124 208 39 2 : tunables 0 0 0 : slabdata 516 516 0 +mm_struct 1050 1050 1088 30 8 : tunables 0 0 0 : slabdata 35 35 0 +files_cache 1564 1564 704 46 8 : tunables 0 0 0 : slabdata 34 34 0 +signal_cache 1456 1456 1152 28 8 : tunables 0 0 0 : slabdata 52 52 0 +sighand_cache 847 885 2112 15 8 : tunables 0 0 0 : slabdata 59 59 0 +task_struct 698 770 6016 5 8 : tunables 0 0 0 : slabdata 154 154 0 +cred_jar 3864 3864 192 42 2 : tunables 0 0 0 : slabdata 92 92 0 +anon_vma_chain 19989 21376 64 64 1 : tunables 0 0 0 : slabdata 334 334 0 +anon_vma 11689 11914 88 46 1 : tunables 0 0 0 : slabdata 259 259 0 +pid 3456 3456 128 64 2 : tunables 0 0 0 : slabdata 54 54 0 +Acpi-Operand 10248 10248 72 56 1 : tunables 0 0 0 : slabdata 183 183 0 +Acpi-ParseExt 78 78 104 39 1 : tunables 0 0 0 : slabdata 2 2 0 +Acpi-State 408 408 80 51 1 : tunables 0 0 0 : slabdata 8 8 0 +numa_policy 186 186 264 62 4 : tunables 0 0 0 : slabdata 3 3 0 +trace_event_file 1748 1748 88 46 1 : tunables 0 0 0 : slabdata 38 38 0 +ftrace_event_field 12410 12410 48 85 1 : tunables 0 0 0 : slabdata 146 146 0 +pool_workqueue 768 768 256 64 4 : tunables 0 0 0 : slabdata 12 12 0 +radix_tree_node 10063 12040 584 56 8 : tunables 0 0 0 : slabdata 215 215 0 +task_group 204 204 640 51 8 : tunables 0 0 0 : slabdata 4 4 0 +vmap_area 2929 3264 64 64 1 : tunables 0 0 0 : slabdata 51 51 0 +dma-kmalloc-8k 0 0 8192 4 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-4k 0 0 4096 8 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-2k 0 0 2048 16 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-1k 0 0 1024 32 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-512 128 128 512 64 8 : tunables 0 0 0 : slabdata 2 2 0 +dma-kmalloc-256 0 0 256 64 4 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-128 0 0 128 64 2 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-64 0 0 64 64 1 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-32 0 0 32 128 1 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-16 0 0 16 256 1 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-8 0 0 8 512 1 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-192 0 0 192 42 2 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-96 0 0 96 42 1 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-8k 0 0 8192 4 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-4k 0 0 4096 8 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-2k 0 0 2048 16 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-1k 0 0 1024 32 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-512 0 0 512 64 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-256 0 0 256 64 4 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-192 0 0 192 42 2 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-128 560 640 128 64 2 : tunables 0 0 0 : slabdata 10 10 0 +kmalloc-rcl-96 631 798 96 42 1 : tunables 0 0 0 : slabdata 19 19 0 +kmalloc-rcl-64 3894 4480 64 64 1 : tunables 0 0 0 : slabdata 70 70 0 +kmalloc-rcl-32 0 0 32 128 1 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-16 0 0 16 256 1 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-8 0 0 8 512 1 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-8k 127 136 8192 4 8 : tunables 0 0 0 : slabdata 34 34 0 +kmalloc-4k 2056 2056 4096 8 8 : tunables 0 0 0 : slabdata 257 257 0 +kmalloc-2k 2132 2192 2048 16 8 : tunables 0 0 0 : slabdata 137 137 0 +kmalloc-1k 3600 3840 1024 32 8 : tunables 0 0 0 : slabdata 120 120 0 +kmalloc-512 38846 39104 512 64 8 : tunables 0 0 0 : slabdata 611 611 0 +kmalloc-256 3648 3648 256 64 4 : tunables 0 0 0 : slabdata 57 57 0 +kmalloc-192 2688 2688 192 42 2 : tunables 0 0 0 : slabdata 64 64 0 +kmalloc-128 1664 1664 128 64 2 : tunables 0 0 0 : slabdata 26 26 0 +kmalloc-96 2142 2142 96 42 1 : tunables 0 0 0 : slabdata 51 51 0 +kmalloc-64 21435 21568 64 64 1 : tunables 0 0 0 : slabdata 337 337 0 +kmalloc-32 43520 43520 32 128 1 : tunables 0 0 0 : slabdata 340 340 0 +kmalloc-16 16640 16640 16 256 1 : tunables 0 0 0 : slabdata 65 65 0 +kmalloc-8 49152 49152 8 512 1 : tunables 0 0 0 : slabdata 96 96 0 +kmem_cache_node 1728 1728 64 64 1 : tunables 0 0 0 : slabdata 27 27 0 +kmem_cache 1728 1728 448 36 4 : tunables 0 0 0 : slabdata 48 48 0 diff --git a/tests/fixtures/linux-proc/slabinfo.json b/tests/fixtures/linux-proc/slabinfo.json new file mode 100644 index 00000000..75099b83 --- /dev/null +++ b/tests/fixtures/linux-proc/slabinfo.json @@ -0,0 +1 @@ +[{"name":"ext4_groupinfo_4k","active_objs":224,"num_objs":224,"obj_size":144,"obj_per_slab":56,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":4,"num_slabs":4,"shared_avail":0}},{"name":"btrfs_delayed_node","active_objs":0,"num_objs":0,"obj_size":312,"obj_per_slab":52,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"btrfs_ordered_extent","active_objs":0,"num_objs":0,"obj_size":416,"obj_per_slab":39,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"btrfs_inode","active_objs":0,"num_objs":0,"obj_size":1184,"obj_per_slab":27,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"fsverity_info","active_objs":0,"num_objs":0,"obj_size":256,"obj_per_slab":64,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"MPTCPv6","active_objs":0,"num_objs":0,"obj_size":1856,"obj_per_slab":17,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"ip6-frags","active_objs":0,"num_objs":0,"obj_size":184,"obj_per_slab":44,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"PINGv6","active_objs":104,"num_objs":104,"obj_size":1216,"obj_per_slab":26,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":4,"num_slabs":4,"shared_avail":0}},{"name":"RAWv6","active_objs":312,"num_objs":312,"obj_size":1216,"obj_per_slab":26,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":12,"num_slabs":12,"shared_avail":0}},{"name":"UDPv6","active_objs":96,"num_objs":96,"obj_size":1344,"obj_per_slab":24,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":4,"num_slabs":4,"shared_avail":0}},{"name":"tw_sock_TCPv6","active_objs":0,"num_objs":0,"obj_size":248,"obj_per_slab":66,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"request_sock_TCPv6","active_objs":0,"num_objs":0,"obj_size":304,"obj_per_slab":53,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"TCPv6","active_objs":26,"num_objs":26,"obj_size":2432,"obj_per_slab":13,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"kcopyd_job","active_objs":0,"num_objs":0,"obj_size":3312,"obj_per_slab":9,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dm_uevent","active_objs":0,"num_objs":0,"obj_size":2888,"obj_per_slab":11,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"scsi_sense_cache","active_objs":1472,"num_objs":1472,"obj_size":128,"obj_per_slab":64,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":23,"num_slabs":23,"shared_avail":0}},{"name":"mqueue_inode_cache","active_objs":34,"num_objs":34,"obj_size":960,"obj_per_slab":34,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"fuse_inode","active_objs":0,"num_objs":0,"obj_size":832,"obj_per_slab":39,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"ecryptfs_key_record_cache","active_objs":0,"num_objs":0,"obj_size":576,"obj_per_slab":56,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"ecryptfs_inode_cache","active_objs":0,"num_objs":0,"obj_size":1024,"obj_per_slab":32,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"ecryptfs_file_cache","active_objs":0,"num_objs":0,"obj_size":16,"obj_per_slab":256,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"ecryptfs_auth_tok_list_item","active_objs":0,"num_objs":0,"obj_size":832,"obj_per_slab":39,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"fat_inode_cache","active_objs":0,"num_objs":0,"obj_size":744,"obj_per_slab":44,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"fat_cache","active_objs":0,"num_objs":0,"obj_size":40,"obj_per_slab":102,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"squashfs_inode_cache","active_objs":363,"num_objs":552,"obj_size":704,"obj_per_slab":46,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":12,"num_slabs":12,"shared_avail":0}},{"name":"jbd2_journal_head","active_objs":952,"num_objs":952,"obj_size":120,"obj_per_slab":68,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":14,"num_slabs":14,"shared_avail":0}},{"name":"jbd2_revoke_table_s","active_objs":512,"num_objs":512,"obj_size":16,"obj_per_slab":256,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"ext4_inode_cache","active_objs":14466,"num_objs":15573,"obj_size":1096,"obj_per_slab":29,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":537,"num_slabs":537,"shared_avail":0}},{"name":"ext4_allocation_context","active_objs":128,"num_objs":128,"obj_size":128,"obj_per_slab":64,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"ext4_io_end","active_objs":128,"num_objs":128,"obj_size":64,"obj_per_slab":64,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"ext4_pending_reservation","active_objs":256,"num_objs":256,"obj_size":32,"obj_per_slab":128,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"ext4_extent_status","active_objs":4590,"num_objs":4590,"obj_size":40,"obj_per_slab":102,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":45,"num_slabs":45,"shared_avail":0}},{"name":"mbcache","active_objs":146,"num_objs":146,"obj_size":56,"obj_per_slab":73,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"userfaultfd_ctx_cache","active_objs":0,"num_objs":0,"obj_size":192,"obj_per_slab":42,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dnotify_struct","active_objs":0,"num_objs":0,"obj_size":32,"obj_per_slab":128,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"pid_namespace","active_objs":0,"num_objs":0,"obj_size":144,"obj_per_slab":56,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"ip4-frags","active_objs":0,"num_objs":0,"obj_size":200,"obj_per_slab":40,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"MPTCP","active_objs":0,"num_objs":0,"obj_size":1664,"obj_per_slab":19,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"request_sock_subflow","active_objs":0,"num_objs":0,"obj_size":360,"obj_per_slab":45,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"xfrm_state","active_objs":0,"num_objs":0,"obj_size":768,"obj_per_slab":42,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"PING","active_objs":2080,"num_objs":2080,"obj_size":1024,"obj_per_slab":32,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":65,"num_slabs":65,"shared_avail":0}},{"name":"RAW","active_objs":512,"num_objs":512,"obj_size":1024,"obj_per_slab":32,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":16,"num_slabs":16,"shared_avail":0}},{"name":"tw_sock_TCP","active_objs":66,"num_objs":66,"obj_size":248,"obj_per_slab":66,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"request_sock_TCP","active_objs":53,"num_objs":53,"obj_size":304,"obj_per_slab":53,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"TCP","active_objs":56,"num_objs":56,"obj_size":2240,"obj_per_slab":14,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":4,"num_slabs":4,"shared_avail":0}},{"name":"hugetlbfs_inode_cache","active_objs":102,"num_objs":102,"obj_size":632,"obj_per_slab":51,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"dquot","active_objs":128,"num_objs":128,"obj_size":256,"obj_per_slab":64,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"eventpoll_pwq","active_objs":1792,"num_objs":1792,"obj_size":72,"obj_per_slab":56,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":32,"num_slabs":32,"shared_avail":0}},{"name":"dax_cache","active_objs":42,"num_objs":42,"obj_size":768,"obj_per_slab":42,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"bio_crypt_ctx","active_objs":306,"num_objs":306,"obj_size":40,"obj_per_slab":102,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":3,"num_slabs":3,"shared_avail":0}},{"name":"request_queue","active_objs":30,"num_objs":30,"obj_size":2096,"obj_per_slab":15,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"biovec-max","active_objs":114,"num_objs":120,"obj_size":4096,"obj_per_slab":8,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":15,"num_slabs":15,"shared_avail":0}},{"name":"biovec-128","active_objs":32,"num_objs":32,"obj_size":2048,"obj_per_slab":16,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"biovec-64","active_objs":64,"num_objs":64,"obj_size":1024,"obj_per_slab":32,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"khugepaged_mm_slot","active_objs":36,"num_objs":36,"obj_size":112,"obj_per_slab":36,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"user_namespace","active_objs":60,"num_objs":60,"obj_size":544,"obj_per_slab":60,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"dmaengine-unmap-256","active_objs":15,"num_objs":15,"obj_size":2112,"obj_per_slab":15,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"dmaengine-unmap-128","active_objs":30,"num_objs":30,"obj_size":1088,"obj_per_slab":30,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"sock_inode_cache","active_objs":2847,"num_objs":2847,"obj_size":832,"obj_per_slab":39,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":73,"num_slabs":73,"shared_avail":0}},{"name":"skbuff_ext_cache","active_objs":84,"num_objs":84,"obj_size":192,"obj_per_slab":42,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"skbuff_fclone_cache","active_objs":128,"num_objs":128,"obj_size":512,"obj_per_slab":64,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"skbuff_head_cache","active_objs":4160,"num_objs":4416,"obj_size":256,"obj_per_slab":64,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":69,"num_slabs":69,"shared_avail":0}},{"name":"file_lock_cache","active_objs":74,"num_objs":74,"obj_size":216,"obj_per_slab":37,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"file_lock_ctx","active_objs":219,"num_objs":219,"obj_size":56,"obj_per_slab":73,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":3,"num_slabs":3,"shared_avail":0}},{"name":"fsnotify_mark_connector","active_objs":384,"num_objs":384,"obj_size":32,"obj_per_slab":128,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":3,"num_slabs":3,"shared_avail":0}},{"name":"net_namespace","active_objs":6,"num_objs":6,"obj_size":4992,"obj_per_slab":6,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1,"num_slabs":1,"shared_avail":0}},{"name":"task_delay_info","active_objs":2958,"num_objs":2958,"obj_size":80,"obj_per_slab":51,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":58,"num_slabs":58,"shared_avail":0}},{"name":"taskstats","active_objs":92,"num_objs":92,"obj_size":352,"obj_per_slab":46,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"proc_dir_entry","active_objs":882,"num_objs":882,"obj_size":192,"obj_per_slab":42,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":21,"num_slabs":21,"shared_avail":0}},{"name":"pde_opener","active_objs":3366,"num_objs":3366,"obj_size":40,"obj_per_slab":102,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":33,"num_slabs":33,"shared_avail":0}},{"name":"proc_inode_cache","active_objs":51317,"num_objs":52752,"obj_size":680,"obj_per_slab":48,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1099,"num_slabs":1099,"shared_avail":0}},{"name":"seq_file","active_objs":4760,"num_objs":4760,"obj_size":120,"obj_per_slab":68,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":70,"num_slabs":70,"shared_avail":0}},{"name":"bdev_cache","active_objs":78,"num_objs":78,"obj_size":832,"obj_per_slab":39,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"shmem_inode_cache","active_objs":2647,"num_objs":2970,"obj_size":720,"obj_per_slab":45,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":66,"num_slabs":66,"shared_avail":0}},{"name":"kernfs_node_cache","active_objs":115254,"num_objs":115904,"obj_size":128,"obj_per_slab":64,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":1811,"num_slabs":1811,"shared_avail":0}},{"name":"mnt_cache","active_objs":1251,"num_objs":1326,"obj_size":320,"obj_per_slab":51,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":26,"num_slabs":26,"shared_avail":0}},{"name":"filp","active_objs":19960,"num_objs":22464,"obj_size":256,"obj_per_slab":64,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":351,"num_slabs":351,"shared_avail":0}},{"name":"inode_cache","active_objs":137462,"num_objs":138754,"obj_size":608,"obj_per_slab":53,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2618,"num_slabs":2618,"shared_avail":0}},{"name":"dentry","active_objs":205198,"num_objs":211008,"obj_size":192,"obj_per_slab":42,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":5024,"num_slabs":5024,"shared_avail":0}},{"name":"names_cache","active_objs":32,"num_objs":32,"obj_size":4096,"obj_per_slab":8,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":4,"num_slabs":4,"shared_avail":0}},{"name":"iint_cache","active_objs":0,"num_objs":0,"obj_size":120,"obj_per_slab":68,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"lsm_file_cache","active_objs":2040,"num_objs":2040,"obj_size":24,"obj_per_slab":170,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":12,"num_slabs":12,"shared_avail":0}},{"name":"buffer_head","active_objs":87912,"num_objs":89349,"obj_size":104,"obj_per_slab":39,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2291,"num_slabs":2291,"shared_avail":0}},{"name":"uts_namespace","active_objs":74,"num_objs":74,"obj_size":440,"obj_per_slab":37,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"vm_area_struct","active_objs":19609,"num_objs":20124,"obj_size":208,"obj_per_slab":39,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":516,"num_slabs":516,"shared_avail":0}},{"name":"mm_struct","active_objs":1050,"num_objs":1050,"obj_size":1088,"obj_per_slab":30,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":35,"num_slabs":35,"shared_avail":0}},{"name":"files_cache","active_objs":1564,"num_objs":1564,"obj_size":704,"obj_per_slab":46,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":34,"num_slabs":34,"shared_avail":0}},{"name":"signal_cache","active_objs":1456,"num_objs":1456,"obj_size":1152,"obj_per_slab":28,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":52,"num_slabs":52,"shared_avail":0}},{"name":"sighand_cache","active_objs":847,"num_objs":885,"obj_size":2112,"obj_per_slab":15,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":59,"num_slabs":59,"shared_avail":0}},{"name":"task_struct","active_objs":698,"num_objs":770,"obj_size":6016,"obj_per_slab":5,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":154,"num_slabs":154,"shared_avail":0}},{"name":"cred_jar","active_objs":3864,"num_objs":3864,"obj_size":192,"obj_per_slab":42,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":92,"num_slabs":92,"shared_avail":0}},{"name":"anon_vma_chain","active_objs":19989,"num_objs":21376,"obj_size":64,"obj_per_slab":64,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":334,"num_slabs":334,"shared_avail":0}},{"name":"anon_vma","active_objs":11689,"num_objs":11914,"obj_size":88,"obj_per_slab":46,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":259,"num_slabs":259,"shared_avail":0}},{"name":"pid","active_objs":3456,"num_objs":3456,"obj_size":128,"obj_per_slab":64,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":54,"num_slabs":54,"shared_avail":0}},{"name":"Acpi-Operand","active_objs":10248,"num_objs":10248,"obj_size":72,"obj_per_slab":56,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":183,"num_slabs":183,"shared_avail":0}},{"name":"Acpi-ParseExt","active_objs":78,"num_objs":78,"obj_size":104,"obj_per_slab":39,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"Acpi-State","active_objs":408,"num_objs":408,"obj_size":80,"obj_per_slab":51,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":8,"num_slabs":8,"shared_avail":0}},{"name":"numa_policy","active_objs":186,"num_objs":186,"obj_size":264,"obj_per_slab":62,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":3,"num_slabs":3,"shared_avail":0}},{"name":"trace_event_file","active_objs":1748,"num_objs":1748,"obj_size":88,"obj_per_slab":46,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":38,"num_slabs":38,"shared_avail":0}},{"name":"ftrace_event_field","active_objs":12410,"num_objs":12410,"obj_size":48,"obj_per_slab":85,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":146,"num_slabs":146,"shared_avail":0}},{"name":"pool_workqueue","active_objs":768,"num_objs":768,"obj_size":256,"obj_per_slab":64,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":12,"num_slabs":12,"shared_avail":0}},{"name":"radix_tree_node","active_objs":10063,"num_objs":12040,"obj_size":584,"obj_per_slab":56,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":215,"num_slabs":215,"shared_avail":0}},{"name":"task_group","active_objs":204,"num_objs":204,"obj_size":640,"obj_per_slab":51,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":4,"num_slabs":4,"shared_avail":0}},{"name":"vmap_area","active_objs":2929,"num_objs":3264,"obj_size":64,"obj_per_slab":64,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":51,"num_slabs":51,"shared_avail":0}},{"name":"dma-kmalloc-8k","active_objs":0,"num_objs":0,"obj_size":8192,"obj_per_slab":4,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-4k","active_objs":0,"num_objs":0,"obj_size":4096,"obj_per_slab":8,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-2k","active_objs":0,"num_objs":0,"obj_size":2048,"obj_per_slab":16,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-1k","active_objs":0,"num_objs":0,"obj_size":1024,"obj_per_slab":32,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-512","active_objs":128,"num_objs":128,"obj_size":512,"obj_per_slab":64,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":2,"num_slabs":2,"shared_avail":0}},{"name":"dma-kmalloc-256","active_objs":0,"num_objs":0,"obj_size":256,"obj_per_slab":64,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-128","active_objs":0,"num_objs":0,"obj_size":128,"obj_per_slab":64,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-64","active_objs":0,"num_objs":0,"obj_size":64,"obj_per_slab":64,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-32","active_objs":0,"num_objs":0,"obj_size":32,"obj_per_slab":128,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-16","active_objs":0,"num_objs":0,"obj_size":16,"obj_per_slab":256,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-8","active_objs":0,"num_objs":0,"obj_size":8,"obj_per_slab":512,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-192","active_objs":0,"num_objs":0,"obj_size":192,"obj_per_slab":42,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"dma-kmalloc-96","active_objs":0,"num_objs":0,"obj_size":96,"obj_per_slab":42,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-8k","active_objs":0,"num_objs":0,"obj_size":8192,"obj_per_slab":4,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-4k","active_objs":0,"num_objs":0,"obj_size":4096,"obj_per_slab":8,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-2k","active_objs":0,"num_objs":0,"obj_size":2048,"obj_per_slab":16,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-1k","active_objs":0,"num_objs":0,"obj_size":1024,"obj_per_slab":32,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-512","active_objs":0,"num_objs":0,"obj_size":512,"obj_per_slab":64,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-256","active_objs":0,"num_objs":0,"obj_size":256,"obj_per_slab":64,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-192","active_objs":0,"num_objs":0,"obj_size":192,"obj_per_slab":42,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-128","active_objs":560,"num_objs":640,"obj_size":128,"obj_per_slab":64,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":10,"num_slabs":10,"shared_avail":0}},{"name":"kmalloc-rcl-96","active_objs":631,"num_objs":798,"obj_size":96,"obj_per_slab":42,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":19,"num_slabs":19,"shared_avail":0}},{"name":"kmalloc-rcl-64","active_objs":3894,"num_objs":4480,"obj_size":64,"obj_per_slab":64,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":70,"num_slabs":70,"shared_avail":0}},{"name":"kmalloc-rcl-32","active_objs":0,"num_objs":0,"obj_size":32,"obj_per_slab":128,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-16","active_objs":0,"num_objs":0,"obj_size":16,"obj_per_slab":256,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-rcl-8","active_objs":0,"num_objs":0,"obj_size":8,"obj_per_slab":512,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":0,"num_slabs":0,"shared_avail":0}},{"name":"kmalloc-8k","active_objs":127,"num_objs":136,"obj_size":8192,"obj_per_slab":4,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":34,"num_slabs":34,"shared_avail":0}},{"name":"kmalloc-4k","active_objs":2056,"num_objs":2056,"obj_size":4096,"obj_per_slab":8,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":257,"num_slabs":257,"shared_avail":0}},{"name":"kmalloc-2k","active_objs":2132,"num_objs":2192,"obj_size":2048,"obj_per_slab":16,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":137,"num_slabs":137,"shared_avail":0}},{"name":"kmalloc-1k","active_objs":3600,"num_objs":3840,"obj_size":1024,"obj_per_slab":32,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":120,"num_slabs":120,"shared_avail":0}},{"name":"kmalloc-512","active_objs":38846,"num_objs":39104,"obj_size":512,"obj_per_slab":64,"pages_per_slab":8,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":611,"num_slabs":611,"shared_avail":0}},{"name":"kmalloc-256","active_objs":3648,"num_objs":3648,"obj_size":256,"obj_per_slab":64,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":57,"num_slabs":57,"shared_avail":0}},{"name":"kmalloc-192","active_objs":2688,"num_objs":2688,"obj_size":192,"obj_per_slab":42,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":64,"num_slabs":64,"shared_avail":0}},{"name":"kmalloc-128","active_objs":1664,"num_objs":1664,"obj_size":128,"obj_per_slab":64,"pages_per_slab":2,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":26,"num_slabs":26,"shared_avail":0}},{"name":"kmalloc-96","active_objs":2142,"num_objs":2142,"obj_size":96,"obj_per_slab":42,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":51,"num_slabs":51,"shared_avail":0}},{"name":"kmalloc-64","active_objs":21435,"num_objs":21568,"obj_size":64,"obj_per_slab":64,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":337,"num_slabs":337,"shared_avail":0}},{"name":"kmalloc-32","active_objs":43520,"num_objs":43520,"obj_size":32,"obj_per_slab":128,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":340,"num_slabs":340,"shared_avail":0}},{"name":"kmalloc-16","active_objs":16640,"num_objs":16640,"obj_size":16,"obj_per_slab":256,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":65,"num_slabs":65,"shared_avail":0}},{"name":"kmalloc-8","active_objs":49152,"num_objs":49152,"obj_size":8,"obj_per_slab":512,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":96,"num_slabs":96,"shared_avail":0}},{"name":"kmem_cache_node","active_objs":1728,"num_objs":1728,"obj_size":64,"obj_per_slab":64,"pages_per_slab":1,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":27,"num_slabs":27,"shared_avail":0}},{"name":"kmem_cache","active_objs":1728,"num_objs":1728,"obj_size":448,"obj_per_slab":36,"pages_per_slab":4,"tunables":{"limit":0,"batch_count":0,"shared_factor":0},"slabdata":{"active_slabs":48,"num_slabs":48,"shared_avail":0}}] diff --git a/tests/fixtures/linux-proc/softirqs b/tests/fixtures/linux-proc/softirqs new file mode 100644 index 00000000..08e2b577 --- /dev/null +++ b/tests/fixtures/linux-proc/softirqs @@ -0,0 +1,12 @@ + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 CPU8 CPU9 CPU10 CPU11 CPU12 CPU13 CPU14 CPU15 CPU16 CPU17 CPU18 CPU19 CPU20 CPU21 CPU22 CPU23 CPU24 CPU25 CPU26 CPU27 CPU28 CPU29 CPU30 CPU31 CPU32 CPU33 CPU34 CPU35 CPU36 CPU37 CPU38 CPU39 CPU40 CPU41 CPU42 CPU43 CPU44 CPU45 CPU46 CPU47 CPU48 CPU49 CPU50 CPU51 CPU52 CPU53 CPU54 CPU55 CPU56 CPU57 CPU58 CPU59 CPU60 CPU61 CPU62 CPU63 CPU64 CPU65 CPU66 CPU67 CPU68 CPU69 CPU70 CPU71 CPU72 CPU73 CPU74 CPU75 CPU76 CPU77 CPU78 CPU79 CPU80 CPU81 CPU82 CPU83 CPU84 CPU85 CPU86 CPU87 CPU88 CPU89 CPU90 CPU91 CPU92 CPU93 CPU94 CPU95 CPU96 CPU97 CPU98 CPU99 CPU100 CPU101 CPU102 CPU103 CPU104 CPU105 CPU106 CPU107 CPU108 CPU109 CPU110 CPU111 CPU112 CPU113 CPU114 CPU115 CPU116 CPU117 CPU118 CPU119 CPU120 CPU121 CPU122 CPU123 CPU124 CPU125 CPU126 CPU127 + HI: 1 34056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + TIMER: 322970 888166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + NET_TX: 2 3350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + NET_RX: 61 128016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + BLOCK: 22906 26865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + IRQ_POLL: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + TASKLET: 47 166383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + SCHED: 314955 885432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + HRTIMER: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + RCU: 225923 352625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + diff --git a/tests/fixtures/linux-proc/softirqs.json b/tests/fixtures/linux-proc/softirqs.json new file mode 100644 index 00000000..9bb28d93 --- /dev/null +++ b/tests/fixtures/linux-proc/softirqs.json @@ -0,0 +1 @@ +[{"counter":"HI","CPU0":1,"CPU1":34056,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"TIMER","CPU0":322970,"CPU1":888166,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"NET_TX","CPU0":2,"CPU1":3350,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"NET_RX","CPU0":61,"CPU1":128016,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"BLOCK","CPU0":22906,"CPU1":26865,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"IRQ_POLL","CPU0":0,"CPU1":0,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"TASKLET","CPU0":47,"CPU1":166383,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"SCHED","CPU0":314955,"CPU1":885432,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"HRTIMER","CPU0":0,"CPU1":0,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0},{"counter":"RCU","CPU0":225923,"CPU1":352625,"CPU2":0,"CPU3":0,"CPU4":0,"CPU5":0,"CPU6":0,"CPU7":0,"CPU8":0,"CPU9":0,"CPU10":0,"CPU11":0,"CPU12":0,"CPU13":0,"CPU14":0,"CPU15":0,"CPU16":0,"CPU17":0,"CPU18":0,"CPU19":0,"CPU20":0,"CPU21":0,"CPU22":0,"CPU23":0,"CPU24":0,"CPU25":0,"CPU26":0,"CPU27":0,"CPU28":0,"CPU29":0,"CPU30":0,"CPU31":0,"CPU32":0,"CPU33":0,"CPU34":0,"CPU35":0,"CPU36":0,"CPU37":0,"CPU38":0,"CPU39":0,"CPU40":0,"CPU41":0,"CPU42":0,"CPU43":0,"CPU44":0,"CPU45":0,"CPU46":0,"CPU47":0,"CPU48":0,"CPU49":0,"CPU50":0,"CPU51":0,"CPU52":0,"CPU53":0,"CPU54":0,"CPU55":0,"CPU56":0,"CPU57":0,"CPU58":0,"CPU59":0,"CPU60":0,"CPU61":0,"CPU62":0,"CPU63":0,"CPU64":0,"CPU65":0,"CPU66":0,"CPU67":0,"CPU68":0,"CPU69":0,"CPU70":0,"CPU71":0,"CPU72":0,"CPU73":0,"CPU74":0,"CPU75":0,"CPU76":0,"CPU77":0,"CPU78":0,"CPU79":0,"CPU80":0,"CPU81":0,"CPU82":0,"CPU83":0,"CPU84":0,"CPU85":0,"CPU86":0,"CPU87":0,"CPU88":0,"CPU89":0,"CPU90":0,"CPU91":0,"CPU92":0,"CPU93":0,"CPU94":0,"CPU95":0,"CPU96":0,"CPU97":0,"CPU98":0,"CPU99":0,"CPU100":0,"CPU101":0,"CPU102":0,"CPU103":0,"CPU104":0,"CPU105":0,"CPU106":0,"CPU107":0,"CPU108":0,"CPU109":0,"CPU110":0,"CPU111":0,"CPU112":0,"CPU113":0,"CPU114":0,"CPU115":0,"CPU116":0,"CPU117":0,"CPU118":0,"CPU119":0,"CPU120":0,"CPU121":0,"CPU122":0,"CPU123":0,"CPU124":0,"CPU125":0,"CPU126":0,"CPU127":0}] diff --git a/tests/fixtures/linux-proc/stat b/tests/fixtures/linux-proc/stat new file mode 100644 index 00000000..121c4297 --- /dev/null +++ b/tests/fixtures/linux-proc/stat @@ -0,0 +1,10 @@ +cpu 6002 152 8398 3444436 448 0 1174 0 0 0 +cpu0 2784 137 4367 1732802 225 0 221 0 0 0 +cpu1 3218 15 4031 1711634 223 0 953 0 0 0 +intr 2496709 18 73 0 0 0 0 0 0 1 0 0 0 18 0 0 0 4219 37341 423366 128490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9063 2363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +ctxt 4622716 +btime 1662154781 +processes 9831 +procs_running 1 +procs_blocked 0 +softirq 3478985 35230 1252057 3467 128583 51014 0 171199 1241297 0 596138 diff --git a/tests/fixtures/linux-proc/stat.json b/tests/fixtures/linux-proc/stat.json new file mode 100644 index 00000000..cfb37a5a --- /dev/null +++ b/tests/fixtures/linux-proc/stat.json @@ -0,0 +1 @@ +{"cpu":{"user":6002,"nice":152,"system":8398,"idle":3444436,"iowait":448,"irq":0,"softirq":1174,"steal":0,"guest":0,"guest_nice":0},"cpu0":{"user":2784,"nice":137,"system":4367,"idle":1732802,"iowait":225,"irq":0,"softirq":221,"steal":0,"guest":0,"guest_nice":0},"cpu1":{"user":3218,"nice":15,"system":4031,"idle":1711634,"iowait":223,"irq":0,"softirq":953,"steal":0,"guest":0,"guest_nice":0},"interrupts":[2496709,18,73,0,0,0,0,0,0,1,0,0,0,18,0,0,0,4219,37341,423366,128490,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9063,2363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"context_switches":4622716,"boot_time":1662154781,"processes":9831,"processes_running":1,"processes_blocked":0,"softirq":[3478985,35230,1252057,3467,128583,51014,0,171199,1241297,0,596138]} diff --git a/tests/fixtures/linux-proc/stat2 b/tests/fixtures/linux-proc/stat2 new file mode 100644 index 00000000..75bc5217 --- /dev/null +++ b/tests/fixtures/linux-proc/stat2 @@ -0,0 +1,24 @@ +cpu 259246 7001 60190 34250993 137517 772 0 +cpu0 259246 7001 60190 34250993 137517 772 0 +intr 354133732 347209999 2272 0 4 4 0 0 3 1 1249247 0 0 80143 0 422626 5169433 +ctxt 12547729 +btime 1093631447 +processes 130523 +procs_running 1 +procs_blocked 0 +preempt 5651840 +cpu 209841 1554 21720 118519346 72939 154 27168 +cpu0 42536 798 4841 14790880 14778 124 3117 +cpu1 24184 569 3875 14794524 30209 29 3130 +cpu2 28616 11 2182 14818198 4020 1 3493 +cpu3 35350 6 2942 14811519 3045 0 3659 +cpu4 18209 135 2263 14820076 12465 0 3373 +cpu5 20795 35 1866 14825701 4508 0 3615 +cpu6 21607 0 2201 14827053 2325 0 3334 +cpu7 18544 0 1550 14831395 1589 0 3447 +intr 15239682 14857833 6 0 6 6 0 5 0 1 0 0 0 29 0 2 0 0 0 0 0 0 0 94982 0 286812 +ctxt 4209609 +btime 1078711415 +processes 21905 +procs_running 1 +procs_blocked 0 diff --git a/tests/fixtures/linux-proc/stat2.json b/tests/fixtures/linux-proc/stat2.json new file mode 100644 index 00000000..e87d8e36 --- /dev/null +++ b/tests/fixtures/linux-proc/stat2.json @@ -0,0 +1 @@ +{"cpu":{"user":209841,"nice":1554,"system":21720,"idle":118519346,"iowait":72939,"irq":154,"softirq":27168},"cpu0":{"user":42536,"nice":798,"system":4841,"idle":14790880,"iowait":14778,"irq":124,"softirq":3117},"interrupts":[15239682,14857833,6,0,6,6,0,5,0,1,0,0,0,29,0,2,0,0,0,0,0,0,0,94982,0,286812],"context_switches":4209609,"boot_time":1078711415,"processes":21905,"processes_running":1,"processes_blocked":0,"cpu1":{"user":24184,"nice":569,"system":3875,"idle":14794524,"iowait":30209,"irq":29,"softirq":3130},"cpu2":{"user":28616,"nice":11,"system":2182,"idle":14818198,"iowait":4020,"irq":1,"softirq":3493},"cpu3":{"user":35350,"nice":6,"system":2942,"idle":14811519,"iowait":3045,"irq":0,"softirq":3659},"cpu4":{"user":18209,"nice":135,"system":2263,"idle":14820076,"iowait":12465,"irq":0,"softirq":3373},"cpu5":{"user":20795,"nice":35,"system":1866,"idle":14825701,"iowait":4508,"irq":0,"softirq":3615},"cpu6":{"user":21607,"nice":0,"system":2201,"idle":14827053,"iowait":2325,"irq":0,"softirq":3334},"cpu7":{"user":18544,"nice":0,"system":1550,"idle":14831395,"iowait":1589,"irq":0,"softirq":3447}} diff --git a/tests/fixtures/linux-proc/swaps b/tests/fixtures/linux-proc/swaps new file mode 100644 index 00000000..718f7ca8 --- /dev/null +++ b/tests/fixtures/linux-proc/swaps @@ -0,0 +1,2 @@ +Filename Type Size Used Priority +/swap.img file 3996668 0 -2 diff --git a/tests/fixtures/linux-proc/swaps.json b/tests/fixtures/linux-proc/swaps.json new file mode 100644 index 00000000..80b871c7 --- /dev/null +++ b/tests/fixtures/linux-proc/swaps.json @@ -0,0 +1 @@ +[{"filename":"/swap.img","type":"file","size":3996668,"used":0,"priority":-2}] diff --git a/tests/fixtures/linux-proc/uptime b/tests/fixtures/linux-proc/uptime new file mode 100644 index 00000000..0cee6713 --- /dev/null +++ b/tests/fixtures/linux-proc/uptime @@ -0,0 +1 @@ +46901.13 46856.66 diff --git a/tests/fixtures/linux-proc/uptime.json b/tests/fixtures/linux-proc/uptime.json new file mode 100644 index 00000000..ce1ada1c --- /dev/null +++ b/tests/fixtures/linux-proc/uptime.json @@ -0,0 +1 @@ +{"up_time":46901.13,"idle_time":46856.66} diff --git a/tests/fixtures/linux-proc/version b/tests/fixtures/linux-proc/version new file mode 100644 index 00000000..b77808cf --- /dev/null +++ b/tests/fixtures/linux-proc/version @@ -0,0 +1 @@ +Linux version 5.8.0-63-generic (buildd@lcy01-amd64-028) (gcc (Ubuntu 10.3.0-1ubuntu1~20.10) 10.3.0, GNU ld (GNU Binutils for Ubuntu) 2.35.1) #71-Ubuntu SMP Tue Jul 13 15:59:12 UTC 2021 diff --git a/tests/fixtures/linux-proc/version.json b/tests/fixtures/linux-proc/version.json new file mode 100644 index 00000000..3d52c6c7 --- /dev/null +++ b/tests/fixtures/linux-proc/version.json @@ -0,0 +1 @@ +{"version":"5.8.0-63-generic","email":"buildd@lcy01-amd64-028","gcc":"gcc (Ubuntu 10.3.0-1ubuntu1~20.10) 10.3.0, GNU ld (GNU Binutils for Ubuntu) 2.35.1","build":"#71-Ubuntu","flags":"SMP","date":"Tue Jul 13 15:59:12 UTC 2021"} diff --git a/tests/fixtures/linux-proc/version2 b/tests/fixtures/linux-proc/version2 new file mode 100644 index 00000000..4f613af1 --- /dev/null +++ b/tests/fixtures/linux-proc/version2 @@ -0,0 +1 @@ +Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019 diff --git a/tests/fixtures/linux-proc/version2.json b/tests/fixtures/linux-proc/version2.json new file mode 100644 index 00000000..b2980ecf --- /dev/null +++ b/tests/fixtures/linux-proc/version2.json @@ -0,0 +1 @@ +{"version":"3.10.0-1062.el7.x86_64","email":"mockbuild@kbuilder.bsys.centos.org","gcc":"gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)","build":"#1","flags":"SMP","date":"Wed Aug 7 18:08:02 UTC 2019"} diff --git a/tests/fixtures/linux-proc/version3 b/tests/fixtures/linux-proc/version3 new file mode 100644 index 00000000..68443109 --- /dev/null +++ b/tests/fixtures/linux-proc/version3 @@ -0,0 +1 @@ +Linux version 2.6.8-1.523 (user@foo.redhat.com) (gcc version 3.4.1 20040714 \ (Red Hat Enterprise Linux 3.4.1-7)) #1 Mon Aug 16 13:27:03 EDT 2004 diff --git a/tests/fixtures/linux-proc/version3.json b/tests/fixtures/linux-proc/version3.json new file mode 100644 index 00000000..f8e1cebf --- /dev/null +++ b/tests/fixtures/linux-proc/version3.json @@ -0,0 +1 @@ +{"version":"2.6.8-1.523","email":"user@foo.redhat.com","gcc":"gcc version 3.4.1 20040714 \\ (Red Hat Enterprise Linux 3.4.1-7)","build":"#1","flags":null,"date":"Mon Aug 16 13:27:03 EDT 2004"} diff --git a/tests/fixtures/linux-proc/vmallocinfo b/tests/fixtures/linux-proc/vmallocinfo new file mode 100644 index 00000000..4da4947b --- /dev/null +++ b/tests/fixtures/linux-proc/vmallocinfo @@ -0,0 +1,1362 @@ +0xffffb3c1c0000000-0xffffb3c1c0005000 20480 map_irq_stack+0x93/0xe0 vmap +0xffffb3c1c0005000-0xffffb3c1c0007000 8192 acpi_os_map_iomem+0x1ac/0x1c0 phys=0x00000000bfefe000 ioremap +0xffffb3c1c0007000-0xffffb3c1c0009000 8192 acpi_os_map_iomem+0x1ac/0x1c0 phys=0x00000000bfeff000 ioremap +0xffffb3c1c0009000-0xffffb3c1c000b000 8192 acpi_os_map_iomem+0x1ac/0x1c0 phys=0x00000000bfedc000 ioremap +0xffffb3c1c000b000-0xffffb3c1c000d000 8192 hpet_enable+0x37/0x2b8 phys=0x00000000fed00000 ioremap +0xffffb3c1c000d000-0xffffb3c1c000f000 8192 gen_pool_add_owner+0x42/0xc0 pages=1 vmalloc N0=1 +0xffffb3c1c0010000-0xffffb3c1c0015000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0015000-0xffffb3c1c0017000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0018000-0xffffb3c1c001d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c001d000-0xffffb3c1c001f000 8192 gen_pool_add_owner+0x42/0xc0 pages=1 vmalloc N0=1 +0xffffb3c1c0020000-0xffffb3c1c0025000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0025000-0xffffb3c1c0027000 8192 gen_pool_add_owner+0x42/0xc0 pages=1 vmalloc N0=1 +0xffffb3c1c0028000-0xffffb3c1c002d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c002d000-0xffffb3c1c002f000 8192 gen_pool_add_owner+0x42/0xc0 pages=1 vmalloc N0=1 +0xffffb3c1c0031000-0xffffb3c1c0035000 16384 n_tty_open+0x19/0xa0 pages=3 vmalloc N0=3 +0xffffb3c1c0035000-0xffffb3c1c0037000 8192 devm_ioremap+0x43/0x90 phys=0x00000000fd5ef000 ioremap +0xffffb3c1c0038000-0xffffb3c1c003d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c003d000-0xffffb3c1c003f000 8192 acpi_os_map_iomem+0x1ac/0x1c0 phys=0x00000000fe800000 ioremap +0xffffb3c1c0040000-0xffffb3c1c0063000 143360 acpi_os_map_iomem+0x1ac/0x1c0 phys=0x00000000bfedd000 ioremap +0xffffb3c1c0069000-0xffffb3c1c006b000 8192 pci_iomap_range+0x6f/0xa0 phys=0x00000000fd5ee000 ioremap +0xffffb3c1c0071000-0xffffb3c1c0074000 12288 vmw_fb_init+0x1c3/0x3f0 [vmwgfx] pages=2 vmalloc N0=2 +0xffffb3c1c0074000-0xffffb3c1c0079000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0079000-0xffffb3c1c007b000 8192 dm_table_create+0x99/0x150 pages=1 vmalloc N0=1 +0xffffb3c1c007c000-0xffffb3c1c0081000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0081000-0xffffb3c1c0083000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0084000-0xffffb3c1c0089000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c008c000-0xffffb3c1c0091000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0091000-0xffffb3c1c0093000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0094000-0xffffb3c1c0099000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0099000-0xffffb3c1c009b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c009c000-0xffffb3c1c00a1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00a1000-0xffffb3c1c00a3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00a4000-0xffffb3c1c00a9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00a9000-0xffffb3c1c00ab000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00ac000-0xffffb3c1c00b1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00b1000-0xffffb3c1c00b3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00b4000-0xffffb3c1c00b9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00b9000-0xffffb3c1c00bb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00bc000-0xffffb3c1c00c1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00c1000-0xffffb3c1c00c3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00c4000-0xffffb3c1c00c9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00c9000-0xffffb3c1c00cb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00cc000-0xffffb3c1c00d1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00d1000-0xffffb3c1c00d3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00d4000-0xffffb3c1c00d9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00d9000-0xffffb3c1c00db000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00dc000-0xffffb3c1c00e1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00e1000-0xffffb3c1c00e3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00e4000-0xffffb3c1c00e9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00e9000-0xffffb3c1c00eb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00ec000-0xffffb3c1c00f1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00f1000-0xffffb3c1c00f3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00f4000-0xffffb3c1c00f9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c00f9000-0xffffb3c1c00fb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c00fc000-0xffffb3c1c0101000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0101000-0xffffb3c1c0103000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0104000-0xffffb3c1c0109000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0109000-0xffffb3c1c010b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c010c000-0xffffb3c1c0111000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0111000-0xffffb3c1c0113000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0114000-0xffffb3c1c0119000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0119000-0xffffb3c1c011b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c011c000-0xffffb3c1c0121000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0121000-0xffffb3c1c0123000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0124000-0xffffb3c1c0129000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0129000-0xffffb3c1c012b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c012c000-0xffffb3c1c0131000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0131000-0xffffb3c1c0133000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0134000-0xffffb3c1c0139000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0139000-0xffffb3c1c013b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c013c000-0xffffb3c1c0141000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0141000-0xffffb3c1c0143000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0144000-0xffffb3c1c0149000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0149000-0xffffb3c1c014b000 8192 swap_cgroup_swapon+0x2d/0x150 pages=1 vmalloc N0=1 +0xffffb3c1c014c000-0xffffb3c1c0151000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0151000-0xffffb3c1c0153000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0154000-0xffffb3c1c0159000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0159000-0xffffb3c1c015b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c015c000-0xffffb3c1c0161000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0161000-0xffffb3c1c0163000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0164000-0xffffb3c1c0169000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0169000-0xffffb3c1c016b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c016c000-0xffffb3c1c0171000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0171000-0xffffb3c1c0173000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0174000-0xffffb3c1c0179000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0179000-0xffffb3c1c017b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c017c000-0xffffb3c1c0181000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0181000-0xffffb3c1c0183000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0184000-0xffffb3c1c0189000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0189000-0xffffb3c1c018b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c018c000-0xffffb3c1c0191000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0191000-0xffffb3c1c0193000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0194000-0xffffb3c1c0199000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0199000-0xffffb3c1c019b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c019c000-0xffffb3c1c01a1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01a1000-0xffffb3c1c01a3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01a4000-0xffffb3c1c01a9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01a9000-0xffffb3c1c01ab000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01ac000-0xffffb3c1c01b1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01b1000-0xffffb3c1c01b3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01b4000-0xffffb3c1c01b9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01b9000-0xffffb3c1c01bb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01bc000-0xffffb3c1c01c1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01c1000-0xffffb3c1c01c3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01c4000-0xffffb3c1c01c9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01c9000-0xffffb3c1c01cb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01cc000-0xffffb3c1c01d1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01d1000-0xffffb3c1c01d3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01d4000-0xffffb3c1c01d9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01d9000-0xffffb3c1c01db000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01dc000-0xffffb3c1c01e1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01e1000-0xffffb3c1c01e3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01e4000-0xffffb3c1c01e9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01e9000-0xffffb3c1c01eb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01ec000-0xffffb3c1c01f1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01f1000-0xffffb3c1c01f3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01f4000-0xffffb3c1c01f9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c01f9000-0xffffb3c1c01fb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c01fc000-0xffffb3c1c0201000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0201000-0xffffb3c1c0203000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0204000-0xffffb3c1c0209000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0209000-0xffffb3c1c020b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c020c000-0xffffb3c1c0211000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0211000-0xffffb3c1c0213000 8192 msix_capability_init+0xe0/0x470 phys=0x00000000febfe000 ioremap +0xffffb3c1c0214000-0xffffb3c1c0219000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0219000-0xffffb3c1c021b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c021c000-0xffffb3c1c0221000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0221000-0xffffb3c1c0223000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0224000-0xffffb3c1c0229000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0229000-0xffffb3c1c022b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c022c000-0xffffb3c1c0231000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0231000-0xffffb3c1c0233000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0234000-0xffffb3c1c0239000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0239000-0xffffb3c1c023b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c023c000-0xffffb3c1c0241000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0241000-0xffffb3c1c0243000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0244000-0xffffb3c1c0249000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0249000-0xffffb3c1c024b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c024c000-0xffffb3c1c0251000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0251000-0xffffb3c1c0253000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0254000-0xffffb3c1c0259000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0259000-0xffffb3c1c025b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c025c000-0xffffb3c1c0261000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0261000-0xffffb3c1c0263000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0264000-0xffffb3c1c0269000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0269000-0xffffb3c1c026b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c026c000-0xffffb3c1c0271000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0271000-0xffffb3c1c0273000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0274000-0xffffb3c1c0279000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0279000-0xffffb3c1c027b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c027c000-0xffffb3c1c0281000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0281000-0xffffb3c1c0283000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0284000-0xffffb3c1c0289000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0289000-0xffffb3c1c028b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c028c000-0xffffb3c1c0291000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0291000-0xffffb3c1c0293000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0294000-0xffffb3c1c0299000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0299000-0xffffb3c1c029b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c029c000-0xffffb3c1c02a1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02a1000-0xffffb3c1c02a3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02a4000-0xffffb3c1c02a9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02a9000-0xffffb3c1c02ab000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02ac000-0xffffb3c1c02b1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02b1000-0xffffb3c1c02b3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02b4000-0xffffb3c1c02b9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02b9000-0xffffb3c1c02bb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02bc000-0xffffb3c1c02c1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02c1000-0xffffb3c1c02c3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02c4000-0xffffb3c1c02c9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02c9000-0xffffb3c1c02cb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02cc000-0xffffb3c1c02d1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02d1000-0xffffb3c1c02d3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02d4000-0xffffb3c1c02d9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02d9000-0xffffb3c1c02db000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02dc000-0xffffb3c1c02e1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02e1000-0xffffb3c1c02e3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02e4000-0xffffb3c1c02e9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02e9000-0xffffb3c1c02eb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02ec000-0xffffb3c1c02f1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02f1000-0xffffb3c1c02f3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02f4000-0xffffb3c1c02f9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c02f9000-0xffffb3c1c02fb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c02fc000-0xffffb3c1c0301000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0301000-0xffffb3c1c0303000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0304000-0xffffb3c1c0309000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0309000-0xffffb3c1c030b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c030c000-0xffffb3c1c0311000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0311000-0xffffb3c1c0313000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0314000-0xffffb3c1c0319000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0319000-0xffffb3c1c031b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c031c000-0xffffb3c1c0321000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0321000-0xffffb3c1c0323000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0324000-0xffffb3c1c0329000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0329000-0xffffb3c1c032b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c032c000-0xffffb3c1c0331000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0331000-0xffffb3c1c0333000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0334000-0xffffb3c1c0339000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0339000-0xffffb3c1c033b000 8192 qp_alloc_queue.constprop.0+0x44/0x110 [vmw_vmci] pages=1 vmalloc N0=1 +0xffffb3c1c033c000-0xffffb3c1c0341000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0341000-0xffffb3c1c0343000 8192 qp_alloc_queue.constprop.0+0x44/0x110 [vmw_vmci] pages=1 vmalloc N0=1 +0xffffb3c1c0344000-0xffffb3c1c0349000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0349000-0xffffb3c1c034b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c034c000-0xffffb3c1c0351000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0351000-0xffffb3c1c0353000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0354000-0xffffb3c1c0359000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0359000-0xffffb3c1c035b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c035c000-0xffffb3c1c0361000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0361000-0xffffb3c1c0363000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0364000-0xffffb3c1c0369000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0369000-0xffffb3c1c036b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c036c000-0xffffb3c1c0371000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0371000-0xffffb3c1c0373000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0374000-0xffffb3c1c0379000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0379000-0xffffb3c1c037b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c037c000-0xffffb3c1c0381000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0381000-0xffffb3c1c0383000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0384000-0xffffb3c1c0389000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0389000-0xffffb3c1c038b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c038c000-0xffffb3c1c0391000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0391000-0xffffb3c1c0393000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0394000-0xffffb3c1c0399000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0399000-0xffffb3c1c039b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c039c000-0xffffb3c1c03a1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03a1000-0xffffb3c1c03a3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03a4000-0xffffb3c1c03a9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03a9000-0xffffb3c1c03ab000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03ac000-0xffffb3c1c03b1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03b1000-0xffffb3c1c03b3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03b4000-0xffffb3c1c03b9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03b9000-0xffffb3c1c03bb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03bc000-0xffffb3c1c03c1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03c1000-0xffffb3c1c03c3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03c4000-0xffffb3c1c03c9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03c9000-0xffffb3c1c03cb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03cc000-0xffffb3c1c03d1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03d1000-0xffffb3c1c03d3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03d4000-0xffffb3c1c03d9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03d9000-0xffffb3c1c03db000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03dc000-0xffffb3c1c03e1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03e1000-0xffffb3c1c03e3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03e4000-0xffffb3c1c03e9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03e9000-0xffffb3c1c03eb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03ec000-0xffffb3c1c03f1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03f1000-0xffffb3c1c03f3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03f4000-0xffffb3c1c03f9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c03f9000-0xffffb3c1c03fb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c03fc000-0xffffb3c1c0401000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0401000-0xffffb3c1c0403000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0404000-0xffffb3c1c0409000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0409000-0xffffb3c1c040b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c040c000-0xffffb3c1c0411000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0411000-0xffffb3c1c0413000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0414000-0xffffb3c1c0419000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0419000-0xffffb3c1c041b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c041c000-0xffffb3c1c0421000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0421000-0xffffb3c1c0423000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0424000-0xffffb3c1c0429000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0429000-0xffffb3c1c042b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c042c000-0xffffb3c1c0431000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0431000-0xffffb3c1c0433000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0434000-0xffffb3c1c0439000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0439000-0xffffb3c1c043b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c043c000-0xffffb3c1c0441000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0441000-0xffffb3c1c0443000 8192 e1000_setup_rx_resources+0x31/0x1d0 [e1000] pages=1 vmalloc N0=1 +0xffffb3c1c0444000-0xffffb3c1c0449000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0449000-0xffffb3c1c044b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c044c000-0xffffb3c1c0451000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0451000-0xffffb3c1c0453000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0454000-0xffffb3c1c0459000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0459000-0xffffb3c1c045b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c045c000-0xffffb3c1c0461000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0461000-0xffffb3c1c0463000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0464000-0xffffb3c1c0469000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0469000-0xffffb3c1c046b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c046c000-0xffffb3c1c0471000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0471000-0xffffb3c1c0473000 8192 acpi_os_map_iomem+0x1ac/0x1c0 phys=0x00000000fe807000 ioremap +0xffffb3c1c0474000-0xffffb3c1c0479000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0479000-0xffffb3c1c047b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c047c000-0xffffb3c1c0481000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0481000-0xffffb3c1c0483000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0484000-0xffffb3c1c0489000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0489000-0xffffb3c1c048b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c048c000-0xffffb3c1c0491000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0491000-0xffffb3c1c0493000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0494000-0xffffb3c1c0499000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0499000-0xffffb3c1c049b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c049c000-0xffffb3c1c04a1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04a1000-0xffffb3c1c04a3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04a4000-0xffffb3c1c04a9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04a9000-0xffffb3c1c04ab000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04ac000-0xffffb3c1c04b1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04b1000-0xffffb3c1c04b3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04b4000-0xffffb3c1c04b9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04b9000-0xffffb3c1c04bb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04bb000-0xffffb3c1c04bf000 16384 n_tty_open+0x19/0xa0 pages=3 vmalloc N0=3 +0xffffb3c1c04c1000-0xffffb3c1c04c3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04c4000-0xffffb3c1c04c9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04c9000-0xffffb3c1c04ce000 20480 map_irq_stack+0x93/0xe0 vmap +0xffffb3c1c04ce000-0xffffb3c1c04d0000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04d0000-0xffffb3c1c04d5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04d5000-0xffffb3c1c04d7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04d8000-0xffffb3c1c04dd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04dd000-0xffffb3c1c04df000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04e0000-0xffffb3c1c04e5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04e5000-0xffffb3c1c04e7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04e8000-0xffffb3c1c04ed000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04ed000-0xffffb3c1c04ef000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04f0000-0xffffb3c1c04f5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04f5000-0xffffb3c1c04f7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c04f8000-0xffffb3c1c04fd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c04fd000-0xffffb3c1c04ff000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0505000-0xffffb3c1c0507000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0508000-0xffffb3c1c050d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c050d000-0xffffb3c1c050f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0510000-0xffffb3c1c0515000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0515000-0xffffb3c1c0517000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0518000-0xffffb3c1c051d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c051d000-0xffffb3c1c051f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0520000-0xffffb3c1c0525000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0525000-0xffffb3c1c0527000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0528000-0xffffb3c1c052d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c052d000-0xffffb3c1c052f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0530000-0xffffb3c1c0535000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0535000-0xffffb3c1c0537000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0538000-0xffffb3c1c053d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c053d000-0xffffb3c1c053f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0540000-0xffffb3c1c0545000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0545000-0xffffb3c1c054a000 20480 agp_backend_initialize+0x149/0x260 pages=4 vmalloc N0=4 +0xffffb3c1c054a000-0xffffb3c1c054d000 12288 pmc_core_probe+0x81/0x200 phys=0x00000000fe000000 ioremap +0xffffb3c1c054d000-0xffffb3c1c054f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0550000-0xffffb3c1c0555000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0555000-0xffffb3c1c0557000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c055b000-0xffffb3c1c055d000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c055d000-0xffffb3c1c055f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0560000-0xffffb3c1c0565000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0565000-0xffffb3c1c0567000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0568000-0xffffb3c1c056d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c056d000-0xffffb3c1c056f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0570000-0xffffb3c1c0575000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0575000-0xffffb3c1c0577000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0578000-0xffffb3c1c057d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c057d000-0xffffb3c1c057f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0580000-0xffffb3c1c0585000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0585000-0xffffb3c1c0588000 12288 pcpu_mem_zalloc+0x30/0x50 pages=2 vmalloc N0=2 +0xffffb3c1c0588000-0xffffb3c1c058d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c058d000-0xffffb3c1c058f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0590000-0xffffb3c1c0595000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0595000-0xffffb3c1c0597000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0598000-0xffffb3c1c059d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c059d000-0xffffb3c1c059f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05a0000-0xffffb3c1c05a5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05a5000-0xffffb3c1c05a8000 12288 pcpu_mem_zalloc+0x30/0x50 pages=2 vmalloc N0=2 +0xffffb3c1c05a8000-0xffffb3c1c05ad000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05ad000-0xffffb3c1c05af000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05b0000-0xffffb3c1c05b5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05b5000-0xffffb3c1c05b7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05b8000-0xffffb3c1c05bd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05bd000-0xffffb3c1c05bf000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05c0000-0xffffb3c1c05c5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05c5000-0xffffb3c1c05c7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05c8000-0xffffb3c1c05cd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05cd000-0xffffb3c1c05cf000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05d0000-0xffffb3c1c05d5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05d5000-0xffffb3c1c05d7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05d8000-0xffffb3c1c05dd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05dd000-0xffffb3c1c05df000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05e0000-0xffffb3c1c05e5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05e5000-0xffffb3c1c05e7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05e8000-0xffffb3c1c05ed000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05ed000-0xffffb3c1c05ef000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05f0000-0xffffb3c1c05f5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05f5000-0xffffb3c1c05f7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c05f8000-0xffffb3c1c05fd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c05fd000-0xffffb3c1c05ff000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0600000-0xffffb3c1c0605000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0605000-0xffffb3c1c0607000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0608000-0xffffb3c1c060d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c060d000-0xffffb3c1c060f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0610000-0xffffb3c1c0615000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0615000-0xffffb3c1c0617000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0618000-0xffffb3c1c061d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c061d000-0xffffb3c1c061f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0620000-0xffffb3c1c0625000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0625000-0xffffb3c1c0627000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0628000-0xffffb3c1c062d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c062d000-0xffffb3c1c062f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0630000-0xffffb3c1c0635000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0635000-0xffffb3c1c0637000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0638000-0xffffb3c1c063d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c063d000-0xffffb3c1c063f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0640000-0xffffb3c1c0645000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0645000-0xffffb3c1c0647000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0648000-0xffffb3c1c064d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c064d000-0xffffb3c1c064f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0650000-0xffffb3c1c0655000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0655000-0xffffb3c1c0657000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0658000-0xffffb3c1c065d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c065d000-0xffffb3c1c065f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0660000-0xffffb3c1c0665000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0665000-0xffffb3c1c0667000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0668000-0xffffb3c1c066d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c066d000-0xffffb3c1c066f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0670000-0xffffb3c1c0675000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0675000-0xffffb3c1c0677000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0678000-0xffffb3c1c067d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c067d000-0xffffb3c1c067f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0680000-0xffffb3c1c0685000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0685000-0xffffb3c1c0687000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0688000-0xffffb3c1c068d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c068d000-0xffffb3c1c068f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0690000-0xffffb3c1c0695000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0695000-0xffffb3c1c0697000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0697000-0xffffb3c1c0699000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0699000-0xffffb3c1c069b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c069b000-0xffffb3c1c069d000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c069d000-0xffffb3c1c069f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06a0000-0xffffb3c1c06a5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06a5000-0xffffb3c1c06a7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06a8000-0xffffb3c1c06ad000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06ad000-0xffffb3c1c06af000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06b0000-0xffffb3c1c06b5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06b5000-0xffffb3c1c06b7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06b8000-0xffffb3c1c06bd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06bd000-0xffffb3c1c06bf000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06c0000-0xffffb3c1c06c5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06c5000-0xffffb3c1c06c7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06c7000-0xffffb3c1c06c9000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06c9000-0xffffb3c1c06cb000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06cb000-0xffffb3c1c06cd000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06cd000-0xffffb3c1c06cf000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06d0000-0xffffb3c1c06d5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06d5000-0xffffb3c1c06de000 36864 drm_ht_create+0x4d/0x70 [drm] pages=8 vmalloc N0=8 +0xffffb3c1c06de000-0xffffb3c1c06e0000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06e0000-0xffffb3c1c06e2000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06e2000-0xffffb3c1c06e4000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06e5000-0xffffb3c1c06e7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06e8000-0xffffb3c1c06ed000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06ed000-0xffffb3c1c06ef000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06f0000-0xffffb3c1c06f5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06f5000-0xffffb3c1c06f7000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06f8000-0xffffb3c1c06fd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c06fd000-0xffffb3c1c06ff000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c06ff000-0xffffb3c1c0701000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0701000-0xffffb3c1c0703000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0704000-0xffffb3c1c0709000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0709000-0xffffb3c1c070b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c070c000-0xffffb3c1c0711000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0711000-0xffffb3c1c0713000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0714000-0xffffb3c1c0719000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0719000-0xffffb3c1c071b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c071b000-0xffffb3c1c071d000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c071d000-0xffffb3c1c071f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0720000-0xffffb3c1c0741000 135168 mpt_mapresources+0x152/0x1e0 [mptbase] phys=0x00000000feba0000 ioremap +0xffffb3c1c0741000-0xffffb3c1c0743000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0744000-0xffffb3c1c0749000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0749000-0xffffb3c1c074b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c074c000-0xffffb3c1c0751000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0751000-0xffffb3c1c0753000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0754000-0xffffb3c1c0759000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0759000-0xffffb3c1c075b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c075c000-0xffffb3c1c0761000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0761000-0xffffb3c1c0763000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0764000-0xffffb3c1c0769000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0769000-0xffffb3c1c076b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c076c000-0xffffb3c1c0771000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0771000-0xffffb3c1c0773000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0779000-0xffffb3c1c077b000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c077b000-0xffffb3c1c077d000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c077d000-0xffffb3c1c077f000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c077f000-0xffffb3c1c0781000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0781000-0xffffb3c1c0785000 16384 e1000_setup_tx_resources+0x34/0x1c0 [e1000] pages=3 vmalloc N0=3 +0xffffb3c1c0785000-0xffffb3c1c0787000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0787000-0xffffb3c1c0789000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c0789000-0xffffb3c1c079b000 73728 vmci_guest_probe_device+0xdd/0x220 [vmw_vmci] pages=17 vmalloc N0=17 +0xffffb3c1c079c000-0xffffb3c1c07a1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c07a1000-0xffffb3c1c07a3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c07a4000-0xffffb3c1c07a9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c07a9000-0xffffb3c1c07ab000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c07ac000-0xffffb3c1c07b1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c07b1000-0xffffb3c1c07b3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c07b3000-0xffffb3c1c07b5000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c07b8000-0xffffb3c1c07bd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c07c0000-0xffffb3c1c07c5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c07d1000-0xffffb3c1c07d3000 8192 bpf_prog_alloc_no_stats+0x33/0xe0 pages=1 vmalloc N0=1 +0xffffb3c1c07d4000-0xffffb3c1c07d9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c07dc000-0xffffb3c1c07e1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c07e4000-0xffffb3c1c07e9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c07e9000-0xffffb3c1c07ed000 16384 pcpu_mem_zalloc+0x30/0x50 pages=3 vmalloc N0=3 +0xffffb3c1c07f8000-0xffffb3c1c07fd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0804000-0xffffb3c1c0809000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c080c000-0xffffb3c1c0811000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0818000-0xffffb3c1c081d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0820000-0xffffb3c1c0841000 135168 pci_ioremap_bar+0x48/0x50 phys=0x00000000fd5c0000 ioremap +0xffffb3c1c0844000-0xffffb3c1c0849000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c084c000-0xffffb3c1c0851000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0858000-0xffffb3c1c085d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0860000-0xffffb3c1c0865000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0868000-0xffffb3c1c086d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0870000-0xffffb3c1c0875000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0878000-0xffffb3c1c087d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0880000-0xffffb3c1c08c1000 266240 memremap+0x81/0x110 phys=0x00000000fe000000 ioremap +0xffffb3c1c08c4000-0xffffb3c1c08c9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c08cc000-0xffffb3c1c08d1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c08d4000-0xffffb3c1c08d9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c08dc000-0xffffb3c1c08e1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c08e4000-0xffffb3c1c08e9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c08ec000-0xffffb3c1c08f1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c08f4000-0xffffb3c1c08f9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c08fc000-0xffffb3c1c0901000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0904000-0xffffb3c1c0909000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c090c000-0xffffb3c1c0911000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0914000-0xffffb3c1c0919000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c091c000-0xffffb3c1c0921000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0924000-0xffffb3c1c0929000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c092c000-0xffffb3c1c0931000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0934000-0xffffb3c1c0939000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c093a000-0xffffb3c1c0a3b000 1052672 vmw_fifo_init+0x38/0x2d0 [vmwgfx] pages=256 vmalloc N0=256 +0xffffb3c1c0a3c000-0xffffb3c1c0a41000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a44000-0xffffb3c1c0a49000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a4c000-0xffffb3c1c0a51000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a54000-0xffffb3c1c0a59000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a5c000-0xffffb3c1c0a61000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a64000-0xffffb3c1c0a69000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a6c000-0xffffb3c1c0a71000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a74000-0xffffb3c1c0a79000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a7c000-0xffffb3c1c0a81000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a84000-0xffffb3c1c0a89000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a8c000-0xffffb3c1c0a91000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a94000-0xffffb3c1c0a99000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0a9c000-0xffffb3c1c0aa1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0aa4000-0xffffb3c1c0aa9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0aac000-0xffffb3c1c0ab1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0ab4000-0xffffb3c1c0ab9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0abc000-0xffffb3c1c0ac1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0ac4000-0xffffb3c1c0ac9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0acc000-0xffffb3c1c0ad1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0ad4000-0xffffb3c1c0ad9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0adc000-0xffffb3c1c0ae1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0ae4000-0xffffb3c1c0ae9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0aec000-0xffffb3c1c0af1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0af4000-0xffffb3c1c0af9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0afc000-0xffffb3c1c0b01000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0b04000-0xffffb3c1c0b09000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0b0c000-0xffffb3c1c0b11000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0b14000-0xffffb3c1c0b19000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0b19000-0xffffb3c1c0cef000 1925120 ttm_bo_kmap_ttm+0xce/0x150 [ttm] +0xffffb3c1c0cf0000-0xffffb3c1c0cf5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0cf8000-0xffffb3c1c0cfd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d00000-0xffffb3c1c0d05000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d08000-0xffffb3c1c0d0d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d10000-0xffffb3c1c0d15000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d18000-0xffffb3c1c0d1d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d20000-0xffffb3c1c0d25000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d28000-0xffffb3c1c0d2d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d30000-0xffffb3c1c0d35000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d38000-0xffffb3c1c0d3d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d48000-0xffffb3c1c0d4d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0d50000-0xffffb3c1c0d55000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0da8000-0xffffb3c1c0dad000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0db8000-0xffffb3c1c0dbd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0dc8000-0xffffb3c1c0dcd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e14000-0xffffb3c1c0e19000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e1c000-0xffffb3c1c0e21000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e24000-0xffffb3c1c0e29000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e2c000-0xffffb3c1c0e31000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e34000-0xffffb3c1c0e39000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e3c000-0xffffb3c1c0e41000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e44000-0xffffb3c1c0e49000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e49000-0xffffb3c1c0e4d000 16384 n_tty_open+0x19/0xa0 pages=3 vmalloc N0=3 +0xffffb3c1c0e54000-0xffffb3c1c0e59000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e5c000-0xffffb3c1c0e61000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e64000-0xffffb3c1c0e69000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e6c000-0xffffb3c1c0e71000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e74000-0xffffb3c1c0e79000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0e79000-0xffffb3c1c0f6e000 1003520 __do_sys_swapon+0x18f/0xab0 pages=244 vmalloc N0=244 +0xffffb3c1c0f70000-0xffffb3c1c0f75000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0f80000-0xffffb3c1c0f85000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0f88000-0xffffb3c1c0f8d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0f90000-0xffffb3c1c0f95000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0f98000-0xffffb3c1c0f9d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fa0000-0xffffb3c1c0fa5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fa8000-0xffffb3c1c0fad000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fb0000-0xffffb3c1c0fb5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fc0000-0xffffb3c1c0fc5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fc8000-0xffffb3c1c0fcd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fd0000-0xffffb3c1c0fd5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fd8000-0xffffb3c1c0fdd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fe0000-0xffffb3c1c0fe5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0fe8000-0xffffb3c1c0fed000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0ff0000-0xffffb3c1c0ff5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c0ff8000-0xffffb3c1c0ffd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1000000-0xffffb3c1c1005000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1014000-0xffffb3c1c1019000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c101c000-0xffffb3c1c1021000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c102c000-0xffffb3c1c1031000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1034000-0xffffb3c1c1039000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1044000-0xffffb3c1c1049000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c104c000-0xffffb3c1c1051000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1054000-0xffffb3c1c1059000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1060000-0xffffb3c1c1065000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1065000-0xffffb3c1c1086000 135168 xz_dec_lzma2_create+0x5e/0x80 pages=32 vmalloc N0=32 +0xffffb3c1c1086000-0xffffb3c1c10a7000 135168 xz_dec_lzma2_create+0x5e/0x80 pages=32 vmalloc N0=32 +0xffffb3c1c10a7000-0xffffb3c1c10c8000 135168 xz_dec_lzma2_create+0x5e/0x80 pages=32 vmalloc N0=32 +0xffffb3c1c10c8000-0xffffb3c1c10e9000 135168 xz_dec_lzma2_create+0x5e/0x80 pages=32 vmalloc N0=32 +0xffffb3c1c10e9000-0xffffb3c1c110a000 135168 xz_dec_lzma2_create+0x5e/0x80 pages=32 vmalloc N0=32 +0xffffb3c1c1114000-0xffffb3c1c1119000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1120000-0xffffb3c1c1125000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1128000-0xffffb3c1c112d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1130000-0xffffb3c1c1135000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1160000-0xffffb3c1c1165000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1165000-0xffffb3c1c1186000 135168 xz_dec_lzma2_create+0x5e/0x80 pages=32 vmalloc N0=32 +0xffffb3c1c1186000-0xffffb3c1c11a7000 135168 xz_dec_lzma2_create+0x5e/0x80 pages=32 vmalloc N0=32 +0xffffb3c1c11ac000-0xffffb3c1c11b1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c11b4000-0xffffb3c1c11b9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c11bc000-0xffffb3c1c11c1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c11c4000-0xffffb3c1c11c9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c11d0000-0xffffb3c1c11d9000 36864 memremap+0x81/0x110 phys=0x00000000000e0000 ioremap +0xffffb3c1c11dc000-0xffffb3c1c11e1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c11e4000-0xffffb3c1c11e9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c11ec000-0xffffb3c1c11f1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c11f4000-0xffffb3c1c11f9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c11fc000-0xffffb3c1c1201000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1204000-0xffffb3c1c1209000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c121c000-0xffffb3c1c1221000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c122c000-0xffffb3c1c1231000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1234000-0xffffb3c1c1239000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1239000-0xffffb3c1c125a000 135168 xz_dec_lzma2_create+0x5e/0x80 pages=32 vmalloc N0=32 +0xffffb3c1c125c000-0xffffb3c1c1261000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1264000-0xffffb3c1c1269000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c12c4000-0xffffb3c1c12c9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c12d9000-0xffffb3c1c12dd000 16384 pcpu_mem_zalloc+0x30/0x50 pages=3 vmalloc N0=3 +0xffffb3c1c12e0000-0xffffb3c1c12e5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c12f0000-0xffffb3c1c12f5000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c12f8000-0xffffb3c1c12fd000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1300000-0xffffb3c1c1305000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c130c000-0xffffb3c1c1311000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1318000-0xffffb3c1c131d000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1330000-0xffffb3c1c1335000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c133c000-0xffffb3c1c1341000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c137d000-0xffffb3c1c1381000 16384 n_tty_open+0x19/0xa0 pages=3 vmalloc N0=3 +0xffffb3c1c1404000-0xffffb3c1c1409000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c14f4000-0xffffb3c1c14f9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c151c000-0xffffb3c1c1521000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c15a9000-0xffffb3c1c15ac000 12288 pcpu_mem_zalloc+0x30/0x50 pages=2 vmalloc N0=2 +0xffffb3c1c15ac000-0xffffb3c1c15b0000 16384 pcpu_mem_zalloc+0x30/0x50 pages=3 vmalloc N0=3 +0xffffb3c1c15b0000-0xffffb3c1c15c1000 69632 pcpu_mem_zalloc+0x30/0x50 pages=16 vmalloc N0=16 +0xffffb3c1c15cc000-0xffffb3c1c15d1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c15d1000-0xffffb3c1c19cb000 4169728 vmw_fb_init+0x1c3/0x3f0 [vmwgfx] pages=1017 vmalloc vpages N0=1017 +0xffffb3c1c19d4000-0xffffb3c1c19d9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1a0c000-0xffffb3c1c1a11000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1a24000-0xffffb3c1c1a29000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1a2c000-0xffffb3c1c1a31000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1a44000-0xffffb3c1c1a49000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1ce4000-0xffffb3c1c1ce9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1fd4000-0xffffb3c1c1fd9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c1ff4000-0xffffb3c1c1ff9000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c2014000-0xffffb3c1c2019000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c2104000-0xffffb3c1c2109000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c21ac000-0xffffb3c1c21b1000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c2e7c000-0xffffb3c1c2e81000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c3164000-0xffffb3c1c3169000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c3d34000-0xffffb3c1c3d39000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c467c000-0xffffb3c1c4681000 20480 dup_task_struct+0x4a/0x1b0 pages=4 vmalloc N0=4 +0xffffb3c1c8000000-0xffffb3c1d0001000 134221824 pci_mmcfg_arch_map+0x2f/0x60 phys=0x00000000f0000000 ioremap +0xffffd3c1b9e00000-0xffffd3c1bbe00000 33554432 pcpu_get_vm_areas+0x0/0x10c0 vmalloc +0xffffd3c1bbe00000-0xffffd3c1bde00000 33554432 pcpu_get_vm_areas+0x0/0x10c0 vmalloc +0xffffd3c1bde00000-0xffffd3c1bfe00000 33554432 pcpu_get_vm_areas+0x0/0x10c0 vmalloc +0xffffffffc0218000-0xffffffffc021a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc021a000-0xffffffffc021f000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc021f000-0xffffffffc0221000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0222000-0xffffffffc022a000 32768 move_module+0x23/0x180 pages=7 vmalloc N0=7 +0xffffffffc022e000-0xffffffffc02b9000 569344 move_module+0x23/0x180 pages=138 vmalloc N0=138 +0xffffffffc02b9000-0xffffffffc02be000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc02be000-0xffffffffc02c3000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc02c3000-0xffffffffc02c8000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc02c8000-0xffffffffc02ca000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc02ca000-0xffffffffc02d1000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc02d1000-0xffffffffc02d3000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc02d5000-0xffffffffc02da000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc02da000-0xffffffffc02df000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc02df000-0xffffffffc02e6000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc02e7000-0xffffffffc02f0000 36864 move_module+0x23/0x180 pages=8 vmalloc N0=8 +0xffffffffc02f0000-0xffffffffc02f5000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc02f6000-0xffffffffc030f000 102400 move_module+0x23/0x180 pages=24 vmalloc N0=24 +0xffffffffc030f000-0xffffffffc0315000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0317000-0xffffffffc0327000 65536 move_module+0x23/0x180 pages=15 vmalloc N0=15 +0xffffffffc0327000-0xffffffffc032c000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc032e000-0xffffffffc0338000 40960 move_module+0x23/0x180 pages=9 vmalloc N0=9 +0xffffffffc0338000-0xffffffffc033d000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc033d000-0xffffffffc0348000 45056 move_module+0x23/0x180 pages=10 vmalloc N0=10 +0xffffffffc0348000-0xffffffffc034e000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0350000-0xffffffffc035e000 57344 move_module+0x23/0x180 pages=13 vmalloc N0=13 +0xffffffffc035e000-0xffffffffc0363000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc0364000-0xffffffffc038a000 155648 move_module+0x23/0x180 pages=37 vmalloc N0=37 +0xffffffffc038a000-0xffffffffc0390000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0390000-0xffffffffc0392000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0392000-0xffffffffc0394000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0395000-0xffffffffc03a1000 49152 move_module+0x23/0x180 pages=11 vmalloc N0=11 +0xffffffffc03a1000-0xffffffffc03a3000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc03a3000-0xffffffffc03a5000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc03a6000-0xffffffffc03de000 229376 move_module+0x23/0x180 pages=55 vmalloc N0=55 +0xffffffffc03de000-0xffffffffc03e3000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc03e3000-0xffffffffc03ea000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc03ea000-0xffffffffc03f7000 53248 move_module+0x23/0x180 pages=12 vmalloc N0=12 +0xffffffffc03f9000-0xffffffffc0413000 106496 move_module+0x23/0x180 pages=25 vmalloc N0=25 +0xffffffffc0413000-0xffffffffc0463000 327680 move_module+0x23/0x180 pages=79 vmalloc N0=79 +0xffffffffc0463000-0xffffffffc0465000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0465000-0xffffffffc0467000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0468000-0xffffffffc046d000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc046d000-0xffffffffc0474000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc0475000-0xffffffffc049e000 167936 move_module+0x23/0x180 pages=40 vmalloc N0=40 +0xffffffffc049e000-0xffffffffc04fa000 376832 move_module+0x23/0x180 pages=91 vmalloc N0=91 +0xffffffffc04fa000-0xffffffffc051c000 139264 move_module+0x23/0x180 pages=33 vmalloc N0=33 +0xffffffffc051c000-0xffffffffc052b000 61440 move_module+0x23/0x180 pages=14 vmalloc N0=14 +0xffffffffc052b000-0xffffffffc0548000 118784 move_module+0x23/0x180 pages=28 vmalloc N0=28 +0xffffffffc0548000-0xffffffffc054a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc054c000-0xffffffffc0552000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0552000-0xffffffffc0558000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0558000-0xffffffffc055f000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc055f000-0xffffffffc0561000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0562000-0xffffffffc0568000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0568000-0xffffffffc056f000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc056f000-0xffffffffc0596000 159744 move_module+0x23/0x180 pages=38 vmalloc N0=38 +0xffffffffc0596000-0xffffffffc0598000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0598000-0xffffffffc059a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc059a000-0xffffffffc059c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc059c000-0xffffffffc059e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc05a0000-0xffffffffc05b0000 65536 move_module+0x23/0x180 pages=15 vmalloc N0=15 +0xffffffffc05b0000-0xffffffffc06f4000 1327104 move_module+0x23/0x180 pages=323 vmalloc N0=323 +0xffffffffc06f4000-0xffffffffc0700000 49152 move_module+0x23/0x180 pages=11 vmalloc N0=11 +0xffffffffc0700000-0xffffffffc070d000 53248 move_module+0x23/0x180 pages=12 vmalloc N0=12 +0xffffffffc070d000-0xffffffffc070f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc070f000-0xffffffffc0711000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0711000-0xffffffffc0713000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0714000-0xffffffffc071d000 36864 move_module+0x23/0x180 pages=8 vmalloc N0=8 +0xffffffffc071d000-0xffffffffc071f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc071f000-0xffffffffc0721000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0721000-0xffffffffc0723000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0723000-0xffffffffc0725000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0725000-0xffffffffc0728000 12288 bpf_jit_alloc_exec+0xe/0x10 pages=2 vmalloc N0=2 +0xffffffffc0728000-0xffffffffc072a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc072a000-0xffffffffc072c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc072c000-0xffffffffc0732000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0732000-0xffffffffc0734000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0736000-0xffffffffc0738000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0738000-0xffffffffc073a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc073a000-0xffffffffc073c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc073c000-0xffffffffc073e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc073e000-0xffffffffc0740000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0740000-0xffffffffc0742000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0742000-0xffffffffc0744000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0744000-0xffffffffc0746000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0746000-0xffffffffc0748000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0748000-0xffffffffc074a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc074a000-0xffffffffc074c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc074c000-0xffffffffc074e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc074e000-0xffffffffc0750000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0750000-0xffffffffc0752000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0752000-0xffffffffc0754000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0754000-0xffffffffc0756000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0756000-0xffffffffc0758000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0758000-0xffffffffc075a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc075a000-0xffffffffc075c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc075c000-0xffffffffc075e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc075e000-0xffffffffc0763000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc0763000-0xffffffffc0777000 81920 move_module+0x23/0x180 pages=19 vmalloc N0=19 +0xffffffffc0777000-0xffffffffc077c000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc077c000-0xffffffffc077e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0780000-0xffffffffc0798000 98304 move_module+0x23/0x180 pages=23 vmalloc N0=23 +0xffffffffc0798000-0xffffffffc079e000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc079e000-0xffffffffc07a0000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc07a0000-0xffffffffc07a2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc07a3000-0xffffffffc07b2000 61440 move_module+0x23/0x180 pages=14 vmalloc N0=14 +0xffffffffc07b2000-0xffffffffc07b7000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc07b7000-0xffffffffc07b9000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc07ba000-0xffffffffc07c3000 36864 move_module+0x23/0x180 pages=8 vmalloc N0=8 +0xffffffffc07c3000-0xffffffffc07cb000 32768 move_module+0x23/0x180 pages=7 vmalloc N0=7 +0xffffffffc07cb000-0xffffffffc07cd000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc07cf000-0xffffffffc07d4000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc07d6000-0xffffffffc07e1000 45056 move_module+0x23/0x180 pages=10 vmalloc N0=10 +0xffffffffc07e1000-0xffffffffc081e000 249856 move_module+0x23/0x180 pages=60 vmalloc N0=60 +0xffffffffc081e000-0xffffffffc0823000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc0823000-0xffffffffc082b000 32768 move_module+0x23/0x180 pages=7 vmalloc N0=7 +0xffffffffc082b000-0xffffffffc0832000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc0833000-0xffffffffc0851000 122880 move_module+0x23/0x180 pages=29 vmalloc N0=29 +0xffffffffc0851000-0xffffffffc085b000 40960 move_module+0x23/0x180 pages=9 vmalloc N0=9 +0xffffffffc085b000-0xffffffffc085d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc085d000-0xffffffffc086c000 61440 move_module+0x23/0x180 pages=14 vmalloc N0=14 +0xffffffffc086c000-0xffffffffc0900000 606208 move_module+0x23/0x180 pages=147 vmalloc N0=147 +0xffffffffc0900000-0xffffffffc0902000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0902000-0xffffffffc0904000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0904000-0xffffffffc090b000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc090b000-0xffffffffc0911000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0912000-0xffffffffc0921000 61440 move_module+0x23/0x180 pages=14 vmalloc N0=14 +0xffffffffc0921000-0xffffffffc0927000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0929000-0xffffffffc092f000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc092f000-0xffffffffc0937000 32768 move_module+0x23/0x180 pages=7 vmalloc N0=7 +0xffffffffc0937000-0xffffffffc093c000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc093c000-0xffffffffc0941000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc0941000-0xffffffffc0947000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc0947000-0xffffffffc094d000 24576 move_module+0x23/0x180 pages=5 vmalloc N0=5 +0xffffffffc094e000-0xffffffffc0967000 102400 move_module+0x23/0x180 pages=24 vmalloc N0=24 +0xffffffffc0967000-0xffffffffc096c000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc096c000-0xffffffffc096e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0970000-0xffffffffc0999000 167936 move_module+0x23/0x180 pages=40 vmalloc N0=40 +0xffffffffc0999000-0xffffffffc09a2000 36864 move_module+0x23/0x180 pages=8 vmalloc N0=8 +0xffffffffc09a2000-0xffffffffc09a7000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc09a7000-0xffffffffc09ae000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc09ae000-0xffffffffc09b6000 32768 move_module+0x23/0x180 pages=7 vmalloc N0=7 +0xffffffffc09b6000-0xffffffffc09c0000 40960 move_module+0x23/0x180 pages=9 vmalloc N0=9 +0xffffffffc09c0000-0xffffffffc09c2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09c2000-0xffffffffc09c4000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09c4000-0xffffffffc09c6000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09c6000-0xffffffffc09c8000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09c8000-0xffffffffc09ca000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09ca000-0xffffffffc09cc000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09cc000-0xffffffffc09ce000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09ce000-0xffffffffc09d0000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09d0000-0xffffffffc09d2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09d2000-0xffffffffc09d4000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09d4000-0xffffffffc09d6000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09d6000-0xffffffffc09d8000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09d8000-0xffffffffc09da000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09da000-0xffffffffc09dc000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09dc000-0xffffffffc09de000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09de000-0xffffffffc09e0000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09e0000-0xffffffffc09e2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09e2000-0xffffffffc09e4000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09e4000-0xffffffffc09e6000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09e6000-0xffffffffc09e8000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09e8000-0xffffffffc09ea000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09ea000-0xffffffffc09ec000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09ec000-0xffffffffc09ee000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09ee000-0xffffffffc09f0000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09f0000-0xffffffffc09f3000 12288 bpf_jit_alloc_exec+0xe/0x10 pages=2 vmalloc N0=2 +0xffffffffc09f3000-0xffffffffc09f5000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09f5000-0xffffffffc09f7000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc09f7000-0xffffffffc0a03000 49152 move_module+0x23/0x180 pages=11 vmalloc N0=11 +0xffffffffc0a03000-0xffffffffc0a0d000 40960 move_module+0x23/0x180 pages=9 vmalloc N0=9 +0xffffffffc0a0d000-0xffffffffc0a0f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a0f000-0xffffffffc0a11000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a11000-0xffffffffc0a13000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a14000-0xffffffffc0a19000 20480 move_module+0x23/0x180 pages=4 vmalloc N0=4 +0xffffffffc0a1b000-0xffffffffc0a24000 36864 move_module+0x23/0x180 pages=8 vmalloc N0=8 +0xffffffffc0a24000-0xffffffffc0a26000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a26000-0xffffffffc0a28000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a28000-0xffffffffc0a2a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a2a000-0xffffffffc0a2c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a2c000-0xffffffffc0a2e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a2e000-0xffffffffc0a30000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a30000-0xffffffffc0a32000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a32000-0xffffffffc0a34000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a34000-0xffffffffc0a36000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a36000-0xffffffffc0a38000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a38000-0xffffffffc0a3a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a3a000-0xffffffffc0a3c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a3c000-0xffffffffc0a3e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a3e000-0xffffffffc0a40000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a40000-0xffffffffc0a42000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a42000-0xffffffffc0a44000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a44000-0xffffffffc0a46000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a46000-0xffffffffc0a48000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a48000-0xffffffffc0a4a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a4a000-0xffffffffc0a4c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a4c000-0xffffffffc0a4e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a4e000-0xffffffffc0a50000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a50000-0xffffffffc0a52000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a52000-0xffffffffc0a54000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a54000-0xffffffffc0a57000 12288 bpf_jit_alloc_exec+0xe/0x10 pages=2 vmalloc N0=2 +0xffffffffc0a57000-0xffffffffc0a59000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a59000-0xffffffffc0a5b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a5b000-0xffffffffc0a5d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a5d000-0xffffffffc0a5f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a5f000-0xffffffffc0a61000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a61000-0xffffffffc0a63000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a63000-0xffffffffc0a65000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a65000-0xffffffffc0a67000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a67000-0xffffffffc0a69000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a69000-0xffffffffc0a6b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a6b000-0xffffffffc0a6d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a6d000-0xffffffffc0a6f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a6f000-0xffffffffc0a71000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a71000-0xffffffffc0a73000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a73000-0xffffffffc0a75000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a75000-0xffffffffc0a77000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a77000-0xffffffffc0a79000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a79000-0xffffffffc0a7b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a7b000-0xffffffffc0a7d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a7d000-0xffffffffc0a7f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a7f000-0xffffffffc0a81000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a81000-0xffffffffc0a83000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a83000-0xffffffffc0a85000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a85000-0xffffffffc0a87000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a87000-0xffffffffc0a89000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a89000-0xffffffffc0a8b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a8b000-0xffffffffc0a8d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a8d000-0xffffffffc0a8f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a8f000-0xffffffffc0a91000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a91000-0xffffffffc0a93000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a93000-0xffffffffc0a95000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a95000-0xffffffffc0a97000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a97000-0xffffffffc0a99000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a99000-0xffffffffc0a9b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a9b000-0xffffffffc0a9d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a9d000-0xffffffffc0a9f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0a9f000-0xffffffffc0aa1000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aa1000-0xffffffffc0aa4000 12288 bpf_jit_alloc_exec+0xe/0x10 pages=2 vmalloc N0=2 +0xffffffffc0aa4000-0xffffffffc0aa6000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aa6000-0xffffffffc0aa8000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aa8000-0xffffffffc0aaa000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aaa000-0xffffffffc0aac000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aac000-0xffffffffc0aae000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aae000-0xffffffffc0ab0000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ab0000-0xffffffffc0ab2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ab2000-0xffffffffc0ab4000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ab4000-0xffffffffc0abb000 28672 move_module+0x23/0x180 pages=6 vmalloc N0=6 +0xffffffffc0ac0000-0xffffffffc0ac2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ac2000-0xffffffffc0ac4000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ac4000-0xffffffffc0ac6000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ac6000-0xffffffffc0ac8000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ac8000-0xffffffffc0aca000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aca000-0xffffffffc0acc000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0acc000-0xffffffffc0ace000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ace000-0xffffffffc0ad0000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ad0000-0xffffffffc0ad2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ad2000-0xffffffffc0ad4000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ad4000-0xffffffffc0ad6000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ad6000-0xffffffffc0ad8000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ad8000-0xffffffffc0ada000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ada000-0xffffffffc0adc000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0adc000-0xffffffffc0ade000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ade000-0xffffffffc0ae0000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ae0000-0xffffffffc0ae2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ae2000-0xffffffffc0ae4000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ae4000-0xffffffffc0ae6000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ae6000-0xffffffffc0ae8000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0ae8000-0xffffffffc0aea000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aea000-0xffffffffc0aec000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aec000-0xffffffffc0aee000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0aee000-0xffffffffc0af0000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0af0000-0xffffffffc0af2000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0af2000-0xffffffffc0af4000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0af4000-0xffffffffc0af6000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0af6000-0xffffffffc0af8000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0af8000-0xffffffffc0afa000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0afa000-0xffffffffc0afc000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0afc000-0xffffffffc0aff000 12288 bpf_jit_alloc_exec+0xe/0x10 pages=2 vmalloc N0=2 +0xffffffffc0aff000-0xffffffffc0b01000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b01000-0xffffffffc0b03000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b03000-0xffffffffc0b05000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b05000-0xffffffffc0b07000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b07000-0xffffffffc0b09000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b09000-0xffffffffc0b0b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b21000-0xffffffffc0b23000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b23000-0xffffffffc0b25000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b25000-0xffffffffc0b27000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b27000-0xffffffffc0b29000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b29000-0xffffffffc0b2b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b2b000-0xffffffffc0b2d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b2d000-0xffffffffc0b2f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b2f000-0xffffffffc0b31000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b31000-0xffffffffc0b33000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b33000-0xffffffffc0b35000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b35000-0xffffffffc0b37000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b37000-0xffffffffc0b39000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b39000-0xffffffffc0b3b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b3b000-0xffffffffc0b3d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b3e000-0xffffffffc0b40000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b40000-0xffffffffc0b42000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b42000-0xffffffffc0b44000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b44000-0xffffffffc0b46000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b46000-0xffffffffc0b48000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b48000-0xffffffffc0b4a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b4a000-0xffffffffc0b4c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b4c000-0xffffffffc0b4e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b4e000-0xffffffffc0b50000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b50000-0xffffffffc0b52000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b52000-0xffffffffc0b54000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b54000-0xffffffffc0b56000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b56000-0xffffffffc0b58000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b58000-0xffffffffc0b5a000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b5a000-0xffffffffc0b5c000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b5c000-0xffffffffc0b5e000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b5e000-0xffffffffc0b60000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b60000-0xffffffffc0b62000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b62000-0xffffffffc0b64000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b64000-0xffffffffc0b66000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b66000-0xffffffffc0b69000 12288 bpf_jit_alloc_exec+0xe/0x10 pages=2 vmalloc N0=2 +0xffffffffc0b69000-0xffffffffc0b6b000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b6b000-0xffffffffc0b6d000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffffffc0b6d000-0xffffffffc0b6f000 8192 bpf_jit_alloc_exec+0xe/0x10 pages=1 vmalloc N0=1 +0xffffb3c1c21a4000-0xffffb3c1c21a9000 20480 unpurged vm_area +0xffffb3c1c219c000-0xffffb3c1c21a1000 20480 unpurged vm_area +0xffffb3c1c2194000-0xffffb3c1c2199000 20480 unpurged vm_area +0xffffb3c1c218c000-0xffffb3c1c2191000 20480 unpurged vm_area +0xffffb3c1c2184000-0xffffb3c1c2189000 20480 unpurged vm_area +0xffffb3c1c217c000-0xffffb3c1c2181000 20480 unpurged vm_area +0xffffb3c1c2174000-0xffffb3c1c2179000 20480 unpurged vm_area +0xffffb3c1c216c000-0xffffb3c1c2171000 20480 unpurged vm_area +0xffffb3c1c2164000-0xffffb3c1c2169000 20480 unpurged vm_area +0xffffb3c1c215c000-0xffffb3c1c2161000 20480 unpurged vm_area +0xffffb3c1c2154000-0xffffb3c1c2159000 20480 unpurged vm_area +0xffffb3c1c214c000-0xffffb3c1c2151000 20480 unpurged vm_area +0xffffb3c1c2144000-0xffffb3c1c2149000 20480 unpurged vm_area +0xffffb3c1c213c000-0xffffb3c1c2141000 20480 unpurged vm_area +0xffffb3c1c2134000-0xffffb3c1c2139000 20480 unpurged vm_area +0xffffb3c1c212c000-0xffffb3c1c2131000 20480 unpurged vm_area +0xffffb3c1c2124000-0xffffb3c1c2129000 20480 unpurged vm_area +0xffffb3c1c211c000-0xffffb3c1c2121000 20480 unpurged vm_area +0xffffb3c1c2114000-0xffffb3c1c2119000 20480 unpurged vm_area +0xffffb3c1c210c000-0xffffb3c1c2111000 20480 unpurged vm_area +0xffffb3c1c20f4000-0xffffb3c1c20f9000 20480 unpurged vm_area +0xffffb3c1c20fc000-0xffffb3c1c2101000 20480 unpurged vm_area +0xffffb3c1c208c000-0xffffb3c1c2091000 20480 unpurged vm_area +0xffffb3c1c20ec000-0xffffb3c1c20f1000 20480 unpurged vm_area +0xffffb3c1c20e4000-0xffffb3c1c20e9000 20480 unpurged vm_area +0xffffb3c1c20dc000-0xffffb3c1c20e1000 20480 unpurged vm_area +0xffffb3c1c20d4000-0xffffb3c1c20d9000 20480 unpurged vm_area +0xffffb3c1c20cc000-0xffffb3c1c20d1000 20480 unpurged vm_area +0xffffb3c1c20c4000-0xffffb3c1c20c9000 20480 unpurged vm_area +0xffffb3c1c20bc000-0xffffb3c1c20c1000 20480 unpurged vm_area +0xffffb3c1c20b4000-0xffffb3c1c20b9000 20480 unpurged vm_area +0xffffb3c1c20ac000-0xffffb3c1c20b1000 20480 unpurged vm_area +0xffffb3c1c20a4000-0xffffb3c1c20a9000 20480 unpurged vm_area +0xffffb3c1c209c000-0xffffb3c1c20a1000 20480 unpurged vm_area +0xffffb3c1c2094000-0xffffb3c1c2099000 20480 unpurged vm_area +0xffffb3c1c2084000-0xffffb3c1c2089000 20480 unpurged vm_area +0xffffb3c1c207c000-0xffffb3c1c2081000 20480 unpurged vm_area +0xffffb3c1c2074000-0xffffb3c1c2079000 20480 unpurged vm_area +0xffffb3c1c206c000-0xffffb3c1c2071000 20480 unpurged vm_area +0xffffb3c1c152c000-0xffffb3c1c1531000 20480 unpurged vm_area +0xffffb3c1c2064000-0xffffb3c1c2069000 20480 unpurged vm_area +0xffffb3c1c205c000-0xffffb3c1c2061000 20480 unpurged vm_area +0xffffb3c1c2054000-0xffffb3c1c2059000 20480 unpurged vm_area +0xffffb3c1c204c000-0xffffb3c1c2051000 20480 unpurged vm_area +0xffffb3c1c2044000-0xffffb3c1c2049000 20480 unpurged vm_area +0xffffb3c1c203c000-0xffffb3c1c2041000 20480 unpurged vm_area +0xffffb3c1c2034000-0xffffb3c1c2039000 20480 unpurged vm_area +0xffffb3c1c202c000-0xffffb3c1c2031000 20480 unpurged vm_area +0xffffb3c1c2024000-0xffffb3c1c2029000 20480 unpurged vm_area +0xffffb3c1c201c000-0xffffb3c1c2021000 20480 unpurged vm_area +0xffffb3c1c3e4c000-0xffffb3c1c3e51000 20480 unpurged vm_area +0xffffb3c1c200c000-0xffffb3c1c2011000 20480 unpurged vm_area +0xffffb3c1c2004000-0xffffb3c1c2009000 20480 unpurged vm_area +0xffffb3c1c1ffc000-0xffffb3c1c2001000 20480 unpurged vm_area +0xffffb3c1c1fe4000-0xffffb3c1c1fe9000 20480 unpurged vm_area +0xffffb3c1c1fec000-0xffffb3c1c1ff1000 20480 unpurged vm_area +0xffffb3c1c1e9c000-0xffffb3c1c1ea1000 20480 unpurged vm_area +0xffffb3c1c1fdc000-0xffffb3c1c1fe1000 20480 unpurged vm_area +0xffffb3c1c1f84000-0xffffb3c1c1f89000 20480 unpurged vm_area +0xffffb3c1c1fcc000-0xffffb3c1c1fd1000 20480 unpurged vm_area +0xffffb3c1c1fc4000-0xffffb3c1c1fc9000 20480 unpurged vm_area +0xffffb3c1c1fbc000-0xffffb3c1c1fc1000 20480 unpurged vm_area +0xffffb3c1c1fb4000-0xffffb3c1c1fb9000 20480 unpurged vm_area +0xffffb3c1c1fac000-0xffffb3c1c1fb1000 20480 unpurged vm_area +0xffffb3c1c1fa4000-0xffffb3c1c1fa9000 20480 unpurged vm_area +0xffffb3c1c1f9c000-0xffffb3c1c1fa1000 20480 unpurged vm_area +0xffffb3c1c1f94000-0xffffb3c1c1f99000 20480 unpurged vm_area +0xffffb3c1c1f8c000-0xffffb3c1c1f91000 20480 unpurged vm_area +0xffffb3c1c1e6c000-0xffffb3c1c1e71000 20480 unpurged vm_area +0xffffb3c1c1f7c000-0xffffb3c1c1f81000 20480 unpurged vm_area +0xffffb3c1c1f74000-0xffffb3c1c1f79000 20480 unpurged vm_area +0xffffb3c1c1f6c000-0xffffb3c1c1f71000 20480 unpurged vm_area +0xffffb3c1c1f64000-0xffffb3c1c1f69000 20480 unpurged vm_area +0xffffb3c1c1f5c000-0xffffb3c1c1f61000 20480 unpurged vm_area +0xffffb3c1c1f54000-0xffffb3c1c1f59000 20480 unpurged vm_area +0xffffb3c1c1f4c000-0xffffb3c1c1f51000 20480 unpurged vm_area +0xffffb3c1c1f44000-0xffffb3c1c1f49000 20480 unpurged vm_area +0xffffb3c1c1f3c000-0xffffb3c1c1f41000 20480 unpurged vm_area +0xffffb3c1c1f34000-0xffffb3c1c1f39000 20480 unpurged vm_area +0xffffb3c1c1f2c000-0xffffb3c1c1f31000 20480 unpurged vm_area +0xffffb3c1c1f24000-0xffffb3c1c1f29000 20480 unpurged vm_area +0xffffb3c1c1f1c000-0xffffb3c1c1f21000 20480 unpurged vm_area +0xffffb3c1c1f14000-0xffffb3c1c1f19000 20480 unpurged vm_area +0xffffb3c1c1f0c000-0xffffb3c1c1f11000 20480 unpurged vm_area +0xffffb3c1c1f04000-0xffffb3c1c1f09000 20480 unpurged vm_area +0xffffb3c1c1efc000-0xffffb3c1c1f01000 20480 unpurged vm_area +0xffffb3c1c1ef4000-0xffffb3c1c1ef9000 20480 unpurged vm_area +0xffffb3c1c1eec000-0xffffb3c1c1ef1000 20480 unpurged vm_area +0xffffb3c1c1ee4000-0xffffb3c1c1ee9000 20480 unpurged vm_area +0xffffb3c1c1edc000-0xffffb3c1c1ee1000 20480 unpurged vm_area +0xffffb3c1c1ed4000-0xffffb3c1c1ed9000 20480 unpurged vm_area +0xffffb3c1c1ecc000-0xffffb3c1c1ed1000 20480 unpurged vm_area +0xffffb3c1c1ec4000-0xffffb3c1c1ec9000 20480 unpurged vm_area +0xffffb3c1c1ebc000-0xffffb3c1c1ec1000 20480 unpurged vm_area +0xffffb3c1c1eb4000-0xffffb3c1c1eb9000 20480 unpurged vm_area +0xffffb3c1c1eac000-0xffffb3c1c1eb1000 20480 unpurged vm_area +0xffffb3c1c1ea4000-0xffffb3c1c1ea9000 20480 unpurged vm_area +0xffffb3c1c1e3c000-0xffffb3c1c1e41000 20480 unpurged vm_area +0xffffb3c1c1e94000-0xffffb3c1c1e99000 20480 unpurged vm_area +0xffffb3c1c1e8c000-0xffffb3c1c1e91000 20480 unpurged vm_area +0xffffb3c1c1e84000-0xffffb3c1c1e89000 20480 unpurged vm_area +0xffffb3c1c1e7c000-0xffffb3c1c1e81000 20480 unpurged vm_area +0xffffb3c1c1e74000-0xffffb3c1c1e79000 20480 unpurged vm_area +0xffffb3c1c1d44000-0xffffb3c1c1d49000 20480 unpurged vm_area +0xffffb3c1c1e64000-0xffffb3c1c1e69000 20480 unpurged vm_area +0xffffb3c1c1e5c000-0xffffb3c1c1e61000 20480 unpurged vm_area +0xffffb3c1c1e54000-0xffffb3c1c1e59000 20480 unpurged vm_area +0xffffb3c1c1e4c000-0xffffb3c1c1e51000 20480 unpurged vm_area +0xffffb3c1c1e44000-0xffffb3c1c1e49000 20480 unpurged vm_area +0xffffb3c1c1d64000-0xffffb3c1c1d69000 20480 unpurged vm_area +0xffffb3c1c1e34000-0xffffb3c1c1e39000 20480 unpurged vm_area +0xffffb3c1c1e2c000-0xffffb3c1c1e31000 20480 unpurged vm_area +0xffffb3c1c1e24000-0xffffb3c1c1e29000 20480 unpurged vm_area +0xffffb3c1c1e1c000-0xffffb3c1c1e21000 20480 unpurged vm_area +0xffffb3c1c1e14000-0xffffb3c1c1e19000 20480 unpurged vm_area +0xffffb3c1c1e0c000-0xffffb3c1c1e11000 20480 unpurged vm_area +0xffffb3c1c1e04000-0xffffb3c1c1e09000 20480 unpurged vm_area +0xffffb3c1c1dfc000-0xffffb3c1c1e01000 20480 unpurged vm_area +0xffffb3c1c1df4000-0xffffb3c1c1df9000 20480 unpurged vm_area +0xffffb3c1c1dec000-0xffffb3c1c1df1000 20480 unpurged vm_area +0xffffb3c1c1de4000-0xffffb3c1c1de9000 20480 unpurged vm_area +0xffffb3c1c1ddc000-0xffffb3c1c1de1000 20480 unpurged vm_area +0xffffb3c1c1dd4000-0xffffb3c1c1dd9000 20480 unpurged vm_area +0xffffb3c1c1dcc000-0xffffb3c1c1dd1000 20480 unpurged vm_area +0xffffb3c1c1dc4000-0xffffb3c1c1dc9000 20480 unpurged vm_area +0xffffb3c1c1dbc000-0xffffb3c1c1dc1000 20480 unpurged vm_area +0xffffb3c1c1db4000-0xffffb3c1c1db9000 20480 unpurged vm_area +0xffffb3c1c1dac000-0xffffb3c1c1db1000 20480 unpurged vm_area +0xffffb3c1c1da4000-0xffffb3c1c1da9000 20480 unpurged vm_area +0xffffb3c1c1d9c000-0xffffb3c1c1da1000 20480 unpurged vm_area +0xffffb3c1c1d94000-0xffffb3c1c1d99000 20480 unpurged vm_area +0xffffb3c1c1d8c000-0xffffb3c1c1d91000 20480 unpurged vm_area +0xffffb3c1c1d84000-0xffffb3c1c1d89000 20480 unpurged vm_area +0xffffb3c1c1d7c000-0xffffb3c1c1d81000 20480 unpurged vm_area +0xffffb3c1c1d74000-0xffffb3c1c1d79000 20480 unpurged vm_area +0xffffb3c1c1d6c000-0xffffb3c1c1d71000 20480 unpurged vm_area +0xffffb3c1c1cd4000-0xffffb3c1c1cd9000 20480 unpurged vm_area +0xffffb3c1c1d5c000-0xffffb3c1c1d61000 20480 unpurged vm_area +0xffffb3c1c1d54000-0xffffb3c1c1d59000 20480 unpurged vm_area +0xffffb3c1c1d4c000-0xffffb3c1c1d51000 20480 unpurged vm_area +0xffffb3c1c4464000-0xffffb3c1c4469000 20480 unpurged vm_area +0xffffb3c1c1d3c000-0xffffb3c1c1d41000 20480 unpurged vm_area +0xffffb3c1c1d34000-0xffffb3c1c1d39000 20480 unpurged vm_area +0xffffb3c1c1d2c000-0xffffb3c1c1d31000 20480 unpurged vm_area +0xffffb3c1c1d24000-0xffffb3c1c1d29000 20480 unpurged vm_area +0xffffb3c1c1d1c000-0xffffb3c1c1d21000 20480 unpurged vm_area +0xffffb3c1c1d14000-0xffffb3c1c1d19000 20480 unpurged vm_area +0xffffb3c1c1d0c000-0xffffb3c1c1d11000 20480 unpurged vm_area +0xffffb3c1c1d04000-0xffffb3c1c1d09000 20480 unpurged vm_area +0xffffb3c1c1cfc000-0xffffb3c1c1d01000 20480 unpurged vm_area +0xffffb3c1c1cf4000-0xffffb3c1c1cf9000 20480 unpurged vm_area +0xffffb3c1c1cec000-0xffffb3c1c1cf1000 20480 unpurged vm_area +0xffffb3c1c1c94000-0xffffb3c1c1c99000 20480 unpurged vm_area +0xffffb3c1c1cdc000-0xffffb3c1c1ce1000 20480 unpurged vm_area +0xffffb3c1c1cb4000-0xffffb3c1c1cb9000 20480 unpurged vm_area +0xffffb3c1c1ccc000-0xffffb3c1c1cd1000 20480 unpurged vm_area +0xffffb3c1c1cc4000-0xffffb3c1c1cc9000 20480 unpurged vm_area +0xffffb3c1c1cbc000-0xffffb3c1c1cc1000 20480 unpurged vm_area +0xffffb3c1c1ca4000-0xffffb3c1c1ca9000 20480 unpurged vm_area +0xffffb3c1c1cac000-0xffffb3c1c1cb1000 20480 unpurged vm_area +0xffffb3c1c1be4000-0xffffb3c1c1be9000 20480 unpurged vm_area +0xffffb3c1c1c9c000-0xffffb3c1c1ca1000 20480 unpurged vm_area +0xffffb3c1c1c8c000-0xffffb3c1c1c91000 20480 unpurged vm_area +0xffffb3c1c1c5c000-0xffffb3c1c1c61000 20480 unpurged vm_area +0xffffb3c1c1c84000-0xffffb3c1c1c89000 20480 unpurged vm_area +0xffffb3c1c1c7c000-0xffffb3c1c1c81000 20480 unpurged vm_area +0xffffb3c1c1c74000-0xffffb3c1c1c79000 20480 unpurged vm_area +0xffffb3c1c1c6c000-0xffffb3c1c1c71000 20480 unpurged vm_area +0xffffb3c1c1c64000-0xffffb3c1c1c69000 20480 unpurged vm_area +0xffffb3c1c1bf4000-0xffffb3c1c1bf9000 20480 unpurged vm_area +0xffffb3c1c1c54000-0xffffb3c1c1c59000 20480 unpurged vm_area +0xffffb3c1c1c4c000-0xffffb3c1c1c51000 20480 unpurged vm_area +0xffffb3c1c1c44000-0xffffb3c1c1c49000 20480 unpurged vm_area +0xffffb3c1c1c3c000-0xffffb3c1c1c41000 20480 unpurged vm_area +0xffffb3c1c1c34000-0xffffb3c1c1c39000 20480 unpurged vm_area +0xffffb3c1c1c2c000-0xffffb3c1c1c31000 20480 unpurged vm_area +0xffffb3c1c1c24000-0xffffb3c1c1c29000 20480 unpurged vm_area +0xffffb3c1c1c1c000-0xffffb3c1c1c21000 20480 unpurged vm_area +0xffffb3c1c1c14000-0xffffb3c1c1c19000 20480 unpurged vm_area +0xffffb3c1c1c0c000-0xffffb3c1c1c11000 20480 unpurged vm_area +0xffffb3c1c1c04000-0xffffb3c1c1c09000 20480 unpurged vm_area +0xffffb3c1c1bfc000-0xffffb3c1c1c01000 20480 unpurged vm_area +0xffffb3c1c1b04000-0xffffb3c1c1b09000 20480 unpurged vm_area +0xffffb3c1c1bec000-0xffffb3c1c1bf1000 20480 unpurged vm_area +0xffffb3c1c1b5c000-0xffffb3c1c1b61000 20480 unpurged vm_area +0xffffb3c1c1bdc000-0xffffb3c1c1be1000 20480 unpurged vm_area +0xffffb3c1c1bd4000-0xffffb3c1c1bd9000 20480 unpurged vm_area +0xffffb3c1c1bcc000-0xffffb3c1c1bd1000 20480 unpurged vm_area +0xffffb3c1c1bc4000-0xffffb3c1c1bc9000 20480 unpurged vm_area +0xffffb3c1c1bbc000-0xffffb3c1c1bc1000 20480 unpurged vm_area +0xffffb3c1c1bb4000-0xffffb3c1c1bb9000 20480 unpurged vm_area +0xffffb3c1c1bac000-0xffffb3c1c1bb1000 20480 unpurged vm_area +0xffffb3c1c1ba4000-0xffffb3c1c1ba9000 20480 unpurged vm_area +0xffffb3c1c1b9c000-0xffffb3c1c1ba1000 20480 unpurged vm_area +0xffffb3c1c1b94000-0xffffb3c1c1b99000 20480 unpurged vm_area +0xffffb3c1c1b8c000-0xffffb3c1c1b91000 20480 unpurged vm_area +0xffffb3c1c1b84000-0xffffb3c1c1b89000 20480 unpurged vm_area +0xffffb3c1c1b7c000-0xffffb3c1c1b81000 20480 unpurged vm_area +0xffffb3c1c1b74000-0xffffb3c1c1b79000 20480 unpurged vm_area +0xffffb3c1c1b6c000-0xffffb3c1c1b71000 20480 unpurged vm_area +0xffffb3c1c1b64000-0xffffb3c1c1b69000 20480 unpurged vm_area +0xffffb3c1c1a34000-0xffffb3c1c1a39000 20480 unpurged vm_area +0xffffb3c1c1b54000-0xffffb3c1c1b59000 20480 unpurged vm_area +0xffffb3c1c1b4c000-0xffffb3c1c1b51000 20480 unpurged vm_area +0xffffb3c1c1b44000-0xffffb3c1c1b49000 20480 unpurged vm_area +0xffffb3c1c1b3c000-0xffffb3c1c1b41000 20480 unpurged vm_area +0xffffb3c1c1b34000-0xffffb3c1c1b39000 20480 unpurged vm_area +0xffffb3c1c1b2c000-0xffffb3c1c1b31000 20480 unpurged vm_area +0xffffb3c1c0d98000-0xffffb3c1c0d9d000 20480 unpurged vm_area +0xffffb3c1c0d40000-0xffffb3c1c0d45000 20480 unpurged vm_area +0xffffb3c1c1b24000-0xffffb3c1c1b29000 20480 unpurged vm_area +0xffffb3c1c1b1c000-0xffffb3c1c1b21000 20480 unpurged vm_area +0xffffb3c1c1b14000-0xffffb3c1c1b19000 20480 unpurged vm_area +0xffffb3c1c1b0c000-0xffffb3c1c1b11000 20480 unpurged vm_area +0xffffb3c1c1afc000-0xffffb3c1c1b01000 20480 unpurged vm_area +0xffffb3c1c1af4000-0xffffb3c1c1af9000 20480 unpurged vm_area +0xffffb3c1c1aec000-0xffffb3c1c1af1000 20480 unpurged vm_area +0xffffb3c1c1ae4000-0xffffb3c1c1ae9000 20480 unpurged vm_area +0xffffb3c1c1adc000-0xffffb3c1c1ae1000 20480 unpurged vm_area +0xffffb3c1c1ad4000-0xffffb3c1c1ad9000 20480 unpurged vm_area +0xffffb3c1c1ac4000-0xffffb3c1c1ac9000 20480 unpurged vm_area +0xffffb3c1c1acc000-0xffffb3c1c1ad1000 20480 unpurged vm_area +0xffffb3c1c1ab4000-0xffffb3c1c1ab9000 20480 unpurged vm_area +0xffffb3c1c1abc000-0xffffb3c1c1ac1000 20480 unpurged vm_area +0xffffb3c1c1aac000-0xffffb3c1c1ab1000 20480 unpurged vm_area +0xffffb3c1c1aa4000-0xffffb3c1c1aa9000 20480 unpurged vm_area +0xffffb3c1c1a84000-0xffffb3c1c1a89000 20480 unpurged vm_area +0xffffb3c1c1a9c000-0xffffb3c1c1aa1000 20480 unpurged vm_area +0xffffb3c1c1a94000-0xffffb3c1c1a99000 20480 unpurged vm_area +0xffffb3c1c1a8c000-0xffffb3c1c1a91000 20480 unpurged vm_area +0xffffb3c1c1a74000-0xffffb3c1c1a79000 20480 unpurged vm_area +0xffffb3c1c1a7c000-0xffffb3c1c1a81000 20480 unpurged vm_area +0xffffb3c1c1a64000-0xffffb3c1c1a69000 20480 unpurged vm_area +0xffffb3c1c1a6c000-0xffffb3c1c1a71000 20480 unpurged vm_area +0xffffb3c1c1a4c000-0xffffb3c1c1a51000 20480 unpurged vm_area +0xffffb3c1c1a5c000-0xffffb3c1c1a61000 20480 unpurged vm_area +0xffffb3c1c1a54000-0xffffb3c1c1a59000 20480 unpurged vm_area +0xffffb3c1c1a3c000-0xffffb3c1c1a41000 20480 unpurged vm_area +0xffffb3c1c19fc000-0xffffb3c1c1a01000 20480 unpurged vm_area +0xffffb3c1c1584000-0xffffb3c1c1589000 20480 unpurged vm_area +0xffffb3c1c1a1c000-0xffffb3c1c1a21000 20480 unpurged vm_area +0xffffb3c1c19dc000-0xffffb3c1c19e1000 20480 unpurged vm_area +0xffffb3c1c1a14000-0xffffb3c1c1a19000 20480 unpurged vm_area +0xffffb3c1c1a04000-0xffffb3c1c1a09000 20480 unpurged vm_area +0xffffb3c1c19f4000-0xffffb3c1c19f9000 20480 unpurged vm_area +0xffffb3c1c19ec000-0xffffb3c1c19f1000 20480 unpurged vm_area +0xffffb3c1c0d78000-0xffffb3c1c0d7d000 20480 unpurged vm_area +0xffffb3c1c19e4000-0xffffb3c1c19e9000 20480 unpurged vm_area +0xffffb3c1c19cc000-0xffffb3c1c19d1000 20480 unpurged vm_area +0xffffb3c1c15c4000-0xffffb3c1c15c9000 20480 unpurged vm_area +0xffffb3c1c159c000-0xffffb3c1c15a1000 20480 unpurged vm_area +0xffffb3c1c1594000-0xffffb3c1c1599000 20480 unpurged vm_area +0xffffb3c1c158c000-0xffffb3c1c1591000 20480 unpurged vm_area +0xffffb3c1c14dc000-0xffffb3c1c14e1000 20480 unpurged vm_area +0xffffb3c1c157c000-0xffffb3c1c1581000 20480 unpurged vm_area +0xffffb3c1c1574000-0xffffb3c1c1579000 20480 unpurged vm_area +0xffffb3c1c156c000-0xffffb3c1c1571000 20480 unpurged vm_area +0xffffb3c1c1564000-0xffffb3c1c1569000 20480 unpurged vm_area +0xffffb3c1c155c000-0xffffb3c1c1561000 20480 unpurged vm_area +0xffffb3c1c1554000-0xffffb3c1c1559000 20480 unpurged vm_area +0xffffb3c1c154c000-0xffffb3c1c1551000 20480 unpurged vm_area +0xffffb3c1c1544000-0xffffb3c1c1549000 20480 unpurged vm_area +0xffffb3c1c153c000-0xffffb3c1c1541000 20480 unpurged vm_area +0xffffb3c1c1534000-0xffffb3c1c1539000 20480 unpurged vm_area +0xffffb3c1c1524000-0xffffb3c1c1529000 20480 unpurged vm_area +0xffffb3c1c1514000-0xffffb3c1c1519000 20480 unpurged vm_area +0xffffb3c1c150c000-0xffffb3c1c1511000 20480 unpurged vm_area +0xffffb3c1c1504000-0xffffb3c1c1509000 20480 unpurged vm_area +0xffffb3c1c14fc000-0xffffb3c1c1501000 20480 unpurged vm_area +0xffffb3c1c14ec000-0xffffb3c1c14f1000 20480 unpurged vm_area +0xffffb3c1c14e4000-0xffffb3c1c14e9000 20480 unpurged vm_area +0xffffb3c1c07f0000-0xffffb3c1c07f5000 20480 unpurged vm_area +0xffffb3c1c14d4000-0xffffb3c1c14d9000 20480 unpurged vm_area +0xffffb3c1c4594000-0xffffb3c1c4599000 20480 unpurged vm_area +0xffffb3c1c14cc000-0xffffb3c1c14d1000 20480 unpurged vm_area +0xffffb3c1c14c4000-0xffffb3c1c14c9000 20480 unpurged vm_area +0xffffb3c1c14bc000-0xffffb3c1c14c1000 20480 unpurged vm_area +0xffffb3c1c14b4000-0xffffb3c1c14b9000 20480 unpurged vm_area +0xffffb3c1c14ac000-0xffffb3c1c14b1000 20480 unpurged vm_area +0xffffb3c1c14a4000-0xffffb3c1c14a9000 20480 unpurged vm_area +0xffffb3c1c149c000-0xffffb3c1c14a1000 20480 unpurged vm_area +0xffffb3c1c1494000-0xffffb3c1c1499000 20480 unpurged vm_area +0xffffb3c1c148c000-0xffffb3c1c1491000 20480 unpurged vm_area +0xffffb3c1c13cc000-0xffffb3c1c13d1000 20480 unpurged vm_area +0xffffb3c1c1444000-0xffffb3c1c1449000 20480 unpurged vm_area +0xffffb3c1c1484000-0xffffb3c1c1489000 20480 unpurged vm_area +0xffffb3c1c147c000-0xffffb3c1c1481000 20480 unpurged vm_area +0xffffb3c1c1474000-0xffffb3c1c1479000 20480 unpurged vm_area +0xffffb3c1c146c000-0xffffb3c1c1471000 20480 unpurged vm_area +0xffffb3c1c1464000-0xffffb3c1c1469000 20480 unpurged vm_area +0xffffb3c1c145c000-0xffffb3c1c1461000 20480 unpurged vm_area +0xffffb3c1c1454000-0xffffb3c1c1459000 20480 unpurged vm_area +0xffffb3c1c144c000-0xffffb3c1c1451000 20480 unpurged vm_area +0xffffb3c1c1434000-0xffffb3c1c1439000 20480 unpurged vm_area +0xffffb3c1c143c000-0xffffb3c1c1441000 20480 unpurged vm_area +0xffffb3c1c1414000-0xffffb3c1c1419000 20480 unpurged vm_area +0xffffb3c1c142c000-0xffffb3c1c1431000 20480 unpurged vm_area +0xffffb3c1c1424000-0xffffb3c1c1429000 20480 unpurged vm_area +0xffffb3c1c141c000-0xffffb3c1c1421000 20480 unpurged vm_area +0xffffb3c1c13bc000-0xffffb3c1c13c1000 20480 unpurged vm_area +0xffffb3c1c140c000-0xffffb3c1c1411000 20480 unpurged vm_area +0xffffb3c1c13fc000-0xffffb3c1c1401000 20480 unpurged vm_area +0xffffb3c1c13f4000-0xffffb3c1c13f9000 20480 unpurged vm_area +0xffffb3c1c13ec000-0xffffb3c1c13f1000 20480 unpurged vm_area +0xffffb3c1c13e4000-0xffffb3c1c13e9000 20480 unpurged vm_area +0xffffb3c1c13dc000-0xffffb3c1c13e1000 20480 unpurged vm_area +0xffffb3c1c13d4000-0xffffb3c1c13d9000 20480 unpurged vm_area +0xffffb3c1c1138000-0xffffb3c1c113d000 20480 unpurged vm_area +0xffffb3c1c13c4000-0xffffb3c1c13c9000 20480 unpurged vm_area +0xffffb3c1c139c000-0xffffb3c1c13a1000 20480 unpurged vm_area +0xffffb3c1c13b4000-0xffffb3c1c13b9000 20480 unpurged vm_area +0xffffb3c1c13ac000-0xffffb3c1c13b1000 20480 unpurged vm_area +0xffffb3c1c13a4000-0xffffb3c1c13a9000 20480 unpurged vm_area +0xffffb3c1c1320000-0xffffb3c1c1325000 20480 unpurged vm_area +0xffffb3c1c1394000-0xffffb3c1c1399000 20480 unpurged vm_area +0xffffb3c1c138c000-0xffffb3c1c1391000 20480 unpurged vm_area +0xffffb3c1c1384000-0xffffb3c1c1389000 20480 unpurged vm_area +0xffffb3c1c1374000-0xffffb3c1c1379000 20480 unpurged vm_area +0xffffb3c1c136c000-0xffffb3c1c1371000 20480 unpurged vm_area +0xffffb3c1c1364000-0xffffb3c1c1369000 20480 unpurged vm_area +0xffffb3c1c135c000-0xffffb3c1c1361000 20480 unpurged vm_area +0xffffb3c1c1354000-0xffffb3c1c1359000 20480 unpurged vm_area +0xffffb3c1c134c000-0xffffb3c1c1351000 20480 unpurged vm_area +0xffffb3c1c1344000-0xffffb3c1c1349000 20480 unpurged vm_area +0xffffb3c1c1328000-0xffffb3c1c132d000 20480 unpurged vm_area +0xffffb3c1c1224000-0xffffb3c1c1229000 20480 unpurged vm_area +0xffffb3c1c12e8000-0xffffb3c1c12ed000 20480 unpurged vm_area +0xffffb3c1c12cc000-0xffffb3c1c12d1000 20480 unpurged vm_area +0xffffb3c1c12bc000-0xffffb3c1c12c1000 20480 unpurged vm_area +0xffffb3c1c12b4000-0xffffb3c1c12b9000 20480 unpurged vm_area +0xffffb3c1c12ac000-0xffffb3c1c12b1000 20480 unpurged vm_area +0xffffb3c1c12a4000-0xffffb3c1c12a9000 20480 unpurged vm_area +0xffffb3c1c129c000-0xffffb3c1c12a1000 20480 unpurged vm_area +0xffffb3c1c1294000-0xffffb3c1c1299000 20480 unpurged vm_area +0xffffb3c1c128c000-0xffffb3c1c1291000 20480 unpurged vm_area +0xffffb3c1c1284000-0xffffb3c1c1289000 20480 unpurged vm_area +0xffffb3c1c127c000-0xffffb3c1c1281000 20480 unpurged vm_area +0xffffb3c1c1274000-0xffffb3c1c1279000 20480 unpurged vm_area +0xffffb3c1c126c000-0xffffb3c1c1271000 20480 unpurged vm_area +0xffffb3c1c0d60000-0xffffb3c1c0d65000 20480 unpurged vm_area +0xffffb3c1c1214000-0xffffb3c1c1219000 20480 unpurged vm_area +0xffffb3c1c120c000-0xffffb3c1c1211000 20480 unpurged vm_area +0xffffb3c1c1158000-0xffffb3c1c115d000 20480 unpurged vm_area +0xffffb3c1c1150000-0xffffb3c1c1155000 20480 unpurged vm_area +0xffffb3c1c1148000-0xffffb3c1c114d000 20480 unpurged vm_area +0xffffb3c1c1140000-0xffffb3c1c1145000 20480 unpurged vm_area +0xffffb3c1c07c8000-0xffffb3c1c07cd000 20480 unpurged vm_area +0xffffb3c1c110c000-0xffffb3c1c1111000 20480 unpurged vm_area +0xffffb3c1c103c000-0xffffb3c1c1041000 20480 unpurged vm_area +0xffffb3c1c1024000-0xffffb3c1c1029000 20480 unpurged vm_area +0xffffb3c1c1008000-0xffffb3c1c100d000 20480 unpurged vm_area +0xffffb3c1c0fb8000-0xffffb3c1c0fbd000 20480 unpurged vm_area +0xffffb3c1c0f78000-0xffffb3c1c0f7d000 20480 unpurged vm_area +0xffffb3c1c0e08000-0xffffb3c1c0e0d000 20480 unpurged vm_area +0xffffb3c1c0e00000-0xffffb3c1c0e05000 20480 unpurged vm_area +0xffffb3c1c0df8000-0xffffb3c1c0dfd000 20480 unpurged vm_area +0xffffb3c1c0df0000-0xffffb3c1c0df5000 20480 unpurged vm_area +0xffffb3c1c0de8000-0xffffb3c1c0ded000 20480 unpurged vm_area +0xffffb3c1c0de0000-0xffffb3c1c0de5000 20480 unpurged vm_area +0xffffb3c1c0dd8000-0xffffb3c1c0ddd000 20480 unpurged vm_area +0xffffb3c1c0dd0000-0xffffb3c1c0dd5000 20480 unpurged vm_area +0xffffb3c1c0dc0000-0xffffb3c1c0dc5000 20480 unpurged vm_area +0xffffb3c1c0db0000-0xffffb3c1c0db5000 20480 unpurged vm_area +0xffffb3c1c0da0000-0xffffb3c1c0da5000 20480 unpurged vm_area +0xffffb3c1c0d90000-0xffffb3c1c0d95000 20480 unpurged vm_area +0xffffb3c1c0d68000-0xffffb3c1c0d6d000 20480 unpurged vm_area +0xffffb3c1c0d58000-0xffffb3c1c0d5d000 20480 unpurged vm_area +0xffffb3c1c0d88000-0xffffb3c1c0d8d000 20480 unpurged vm_area +0xffffb3c1c0d80000-0xffffb3c1c0d85000 20480 unpurged vm_area +0xffffb3c1c0d70000-0xffffb3c1c0d75000 20480 unpurged vm_area +0xffffb3c1c0063000-0xffffb3c1c0065000 8192 unpurged vm_area diff --git a/tests/fixtures/linux-proc/vmallocinfo.json b/tests/fixtures/linux-proc/vmallocinfo.json new file mode 100644 index 00000000..6bf7ccf3 --- /dev/null +++ b/tests/fixtures/linux-proc/vmallocinfo.json @@ -0,0 +1 @@ +[{"start":"0xffffb3c1c0000000","end":"0xffffb3c1c0005000","size":20480,"caller":"map_irq_stack+0x93/0xe0","options":["vmap"],"phys":"0x00000000bfefe000"},{"start":"0xffffb3c1c0005000","end":"0xffffb3c1c0007000","size":8192,"caller":"acpi_os_map_iomem+0x1ac/0x1c0","options":["ioremap"],"phys":"0x00000000bfeff000"},{"start":"0xffffb3c1c0007000","end":"0xffffb3c1c0009000","size":8192,"caller":"acpi_os_map_iomem+0x1ac/0x1c0","options":["ioremap"],"phys":"0x00000000bfedc000"},{"start":"0xffffb3c1c0009000","end":"0xffffb3c1c000b000","size":8192,"caller":"acpi_os_map_iomem+0x1ac/0x1c0","options":["ioremap"],"phys":"0x00000000fed00000"},{"start":"0xffffb3c1c000b000","end":"0xffffb3c1c000d000","size":8192,"caller":"hpet_enable+0x37/0x2b8","options":["ioremap"],"pages":1,"N0":1},{"start":"0xffffb3c1c000d000","end":"0xffffb3c1c000f000","size":8192,"caller":"gen_pool_add_owner+0x42/0xc0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0010000","end":"0xffffb3c1c0015000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0015000","end":"0xffffb3c1c0017000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0018000","end":"0xffffb3c1c001d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c001d000","end":"0xffffb3c1c001f000","size":8192,"caller":"gen_pool_add_owner+0x42/0xc0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0020000","end":"0xffffb3c1c0025000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0025000","end":"0xffffb3c1c0027000","size":8192,"caller":"gen_pool_add_owner+0x42/0xc0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0028000","end":"0xffffb3c1c002d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c002d000","end":"0xffffb3c1c002f000","size":8192,"caller":"gen_pool_add_owner+0x42/0xc0","options":["vmalloc"],"pages":3,"N0":3},{"start":"0xffffb3c1c0031000","end":"0xffffb3c1c0035000","size":16384,"caller":"n_tty_open+0x19/0xa0","options":["vmalloc"],"phys":"0x00000000fd5ef000"},{"start":"0xffffb3c1c0035000","end":"0xffffb3c1c0037000","size":8192,"caller":"devm_ioremap+0x43/0x90","options":["ioremap"],"pages":4,"N0":4},{"start":"0xffffb3c1c0038000","end":"0xffffb3c1c003d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"phys":"0x00000000fe800000"},{"start":"0xffffb3c1c003d000","end":"0xffffb3c1c003f000","size":8192,"caller":"acpi_os_map_iomem+0x1ac/0x1c0","options":["ioremap"],"phys":"0x00000000bfedd000"},{"start":"0xffffb3c1c0040000","end":"0xffffb3c1c0063000","size":143360,"caller":"acpi_os_map_iomem+0x1ac/0x1c0","options":["ioremap"],"phys":"0x00000000fd5ee000"},{"start":"0xffffb3c1c0069000","end":"0xffffb3c1c006b000","size":8192,"caller":"pci_iomap_range+0x6f/0xa0","options":["ioremap"],"pages":2,"N0":2},{"start":"0xffffb3c1c0071000","end":"0xffffb3c1c0074000","size":12288,"caller":"vmw_fb_init+0x1c3/0x3f0","options":["[vmwgfx]","vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0074000","end":"0xffffb3c1c0079000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0079000","end":"0xffffb3c1c007b000","size":8192,"caller":"dm_table_create+0x99/0x150","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c007c000","end":"0xffffb3c1c0081000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0081000","end":"0xffffb3c1c0083000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0084000","end":"0xffffb3c1c0089000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c008c000","end":"0xffffb3c1c0091000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0091000","end":"0xffffb3c1c0093000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0094000","end":"0xffffb3c1c0099000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0099000","end":"0xffffb3c1c009b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c009c000","end":"0xffffb3c1c00a1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00a1000","end":"0xffffb3c1c00a3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00a4000","end":"0xffffb3c1c00a9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00a9000","end":"0xffffb3c1c00ab000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00ac000","end":"0xffffb3c1c00b1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00b1000","end":"0xffffb3c1c00b3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00b4000","end":"0xffffb3c1c00b9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00b9000","end":"0xffffb3c1c00bb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00bc000","end":"0xffffb3c1c00c1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00c1000","end":"0xffffb3c1c00c3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00c4000","end":"0xffffb3c1c00c9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00c9000","end":"0xffffb3c1c00cb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00cc000","end":"0xffffb3c1c00d1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00d1000","end":"0xffffb3c1c00d3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00d4000","end":"0xffffb3c1c00d9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00d9000","end":"0xffffb3c1c00db000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00dc000","end":"0xffffb3c1c00e1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00e1000","end":"0xffffb3c1c00e3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00e4000","end":"0xffffb3c1c00e9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00e9000","end":"0xffffb3c1c00eb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00ec000","end":"0xffffb3c1c00f1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00f1000","end":"0xffffb3c1c00f3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00f4000","end":"0xffffb3c1c00f9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c00f9000","end":"0xffffb3c1c00fb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c00fc000","end":"0xffffb3c1c0101000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0101000","end":"0xffffb3c1c0103000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0104000","end":"0xffffb3c1c0109000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0109000","end":"0xffffb3c1c010b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c010c000","end":"0xffffb3c1c0111000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0111000","end":"0xffffb3c1c0113000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0114000","end":"0xffffb3c1c0119000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0119000","end":"0xffffb3c1c011b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c011c000","end":"0xffffb3c1c0121000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0121000","end":"0xffffb3c1c0123000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0124000","end":"0xffffb3c1c0129000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0129000","end":"0xffffb3c1c012b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c012c000","end":"0xffffb3c1c0131000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0131000","end":"0xffffb3c1c0133000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0134000","end":"0xffffb3c1c0139000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0139000","end":"0xffffb3c1c013b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c013c000","end":"0xffffb3c1c0141000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0141000","end":"0xffffb3c1c0143000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0144000","end":"0xffffb3c1c0149000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0149000","end":"0xffffb3c1c014b000","size":8192,"caller":"swap_cgroup_swapon+0x2d/0x150","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c014c000","end":"0xffffb3c1c0151000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0151000","end":"0xffffb3c1c0153000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0154000","end":"0xffffb3c1c0159000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0159000","end":"0xffffb3c1c015b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c015c000","end":"0xffffb3c1c0161000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0161000","end":"0xffffb3c1c0163000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0164000","end":"0xffffb3c1c0169000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0169000","end":"0xffffb3c1c016b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c016c000","end":"0xffffb3c1c0171000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0171000","end":"0xffffb3c1c0173000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0174000","end":"0xffffb3c1c0179000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0179000","end":"0xffffb3c1c017b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c017c000","end":"0xffffb3c1c0181000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0181000","end":"0xffffb3c1c0183000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0184000","end":"0xffffb3c1c0189000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0189000","end":"0xffffb3c1c018b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c018c000","end":"0xffffb3c1c0191000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0191000","end":"0xffffb3c1c0193000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0194000","end":"0xffffb3c1c0199000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0199000","end":"0xffffb3c1c019b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c019c000","end":"0xffffb3c1c01a1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01a1000","end":"0xffffb3c1c01a3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01a4000","end":"0xffffb3c1c01a9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01a9000","end":"0xffffb3c1c01ab000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01ac000","end":"0xffffb3c1c01b1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01b1000","end":"0xffffb3c1c01b3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01b4000","end":"0xffffb3c1c01b9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01b9000","end":"0xffffb3c1c01bb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01bc000","end":"0xffffb3c1c01c1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01c1000","end":"0xffffb3c1c01c3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01c4000","end":"0xffffb3c1c01c9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01c9000","end":"0xffffb3c1c01cb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01cc000","end":"0xffffb3c1c01d1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01d1000","end":"0xffffb3c1c01d3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01d4000","end":"0xffffb3c1c01d9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01d9000","end":"0xffffb3c1c01db000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01dc000","end":"0xffffb3c1c01e1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01e1000","end":"0xffffb3c1c01e3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01e4000","end":"0xffffb3c1c01e9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01e9000","end":"0xffffb3c1c01eb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01ec000","end":"0xffffb3c1c01f1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01f1000","end":"0xffffb3c1c01f3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01f4000","end":"0xffffb3c1c01f9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c01f9000","end":"0xffffb3c1c01fb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c01fc000","end":"0xffffb3c1c0201000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0201000","end":"0xffffb3c1c0203000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0204000","end":"0xffffb3c1c0209000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0209000","end":"0xffffb3c1c020b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c020c000","end":"0xffffb3c1c0211000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"phys":"0x00000000febfe000"},{"start":"0xffffb3c1c0211000","end":"0xffffb3c1c0213000","size":8192,"caller":"msix_capability_init+0xe0/0x470","options":["ioremap"],"pages":4,"N0":4},{"start":"0xffffb3c1c0214000","end":"0xffffb3c1c0219000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0219000","end":"0xffffb3c1c021b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c021c000","end":"0xffffb3c1c0221000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0221000","end":"0xffffb3c1c0223000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0224000","end":"0xffffb3c1c0229000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0229000","end":"0xffffb3c1c022b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c022c000","end":"0xffffb3c1c0231000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0231000","end":"0xffffb3c1c0233000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0234000","end":"0xffffb3c1c0239000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0239000","end":"0xffffb3c1c023b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c023c000","end":"0xffffb3c1c0241000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0241000","end":"0xffffb3c1c0243000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0244000","end":"0xffffb3c1c0249000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0249000","end":"0xffffb3c1c024b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c024c000","end":"0xffffb3c1c0251000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0251000","end":"0xffffb3c1c0253000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0254000","end":"0xffffb3c1c0259000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0259000","end":"0xffffb3c1c025b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c025c000","end":"0xffffb3c1c0261000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0261000","end":"0xffffb3c1c0263000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0264000","end":"0xffffb3c1c0269000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0269000","end":"0xffffb3c1c026b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c026c000","end":"0xffffb3c1c0271000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0271000","end":"0xffffb3c1c0273000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0274000","end":"0xffffb3c1c0279000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0279000","end":"0xffffb3c1c027b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c027c000","end":"0xffffb3c1c0281000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0281000","end":"0xffffb3c1c0283000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0284000","end":"0xffffb3c1c0289000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0289000","end":"0xffffb3c1c028b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c028c000","end":"0xffffb3c1c0291000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0291000","end":"0xffffb3c1c0293000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0294000","end":"0xffffb3c1c0299000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0299000","end":"0xffffb3c1c029b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c029c000","end":"0xffffb3c1c02a1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02a1000","end":"0xffffb3c1c02a3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02a4000","end":"0xffffb3c1c02a9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02a9000","end":"0xffffb3c1c02ab000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02ac000","end":"0xffffb3c1c02b1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02b1000","end":"0xffffb3c1c02b3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02b4000","end":"0xffffb3c1c02b9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02b9000","end":"0xffffb3c1c02bb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02bc000","end":"0xffffb3c1c02c1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02c1000","end":"0xffffb3c1c02c3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02c4000","end":"0xffffb3c1c02c9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02c9000","end":"0xffffb3c1c02cb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02cc000","end":"0xffffb3c1c02d1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02d1000","end":"0xffffb3c1c02d3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02d4000","end":"0xffffb3c1c02d9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02d9000","end":"0xffffb3c1c02db000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02dc000","end":"0xffffb3c1c02e1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02e1000","end":"0xffffb3c1c02e3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02e4000","end":"0xffffb3c1c02e9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02e9000","end":"0xffffb3c1c02eb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02ec000","end":"0xffffb3c1c02f1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02f1000","end":"0xffffb3c1c02f3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02f4000","end":"0xffffb3c1c02f9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c02f9000","end":"0xffffb3c1c02fb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c02fc000","end":"0xffffb3c1c0301000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0301000","end":"0xffffb3c1c0303000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0304000","end":"0xffffb3c1c0309000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0309000","end":"0xffffb3c1c030b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c030c000","end":"0xffffb3c1c0311000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0311000","end":"0xffffb3c1c0313000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0314000","end":"0xffffb3c1c0319000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0319000","end":"0xffffb3c1c031b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c031c000","end":"0xffffb3c1c0321000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0321000","end":"0xffffb3c1c0323000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0324000","end":"0xffffb3c1c0329000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0329000","end":"0xffffb3c1c032b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c032c000","end":"0xffffb3c1c0331000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0331000","end":"0xffffb3c1c0333000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0334000","end":"0xffffb3c1c0339000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0339000","end":"0xffffb3c1c033b000","size":8192,"caller":"qp_alloc_queue.constprop.0+0x44/0x110","options":["[vmw_vmci]","vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c033c000","end":"0xffffb3c1c0341000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0341000","end":"0xffffb3c1c0343000","size":8192,"caller":"qp_alloc_queue.constprop.0+0x44/0x110","options":["[vmw_vmci]","vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0344000","end":"0xffffb3c1c0349000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0349000","end":"0xffffb3c1c034b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c034c000","end":"0xffffb3c1c0351000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0351000","end":"0xffffb3c1c0353000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0354000","end":"0xffffb3c1c0359000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0359000","end":"0xffffb3c1c035b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c035c000","end":"0xffffb3c1c0361000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0361000","end":"0xffffb3c1c0363000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0364000","end":"0xffffb3c1c0369000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0369000","end":"0xffffb3c1c036b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c036c000","end":"0xffffb3c1c0371000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0371000","end":"0xffffb3c1c0373000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0374000","end":"0xffffb3c1c0379000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0379000","end":"0xffffb3c1c037b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c037c000","end":"0xffffb3c1c0381000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0381000","end":"0xffffb3c1c0383000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0384000","end":"0xffffb3c1c0389000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0389000","end":"0xffffb3c1c038b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c038c000","end":"0xffffb3c1c0391000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0391000","end":"0xffffb3c1c0393000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0394000","end":"0xffffb3c1c0399000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0399000","end":"0xffffb3c1c039b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c039c000","end":"0xffffb3c1c03a1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03a1000","end":"0xffffb3c1c03a3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03a4000","end":"0xffffb3c1c03a9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03a9000","end":"0xffffb3c1c03ab000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03ac000","end":"0xffffb3c1c03b1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03b1000","end":"0xffffb3c1c03b3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03b4000","end":"0xffffb3c1c03b9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03b9000","end":"0xffffb3c1c03bb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03bc000","end":"0xffffb3c1c03c1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03c1000","end":"0xffffb3c1c03c3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03c4000","end":"0xffffb3c1c03c9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03c9000","end":"0xffffb3c1c03cb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03cc000","end":"0xffffb3c1c03d1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03d1000","end":"0xffffb3c1c03d3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03d4000","end":"0xffffb3c1c03d9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03d9000","end":"0xffffb3c1c03db000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03dc000","end":"0xffffb3c1c03e1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03e1000","end":"0xffffb3c1c03e3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03e4000","end":"0xffffb3c1c03e9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03e9000","end":"0xffffb3c1c03eb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03ec000","end":"0xffffb3c1c03f1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03f1000","end":"0xffffb3c1c03f3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03f4000","end":"0xffffb3c1c03f9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c03f9000","end":"0xffffb3c1c03fb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c03fc000","end":"0xffffb3c1c0401000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0401000","end":"0xffffb3c1c0403000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0404000","end":"0xffffb3c1c0409000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0409000","end":"0xffffb3c1c040b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c040c000","end":"0xffffb3c1c0411000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0411000","end":"0xffffb3c1c0413000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0414000","end":"0xffffb3c1c0419000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0419000","end":"0xffffb3c1c041b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c041c000","end":"0xffffb3c1c0421000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0421000","end":"0xffffb3c1c0423000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0424000","end":"0xffffb3c1c0429000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0429000","end":"0xffffb3c1c042b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c042c000","end":"0xffffb3c1c0431000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0431000","end":"0xffffb3c1c0433000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0434000","end":"0xffffb3c1c0439000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0439000","end":"0xffffb3c1c043b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c043c000","end":"0xffffb3c1c0441000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0441000","end":"0xffffb3c1c0443000","size":8192,"caller":"e1000_setup_rx_resources+0x31/0x1d0","options":["[e1000]","vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0444000","end":"0xffffb3c1c0449000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0449000","end":"0xffffb3c1c044b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c044c000","end":"0xffffb3c1c0451000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0451000","end":"0xffffb3c1c0453000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0454000","end":"0xffffb3c1c0459000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0459000","end":"0xffffb3c1c045b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c045c000","end":"0xffffb3c1c0461000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0461000","end":"0xffffb3c1c0463000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0464000","end":"0xffffb3c1c0469000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0469000","end":"0xffffb3c1c046b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c046c000","end":"0xffffb3c1c0471000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"phys":"0x00000000fe807000"},{"start":"0xffffb3c1c0471000","end":"0xffffb3c1c0473000","size":8192,"caller":"acpi_os_map_iomem+0x1ac/0x1c0","options":["ioremap"],"pages":4,"N0":4},{"start":"0xffffb3c1c0474000","end":"0xffffb3c1c0479000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0479000","end":"0xffffb3c1c047b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c047c000","end":"0xffffb3c1c0481000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0481000","end":"0xffffb3c1c0483000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0484000","end":"0xffffb3c1c0489000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0489000","end":"0xffffb3c1c048b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c048c000","end":"0xffffb3c1c0491000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0491000","end":"0xffffb3c1c0493000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0494000","end":"0xffffb3c1c0499000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0499000","end":"0xffffb3c1c049b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c049c000","end":"0xffffb3c1c04a1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04a1000","end":"0xffffb3c1c04a3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04a4000","end":"0xffffb3c1c04a9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04a9000","end":"0xffffb3c1c04ab000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04ac000","end":"0xffffb3c1c04b1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04b1000","end":"0xffffb3c1c04b3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04b4000","end":"0xffffb3c1c04b9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04b9000","end":"0xffffb3c1c04bb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":3,"N0":3},{"start":"0xffffb3c1c04bb000","end":"0xffffb3c1c04bf000","size":16384,"caller":"n_tty_open+0x19/0xa0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04c1000","end":"0xffffb3c1c04c3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04c4000","end":"0xffffb3c1c04c9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"]},{"start":"0xffffb3c1c04c9000","end":"0xffffb3c1c04ce000","size":20480,"caller":"map_irq_stack+0x93/0xe0","options":["vmap"],"pages":1,"N0":1},{"start":"0xffffb3c1c04ce000","end":"0xffffb3c1c04d0000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04d0000","end":"0xffffb3c1c04d5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04d5000","end":"0xffffb3c1c04d7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04d8000","end":"0xffffb3c1c04dd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04dd000","end":"0xffffb3c1c04df000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04e0000","end":"0xffffb3c1c04e5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04e5000","end":"0xffffb3c1c04e7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04e8000","end":"0xffffb3c1c04ed000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04ed000","end":"0xffffb3c1c04ef000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04f0000","end":"0xffffb3c1c04f5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04f5000","end":"0xffffb3c1c04f7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c04f8000","end":"0xffffb3c1c04fd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c04fd000","end":"0xffffb3c1c04ff000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0505000","end":"0xffffb3c1c0507000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0508000","end":"0xffffb3c1c050d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c050d000","end":"0xffffb3c1c050f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0510000","end":"0xffffb3c1c0515000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0515000","end":"0xffffb3c1c0517000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0518000","end":"0xffffb3c1c051d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c051d000","end":"0xffffb3c1c051f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0520000","end":"0xffffb3c1c0525000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0525000","end":"0xffffb3c1c0527000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0528000","end":"0xffffb3c1c052d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c052d000","end":"0xffffb3c1c052f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0530000","end":"0xffffb3c1c0535000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0535000","end":"0xffffb3c1c0537000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0538000","end":"0xffffb3c1c053d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c053d000","end":"0xffffb3c1c053f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0540000","end":"0xffffb3c1c0545000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0545000","end":"0xffffb3c1c054a000","size":20480,"caller":"agp_backend_initialize+0x149/0x260","options":["vmalloc"],"phys":"0x00000000fe000000"},{"start":"0xffffb3c1c054a000","end":"0xffffb3c1c054d000","size":12288,"caller":"pmc_core_probe+0x81/0x200","options":["ioremap"],"pages":1,"N0":1},{"start":"0xffffb3c1c054d000","end":"0xffffb3c1c054f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0550000","end":"0xffffb3c1c0555000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0555000","end":"0xffffb3c1c0557000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c055b000","end":"0xffffb3c1c055d000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c055d000","end":"0xffffb3c1c055f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0560000","end":"0xffffb3c1c0565000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0565000","end":"0xffffb3c1c0567000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0568000","end":"0xffffb3c1c056d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c056d000","end":"0xffffb3c1c056f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0570000","end":"0xffffb3c1c0575000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0575000","end":"0xffffb3c1c0577000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0578000","end":"0xffffb3c1c057d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c057d000","end":"0xffffb3c1c057f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0580000","end":"0xffffb3c1c0585000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffb3c1c0585000","end":"0xffffb3c1c0588000","size":12288,"caller":"pcpu_mem_zalloc+0x30/0x50","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0588000","end":"0xffffb3c1c058d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c058d000","end":"0xffffb3c1c058f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0590000","end":"0xffffb3c1c0595000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0595000","end":"0xffffb3c1c0597000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0598000","end":"0xffffb3c1c059d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c059d000","end":"0xffffb3c1c059f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05a0000","end":"0xffffb3c1c05a5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffb3c1c05a5000","end":"0xffffb3c1c05a8000","size":12288,"caller":"pcpu_mem_zalloc+0x30/0x50","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05a8000","end":"0xffffb3c1c05ad000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05ad000","end":"0xffffb3c1c05af000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05b0000","end":"0xffffb3c1c05b5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05b5000","end":"0xffffb3c1c05b7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05b8000","end":"0xffffb3c1c05bd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05bd000","end":"0xffffb3c1c05bf000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05c0000","end":"0xffffb3c1c05c5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05c5000","end":"0xffffb3c1c05c7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05c8000","end":"0xffffb3c1c05cd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05cd000","end":"0xffffb3c1c05cf000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05d0000","end":"0xffffb3c1c05d5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05d5000","end":"0xffffb3c1c05d7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05d8000","end":"0xffffb3c1c05dd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05dd000","end":"0xffffb3c1c05df000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05e0000","end":"0xffffb3c1c05e5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05e5000","end":"0xffffb3c1c05e7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05e8000","end":"0xffffb3c1c05ed000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05ed000","end":"0xffffb3c1c05ef000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05f0000","end":"0xffffb3c1c05f5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05f5000","end":"0xffffb3c1c05f7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c05f8000","end":"0xffffb3c1c05fd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c05fd000","end":"0xffffb3c1c05ff000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0600000","end":"0xffffb3c1c0605000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0605000","end":"0xffffb3c1c0607000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0608000","end":"0xffffb3c1c060d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c060d000","end":"0xffffb3c1c060f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0610000","end":"0xffffb3c1c0615000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0615000","end":"0xffffb3c1c0617000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0618000","end":"0xffffb3c1c061d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c061d000","end":"0xffffb3c1c061f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0620000","end":"0xffffb3c1c0625000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0625000","end":"0xffffb3c1c0627000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0628000","end":"0xffffb3c1c062d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c062d000","end":"0xffffb3c1c062f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0630000","end":"0xffffb3c1c0635000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0635000","end":"0xffffb3c1c0637000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0638000","end":"0xffffb3c1c063d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c063d000","end":"0xffffb3c1c063f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0640000","end":"0xffffb3c1c0645000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0645000","end":"0xffffb3c1c0647000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0648000","end":"0xffffb3c1c064d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c064d000","end":"0xffffb3c1c064f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0650000","end":"0xffffb3c1c0655000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0655000","end":"0xffffb3c1c0657000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0658000","end":"0xffffb3c1c065d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c065d000","end":"0xffffb3c1c065f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0660000","end":"0xffffb3c1c0665000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0665000","end":"0xffffb3c1c0667000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0668000","end":"0xffffb3c1c066d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c066d000","end":"0xffffb3c1c066f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0670000","end":"0xffffb3c1c0675000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0675000","end":"0xffffb3c1c0677000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0678000","end":"0xffffb3c1c067d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c067d000","end":"0xffffb3c1c067f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0680000","end":"0xffffb3c1c0685000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0685000","end":"0xffffb3c1c0687000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0688000","end":"0xffffb3c1c068d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c068d000","end":"0xffffb3c1c068f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0690000","end":"0xffffb3c1c0695000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0695000","end":"0xffffb3c1c0697000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0697000","end":"0xffffb3c1c0699000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0699000","end":"0xffffb3c1c069b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c069b000","end":"0xffffb3c1c069d000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c069d000","end":"0xffffb3c1c069f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06a0000","end":"0xffffb3c1c06a5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06a5000","end":"0xffffb3c1c06a7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06a8000","end":"0xffffb3c1c06ad000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06ad000","end":"0xffffb3c1c06af000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06b0000","end":"0xffffb3c1c06b5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06b5000","end":"0xffffb3c1c06b7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06b8000","end":"0xffffb3c1c06bd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06bd000","end":"0xffffb3c1c06bf000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06c0000","end":"0xffffb3c1c06c5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06c5000","end":"0xffffb3c1c06c7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06c7000","end":"0xffffb3c1c06c9000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06c9000","end":"0xffffb3c1c06cb000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06cb000","end":"0xffffb3c1c06cd000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06cd000","end":"0xffffb3c1c06cf000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06d0000","end":"0xffffb3c1c06d5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":8,"N0":8},{"start":"0xffffb3c1c06d5000","end":"0xffffb3c1c06de000","size":36864,"caller":"drm_ht_create+0x4d/0x70","options":["[drm]","vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06de000","end":"0xffffb3c1c06e0000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06e0000","end":"0xffffb3c1c06e2000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06e2000","end":"0xffffb3c1c06e4000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06e5000","end":"0xffffb3c1c06e7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06e8000","end":"0xffffb3c1c06ed000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06ed000","end":"0xffffb3c1c06ef000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06f0000","end":"0xffffb3c1c06f5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06f5000","end":"0xffffb3c1c06f7000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c06f8000","end":"0xffffb3c1c06fd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06fd000","end":"0xffffb3c1c06ff000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c06ff000","end":"0xffffb3c1c0701000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0701000","end":"0xffffb3c1c0703000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0704000","end":"0xffffb3c1c0709000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0709000","end":"0xffffb3c1c070b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c070c000","end":"0xffffb3c1c0711000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0711000","end":"0xffffb3c1c0713000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0714000","end":"0xffffb3c1c0719000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0719000","end":"0xffffb3c1c071b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c071b000","end":"0xffffb3c1c071d000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c071d000","end":"0xffffb3c1c071f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"phys":"0x00000000feba0000"},{"start":"0xffffb3c1c0720000","end":"0xffffb3c1c0741000","size":135168,"caller":"mpt_mapresources+0x152/0x1e0","options":["[mptbase]","ioremap"],"pages":1,"N0":1},{"start":"0xffffb3c1c0741000","end":"0xffffb3c1c0743000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0744000","end":"0xffffb3c1c0749000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0749000","end":"0xffffb3c1c074b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c074c000","end":"0xffffb3c1c0751000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0751000","end":"0xffffb3c1c0753000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0754000","end":"0xffffb3c1c0759000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0759000","end":"0xffffb3c1c075b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c075c000","end":"0xffffb3c1c0761000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0761000","end":"0xffffb3c1c0763000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0764000","end":"0xffffb3c1c0769000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0769000","end":"0xffffb3c1c076b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c076c000","end":"0xffffb3c1c0771000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0771000","end":"0xffffb3c1c0773000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0779000","end":"0xffffb3c1c077b000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c077b000","end":"0xffffb3c1c077d000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c077d000","end":"0xffffb3c1c077f000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c077f000","end":"0xffffb3c1c0781000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":3,"N0":3},{"start":"0xffffb3c1c0781000","end":"0xffffb3c1c0785000","size":16384,"caller":"e1000_setup_tx_resources+0x34/0x1c0","options":["[e1000]","vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0785000","end":"0xffffb3c1c0787000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c0787000","end":"0xffffb3c1c0789000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":17,"N0":17},{"start":"0xffffb3c1c0789000","end":"0xffffb3c1c079b000","size":73728,"caller":"vmci_guest_probe_device+0xdd/0x220","options":["[vmw_vmci]","vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c079c000","end":"0xffffb3c1c07a1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c07a1000","end":"0xffffb3c1c07a3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c07a4000","end":"0xffffb3c1c07a9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c07a9000","end":"0xffffb3c1c07ab000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c07ac000","end":"0xffffb3c1c07b1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c07b1000","end":"0xffffb3c1c07b3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c07b3000","end":"0xffffb3c1c07b5000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c07b8000","end":"0xffffb3c1c07bd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c07c0000","end":"0xffffb3c1c07c5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffb3c1c07d1000","end":"0xffffb3c1c07d3000","size":8192,"caller":"bpf_prog_alloc_no_stats+0x33/0xe0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c07d4000","end":"0xffffb3c1c07d9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c07dc000","end":"0xffffb3c1c07e1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c07e4000","end":"0xffffb3c1c07e9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":3,"N0":3},{"start":"0xffffb3c1c07e9000","end":"0xffffb3c1c07ed000","size":16384,"caller":"pcpu_mem_zalloc+0x30/0x50","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c07f8000","end":"0xffffb3c1c07fd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0804000","end":"0xffffb3c1c0809000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c080c000","end":"0xffffb3c1c0811000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0818000","end":"0xffffb3c1c081d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"phys":"0x00000000fd5c0000"},{"start":"0xffffb3c1c0820000","end":"0xffffb3c1c0841000","size":135168,"caller":"pci_ioremap_bar+0x48/0x50","options":["ioremap"],"pages":4,"N0":4},{"start":"0xffffb3c1c0844000","end":"0xffffb3c1c0849000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c084c000","end":"0xffffb3c1c0851000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0858000","end":"0xffffb3c1c085d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0860000","end":"0xffffb3c1c0865000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0868000","end":"0xffffb3c1c086d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0870000","end":"0xffffb3c1c0875000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0878000","end":"0xffffb3c1c087d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"phys":"0x00000000fe000000"},{"start":"0xffffb3c1c0880000","end":"0xffffb3c1c08c1000","size":266240,"caller":"memremap+0x81/0x110","options":["ioremap"],"pages":4,"N0":4},{"start":"0xffffb3c1c08c4000","end":"0xffffb3c1c08c9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c08cc000","end":"0xffffb3c1c08d1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c08d4000","end":"0xffffb3c1c08d9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c08dc000","end":"0xffffb3c1c08e1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c08e4000","end":"0xffffb3c1c08e9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c08ec000","end":"0xffffb3c1c08f1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c08f4000","end":"0xffffb3c1c08f9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c08fc000","end":"0xffffb3c1c0901000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0904000","end":"0xffffb3c1c0909000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c090c000","end":"0xffffb3c1c0911000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0914000","end":"0xffffb3c1c0919000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c091c000","end":"0xffffb3c1c0921000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0924000","end":"0xffffb3c1c0929000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c092c000","end":"0xffffb3c1c0931000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0934000","end":"0xffffb3c1c0939000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":256,"N0":256},{"start":"0xffffb3c1c093a000","end":"0xffffb3c1c0a3b000","size":1052672,"caller":"vmw_fifo_init+0x38/0x2d0","options":["[vmwgfx]","vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a3c000","end":"0xffffb3c1c0a41000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a44000","end":"0xffffb3c1c0a49000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a4c000","end":"0xffffb3c1c0a51000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a54000","end":"0xffffb3c1c0a59000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a5c000","end":"0xffffb3c1c0a61000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a64000","end":"0xffffb3c1c0a69000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a6c000","end":"0xffffb3c1c0a71000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a74000","end":"0xffffb3c1c0a79000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a7c000","end":"0xffffb3c1c0a81000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a84000","end":"0xffffb3c1c0a89000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a8c000","end":"0xffffb3c1c0a91000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a94000","end":"0xffffb3c1c0a99000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0a9c000","end":"0xffffb3c1c0aa1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0aa4000","end":"0xffffb3c1c0aa9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0aac000","end":"0xffffb3c1c0ab1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0ab4000","end":"0xffffb3c1c0ab9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0abc000","end":"0xffffb3c1c0ac1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0ac4000","end":"0xffffb3c1c0ac9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0acc000","end":"0xffffb3c1c0ad1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0ad4000","end":"0xffffb3c1c0ad9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0adc000","end":"0xffffb3c1c0ae1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0ae4000","end":"0xffffb3c1c0ae9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0aec000","end":"0xffffb3c1c0af1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0af4000","end":"0xffffb3c1c0af9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0afc000","end":"0xffffb3c1c0b01000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0b04000","end":"0xffffb3c1c0b09000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0b0c000","end":"0xffffb3c1c0b11000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0b14000","end":"0xffffb3c1c0b19000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"]},{"start":"0xffffb3c1c0b19000","end":"0xffffb3c1c0cef000","size":1925120,"caller":"ttm_bo_kmap_ttm+0xce/0x150","options":["[ttm]"],"pages":4,"N0":4},{"start":"0xffffb3c1c0cf0000","end":"0xffffb3c1c0cf5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0cf8000","end":"0xffffb3c1c0cfd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d00000","end":"0xffffb3c1c0d05000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d08000","end":"0xffffb3c1c0d0d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d10000","end":"0xffffb3c1c0d15000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d18000","end":"0xffffb3c1c0d1d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d20000","end":"0xffffb3c1c0d25000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d28000","end":"0xffffb3c1c0d2d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d30000","end":"0xffffb3c1c0d35000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d38000","end":"0xffffb3c1c0d3d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d48000","end":"0xffffb3c1c0d4d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0d50000","end":"0xffffb3c1c0d55000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0da8000","end":"0xffffb3c1c0dad000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0db8000","end":"0xffffb3c1c0dbd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0dc8000","end":"0xffffb3c1c0dcd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e14000","end":"0xffffb3c1c0e19000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e1c000","end":"0xffffb3c1c0e21000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e24000","end":"0xffffb3c1c0e29000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e2c000","end":"0xffffb3c1c0e31000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e34000","end":"0xffffb3c1c0e39000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e3c000","end":"0xffffb3c1c0e41000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e44000","end":"0xffffb3c1c0e49000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":3,"N0":3},{"start":"0xffffb3c1c0e49000","end":"0xffffb3c1c0e4d000","size":16384,"caller":"n_tty_open+0x19/0xa0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e54000","end":"0xffffb3c1c0e59000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e5c000","end":"0xffffb3c1c0e61000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e64000","end":"0xffffb3c1c0e69000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e6c000","end":"0xffffb3c1c0e71000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0e74000","end":"0xffffb3c1c0e79000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":244,"N0":244},{"start":"0xffffb3c1c0e79000","end":"0xffffb3c1c0f6e000","size":1003520,"caller":"__do_sys_swapon+0x18f/0xab0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0f70000","end":"0xffffb3c1c0f75000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0f80000","end":"0xffffb3c1c0f85000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0f88000","end":"0xffffb3c1c0f8d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0f90000","end":"0xffffb3c1c0f95000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0f98000","end":"0xffffb3c1c0f9d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fa0000","end":"0xffffb3c1c0fa5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fa8000","end":"0xffffb3c1c0fad000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fb0000","end":"0xffffb3c1c0fb5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fc0000","end":"0xffffb3c1c0fc5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fc8000","end":"0xffffb3c1c0fcd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fd0000","end":"0xffffb3c1c0fd5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fd8000","end":"0xffffb3c1c0fdd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fe0000","end":"0xffffb3c1c0fe5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0fe8000","end":"0xffffb3c1c0fed000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0ff0000","end":"0xffffb3c1c0ff5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c0ff8000","end":"0xffffb3c1c0ffd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1000000","end":"0xffffb3c1c1005000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1014000","end":"0xffffb3c1c1019000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c101c000","end":"0xffffb3c1c1021000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c102c000","end":"0xffffb3c1c1031000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1034000","end":"0xffffb3c1c1039000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1044000","end":"0xffffb3c1c1049000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c104c000","end":"0xffffb3c1c1051000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1054000","end":"0xffffb3c1c1059000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1060000","end":"0xffffb3c1c1065000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":32,"N0":32},{"start":"0xffffb3c1c1065000","end":"0xffffb3c1c1086000","size":135168,"caller":"xz_dec_lzma2_create+0x5e/0x80","options":["vmalloc"],"pages":32,"N0":32},{"start":"0xffffb3c1c1086000","end":"0xffffb3c1c10a7000","size":135168,"caller":"xz_dec_lzma2_create+0x5e/0x80","options":["vmalloc"],"pages":32,"N0":32},{"start":"0xffffb3c1c10a7000","end":"0xffffb3c1c10c8000","size":135168,"caller":"xz_dec_lzma2_create+0x5e/0x80","options":["vmalloc"],"pages":32,"N0":32},{"start":"0xffffb3c1c10c8000","end":"0xffffb3c1c10e9000","size":135168,"caller":"xz_dec_lzma2_create+0x5e/0x80","options":["vmalloc"],"pages":32,"N0":32},{"start":"0xffffb3c1c10e9000","end":"0xffffb3c1c110a000","size":135168,"caller":"xz_dec_lzma2_create+0x5e/0x80","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1114000","end":"0xffffb3c1c1119000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1120000","end":"0xffffb3c1c1125000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1128000","end":"0xffffb3c1c112d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1130000","end":"0xffffb3c1c1135000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1160000","end":"0xffffb3c1c1165000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":32,"N0":32},{"start":"0xffffb3c1c1165000","end":"0xffffb3c1c1186000","size":135168,"caller":"xz_dec_lzma2_create+0x5e/0x80","options":["vmalloc"],"pages":32,"N0":32},{"start":"0xffffb3c1c1186000","end":"0xffffb3c1c11a7000","size":135168,"caller":"xz_dec_lzma2_create+0x5e/0x80","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c11ac000","end":"0xffffb3c1c11b1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c11b4000","end":"0xffffb3c1c11b9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c11bc000","end":"0xffffb3c1c11c1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c11c4000","end":"0xffffb3c1c11c9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"phys":"0x00000000000e0000"},{"start":"0xffffb3c1c11d0000","end":"0xffffb3c1c11d9000","size":36864,"caller":"memremap+0x81/0x110","options":["ioremap"],"pages":4,"N0":4},{"start":"0xffffb3c1c11dc000","end":"0xffffb3c1c11e1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c11e4000","end":"0xffffb3c1c11e9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c11ec000","end":"0xffffb3c1c11f1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c11f4000","end":"0xffffb3c1c11f9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c11fc000","end":"0xffffb3c1c1201000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1204000","end":"0xffffb3c1c1209000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c121c000","end":"0xffffb3c1c1221000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c122c000","end":"0xffffb3c1c1231000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1234000","end":"0xffffb3c1c1239000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":32,"N0":32},{"start":"0xffffb3c1c1239000","end":"0xffffb3c1c125a000","size":135168,"caller":"xz_dec_lzma2_create+0x5e/0x80","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c125c000","end":"0xffffb3c1c1261000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1264000","end":"0xffffb3c1c1269000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c12c4000","end":"0xffffb3c1c12c9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":3,"N0":3},{"start":"0xffffb3c1c12d9000","end":"0xffffb3c1c12dd000","size":16384,"caller":"pcpu_mem_zalloc+0x30/0x50","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c12e0000","end":"0xffffb3c1c12e5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c12f0000","end":"0xffffb3c1c12f5000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c12f8000","end":"0xffffb3c1c12fd000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1300000","end":"0xffffb3c1c1305000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c130c000","end":"0xffffb3c1c1311000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1318000","end":"0xffffb3c1c131d000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1330000","end":"0xffffb3c1c1335000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c133c000","end":"0xffffb3c1c1341000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":3,"N0":3},{"start":"0xffffb3c1c137d000","end":"0xffffb3c1c1381000","size":16384,"caller":"n_tty_open+0x19/0xa0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1404000","end":"0xffffb3c1c1409000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c14f4000","end":"0xffffb3c1c14f9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c151c000","end":"0xffffb3c1c1521000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffb3c1c15a9000","end":"0xffffb3c1c15ac000","size":12288,"caller":"pcpu_mem_zalloc+0x30/0x50","options":["vmalloc"],"pages":3,"N0":3},{"start":"0xffffb3c1c15ac000","end":"0xffffb3c1c15b0000","size":16384,"caller":"pcpu_mem_zalloc+0x30/0x50","options":["vmalloc"],"pages":16,"N0":16},{"start":"0xffffb3c1c15b0000","end":"0xffffb3c1c15c1000","size":69632,"caller":"pcpu_mem_zalloc+0x30/0x50","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c15cc000","end":"0xffffb3c1c15d1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":1017,"N0":1017},{"start":"0xffffb3c1c15d1000","end":"0xffffb3c1c19cb000","size":4169728,"caller":"vmw_fb_init+0x1c3/0x3f0","options":["[vmwgfx]","vmalloc","vpages"],"pages":4,"N0":4},{"start":"0xffffb3c1c19d4000","end":"0xffffb3c1c19d9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1a0c000","end":"0xffffb3c1c1a11000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1a24000","end":"0xffffb3c1c1a29000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1a2c000","end":"0xffffb3c1c1a31000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1a44000","end":"0xffffb3c1c1a49000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1ce4000","end":"0xffffb3c1c1ce9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1fd4000","end":"0xffffb3c1c1fd9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c1ff4000","end":"0xffffb3c1c1ff9000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c2014000","end":"0xffffb3c1c2019000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c2104000","end":"0xffffb3c1c2109000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c21ac000","end":"0xffffb3c1c21b1000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c2e7c000","end":"0xffffb3c1c2e81000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c3164000","end":"0xffffb3c1c3169000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c3d34000","end":"0xffffb3c1c3d39000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffb3c1c467c000","end":"0xffffb3c1c4681000","size":20480,"caller":"dup_task_struct+0x4a/0x1b0","options":["vmalloc"],"phys":"0x00000000f0000000"},{"start":"0xffffb3c1c8000000","end":"0xffffb3c1d0001000","size":134221824,"caller":"pci_mmcfg_arch_map+0x2f/0x60","options":["ioremap"]},{"start":"0xffffd3c1b9e00000","end":"0xffffd3c1bbe00000","size":33554432,"caller":"pcpu_get_vm_areas+0x0/0x10c0","options":["vmalloc"]},{"start":"0xffffd3c1bbe00000","end":"0xffffd3c1bde00000","size":33554432,"caller":"pcpu_get_vm_areas+0x0/0x10c0","options":["vmalloc"]},{"start":"0xffffd3c1bde00000","end":"0xffffd3c1bfe00000","size":33554432,"caller":"pcpu_get_vm_areas+0x0/0x10c0","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0218000","end":"0xffffffffc021a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc021a000","end":"0xffffffffc021f000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc021f000","end":"0xffffffffc0221000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":7,"N0":7},{"start":"0xffffffffc0222000","end":"0xffffffffc022a000","size":32768,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":138,"N0":138},{"start":"0xffffffffc022e000","end":"0xffffffffc02b9000","size":569344,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc02b9000","end":"0xffffffffc02be000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc02be000","end":"0xffffffffc02c3000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc02c3000","end":"0xffffffffc02c8000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc02c8000","end":"0xffffffffc02ca000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc02ca000","end":"0xffffffffc02d1000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc02d1000","end":"0xffffffffc02d3000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc02d5000","end":"0xffffffffc02da000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc02da000","end":"0xffffffffc02df000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc02df000","end":"0xffffffffc02e6000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":8,"N0":8},{"start":"0xffffffffc02e7000","end":"0xffffffffc02f0000","size":36864,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc02f0000","end":"0xffffffffc02f5000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":24,"N0":24},{"start":"0xffffffffc02f6000","end":"0xffffffffc030f000","size":102400,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc030f000","end":"0xffffffffc0315000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":15,"N0":15},{"start":"0xffffffffc0317000","end":"0xffffffffc0327000","size":65536,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc0327000","end":"0xffffffffc032c000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":9,"N0":9},{"start":"0xffffffffc032e000","end":"0xffffffffc0338000","size":40960,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc0338000","end":"0xffffffffc033d000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":10,"N0":10},{"start":"0xffffffffc033d000","end":"0xffffffffc0348000","size":45056,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc0348000","end":"0xffffffffc034e000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":13,"N0":13},{"start":"0xffffffffc0350000","end":"0xffffffffc035e000","size":57344,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc035e000","end":"0xffffffffc0363000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":37,"N0":37},{"start":"0xffffffffc0364000","end":"0xffffffffc038a000","size":155648,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc038a000","end":"0xffffffffc0390000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0390000","end":"0xffffffffc0392000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0392000","end":"0xffffffffc0394000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":11,"N0":11},{"start":"0xffffffffc0395000","end":"0xffffffffc03a1000","size":49152,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc03a1000","end":"0xffffffffc03a3000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc03a3000","end":"0xffffffffc03a5000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":55,"N0":55},{"start":"0xffffffffc03a6000","end":"0xffffffffc03de000","size":229376,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc03de000","end":"0xffffffffc03e3000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc03e3000","end":"0xffffffffc03ea000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":12,"N0":12},{"start":"0xffffffffc03ea000","end":"0xffffffffc03f7000","size":53248,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":25,"N0":25},{"start":"0xffffffffc03f9000","end":"0xffffffffc0413000","size":106496,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":79,"N0":79},{"start":"0xffffffffc0413000","end":"0xffffffffc0463000","size":327680,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0463000","end":"0xffffffffc0465000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0465000","end":"0xffffffffc0467000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc0468000","end":"0xffffffffc046d000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc046d000","end":"0xffffffffc0474000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":40,"N0":40},{"start":"0xffffffffc0475000","end":"0xffffffffc049e000","size":167936,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":91,"N0":91},{"start":"0xffffffffc049e000","end":"0xffffffffc04fa000","size":376832,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":33,"N0":33},{"start":"0xffffffffc04fa000","end":"0xffffffffc051c000","size":139264,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":14,"N0":14},{"start":"0xffffffffc051c000","end":"0xffffffffc052b000","size":61440,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":28,"N0":28},{"start":"0xffffffffc052b000","end":"0xffffffffc0548000","size":118784,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0548000","end":"0xffffffffc054a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc054c000","end":"0xffffffffc0552000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc0552000","end":"0xffffffffc0558000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc0558000","end":"0xffffffffc055f000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc055f000","end":"0xffffffffc0561000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc0562000","end":"0xffffffffc0568000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc0568000","end":"0xffffffffc056f000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":38,"N0":38},{"start":"0xffffffffc056f000","end":"0xffffffffc0596000","size":159744,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0596000","end":"0xffffffffc0598000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0598000","end":"0xffffffffc059a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc059a000","end":"0xffffffffc059c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc059c000","end":"0xffffffffc059e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":15,"N0":15},{"start":"0xffffffffc05a0000","end":"0xffffffffc05b0000","size":65536,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":323,"N0":323},{"start":"0xffffffffc05b0000","end":"0xffffffffc06f4000","size":1327104,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":11,"N0":11},{"start":"0xffffffffc06f4000","end":"0xffffffffc0700000","size":49152,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":12,"N0":12},{"start":"0xffffffffc0700000","end":"0xffffffffc070d000","size":53248,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc070d000","end":"0xffffffffc070f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc070f000","end":"0xffffffffc0711000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0711000","end":"0xffffffffc0713000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":8,"N0":8},{"start":"0xffffffffc0714000","end":"0xffffffffc071d000","size":36864,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc071d000","end":"0xffffffffc071f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc071f000","end":"0xffffffffc0721000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0721000","end":"0xffffffffc0723000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0723000","end":"0xffffffffc0725000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffffffc0725000","end":"0xffffffffc0728000","size":12288,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0728000","end":"0xffffffffc072a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc072a000","end":"0xffffffffc072c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc072c000","end":"0xffffffffc0732000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0732000","end":"0xffffffffc0734000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0736000","end":"0xffffffffc0738000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0738000","end":"0xffffffffc073a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc073a000","end":"0xffffffffc073c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc073c000","end":"0xffffffffc073e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc073e000","end":"0xffffffffc0740000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0740000","end":"0xffffffffc0742000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0742000","end":"0xffffffffc0744000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0744000","end":"0xffffffffc0746000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0746000","end":"0xffffffffc0748000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0748000","end":"0xffffffffc074a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc074a000","end":"0xffffffffc074c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc074c000","end":"0xffffffffc074e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc074e000","end":"0xffffffffc0750000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0750000","end":"0xffffffffc0752000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0752000","end":"0xffffffffc0754000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0754000","end":"0xffffffffc0756000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0756000","end":"0xffffffffc0758000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0758000","end":"0xffffffffc075a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc075a000","end":"0xffffffffc075c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc075c000","end":"0xffffffffc075e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc075e000","end":"0xffffffffc0763000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":19,"N0":19},{"start":"0xffffffffc0763000","end":"0xffffffffc0777000","size":81920,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc0777000","end":"0xffffffffc077c000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc077c000","end":"0xffffffffc077e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":23,"N0":23},{"start":"0xffffffffc0780000","end":"0xffffffffc0798000","size":98304,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc0798000","end":"0xffffffffc079e000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc079e000","end":"0xffffffffc07a0000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc07a0000","end":"0xffffffffc07a2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":14,"N0":14},{"start":"0xffffffffc07a3000","end":"0xffffffffc07b2000","size":61440,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc07b2000","end":"0xffffffffc07b7000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc07b7000","end":"0xffffffffc07b9000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":8,"N0":8},{"start":"0xffffffffc07ba000","end":"0xffffffffc07c3000","size":36864,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":7,"N0":7},{"start":"0xffffffffc07c3000","end":"0xffffffffc07cb000","size":32768,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc07cb000","end":"0xffffffffc07cd000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc07cf000","end":"0xffffffffc07d4000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":10,"N0":10},{"start":"0xffffffffc07d6000","end":"0xffffffffc07e1000","size":45056,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":60,"N0":60},{"start":"0xffffffffc07e1000","end":"0xffffffffc081e000","size":249856,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc081e000","end":"0xffffffffc0823000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":7,"N0":7},{"start":"0xffffffffc0823000","end":"0xffffffffc082b000","size":32768,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc082b000","end":"0xffffffffc0832000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":29,"N0":29},{"start":"0xffffffffc0833000","end":"0xffffffffc0851000","size":122880,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":9,"N0":9},{"start":"0xffffffffc0851000","end":"0xffffffffc085b000","size":40960,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc085b000","end":"0xffffffffc085d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":14,"N0":14},{"start":"0xffffffffc085d000","end":"0xffffffffc086c000","size":61440,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":147,"N0":147},{"start":"0xffffffffc086c000","end":"0xffffffffc0900000","size":606208,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0900000","end":"0xffffffffc0902000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0902000","end":"0xffffffffc0904000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc0904000","end":"0xffffffffc090b000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc090b000","end":"0xffffffffc0911000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":14,"N0":14},{"start":"0xffffffffc0912000","end":"0xffffffffc0921000","size":61440,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc0921000","end":"0xffffffffc0927000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc0929000","end":"0xffffffffc092f000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":7,"N0":7},{"start":"0xffffffffc092f000","end":"0xffffffffc0937000","size":32768,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc0937000","end":"0xffffffffc093c000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc093c000","end":"0xffffffffc0941000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc0941000","end":"0xffffffffc0947000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":5,"N0":5},{"start":"0xffffffffc0947000","end":"0xffffffffc094d000","size":24576,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":24,"N0":24},{"start":"0xffffffffc094e000","end":"0xffffffffc0967000","size":102400,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc0967000","end":"0xffffffffc096c000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc096c000","end":"0xffffffffc096e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":40,"N0":40},{"start":"0xffffffffc0970000","end":"0xffffffffc0999000","size":167936,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":8,"N0":8},{"start":"0xffffffffc0999000","end":"0xffffffffc09a2000","size":36864,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc09a2000","end":"0xffffffffc09a7000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc09a7000","end":"0xffffffffc09ae000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":7,"N0":7},{"start":"0xffffffffc09ae000","end":"0xffffffffc09b6000","size":32768,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":9,"N0":9},{"start":"0xffffffffc09b6000","end":"0xffffffffc09c0000","size":40960,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09c0000","end":"0xffffffffc09c2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09c2000","end":"0xffffffffc09c4000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09c4000","end":"0xffffffffc09c6000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09c6000","end":"0xffffffffc09c8000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09c8000","end":"0xffffffffc09ca000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09ca000","end":"0xffffffffc09cc000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09cc000","end":"0xffffffffc09ce000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09ce000","end":"0xffffffffc09d0000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09d0000","end":"0xffffffffc09d2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09d2000","end":"0xffffffffc09d4000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09d4000","end":"0xffffffffc09d6000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09d6000","end":"0xffffffffc09d8000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09d8000","end":"0xffffffffc09da000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09da000","end":"0xffffffffc09dc000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09dc000","end":"0xffffffffc09de000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09de000","end":"0xffffffffc09e0000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09e0000","end":"0xffffffffc09e2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09e2000","end":"0xffffffffc09e4000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09e4000","end":"0xffffffffc09e6000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09e6000","end":"0xffffffffc09e8000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09e8000","end":"0xffffffffc09ea000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09ea000","end":"0xffffffffc09ec000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09ec000","end":"0xffffffffc09ee000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09ee000","end":"0xffffffffc09f0000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffffffc09f0000","end":"0xffffffffc09f3000","size":12288,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09f3000","end":"0xffffffffc09f5000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc09f5000","end":"0xffffffffc09f7000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":11,"N0":11},{"start":"0xffffffffc09f7000","end":"0xffffffffc0a03000","size":49152,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":9,"N0":9},{"start":"0xffffffffc0a03000","end":"0xffffffffc0a0d000","size":40960,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a0d000","end":"0xffffffffc0a0f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a0f000","end":"0xffffffffc0a11000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a11000","end":"0xffffffffc0a13000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":4,"N0":4},{"start":"0xffffffffc0a14000","end":"0xffffffffc0a19000","size":20480,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":8,"N0":8},{"start":"0xffffffffc0a1b000","end":"0xffffffffc0a24000","size":36864,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a24000","end":"0xffffffffc0a26000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a26000","end":"0xffffffffc0a28000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a28000","end":"0xffffffffc0a2a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a2a000","end":"0xffffffffc0a2c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a2c000","end":"0xffffffffc0a2e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a2e000","end":"0xffffffffc0a30000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a30000","end":"0xffffffffc0a32000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a32000","end":"0xffffffffc0a34000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a34000","end":"0xffffffffc0a36000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a36000","end":"0xffffffffc0a38000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a38000","end":"0xffffffffc0a3a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a3a000","end":"0xffffffffc0a3c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a3c000","end":"0xffffffffc0a3e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a3e000","end":"0xffffffffc0a40000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a40000","end":"0xffffffffc0a42000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a42000","end":"0xffffffffc0a44000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a44000","end":"0xffffffffc0a46000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a46000","end":"0xffffffffc0a48000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a48000","end":"0xffffffffc0a4a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a4a000","end":"0xffffffffc0a4c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a4c000","end":"0xffffffffc0a4e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a4e000","end":"0xffffffffc0a50000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a50000","end":"0xffffffffc0a52000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a52000","end":"0xffffffffc0a54000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffffffc0a54000","end":"0xffffffffc0a57000","size":12288,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a57000","end":"0xffffffffc0a59000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a59000","end":"0xffffffffc0a5b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a5b000","end":"0xffffffffc0a5d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a5d000","end":"0xffffffffc0a5f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a5f000","end":"0xffffffffc0a61000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a61000","end":"0xffffffffc0a63000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a63000","end":"0xffffffffc0a65000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a65000","end":"0xffffffffc0a67000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a67000","end":"0xffffffffc0a69000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a69000","end":"0xffffffffc0a6b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a6b000","end":"0xffffffffc0a6d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a6d000","end":"0xffffffffc0a6f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a6f000","end":"0xffffffffc0a71000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a71000","end":"0xffffffffc0a73000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a73000","end":"0xffffffffc0a75000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a75000","end":"0xffffffffc0a77000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a77000","end":"0xffffffffc0a79000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a79000","end":"0xffffffffc0a7b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a7b000","end":"0xffffffffc0a7d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a7d000","end":"0xffffffffc0a7f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a7f000","end":"0xffffffffc0a81000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a81000","end":"0xffffffffc0a83000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a83000","end":"0xffffffffc0a85000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a85000","end":"0xffffffffc0a87000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a87000","end":"0xffffffffc0a89000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a89000","end":"0xffffffffc0a8b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a8b000","end":"0xffffffffc0a8d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a8d000","end":"0xffffffffc0a8f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a8f000","end":"0xffffffffc0a91000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a91000","end":"0xffffffffc0a93000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a93000","end":"0xffffffffc0a95000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a95000","end":"0xffffffffc0a97000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a97000","end":"0xffffffffc0a99000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a99000","end":"0xffffffffc0a9b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a9b000","end":"0xffffffffc0a9d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a9d000","end":"0xffffffffc0a9f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0a9f000","end":"0xffffffffc0aa1000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffffffc0aa1000","end":"0xffffffffc0aa4000","size":12288,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aa4000","end":"0xffffffffc0aa6000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aa6000","end":"0xffffffffc0aa8000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aa8000","end":"0xffffffffc0aaa000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aaa000","end":"0xffffffffc0aac000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aac000","end":"0xffffffffc0aae000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aae000","end":"0xffffffffc0ab0000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ab0000","end":"0xffffffffc0ab2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ab2000","end":"0xffffffffc0ab4000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":6,"N0":6},{"start":"0xffffffffc0ab4000","end":"0xffffffffc0abb000","size":28672,"caller":"move_module+0x23/0x180","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ac0000","end":"0xffffffffc0ac2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ac2000","end":"0xffffffffc0ac4000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ac4000","end":"0xffffffffc0ac6000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ac6000","end":"0xffffffffc0ac8000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ac8000","end":"0xffffffffc0aca000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aca000","end":"0xffffffffc0acc000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0acc000","end":"0xffffffffc0ace000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ace000","end":"0xffffffffc0ad0000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ad0000","end":"0xffffffffc0ad2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ad2000","end":"0xffffffffc0ad4000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ad4000","end":"0xffffffffc0ad6000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ad6000","end":"0xffffffffc0ad8000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ad8000","end":"0xffffffffc0ada000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ada000","end":"0xffffffffc0adc000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0adc000","end":"0xffffffffc0ade000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ade000","end":"0xffffffffc0ae0000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ae0000","end":"0xffffffffc0ae2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ae2000","end":"0xffffffffc0ae4000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ae4000","end":"0xffffffffc0ae6000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ae6000","end":"0xffffffffc0ae8000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0ae8000","end":"0xffffffffc0aea000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aea000","end":"0xffffffffc0aec000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aec000","end":"0xffffffffc0aee000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aee000","end":"0xffffffffc0af0000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0af0000","end":"0xffffffffc0af2000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0af2000","end":"0xffffffffc0af4000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0af4000","end":"0xffffffffc0af6000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0af6000","end":"0xffffffffc0af8000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0af8000","end":"0xffffffffc0afa000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0afa000","end":"0xffffffffc0afc000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffffffc0afc000","end":"0xffffffffc0aff000","size":12288,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0aff000","end":"0xffffffffc0b01000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b01000","end":"0xffffffffc0b03000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b03000","end":"0xffffffffc0b05000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b05000","end":"0xffffffffc0b07000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b07000","end":"0xffffffffc0b09000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b09000","end":"0xffffffffc0b0b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b21000","end":"0xffffffffc0b23000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b23000","end":"0xffffffffc0b25000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b25000","end":"0xffffffffc0b27000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b27000","end":"0xffffffffc0b29000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b29000","end":"0xffffffffc0b2b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b2b000","end":"0xffffffffc0b2d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b2d000","end":"0xffffffffc0b2f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b2f000","end":"0xffffffffc0b31000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b31000","end":"0xffffffffc0b33000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b33000","end":"0xffffffffc0b35000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b35000","end":"0xffffffffc0b37000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b37000","end":"0xffffffffc0b39000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b39000","end":"0xffffffffc0b3b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b3b000","end":"0xffffffffc0b3d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b3e000","end":"0xffffffffc0b40000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b40000","end":"0xffffffffc0b42000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b42000","end":"0xffffffffc0b44000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b44000","end":"0xffffffffc0b46000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b46000","end":"0xffffffffc0b48000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b48000","end":"0xffffffffc0b4a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b4a000","end":"0xffffffffc0b4c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b4c000","end":"0xffffffffc0b4e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b4e000","end":"0xffffffffc0b50000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b50000","end":"0xffffffffc0b52000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b52000","end":"0xffffffffc0b54000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b54000","end":"0xffffffffc0b56000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b56000","end":"0xffffffffc0b58000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b58000","end":"0xffffffffc0b5a000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b5a000","end":"0xffffffffc0b5c000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b5c000","end":"0xffffffffc0b5e000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b5e000","end":"0xffffffffc0b60000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b60000","end":"0xffffffffc0b62000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b62000","end":"0xffffffffc0b64000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b64000","end":"0xffffffffc0b66000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":2,"N0":2},{"start":"0xffffffffc0b66000","end":"0xffffffffc0b69000","size":12288,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b69000","end":"0xffffffffc0b6b000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b6b000","end":"0xffffffffc0b6d000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"],"pages":1,"N0":1},{"start":"0xffffffffc0b6d000","end":"0xffffffffc0b6f000","size":8192,"caller":"bpf_jit_alloc_exec+0xe/0x10","options":["vmalloc"]},{"start":"0xffffb3c1c21a4000","end":"0xffffb3c1c21a9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c219c000","end":"0xffffb3c1c21a1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2194000","end":"0xffffb3c1c2199000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c218c000","end":"0xffffb3c1c2191000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2184000","end":"0xffffb3c1c2189000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c217c000","end":"0xffffb3c1c2181000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2174000","end":"0xffffb3c1c2179000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c216c000","end":"0xffffb3c1c2171000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2164000","end":"0xffffb3c1c2169000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c215c000","end":"0xffffb3c1c2161000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2154000","end":"0xffffb3c1c2159000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c214c000","end":"0xffffb3c1c2151000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2144000","end":"0xffffb3c1c2149000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c213c000","end":"0xffffb3c1c2141000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2134000","end":"0xffffb3c1c2139000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c212c000","end":"0xffffb3c1c2131000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2124000","end":"0xffffb3c1c2129000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c211c000","end":"0xffffb3c1c2121000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2114000","end":"0xffffb3c1c2119000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c210c000","end":"0xffffb3c1c2111000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20f4000","end":"0xffffb3c1c20f9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20fc000","end":"0xffffb3c1c2101000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c208c000","end":"0xffffb3c1c2091000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20ec000","end":"0xffffb3c1c20f1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20e4000","end":"0xffffb3c1c20e9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20dc000","end":"0xffffb3c1c20e1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20d4000","end":"0xffffb3c1c20d9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20cc000","end":"0xffffb3c1c20d1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20c4000","end":"0xffffb3c1c20c9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20bc000","end":"0xffffb3c1c20c1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20b4000","end":"0xffffb3c1c20b9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20ac000","end":"0xffffb3c1c20b1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c20a4000","end":"0xffffb3c1c20a9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c209c000","end":"0xffffb3c1c20a1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2094000","end":"0xffffb3c1c2099000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2084000","end":"0xffffb3c1c2089000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c207c000","end":"0xffffb3c1c2081000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2074000","end":"0xffffb3c1c2079000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c206c000","end":"0xffffb3c1c2071000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c152c000","end":"0xffffb3c1c1531000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2064000","end":"0xffffb3c1c2069000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c205c000","end":"0xffffb3c1c2061000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2054000","end":"0xffffb3c1c2059000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c204c000","end":"0xffffb3c1c2051000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2044000","end":"0xffffb3c1c2049000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c203c000","end":"0xffffb3c1c2041000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2034000","end":"0xffffb3c1c2039000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c202c000","end":"0xffffb3c1c2031000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2024000","end":"0xffffb3c1c2029000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c201c000","end":"0xffffb3c1c2021000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c3e4c000","end":"0xffffb3c1c3e51000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c200c000","end":"0xffffb3c1c2011000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c2004000","end":"0xffffb3c1c2009000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ffc000","end":"0xffffb3c1c2001000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fe4000","end":"0xffffb3c1c1fe9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fec000","end":"0xffffb3c1c1ff1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e9c000","end":"0xffffb3c1c1ea1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fdc000","end":"0xffffb3c1c1fe1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f84000","end":"0xffffb3c1c1f89000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fcc000","end":"0xffffb3c1c1fd1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fc4000","end":"0xffffb3c1c1fc9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fbc000","end":"0xffffb3c1c1fc1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fb4000","end":"0xffffb3c1c1fb9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fac000","end":"0xffffb3c1c1fb1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1fa4000","end":"0xffffb3c1c1fa9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f9c000","end":"0xffffb3c1c1fa1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f94000","end":"0xffffb3c1c1f99000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f8c000","end":"0xffffb3c1c1f91000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e6c000","end":"0xffffb3c1c1e71000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f7c000","end":"0xffffb3c1c1f81000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f74000","end":"0xffffb3c1c1f79000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f6c000","end":"0xffffb3c1c1f71000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f64000","end":"0xffffb3c1c1f69000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f5c000","end":"0xffffb3c1c1f61000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f54000","end":"0xffffb3c1c1f59000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f4c000","end":"0xffffb3c1c1f51000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f44000","end":"0xffffb3c1c1f49000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f3c000","end":"0xffffb3c1c1f41000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f34000","end":"0xffffb3c1c1f39000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f2c000","end":"0xffffb3c1c1f31000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f24000","end":"0xffffb3c1c1f29000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f1c000","end":"0xffffb3c1c1f21000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f14000","end":"0xffffb3c1c1f19000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f0c000","end":"0xffffb3c1c1f11000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1f04000","end":"0xffffb3c1c1f09000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1efc000","end":"0xffffb3c1c1f01000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ef4000","end":"0xffffb3c1c1ef9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1eec000","end":"0xffffb3c1c1ef1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ee4000","end":"0xffffb3c1c1ee9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1edc000","end":"0xffffb3c1c1ee1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ed4000","end":"0xffffb3c1c1ed9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ecc000","end":"0xffffb3c1c1ed1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ec4000","end":"0xffffb3c1c1ec9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ebc000","end":"0xffffb3c1c1ec1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1eb4000","end":"0xffffb3c1c1eb9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1eac000","end":"0xffffb3c1c1eb1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ea4000","end":"0xffffb3c1c1ea9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e3c000","end":"0xffffb3c1c1e41000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e94000","end":"0xffffb3c1c1e99000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e8c000","end":"0xffffb3c1c1e91000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e84000","end":"0xffffb3c1c1e89000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e7c000","end":"0xffffb3c1c1e81000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e74000","end":"0xffffb3c1c1e79000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d44000","end":"0xffffb3c1c1d49000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e64000","end":"0xffffb3c1c1e69000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e5c000","end":"0xffffb3c1c1e61000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e54000","end":"0xffffb3c1c1e59000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e4c000","end":"0xffffb3c1c1e51000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e44000","end":"0xffffb3c1c1e49000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d64000","end":"0xffffb3c1c1d69000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e34000","end":"0xffffb3c1c1e39000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e2c000","end":"0xffffb3c1c1e31000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e24000","end":"0xffffb3c1c1e29000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e1c000","end":"0xffffb3c1c1e21000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e14000","end":"0xffffb3c1c1e19000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e0c000","end":"0xffffb3c1c1e11000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1e04000","end":"0xffffb3c1c1e09000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1dfc000","end":"0xffffb3c1c1e01000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1df4000","end":"0xffffb3c1c1df9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1dec000","end":"0xffffb3c1c1df1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1de4000","end":"0xffffb3c1c1de9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ddc000","end":"0xffffb3c1c1de1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1dd4000","end":"0xffffb3c1c1dd9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1dcc000","end":"0xffffb3c1c1dd1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1dc4000","end":"0xffffb3c1c1dc9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1dbc000","end":"0xffffb3c1c1dc1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1db4000","end":"0xffffb3c1c1db9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1dac000","end":"0xffffb3c1c1db1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1da4000","end":"0xffffb3c1c1da9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d9c000","end":"0xffffb3c1c1da1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d94000","end":"0xffffb3c1c1d99000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d8c000","end":"0xffffb3c1c1d91000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d84000","end":"0xffffb3c1c1d89000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d7c000","end":"0xffffb3c1c1d81000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d74000","end":"0xffffb3c1c1d79000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d6c000","end":"0xffffb3c1c1d71000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cd4000","end":"0xffffb3c1c1cd9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d5c000","end":"0xffffb3c1c1d61000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d54000","end":"0xffffb3c1c1d59000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d4c000","end":"0xffffb3c1c1d51000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c4464000","end":"0xffffb3c1c4469000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d3c000","end":"0xffffb3c1c1d41000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d34000","end":"0xffffb3c1c1d39000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d2c000","end":"0xffffb3c1c1d31000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d24000","end":"0xffffb3c1c1d29000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d1c000","end":"0xffffb3c1c1d21000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d14000","end":"0xffffb3c1c1d19000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d0c000","end":"0xffffb3c1c1d11000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1d04000","end":"0xffffb3c1c1d09000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cfc000","end":"0xffffb3c1c1d01000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cf4000","end":"0xffffb3c1c1cf9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cec000","end":"0xffffb3c1c1cf1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c94000","end":"0xffffb3c1c1c99000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cdc000","end":"0xffffb3c1c1ce1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cb4000","end":"0xffffb3c1c1cb9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ccc000","end":"0xffffb3c1c1cd1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cc4000","end":"0xffffb3c1c1cc9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cbc000","end":"0xffffb3c1c1cc1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ca4000","end":"0xffffb3c1c1ca9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1cac000","end":"0xffffb3c1c1cb1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1be4000","end":"0xffffb3c1c1be9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c9c000","end":"0xffffb3c1c1ca1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c8c000","end":"0xffffb3c1c1c91000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c5c000","end":"0xffffb3c1c1c61000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c84000","end":"0xffffb3c1c1c89000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c7c000","end":"0xffffb3c1c1c81000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c74000","end":"0xffffb3c1c1c79000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c6c000","end":"0xffffb3c1c1c71000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c64000","end":"0xffffb3c1c1c69000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bf4000","end":"0xffffb3c1c1bf9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c54000","end":"0xffffb3c1c1c59000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c4c000","end":"0xffffb3c1c1c51000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c44000","end":"0xffffb3c1c1c49000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c3c000","end":"0xffffb3c1c1c41000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c34000","end":"0xffffb3c1c1c39000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c2c000","end":"0xffffb3c1c1c31000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c24000","end":"0xffffb3c1c1c29000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c1c000","end":"0xffffb3c1c1c21000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c14000","end":"0xffffb3c1c1c19000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c0c000","end":"0xffffb3c1c1c11000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1c04000","end":"0xffffb3c1c1c09000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bfc000","end":"0xffffb3c1c1c01000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b04000","end":"0xffffb3c1c1b09000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bec000","end":"0xffffb3c1c1bf1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b5c000","end":"0xffffb3c1c1b61000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bdc000","end":"0xffffb3c1c1be1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bd4000","end":"0xffffb3c1c1bd9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bcc000","end":"0xffffb3c1c1bd1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bc4000","end":"0xffffb3c1c1bc9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bbc000","end":"0xffffb3c1c1bc1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bb4000","end":"0xffffb3c1c1bb9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1bac000","end":"0xffffb3c1c1bb1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ba4000","end":"0xffffb3c1c1ba9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b9c000","end":"0xffffb3c1c1ba1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b94000","end":"0xffffb3c1c1b99000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b8c000","end":"0xffffb3c1c1b91000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b84000","end":"0xffffb3c1c1b89000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b7c000","end":"0xffffb3c1c1b81000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b74000","end":"0xffffb3c1c1b79000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b6c000","end":"0xffffb3c1c1b71000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b64000","end":"0xffffb3c1c1b69000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a34000","end":"0xffffb3c1c1a39000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b54000","end":"0xffffb3c1c1b59000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b4c000","end":"0xffffb3c1c1b51000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b44000","end":"0xffffb3c1c1b49000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b3c000","end":"0xffffb3c1c1b41000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b34000","end":"0xffffb3c1c1b39000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b2c000","end":"0xffffb3c1c1b31000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d98000","end":"0xffffb3c1c0d9d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d40000","end":"0xffffb3c1c0d45000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b24000","end":"0xffffb3c1c1b29000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b1c000","end":"0xffffb3c1c1b21000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b14000","end":"0xffffb3c1c1b19000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1b0c000","end":"0xffffb3c1c1b11000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1afc000","end":"0xffffb3c1c1b01000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1af4000","end":"0xffffb3c1c1af9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1aec000","end":"0xffffb3c1c1af1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ae4000","end":"0xffffb3c1c1ae9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1adc000","end":"0xffffb3c1c1ae1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ad4000","end":"0xffffb3c1c1ad9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ac4000","end":"0xffffb3c1c1ac9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1acc000","end":"0xffffb3c1c1ad1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1ab4000","end":"0xffffb3c1c1ab9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1abc000","end":"0xffffb3c1c1ac1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1aac000","end":"0xffffb3c1c1ab1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1aa4000","end":"0xffffb3c1c1aa9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a84000","end":"0xffffb3c1c1a89000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a9c000","end":"0xffffb3c1c1aa1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a94000","end":"0xffffb3c1c1a99000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a8c000","end":"0xffffb3c1c1a91000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a74000","end":"0xffffb3c1c1a79000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a7c000","end":"0xffffb3c1c1a81000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a64000","end":"0xffffb3c1c1a69000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a6c000","end":"0xffffb3c1c1a71000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a4c000","end":"0xffffb3c1c1a51000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a5c000","end":"0xffffb3c1c1a61000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a54000","end":"0xffffb3c1c1a59000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a3c000","end":"0xffffb3c1c1a41000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c19fc000","end":"0xffffb3c1c1a01000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1584000","end":"0xffffb3c1c1589000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a1c000","end":"0xffffb3c1c1a21000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c19dc000","end":"0xffffb3c1c19e1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a14000","end":"0xffffb3c1c1a19000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1a04000","end":"0xffffb3c1c1a09000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c19f4000","end":"0xffffb3c1c19f9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c19ec000","end":"0xffffb3c1c19f1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d78000","end":"0xffffb3c1c0d7d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c19e4000","end":"0xffffb3c1c19e9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c19cc000","end":"0xffffb3c1c19d1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c15c4000","end":"0xffffb3c1c15c9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c159c000","end":"0xffffb3c1c15a1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1594000","end":"0xffffb3c1c1599000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c158c000","end":"0xffffb3c1c1591000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14dc000","end":"0xffffb3c1c14e1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c157c000","end":"0xffffb3c1c1581000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1574000","end":"0xffffb3c1c1579000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c156c000","end":"0xffffb3c1c1571000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1564000","end":"0xffffb3c1c1569000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c155c000","end":"0xffffb3c1c1561000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1554000","end":"0xffffb3c1c1559000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c154c000","end":"0xffffb3c1c1551000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1544000","end":"0xffffb3c1c1549000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c153c000","end":"0xffffb3c1c1541000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1534000","end":"0xffffb3c1c1539000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1524000","end":"0xffffb3c1c1529000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1514000","end":"0xffffb3c1c1519000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c150c000","end":"0xffffb3c1c1511000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1504000","end":"0xffffb3c1c1509000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14fc000","end":"0xffffb3c1c1501000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14ec000","end":"0xffffb3c1c14f1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14e4000","end":"0xffffb3c1c14e9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c07f0000","end":"0xffffb3c1c07f5000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14d4000","end":"0xffffb3c1c14d9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c4594000","end":"0xffffb3c1c4599000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14cc000","end":"0xffffb3c1c14d1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14c4000","end":"0xffffb3c1c14c9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14bc000","end":"0xffffb3c1c14c1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14b4000","end":"0xffffb3c1c14b9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14ac000","end":"0xffffb3c1c14b1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c14a4000","end":"0xffffb3c1c14a9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c149c000","end":"0xffffb3c1c14a1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1494000","end":"0xffffb3c1c1499000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c148c000","end":"0xffffb3c1c1491000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13cc000","end":"0xffffb3c1c13d1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1444000","end":"0xffffb3c1c1449000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1484000","end":"0xffffb3c1c1489000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c147c000","end":"0xffffb3c1c1481000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1474000","end":"0xffffb3c1c1479000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c146c000","end":"0xffffb3c1c1471000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1464000","end":"0xffffb3c1c1469000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c145c000","end":"0xffffb3c1c1461000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1454000","end":"0xffffb3c1c1459000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c144c000","end":"0xffffb3c1c1451000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1434000","end":"0xffffb3c1c1439000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c143c000","end":"0xffffb3c1c1441000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1414000","end":"0xffffb3c1c1419000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c142c000","end":"0xffffb3c1c1431000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1424000","end":"0xffffb3c1c1429000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c141c000","end":"0xffffb3c1c1421000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13bc000","end":"0xffffb3c1c13c1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c140c000","end":"0xffffb3c1c1411000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13fc000","end":"0xffffb3c1c1401000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13f4000","end":"0xffffb3c1c13f9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13ec000","end":"0xffffb3c1c13f1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13e4000","end":"0xffffb3c1c13e9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13dc000","end":"0xffffb3c1c13e1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13d4000","end":"0xffffb3c1c13d9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1138000","end":"0xffffb3c1c113d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13c4000","end":"0xffffb3c1c13c9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c139c000","end":"0xffffb3c1c13a1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13b4000","end":"0xffffb3c1c13b9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13ac000","end":"0xffffb3c1c13b1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c13a4000","end":"0xffffb3c1c13a9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1320000","end":"0xffffb3c1c1325000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1394000","end":"0xffffb3c1c1399000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c138c000","end":"0xffffb3c1c1391000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1384000","end":"0xffffb3c1c1389000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1374000","end":"0xffffb3c1c1379000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c136c000","end":"0xffffb3c1c1371000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1364000","end":"0xffffb3c1c1369000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c135c000","end":"0xffffb3c1c1361000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1354000","end":"0xffffb3c1c1359000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c134c000","end":"0xffffb3c1c1351000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1344000","end":"0xffffb3c1c1349000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1328000","end":"0xffffb3c1c132d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1224000","end":"0xffffb3c1c1229000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c12e8000","end":"0xffffb3c1c12ed000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c12cc000","end":"0xffffb3c1c12d1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c12bc000","end":"0xffffb3c1c12c1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c12b4000","end":"0xffffb3c1c12b9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c12ac000","end":"0xffffb3c1c12b1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c12a4000","end":"0xffffb3c1c12a9000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c129c000","end":"0xffffb3c1c12a1000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1294000","end":"0xffffb3c1c1299000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c128c000","end":"0xffffb3c1c1291000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1284000","end":"0xffffb3c1c1289000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c127c000","end":"0xffffb3c1c1281000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1274000","end":"0xffffb3c1c1279000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c126c000","end":"0xffffb3c1c1271000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d60000","end":"0xffffb3c1c0d65000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1214000","end":"0xffffb3c1c1219000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c120c000","end":"0xffffb3c1c1211000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1158000","end":"0xffffb3c1c115d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1150000","end":"0xffffb3c1c1155000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1148000","end":"0xffffb3c1c114d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1140000","end":"0xffffb3c1c1145000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c07c8000","end":"0xffffb3c1c07cd000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c110c000","end":"0xffffb3c1c1111000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c103c000","end":"0xffffb3c1c1041000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1024000","end":"0xffffb3c1c1029000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c1008000","end":"0xffffb3c1c100d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0fb8000","end":"0xffffb3c1c0fbd000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0f78000","end":"0xffffb3c1c0f7d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0e08000","end":"0xffffb3c1c0e0d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0e00000","end":"0xffffb3c1c0e05000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0df8000","end":"0xffffb3c1c0dfd000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0df0000","end":"0xffffb3c1c0df5000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0de8000","end":"0xffffb3c1c0ded000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0de0000","end":"0xffffb3c1c0de5000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0dd8000","end":"0xffffb3c1c0ddd000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0dd0000","end":"0xffffb3c1c0dd5000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0dc0000","end":"0xffffb3c1c0dc5000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0db0000","end":"0xffffb3c1c0db5000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0da0000","end":"0xffffb3c1c0da5000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d90000","end":"0xffffb3c1c0d95000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d68000","end":"0xffffb3c1c0d6d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d58000","end":"0xffffb3c1c0d5d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d88000","end":"0xffffb3c1c0d8d000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d80000","end":"0xffffb3c1c0d85000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0d70000","end":"0xffffb3c1c0d75000","size":20480,"caller":"unpurged vm_area","options":[]},{"start":"0xffffb3c1c0063000","end":"0xffffb3c1c0065000","size":8192,"caller":"unpurged vm_area","options":[]}] diff --git a/tests/fixtures/linux-proc/vmstat b/tests/fixtures/linux-proc/vmstat new file mode 100644 index 00000000..01d2ca03 --- /dev/null +++ b/tests/fixtures/linux-proc/vmstat @@ -0,0 +1,147 @@ +nr_free_pages 615337 +nr_zone_inactive_anon 39 +nr_zone_active_anon 34838 +nr_zone_inactive_file 104036 +nr_zone_active_file 130601 +nr_zone_unevictable 4897 +nr_zone_write_pending 45 +nr_mlock 4897 +nr_page_table_pages 548 +nr_kernel_stack 5984 +nr_bounce 0 +nr_zspages 0 +nr_free_cma 0 +numa_hit 1910597 +numa_miss 0 +numa_foreign 0 +numa_interleave 66040 +numa_local 1910597 +numa_other 0 +nr_inactive_anon 39 +nr_active_anon 34838 +nr_inactive_file 104036 +nr_active_file 130601 +nr_unevictable 4897 +nr_slab_reclaimable 49011 +nr_slab_unreclaimable 26172 +nr_isolated_anon 0 +nr_isolated_file 0 +workingset_nodes 0 +workingset_refault 0 +workingset_activate 0 +workingset_restore 0 +workingset_nodereclaim 0 +nr_anon_pages 40298 +nr_mapped 25087 +nr_file_pages 234112 +nr_dirty 45 +nr_writeback 0 +nr_writeback_temp 0 +nr_shmem 395 +nr_shmem_hugepages 0 +nr_shmem_pmdmapped 0 +nr_file_hugepages 0 +nr_file_pmdmapped 0 +nr_anon_transparent_hugepages 0 +nr_vmscan_write 0 +nr_vmscan_immediate_reclaim 0 +nr_dirtied 167091 +nr_written 143439 +nr_kernel_misc_reclaimable 0 +nr_foll_pin_acquired 0 +nr_foll_pin_released 0 +nr_dirty_threshold 163943 +nr_dirty_background_threshold 81871 +pgpgin 625466 +pgpgout 706252 +pswpin 0 +pswpout 0 +pgalloc_dma 144 +pgalloc_dma32 597148 +pgalloc_normal 1423654 +pgalloc_movable 0 +allocstall_dma 0 +allocstall_dma32 0 +allocstall_normal 0 +allocstall_movable 0 +pgskip_dma 0 +pgskip_dma32 0 +pgskip_normal 0 +pgskip_movable 0 +pgfree 2637206 +pgactivate 136726 +pgdeactivate 0 +pglazyfree 3610 +pgfault 1195623 +pgmajfault 1713 +pglazyfreed 0 +pgrefill 0 +pgsteal_kswapd 0 +pgsteal_direct 0 +pgscan_kswapd 0 +pgscan_direct 0 +pgscan_direct_throttle 0 +pgscan_anon 0 +pgscan_file 0 +pgsteal_anon 0 +pgsteal_file 0 +zone_reclaim_failed 0 +pginodesteal 0 +slabs_scanned 0 +kswapd_inodesteal 0 +kswapd_low_wmark_hit_quickly 0 +kswapd_high_wmark_hit_quickly 0 +pageoutrun 0 +pgrotated 0 +drop_pagecache 0 +drop_slab 0 +oom_kill 0 +numa_pte_updates 0 +numa_huge_pte_updates 0 +numa_hint_faults 0 +numa_hint_faults_local 0 +numa_pages_migrated 0 +pgmigrate_success 0 +pgmigrate_fail 0 +compact_migrate_scanned 0 +compact_free_scanned 0 +compact_isolated 0 +compact_stall 0 +compact_fail 0 +compact_success 0 +compact_daemon_wake 0 +compact_daemon_migrate_scanned 0 +compact_daemon_free_scanned 0 +htlb_buddy_alloc_success 0 +htlb_buddy_alloc_fail 0 +unevictable_pgs_culled 66408 +unevictable_pgs_scanned 0 +unevictable_pgs_rescued 206 +unevictable_pgs_mlocked 5103 +unevictable_pgs_munlocked 206 +unevictable_pgs_cleared 0 +unevictable_pgs_stranded 0 +thp_fault_alloc 0 +thp_fault_fallback 0 +thp_fault_fallback_charge 0 +thp_collapse_alloc 1 +thp_collapse_alloc_failed 0 +thp_file_alloc 0 +thp_file_fallback 0 +thp_file_fallback_charge 0 +thp_file_mapped 0 +thp_split_page 1 +thp_split_page_failed 0 +thp_deferred_split_page 1 +thp_split_pmd 1 +thp_split_pud 0 +thp_zero_page_alloc 0 +thp_zero_page_alloc_failed 0 +thp_swpout 0 +thp_swpout_fallback 0 +balloon_inflate 0 +balloon_deflate 0 +balloon_migrate 0 +swap_ra 0 +swap_ra_hit 0 +nr_unstable 0 diff --git a/tests/fixtures/linux-proc/vmstat.json b/tests/fixtures/linux-proc/vmstat.json new file mode 100644 index 00000000..ebf92ce9 --- /dev/null +++ b/tests/fixtures/linux-proc/vmstat.json @@ -0,0 +1 @@ +{"nr_free_pages":615337,"nr_zone_inactive_anon":39,"nr_zone_active_anon":34838,"nr_zone_inactive_file":104036,"nr_zone_active_file":130601,"nr_zone_unevictable":4897,"nr_zone_write_pending":45,"nr_mlock":4897,"nr_page_table_pages":548,"nr_kernel_stack":5984,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":1910597,"numa_miss":0,"numa_foreign":0,"numa_interleave":66040,"numa_local":1910597,"numa_other":0,"nr_inactive_anon":39,"nr_active_anon":34838,"nr_inactive_file":104036,"nr_active_file":130601,"nr_unevictable":4897,"nr_slab_reclaimable":49011,"nr_slab_unreclaimable":26172,"nr_isolated_anon":0,"nr_isolated_file":0,"workingset_nodes":0,"workingset_refault":0,"workingset_activate":0,"workingset_restore":0,"workingset_nodereclaim":0,"nr_anon_pages":40298,"nr_mapped":25087,"nr_file_pages":234112,"nr_dirty":45,"nr_writeback":0,"nr_writeback_temp":0,"nr_shmem":395,"nr_shmem_hugepages":0,"nr_shmem_pmdmapped":0,"nr_file_hugepages":0,"nr_file_pmdmapped":0,"nr_anon_transparent_hugepages":0,"nr_vmscan_write":0,"nr_vmscan_immediate_reclaim":0,"nr_dirtied":167091,"nr_written":143439,"nr_kernel_misc_reclaimable":0,"nr_foll_pin_acquired":0,"nr_foll_pin_released":0,"nr_dirty_threshold":163943,"nr_dirty_background_threshold":81871,"pgpgin":625466,"pgpgout":706252,"pswpin":0,"pswpout":0,"pgalloc_dma":144,"pgalloc_dma32":597148,"pgalloc_normal":1423654,"pgalloc_movable":0,"allocstall_dma":0,"allocstall_dma32":0,"allocstall_normal":0,"allocstall_movable":0,"pgskip_dma":0,"pgskip_dma32":0,"pgskip_normal":0,"pgskip_movable":0,"pgfree":2637206,"pgactivate":136726,"pgdeactivate":0,"pglazyfree":3610,"pgfault":1195623,"pgmajfault":1713,"pglazyfreed":0,"pgrefill":0,"pgsteal_kswapd":0,"pgsteal_direct":0,"pgscan_kswapd":0,"pgscan_direct":0,"pgscan_direct_throttle":0,"pgscan_anon":0,"pgscan_file":0,"pgsteal_anon":0,"pgsteal_file":0,"zone_reclaim_failed":0,"pginodesteal":0,"slabs_scanned":0,"kswapd_inodesteal":0,"kswapd_low_wmark_hit_quickly":0,"kswapd_high_wmark_hit_quickly":0,"pageoutrun":0,"pgrotated":0,"drop_pagecache":0,"drop_slab":0,"oom_kill":0,"numa_pte_updates":0,"numa_huge_pte_updates":0,"numa_hint_faults":0,"numa_hint_faults_local":0,"numa_pages_migrated":0,"pgmigrate_success":0,"pgmigrate_fail":0,"compact_migrate_scanned":0,"compact_free_scanned":0,"compact_isolated":0,"compact_stall":0,"compact_fail":0,"compact_success":0,"compact_daemon_wake":0,"compact_daemon_migrate_scanned":0,"compact_daemon_free_scanned":0,"htlb_buddy_alloc_success":0,"htlb_buddy_alloc_fail":0,"unevictable_pgs_culled":66408,"unevictable_pgs_scanned":0,"unevictable_pgs_rescued":206,"unevictable_pgs_mlocked":5103,"unevictable_pgs_munlocked":206,"unevictable_pgs_cleared":0,"unevictable_pgs_stranded":0,"thp_fault_alloc":0,"thp_fault_fallback":0,"thp_fault_fallback_charge":0,"thp_collapse_alloc":1,"thp_collapse_alloc_failed":0,"thp_file_alloc":0,"thp_file_fallback":0,"thp_file_fallback_charge":0,"thp_file_mapped":0,"thp_split_page":1,"thp_split_page_failed":0,"thp_deferred_split_page":1,"thp_split_pmd":1,"thp_split_pud":0,"thp_zero_page_alloc":0,"thp_zero_page_alloc_failed":0,"thp_swpout":0,"thp_swpout_fallback":0,"balloon_inflate":0,"balloon_deflate":0,"balloon_migrate":0,"swap_ra":0,"swap_ra_hit":0,"nr_unstable":0} diff --git a/tests/fixtures/linux-proc/zoneinfo b/tests/fixtures/linux-proc/zoneinfo new file mode 100644 index 00000000..b26d8069 --- /dev/null +++ b/tests/fixtures/linux-proc/zoneinfo @@ -0,0 +1,175 @@ +Node 0, zone DMA + per-node stats + nr_inactive_anon 39 + nr_active_anon 34839 + nr_inactive_file 104172 + nr_active_file 130748 + nr_unevictable 4897 + nr_slab_reclaimable 49017 + nr_slab_unreclaimable 26177 + nr_isolated_anon 0 + nr_isolated_file 0 + workingset_nodes 0 + workingset_refault 0 + workingset_activate 0 + workingset_restore 0 + workingset_nodereclaim 0 + nr_anon_pages 40299 + nr_mapped 25140 + nr_file_pages 234396 + nr_dirty 0 + nr_writeback 0 + nr_writeback_temp 0 + nr_shmem 395 + nr_shmem_hugepages 0 + nr_shmem_pmdmapped 0 + nr_file_hugepages 0 + nr_file_pmdmapped 0 + nr_anon_transparent_hugepages 0 + nr_vmscan_write 0 + nr_vmscan_immediate_reclaim 0 + nr_dirtied 168223 + nr_written 144616 + nr_kernel_misc_reclaimable 0 + nr_foll_pin_acquired 0 + nr_foll_pin_released 0 + pages free 3832 + min 68 + low 85 + high 102 + spanned 4095 + present 3997 + managed 3976 + protection: (0, 2871, 3795, 3795, 3795) + nr_free_pages 3832 + nr_zone_inactive_anon 0 + nr_zone_active_anon 0 + nr_zone_inactive_file 0 + nr_zone_active_file 0 + nr_zone_unevictable 0 + nr_zone_write_pending 0 + nr_mlock 0 + nr_page_table_pages 0 + nr_kernel_stack 0 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 3 + numa_miss 0 + numa_foreign 0 + numa_interleave 1 + numa_local 3 + numa_other 0 + pagesets + cpu: 0 + count: 0 + high: 0 + batch: 1 + vm stats threshold: 4 + cpu: 1 + count: 0 + high: 0 + batch: 1 + vm stats threshold: 4 + node_unreclaimable: 0 + start_pfn: 1 +Node 0, zone DMA32 + pages free 606010 + min 12729 + low 15911 + high 19093 + spanned 1044480 + present 782288 + managed 758708 + protection: (0, 0, 924, 924, 924) + nr_free_pages 606010 + nr_zone_inactive_anon 4 + nr_zone_active_anon 17380 + nr_zone_inactive_file 41785 + nr_zone_active_file 64545 + nr_zone_unevictable 5 + nr_zone_write_pending 0 + nr_mlock 5 + nr_page_table_pages 101 + nr_kernel_stack 224 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 576595 + numa_miss 0 + numa_foreign 0 + numa_interleave 2 + numa_local 576595 + numa_other 0 + pagesets + cpu: 0 + count: 253 + high: 378 + batch: 63 + vm stats threshold: 24 + cpu: 1 + count: 243 + high: 378 + batch: 63 + vm stats threshold: 24 + node_unreclaimable: 0 + start_pfn: 4096 +Node 0, zone Normal + pages free 5113 + min 4097 + low 5121 + high 6145 + spanned 262144 + present 262144 + managed 236634 + protection: (0, 0, 0, 0, 0) + nr_free_pages 5113 + nr_zone_inactive_anon 35 + nr_zone_active_anon 17459 + nr_zone_inactive_file 62387 + nr_zone_active_file 66203 + nr_zone_unevictable 4892 + nr_zone_write_pending 0 + nr_mlock 4892 + nr_page_table_pages 447 + nr_kernel_stack 5760 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 1338441 + numa_miss 0 + numa_foreign 0 + numa_interleave 66037 + numa_local 1338441 + numa_other 0 + pagesets + cpu: 0 + count: 340 + high: 378 + batch: 63 + vm stats threshold: 16 + cpu: 1 + count: 174 + high: 378 + batch: 63 + vm stats threshold: 16 + node_unreclaimable: 0 + start_pfn: 1048576 +Node 0, zone Movable + pages free 0 + min 0 + low 0 + high 0 + spanned 0 + present 0 + managed 0 + protection: (0, 0, 0, 0, 0) +Node 0, zone Device + pages free 0 + min 0 + low 0 + high 0 + spanned 0 + present 0 + managed 0 + protection: (0, 0, 0, 0, 0) diff --git a/tests/fixtures/linux-proc/zoneinfo.json b/tests/fixtures/linux-proc/zoneinfo.json new file mode 100644 index 00000000..122b6b00 --- /dev/null +++ b/tests/fixtures/linux-proc/zoneinfo.json @@ -0,0 +1 @@ +[{"node":0,"DMA":{"pages":{"free":3832,"min":68,"low":85,"high":102,"spanned":4095,"present":3997,"managed":3976,"protection":[0,2871,3795,3795,3795],"nr_free_pages":3832,"nr_zone_inactive_anon":0,"nr_zone_active_anon":0,"nr_zone_inactive_file":0,"nr_zone_active_file":0,"nr_zone_unevictable":0,"nr_zone_write_pending":0,"nr_mlock":0,"nr_page_table_pages":0,"nr_kernel_stack":0,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":3,"numa_miss":0,"numa_foreign":0,"numa_interleave":1,"numa_local":3,"numa_other":0},"pagesets":[{"cpu":0,"count":0,"high":0,"batch":1,"vm stats threshold":4},{"cpu":1,"count":0,"high":0,"batch":1,"vm stats threshold":4,"node_unreclaimable":0,"start_pfn":1}]},"nr_inactive_anon":39,"nr_active_anon":34839,"nr_inactive_file":104172,"nr_active_file":130748,"nr_unevictable":4897,"nr_slab_reclaimable":49017,"nr_slab_unreclaimable":26177,"nr_isolated_anon":0,"nr_isolated_file":0,"workingset_nodes":0,"workingset_refault":0,"workingset_activate":0,"workingset_restore":0,"workingset_nodereclaim":0,"nr_anon_pages":40299,"nr_mapped":25140,"nr_file_pages":234396,"nr_dirty":0,"nr_writeback":0,"nr_writeback_temp":0,"nr_shmem":395,"nr_shmem_hugepages":0,"nr_shmem_pmdmapped":0,"nr_file_hugepages":0,"nr_file_pmdmapped":0,"nr_anon_transparent_hugepages":0,"nr_vmscan_write":0,"nr_vmscan_immediate_reclaim":0,"nr_dirtied":168223,"nr_written":144616,"nr_kernel_misc_reclaimable":0,"nr_foll_pin_acquired":0,"nr_foll_pin_released":0,"DMA32":{"pages":{"free":606010,"min":12729,"low":15911,"high":19093,"spanned":1044480,"present":782288,"managed":758708,"protection":[0,0,924,924,924],"nr_free_pages":606010,"nr_zone_inactive_anon":4,"nr_zone_active_anon":17380,"nr_zone_inactive_file":41785,"nr_zone_active_file":64545,"nr_zone_unevictable":5,"nr_zone_write_pending":0,"nr_mlock":5,"nr_page_table_pages":101,"nr_kernel_stack":224,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":576595,"numa_miss":0,"numa_foreign":0,"numa_interleave":2,"numa_local":576595,"numa_other":0},"pagesets":[{"cpu":0,"count":253,"high":378,"batch":63,"vm stats threshold":24},{"cpu":1,"count":243,"high":378,"batch":63,"vm stats threshold":24,"node_unreclaimable":0,"start_pfn":4096}]},"Normal":{"pages":{"free":5113,"min":4097,"low":5121,"high":6145,"spanned":262144,"present":262144,"managed":236634,"protection":[0,0,0,0,0],"nr_free_pages":5113,"nr_zone_inactive_anon":35,"nr_zone_active_anon":17459,"nr_zone_inactive_file":62387,"nr_zone_active_file":66203,"nr_zone_unevictable":4892,"nr_zone_write_pending":0,"nr_mlock":4892,"nr_page_table_pages":447,"nr_kernel_stack":5760,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":1338441,"numa_miss":0,"numa_foreign":0,"numa_interleave":66037,"numa_local":1338441,"numa_other":0},"pagesets":[{"cpu":0,"count":340,"high":378,"batch":63,"vm stats threshold":16},{"cpu":1,"count":174,"high":378,"batch":63,"vm stats threshold":16,"node_unreclaimable":0,"start_pfn":1048576}]},"Movable":{"pages":{"free":0,"min":0,"low":0,"high":0,"spanned":0,"present":0,"managed":0,"protection":[0,0,0,0,0]}},"Device":{"pages":{"free":0,"min":0,"low":0,"high":0,"spanned":0,"present":0,"managed":0,"protection":[0,0,0,0,0]}}}] diff --git a/tests/fixtures/linux-proc/zoneinfo2 b/tests/fixtures/linux-proc/zoneinfo2 new file mode 100644 index 00000000..53485c7e --- /dev/null +++ b/tests/fixtures/linux-proc/zoneinfo2 @@ -0,0 +1,363 @@ +Node 0, zone DMA + per-node stats + nr_inactive_anon 39 + nr_active_anon 34839 + nr_inactive_file 104172 + nr_active_file 130748 + nr_unevictable 4897 + nr_slab_reclaimable 49017 + nr_slab_unreclaimable 26177 + nr_isolated_anon 0 + nr_isolated_file 0 + workingset_nodes 0 + workingset_refault 0 + workingset_activate 0 + workingset_restore 0 + workingset_nodereclaim 0 + nr_anon_pages 40299 + nr_mapped 25140 + nr_file_pages 234396 + nr_dirty 0 + nr_writeback 0 + nr_writeback_temp 0 + nr_shmem 395 + nr_shmem_hugepages 0 + nr_shmem_pmdmapped 0 + nr_file_hugepages 0 + nr_file_pmdmapped 0 + nr_anon_transparent_hugepages 0 + nr_vmscan_write 0 + nr_vmscan_immediate_reclaim 0 + nr_dirtied 168223 + nr_written 144616 + nr_kernel_misc_reclaimable 0 + nr_foll_pin_acquired 0 + nr_foll_pin_released 0 + pages free 3832 + min 68 + low 85 + high 102 + spanned 4095 + present 3997 + managed 3976 + protection: (0, 2871, 3795, 3795, 3795) + nr_free_pages 3832 + nr_zone_inactive_anon 0 + nr_zone_active_anon 0 + nr_zone_inactive_file 0 + nr_zone_active_file 0 + nr_zone_unevictable 0 + nr_zone_write_pending 0 + nr_mlock 0 + nr_page_table_pages 0 + nr_kernel_stack 0 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 3 + numa_miss 0 + numa_foreign 0 + numa_interleave 1 + numa_local 3 + numa_other 0 + pagesets + cpu: 0 + count: 0 + high: 0 + batch: 1 + vm stats threshold: 4 + cpu: 1 + count: 0 + high: 0 + batch: 1 + vm stats threshold: 4 + node_unreclaimable: 0 + start_pfn: 1 +Node 0, zone DMA32 + pages free 606010 + min 12729 + low 15911 + high 19093 + spanned 1044480 + present 782288 + managed 758708 + protection: (0, 0, 924, 924, 924) + nr_free_pages 606010 + nr_zone_inactive_anon 4 + nr_zone_active_anon 17380 + nr_zone_inactive_file 41785 + nr_zone_active_file 64545 + nr_zone_unevictable 5 + nr_zone_write_pending 0 + nr_mlock 5 + nr_page_table_pages 101 + nr_kernel_stack 224 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 576595 + numa_miss 0 + numa_foreign 0 + numa_interleave 2 + numa_local 576595 + numa_other 0 + pagesets + cpu: 0 + count: 253 + high: 378 + batch: 63 + vm stats threshold: 24 + cpu: 1 + count: 243 + high: 378 + batch: 63 + vm stats threshold: 24 + node_unreclaimable: 0 + start_pfn: 4096 +Node 0, zone Normal + pages free 5113 + min 4097 + low 5121 + high 6145 + spanned 262144 + present 262144 + managed 236634 + protection: (0, 0, 0, 0, 0) + nr_free_pages 5113 + nr_zone_inactive_anon 35 + nr_zone_active_anon 17459 + nr_zone_inactive_file 62387 + nr_zone_active_file 66203 + nr_zone_unevictable 4892 + nr_zone_write_pending 0 + nr_mlock 4892 + nr_page_table_pages 447 + nr_kernel_stack 5760 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 1338441 + numa_miss 0 + numa_foreign 0 + numa_interleave 66037 + numa_local 1338441 + numa_other 0 + pagesets + cpu: 0 + count: 340 + high: 378 + batch: 63 + vm stats threshold: 16 + cpu: 1 + count: 174 + high: 378 + batch: 63 + vm stats threshold: 16 + node_unreclaimable: 0 + start_pfn: 1048576 +Node 0, zone Movable + pages free 0 + min 0 + low 0 + high 0 + spanned 0 + present 0 + managed 0 + protection: (0, 0, 0, 0, 0) +Node 0, zone Device + pages free 0 + min 0 + low 0 + high 0 + spanned 0 + present 0 + managed 0 + protection: (0, 0, 0, 0, 0) +Node 1, zone DMA + per-node stats + nr_inactive_anon 39 + nr_active_anon 34839 + nr_inactive_file 104172 + nr_active_file 130748 + nr_unevictable 4897 + nr_slab_reclaimable 49017 + nr_slab_unreclaimable 26177 + nr_isolated_anon 0 + nr_isolated_file 0 + workingset_nodes 0 + workingset_refault 0 + workingset_activate 0 + workingset_restore 0 + workingset_nodereclaim 0 + nr_anon_pages 40299 + nr_mapped 25140 + nr_file_pages 234396 + nr_dirty 0 + nr_writeback 0 + nr_writeback_temp 0 + nr_shmem 395 + nr_shmem_hugepages 0 + nr_shmem_pmdmapped 0 + nr_file_hugepages 0 + nr_file_pmdmapped 0 + nr_anon_transparent_hugepages 0 + nr_vmscan_write 0 + nr_vmscan_immediate_reclaim 0 + nr_dirtied 168223 + nr_written 144616 + nr_kernel_misc_reclaimable 0 + nr_foll_pin_acquired 0 + nr_foll_pin_released 0 + pages free 3832 + min 68 + low 85 + high 102 + spanned 4095 + present 3997 + managed 3976 + protection: (0, 2871, 3795, 3795, 3795) + nr_free_pages 3832 + nr_zone_inactive_anon 0 + nr_zone_active_anon 0 + nr_zone_inactive_file 0 + nr_zone_active_file 0 + nr_zone_unevictable 0 + nr_zone_write_pending 0 + nr_mlock 0 + nr_page_table_pages 0 + nr_kernel_stack 0 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 3 + numa_miss 0 + numa_foreign 0 + numa_interleave 1 + numa_local 3 + numa_other 0 + pagesets + cpu: 0 + count: 0 + high: 0 + batch: 1 + vm stats threshold: 4 + cpu: 1 + count: 0 + high: 0 + batch: 1 + vm stats threshold: 4 + node_unreclaimable: 0 + start_pfn: 1 +Node 1, zone DMA32 + pages free 606010 + min 12729 + low 15911 + high 19093 + spanned 1044480 + present 782288 + managed 758708 + protection: (0, 0, 924, 924, 924) + nr_free_pages 606010 + nr_zone_inactive_anon 4 + nr_zone_active_anon 17380 + nr_zone_inactive_file 41785 + nr_zone_active_file 64545 + nr_zone_unevictable 5 + nr_zone_write_pending 0 + nr_mlock 5 + nr_page_table_pages 101 + nr_kernel_stack 224 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 576595 + numa_miss 0 + numa_foreign 0 + numa_interleave 2 + numa_local 576595 + numa_other 0 + pagesets + cpu: 0 + count: 253 + high: 378 + batch: 63 + vm stats threshold: 24 + cpu: 1 + count: 243 + high: 378 + batch: 63 + vm stats threshold: 24 + node_unreclaimable: 0 + start_pfn: 4096 +Node 1, zone Normal + pages free 5113 + min 4097 + low 5121 + high 6145 + spanned 262144 + present 262144 + managed 236634 + protection: (0, 0, 0, 0, 0) + nr_free_pages 5113 + nr_zone_inactive_anon 35 + nr_zone_active_anon 17459 + nr_zone_inactive_file 62387 + nr_zone_active_file 66203 + nr_zone_unevictable 4892 + nr_zone_write_pending 0 + nr_mlock 4892 + nr_page_table_pages 447 + nr_kernel_stack 5760 + nr_bounce 0 + nr_zspages 0 + nr_free_cma 0 + numa_hit 1338441 + numa_miss 0 + numa_foreign 0 + numa_interleave 66037 + numa_local 1338441 + numa_other 0 + pagesets + cpu: 0 + count: 340 + high: 378 + batch: 63 + vm stats threshold: 16 + cpu: 1 + count: 174 + high: 378 + batch: 63 + vm stats threshold: 16 + node_unreclaimable: 0 + start_pfn: 1048576 +Node 1, zone Movable + pages free 0 + min 0 + low 0 + high 0 + spanned 0 + present 0 + managed 0 + protection: (0, 0, 0, 0, 0) +Node 1, zone Device + pages free 0 + min 0 + low 0 + high 0 + spanned 0 + present 0 + managed 0 + protection: (0, 0, 0, 0, 0) + pagesets + cpu: 0 + count: 8 + high: 8 + batch: 8 + vm stats threshold: 8 + cpu: 1 + count: 9 + high: 9 + batch: 9 + vm stats threshold: 9 + node_unreclaimable: 9 + start_pfn: 9 diff --git a/tests/fixtures/linux-proc/zoneinfo2.json b/tests/fixtures/linux-proc/zoneinfo2.json new file mode 100644 index 00000000..972bb843 --- /dev/null +++ b/tests/fixtures/linux-proc/zoneinfo2.json @@ -0,0 +1 @@ +[{"node":0,"DMA":{"pages":{"free":3832,"min":68,"low":85,"high":102,"spanned":4095,"present":3997,"managed":3976,"protection":[0,2871,3795,3795,3795],"nr_free_pages":3832,"nr_zone_inactive_anon":0,"nr_zone_active_anon":0,"nr_zone_inactive_file":0,"nr_zone_active_file":0,"nr_zone_unevictable":0,"nr_zone_write_pending":0,"nr_mlock":0,"nr_page_table_pages":0,"nr_kernel_stack":0,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":3,"numa_miss":0,"numa_foreign":0,"numa_interleave":1,"numa_local":3,"numa_other":0},"pagesets":[{"cpu":0,"count":0,"high":0,"batch":1,"vm stats threshold":4},{"cpu":1,"count":0,"high":0,"batch":1,"vm stats threshold":4,"node_unreclaimable":0,"start_pfn":1}]},"nr_inactive_anon":39,"nr_active_anon":34839,"nr_inactive_file":104172,"nr_active_file":130748,"nr_unevictable":4897,"nr_slab_reclaimable":49017,"nr_slab_unreclaimable":26177,"nr_isolated_anon":0,"nr_isolated_file":0,"workingset_nodes":0,"workingset_refault":0,"workingset_activate":0,"workingset_restore":0,"workingset_nodereclaim":0,"nr_anon_pages":40299,"nr_mapped":25140,"nr_file_pages":234396,"nr_dirty":0,"nr_writeback":0,"nr_writeback_temp":0,"nr_shmem":395,"nr_shmem_hugepages":0,"nr_shmem_pmdmapped":0,"nr_file_hugepages":0,"nr_file_pmdmapped":0,"nr_anon_transparent_hugepages":0,"nr_vmscan_write":0,"nr_vmscan_immediate_reclaim":0,"nr_dirtied":168223,"nr_written":144616,"nr_kernel_misc_reclaimable":0,"nr_foll_pin_acquired":0,"nr_foll_pin_released":0,"DMA32":{"pages":{"free":606010,"min":12729,"low":15911,"high":19093,"spanned":1044480,"present":782288,"managed":758708,"protection":[0,0,924,924,924],"nr_free_pages":606010,"nr_zone_inactive_anon":4,"nr_zone_active_anon":17380,"nr_zone_inactive_file":41785,"nr_zone_active_file":64545,"nr_zone_unevictable":5,"nr_zone_write_pending":0,"nr_mlock":5,"nr_page_table_pages":101,"nr_kernel_stack":224,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":576595,"numa_miss":0,"numa_foreign":0,"numa_interleave":2,"numa_local":576595,"numa_other":0},"pagesets":[{"cpu":0,"count":253,"high":378,"batch":63,"vm stats threshold":24},{"cpu":1,"count":243,"high":378,"batch":63,"vm stats threshold":24,"node_unreclaimable":0,"start_pfn":4096}]},"Normal":{"pages":{"free":5113,"min":4097,"low":5121,"high":6145,"spanned":262144,"present":262144,"managed":236634,"protection":[0,0,0,0,0],"nr_free_pages":5113,"nr_zone_inactive_anon":35,"nr_zone_active_anon":17459,"nr_zone_inactive_file":62387,"nr_zone_active_file":66203,"nr_zone_unevictable":4892,"nr_zone_write_pending":0,"nr_mlock":4892,"nr_page_table_pages":447,"nr_kernel_stack":5760,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":1338441,"numa_miss":0,"numa_foreign":0,"numa_interleave":66037,"numa_local":1338441,"numa_other":0},"pagesets":[{"cpu":0,"count":340,"high":378,"batch":63,"vm stats threshold":16},{"cpu":1,"count":174,"high":378,"batch":63,"vm stats threshold":16,"node_unreclaimable":0,"start_pfn":1048576}]},"Movable":{"pages":{"free":0,"min":0,"low":0,"high":0,"spanned":0,"present":0,"managed":0,"protection":[0,0,0,0,0]}},"Device":{"pages":{"free":0,"min":0,"low":0,"high":0,"spanned":0,"present":0,"managed":0,"protection":[0,0,0,0,0]}}},{"node":1,"DMA":{"pages":{"free":3832,"min":68,"low":85,"high":102,"spanned":4095,"present":3997,"managed":3976,"protection":[0,2871,3795,3795,3795],"nr_free_pages":3832,"nr_zone_inactive_anon":0,"nr_zone_active_anon":0,"nr_zone_inactive_file":0,"nr_zone_active_file":0,"nr_zone_unevictable":0,"nr_zone_write_pending":0,"nr_mlock":0,"nr_page_table_pages":0,"nr_kernel_stack":0,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":3,"numa_miss":0,"numa_foreign":0,"numa_interleave":1,"numa_local":3,"numa_other":0},"pagesets":[{"cpu":0,"count":0,"high":0,"batch":1,"vm stats threshold":4},{"cpu":1,"count":0,"high":0,"batch":1,"vm stats threshold":4,"node_unreclaimable":0,"start_pfn":1}]},"nr_inactive_anon":39,"nr_active_anon":34839,"nr_inactive_file":104172,"nr_active_file":130748,"nr_unevictable":4897,"nr_slab_reclaimable":49017,"nr_slab_unreclaimable":26177,"nr_isolated_anon":0,"nr_isolated_file":0,"workingset_nodes":0,"workingset_refault":0,"workingset_activate":0,"workingset_restore":0,"workingset_nodereclaim":0,"nr_anon_pages":40299,"nr_mapped":25140,"nr_file_pages":234396,"nr_dirty":0,"nr_writeback":0,"nr_writeback_temp":0,"nr_shmem":395,"nr_shmem_hugepages":0,"nr_shmem_pmdmapped":0,"nr_file_hugepages":0,"nr_file_pmdmapped":0,"nr_anon_transparent_hugepages":0,"nr_vmscan_write":0,"nr_vmscan_immediate_reclaim":0,"nr_dirtied":168223,"nr_written":144616,"nr_kernel_misc_reclaimable":0,"nr_foll_pin_acquired":0,"nr_foll_pin_released":0,"DMA32":{"pages":{"free":606010,"min":12729,"low":15911,"high":19093,"spanned":1044480,"present":782288,"managed":758708,"protection":[0,0,924,924,924],"nr_free_pages":606010,"nr_zone_inactive_anon":4,"nr_zone_active_anon":17380,"nr_zone_inactive_file":41785,"nr_zone_active_file":64545,"nr_zone_unevictable":5,"nr_zone_write_pending":0,"nr_mlock":5,"nr_page_table_pages":101,"nr_kernel_stack":224,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":576595,"numa_miss":0,"numa_foreign":0,"numa_interleave":2,"numa_local":576595,"numa_other":0},"pagesets":[{"cpu":0,"count":253,"high":378,"batch":63,"vm stats threshold":24},{"cpu":1,"count":243,"high":378,"batch":63,"vm stats threshold":24,"node_unreclaimable":0,"start_pfn":4096}]},"Normal":{"pages":{"free":5113,"min":4097,"low":5121,"high":6145,"spanned":262144,"present":262144,"managed":236634,"protection":[0,0,0,0,0],"nr_free_pages":5113,"nr_zone_inactive_anon":35,"nr_zone_active_anon":17459,"nr_zone_inactive_file":62387,"nr_zone_active_file":66203,"nr_zone_unevictable":4892,"nr_zone_write_pending":0,"nr_mlock":4892,"nr_page_table_pages":447,"nr_kernel_stack":5760,"nr_bounce":0,"nr_zspages":0,"nr_free_cma":0,"numa_hit":1338441,"numa_miss":0,"numa_foreign":0,"numa_interleave":66037,"numa_local":1338441,"numa_other":0},"pagesets":[{"cpu":0,"count":340,"high":378,"batch":63,"vm stats threshold":16},{"cpu":1,"count":174,"high":378,"batch":63,"vm stats threshold":16,"node_unreclaimable":0,"start_pfn":1048576}]},"Movable":{"pages":{"free":0,"min":0,"low":0,"high":0,"spanned":0,"present":0,"managed":0,"protection":[0,0,0,0,0]}},"Device":{"pages":{"free":0,"min":0,"low":0,"high":0,"spanned":0,"present":0,"managed":0,"protection":[0,0,0,0,0]},"pagesets":[{"cpu":0,"count":8,"high":8,"batch":8,"vm stats threshold":8},{"cpu":1,"count":9,"high":9,"batch":9,"vm stats threshold":9,"node_unreclaimable":9,"start_pfn":9}]}}] diff --git a/tests/fixtures/ubuntu-18.04/free-w.json b/tests/fixtures/ubuntu-18.04/free-w.json new file mode 100644 index 00000000..8992dbdb --- /dev/null +++ b/tests/fixtures/ubuntu-18.04/free-w.json @@ -0,0 +1 @@ +[{"type": "Mem", "total": 8053804, "used": 1262704, "free": 5830864, "shared": 60576, "buffers": 61596, "cache": 898640, "available": 6483996}, {"type": "Swap", "total": 2097152, "used": 0, "free": 2097152}] diff --git a/tests/fixtures/ubuntu-18.04/free-w.out b/tests/fixtures/ubuntu-18.04/free-w.out new file mode 100644 index 00000000..bdb41d53 --- /dev/null +++ b/tests/fixtures/ubuntu-18.04/free-w.out @@ -0,0 +1,3 @@ + total used free shared buffers cache available +Mem: 8053804 1262704 5830864 60576 61596 898640 6483996 +Swap: 2097152 0 2097152 diff --git a/tests/templates/_test_foo.py b/tests/templates/_test_foo.py index 9ca7b75c..e9440b6f 100644 --- a/tests/templates/_test_foo.py +++ b/tests/templates/_test_foo.py @@ -1,21 +1,29 @@ import os import unittest import json +from typing import Dict import jc.parsers.foo THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/foo.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_foo = f.read() + @classmethod + def setUpClass(cls): + fixtures = { + 'centos_7_7_foo': ( + 'fixtures/centos-7.7/foo.out', + 'fixtures/centos-7.7/foo.json') + } - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/foo.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_foo_json = json.loads(f.read()) + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) def test_foo_nodata(self): @@ -28,7 +36,8 @@ class MyTests(unittest.TestCase): """ Test 'foo' on Centos 7.7 """ - self.assertEqual(jc.parsers.foo.parse(self.centos_7_7_foo, quiet=True), self.centos_7_7_foo_json) + self.assertEqual(jc.parsers.foo.parse(self.f_in['centos_7_7_foo'], quiet=True), + self.f_json['centos_7_7_foo']) if __name__ == '__main__': diff --git a/tests/templates/_test_foo_s.py b/tests/templates/_test_foo_s.py index 21db72e2..675567a6 100644 --- a/tests/templates/_test_foo_s.py +++ b/tests/templates/_test_foo_s.py @@ -1,6 +1,7 @@ import os import json import unittest +from typing import Dict import jc.parsers.foo_s THIS_DIR = os.path.dirname(os.path.abspath(__file__)) @@ -10,15 +11,23 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/foo.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_foo = f.read() + @classmethod + def setUpClass(cls): + fixtures = { + 'centos_7_7_foo': ( + 'fixtures/centos-7.7/foo.out', + 'fixtures/centos-7.7/foo-streaming.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/foo-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_foo_streaming_json = json.loads(f.read()) def test_foo_s_nodata(self): """ @@ -30,7 +39,8 @@ class MyTests(unittest.TestCase): """ Test 'foo' on Centos 7.7 """ - self.assertEqual(list(jc.parsers.foo_s.parse(self.centos_7_7_foo.splitlines(), quiet=True)), self.centos_7_7_foo_streaming_json) + self.assertEqual(list(jc.parsers.foo_s.parse(self.f_in['centos_7_7_foo'].splitlines(), quiet=True)), + self.f_json['centos_7_7_foo']) if __name__ == '__main__': diff --git a/tests/test_acpi.py b/tests/test_acpi.py index 389027da..a795f88a 100644 --- a/tests/test_acpi.py +++ b/tests/test_acpi.py @@ -8,38 +8,37 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V.out'), 'r', encoding='utf-8') as f: - self.generic_acpi_V = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V.out'), 'r', encoding='utf-8') as f: + generic_acpi_V = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V2.out'), 'r', encoding='utf-8') as f: - self.generic_acpi_V2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V2.out'), 'r', encoding='utf-8') as f: + generic_acpi_V2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V3.out'), 'r', encoding='utf-8') as f: - self.generic_acpi_V3 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V3.out'), 'r', encoding='utf-8') as f: + generic_acpi_V3 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V4.out'), 'r', encoding='utf-8') as f: - self.generic_acpi_V4 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V4.out'), 'r', encoding='utf-8') as f: + generic_acpi_V4 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/acpi-V.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_acpi_V = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/acpi-V.out'), 'r', encoding='utf-8') as f: + ubuntu_18_04_acpi_V = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V.json'), 'r', encoding='utf-8') as f: - self.generic_acpi_V_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V.json'), 'r', encoding='utf-8') as f: + generic_acpi_V_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V2.json'), 'r', encoding='utf-8') as f: - self.generic_acpi_V2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V2.json'), 'r', encoding='utf-8') as f: + generic_acpi_V2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V3.json'), 'r', encoding='utf-8') as f: - self.generic_acpi_V3_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V3.json'), 'r', encoding='utf-8') as f: + generic_acpi_V3_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V4.json'), 'r', encoding='utf-8') as f: - self.generic_acpi_V4_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/acpi-V4.json'), 'r', encoding='utf-8') as f: + generic_acpi_V4_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/acpi-V.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_acpi_V_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/acpi-V.json'), 'r', encoding='utf-8') as f: + ubuntu_18_04_acpi_V_json = json.loads(f.read()) def test_acpi_nodata(self): """ diff --git a/tests/test_airport.py b/tests/test_airport.py index 67a0c16f..5d723585 100644 --- a/tests/test_airport.py +++ b/tests/test_airport.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/airport-I.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_airport_I = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/airport-I.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_airport_I = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/airport-I.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_airport_I_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/airport-I.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_airport_I_json = json.loads(f.read()) def test_airport_I_nodata(self): """ diff --git a/tests/test_airport_s.py b/tests/test_airport_s.py index fa228d5c..0789cb10 100644 --- a/tests/test_airport_s.py +++ b/tests/test_airport_s.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/airport-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_airport_s = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/airport-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_airport_s = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/airport-s.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_airport_s_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/airport-s.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_airport_s_json = json.loads(f.read()) def test_airport_s_nodata(self): """ diff --git a/tests/test_arp.py b/tests/test_arp.py index 5ac7a6c3..0dccf7f2 100644 --- a/tests/test_arp.py +++ b/tests/test_arp.py @@ -8,74 +8,73 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_arp = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp.out'), 'r', encoding='utf-8') as f: + centos_7_7_arp = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_arp = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_arp = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp-a.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_arp_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp-a.out'), 'r', encoding='utf-8') as f: + centos_7_7_arp_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp-a.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_arp_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp-a.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_arp_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp-v.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_arp_v = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp-v.out'), 'r', encoding='utf-8') as f: + centos_7_7_arp_v = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp-v.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_arp_v = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp-v.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_arp_v = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/arp-a.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_arp_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/arp-a.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_arp_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/arp-a.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_arp_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/arp-a.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_arp_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/arp-a2.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_arp_a2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/arp-a2.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_arp_a2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/arp-a.out'), 'r', encoding='utf-8') as f: - self.freebsd_arp_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/arp-a.out'), 'r', encoding='utf-8') as f: + freebsd_arp_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/arp-a.out'), 'r', encoding='utf-8') as f: - self.centos8_arp_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/arp-a.out'), 'r', encoding='utf-8') as f: + centos8_arp_a = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_arp_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp.json'), 'r', encoding='utf-8') as f: + centos_7_7_arp_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_arp_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_arp_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp-a.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_arp_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp-a.json'), 'r', encoding='utf-8') as f: + centos_7_7_arp_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp-a.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_arp_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp-a.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_arp_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp-v.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_arp_v_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/arp-v.json'), 'r', encoding='utf-8') as f: + centos_7_7_arp_v_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp-v.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_arp_v_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/arp-v.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_arp_v_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/arp-a.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_arp_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/arp-a.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_arp_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/arp-a.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_arp_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/arp-a.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_arp_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/arp-a2.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_arp_a2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/arp-a2.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_arp_a2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/arp-a.json'), 'r', encoding='utf-8') as f: - self.freebsd12_arp_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/arp-a.json'), 'r', encoding='utf-8') as f: + freebsd12_arp_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/arp-a.json'), 'r', encoding='utf-8') as f: - self.centos8_arp_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/arp-a.json'), 'r', encoding='utf-8') as f: + centos8_arp_a_json = json.loads(f.read()) def test_arp_nodata(self): """ diff --git a/tests/test_asciitable_m.py b/tests/test_asciitable_m.py index 9a29945c..b9b86a8d 100644 --- a/tests/test_asciitable_m.py +++ b/tests/test_asciitable_m.py @@ -362,7 +362,7 @@ class MyTests(unittest.TestCase): } ] - self.assertEqual(jc.parsers.asciitable_m.parse(input, quiet=False), expected) + self.assertEqual(jc.parsers.asciitable_m.parse(input, quiet=True), expected) def test_asciitable_m_markdown(self): """ diff --git a/tests/test_blkid.py b/tests/test_blkid.py index d76d3a67..656b9f95 100644 --- a/tests/test_blkid.py +++ b/tests/test_blkid.py @@ -8,68 +8,67 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid.out'), 'r', encoding='utf-8') as f: + centos_7_7_blkid = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-sda2.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_sda2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-sda2.out'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_sda2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-sda2.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_sda2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-sda2.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_sda2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-udev.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_ip_udev = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-udev.out'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_ip_udev = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-udev.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_ip_udev = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-udev.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_ip_udev = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-multi.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_ip_multi = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-multi.out'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_ip_multi = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-multi.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_ip_multi = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-multi.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_ip_multi = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-udev-multi.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_ip_udev_multi = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-udev-multi.out'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_ip_udev_multi = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-udev-multi.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_ip_udev_multi = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-udev-multi.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_ip_udev_multi = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid.json'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-sda2.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_sda2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-sda2.json'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_sda2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-sda2.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_sda2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-sda2.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_sda2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-udev.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_ip_udev_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-udev.json'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_ip_udev_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-udev.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_ip_udev_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-udev.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_ip_udev_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-multi.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_ip_multi_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-multi.json'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_ip_multi_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-multi.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_ip_multi_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-multi.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_ip_multi_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-udev-multi.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_blkid_ip_udev_multi_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/blkid-ip-udev-multi.json'), 'r', encoding='utf-8') as f: + centos_7_7_blkid_ip_udev_multi_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-udev-multi.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_blkid_ip_udev_multi_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/blkid-ip-udev-multi.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_blkid_ip_udev_multi_json = json.loads(f.read()) def test_blkid_nodata(self): """ diff --git a/tests/test_cef.py b/tests/test_cef.py index 5154bfff..b49916a0 100644 --- a/tests/test_cef.py +++ b/tests/test_cef.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/cef.out'), 'r', encoding='utf-8') as f: - self.cef = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/cef.out'), 'r', encoding='utf-8') as f: + cef = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/cef.json'), 'r', encoding='utf-8') as f: - self.cef_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/cef.json'), 'r', encoding='utf-8') as f: + cef_json = json.loads(f.read()) def test_cef_nodata(self): diff --git a/tests/test_cef_s.py b/tests/test_cef_s.py index 426d2523..1459749a 100644 --- a/tests/test_cef_s.py +++ b/tests/test_cef_s.py @@ -11,14 +11,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/cef.out'), 'r', encoding='utf-8') as f: - self.cef = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/cef.out'), 'r', encoding='utf-8') as f: + cef = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/cef-streaming.json'), 'r', encoding='utf-8') as f: - self.cef_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/cef-streaming.json'), 'r', encoding='utf-8') as f: + cef_streaming_json = json.loads(f.read()) def test_cef_s_nodata(self): """ diff --git a/tests/test_chage.py b/tests/test_chage.py index d861869c..3d6af93f 100644 --- a/tests/test_chage.py +++ b/tests/test_chage.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/chage.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_chage = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/chage.out'), 'r', encoding='utf-8') as f: + centos_7_7_chage = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/chage.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_chage_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/chage.json'), 'r', encoding='utf-8') as f: + centos_7_7_chage_json = json.loads(f.read()) def test_chage_nodata(self): diff --git a/tests/test_cksum.py b/tests/test_cksum.py index d52f8f52..48072be2 100644 --- a/tests/test_cksum.py +++ b/tests/test_cksum.py @@ -8,32 +8,31 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/cksum.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_cksum = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/cksum.out'), 'r', encoding='utf-8') as f: + centos_7_7_cksum = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sum.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sum = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sum.out'), 'r', encoding='utf-8') as f: + centos_7_7_sum = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/cksum.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_cksum = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/cksum.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_cksum = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/sum.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_sum = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/sum.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_sum = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/cksum.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_cksum_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/cksum.json'), 'r', encoding='utf-8') as f: + centos_7_7_cksum_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sum.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sum_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sum.json'), 'r', encoding='utf-8') as f: + centos_7_7_sum_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/cksum.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_cksum_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/cksum.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_cksum_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/sum.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_sum_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/sum.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_sum_json = json.loads(f.read()) def test_cksum_nodata(self): """ diff --git a/tests/test_crontab.py b/tests/test_crontab.py index f40650d2..ccb5e145 100644 --- a/tests/test_crontab.py +++ b/tests/test_crontab.py @@ -8,14 +8,14 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/crontab.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_crontab = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/crontab.out'), 'r', encoding='utf-8') as f: + centos_7_7_crontab = f.read() + + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/crontab.json'), 'r', encoding='utf-8') as f: + centos_7_7_crontab_json = json.loads(f.read()) - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/crontab.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_crontab_json = json.loads(f.read()) def test_crontab_nodata(self): """ diff --git a/tests/test_crontab_u.py b/tests/test_crontab_u.py index e191599d..9e4c07b2 100644 --- a/tests/test_crontab_u.py +++ b/tests/test_crontab_u.py @@ -8,26 +8,26 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/crontab-u.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_crontab_u = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/crontab-u.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_crontab_u = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/crontab-u.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_crontab_u = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/crontab-u.out'), 'r', encoding='utf-8') as f: + centos_7_7_crontab_u = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/crontab-u.out'), 'r', encoding='utf-8') as f: - self.debian10_crontab_u = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/crontab-u.out'), 'r', encoding='utf-8') as f: + debian10_crontab_u = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/crontab-u.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_crontab_u_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/crontab-u.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_crontab_u_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/crontab-u.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_crontab_u_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/crontab-u.json'), 'r', encoding='utf-8') as f: + centos_7_7_crontab_u_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/crontab-u.json'), 'r', encoding='utf-8') as f: + debian10_crontab_u_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/crontab-u.json'), 'r', encoding='utf-8') as f: - self.debian10_crontab_u_json = json.loads(f.read()) def test_crontab_u_nodata(self): """ diff --git a/tests/test_csv.py b/tests/test_csv.py index a62cf0f2..6e4f5cda 100644 --- a/tests/test_csv.py +++ b/tests/test_csv.py @@ -8,68 +8,68 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-biostats.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_biostats = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-biostats.csv'), 'r', encoding='utf-8') as f: + generic_csv_biostats = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-cities.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_cities = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-cities.csv'), 'r', encoding='utf-8') as f: + generic_csv_cities = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-deniro.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_deniro = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-deniro.csv'), 'r', encoding='utf-8') as f: + generic_csv_deniro = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-example.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_example = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-example.csv'), 'r', encoding='utf-8') as f: + generic_csv_example = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna.tsv'), 'r', encoding='utf-8') as f: - self.generic_csv_flyrna = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna.tsv'), 'r', encoding='utf-8') as f: + generic_csv_flyrna = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna2.tsv'), 'r', encoding='utf-8') as f: - self.generic_csv_flyrna2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna2.tsv'), 'r', encoding='utf-8') as f: + generic_csv_flyrna2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-pipe.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_homes_pipe = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-pipe.csv'), 'r', encoding='utf-8') as f: + generic_csv_homes_pipe = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_homes = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes.csv'), 'r', encoding='utf-8') as f: + generic_csv_homes = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-insurance.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_insurance = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-insurance.csv'), 'r', encoding='utf-8') as f: + generic_csv_insurance = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-doubleqouted.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_doubleqouted = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-doubleqouted.csv'), 'r', encoding='utf-8') as f: + generic_csv_doubleqouted = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-biostats.json'), 'r', encoding='utf-8') as f: - self.generic_csv_biostats_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-biostats.json'), 'r', encoding='utf-8') as f: + generic_csv_biostats_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-cities.json'), 'r', encoding='utf-8') as f: - self.generic_csv_cities_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-cities.json'), 'r', encoding='utf-8') as f: + generic_csv_cities_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-deniro.json'), 'r', encoding='utf-8') as f: - self.generic_csv_deniro_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-deniro.json'), 'r', encoding='utf-8') as f: + generic_csv_deniro_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-example.json'), 'r', encoding='utf-8') as f: - self.generic_csv_example_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-example.json'), 'r', encoding='utf-8') as f: + generic_csv_example_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna.json'), 'r', encoding='utf-8') as f: - self.generic_csv_flyrna_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna.json'), 'r', encoding='utf-8') as f: + generic_csv_flyrna_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna2.json'), 'r', encoding='utf-8') as f: - self.generic_csv_flyrna2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna2.json'), 'r', encoding='utf-8') as f: + generic_csv_flyrna2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-pipe.json'), 'r', encoding='utf-8') as f: - self.generic_csv_homes_pipe_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-pipe.json'), 'r', encoding='utf-8') as f: + generic_csv_homes_pipe_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes.json'), 'r', encoding='utf-8') as f: - self.generic_csv_homes_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes.json'), 'r', encoding='utf-8') as f: + generic_csv_homes_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-insurance.json'), 'r', encoding='utf-8') as f: - self.generic_csv_insurance_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-insurance.json'), 'r', encoding='utf-8') as f: + generic_csv_insurance_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-doubleqouted.json'), 'r', encoding='utf-8') as f: + generic_csv_doubleqouted_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-doubleqouted.json'), 'r', encoding='utf-8') as f: - self.generic_csv_doubleqouted_json = json.loads(f.read()) def test_csv_nodata(self): """ diff --git a/tests/test_csv_s.py b/tests/test_csv_s.py index 757d7cfc..a33da660 100644 --- a/tests/test_csv_s.py +++ b/tests/test_csv_s.py @@ -13,68 +13,68 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-biostats.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_biostats = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-biostats.csv'), 'r', encoding='utf-8') as f: + generic_csv_biostats = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-cities.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_cities = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-cities.csv'), 'r', encoding='utf-8') as f: + generic_csv_cities = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-deniro.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_deniro = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-deniro.csv'), 'r', encoding='utf-8') as f: + generic_csv_deniro = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-example.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_example = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-example.csv'), 'r', encoding='utf-8') as f: + generic_csv_example = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna.tsv'), 'r', encoding='utf-8') as f: - self.generic_csv_flyrna = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna.tsv'), 'r', encoding='utf-8') as f: + generic_csv_flyrna = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna2.tsv'), 'r', encoding='utf-8') as f: - self.generic_csv_flyrna2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna2.tsv'), 'r', encoding='utf-8') as f: + generic_csv_flyrna2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-pipe.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_homes_pipe = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-pipe.csv'), 'r', encoding='utf-8') as f: + generic_csv_homes_pipe = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_homes = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes.csv'), 'r', encoding='utf-8') as f: + generic_csv_homes = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-10k-sales-records.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_10k_sales_records = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-10k-sales-records.csv'), 'r', encoding='utf-8') as f: + generic_csv_10k_sales_records = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-doubleqouted.csv'), 'r', encoding='utf-8') as f: - self.generic_csv_doubleqouted = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-doubleqouted.csv'), 'r', encoding='utf-8') as f: + generic_csv_doubleqouted = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-biostats-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_biostats_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-biostats-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_biostats_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-cities-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_cities_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-cities-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_cities_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-deniro-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_deniro_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-deniro-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_deniro_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-example-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_example_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-example-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_example_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_flyrna_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_flyrna_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna2-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_flyrna2_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-flyrna2-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_flyrna2_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-pipe-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_homes_pipe_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-pipe-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_homes_pipe_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_homes_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-homes-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_homes_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-10k-sales-records-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_10k_sales_records_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-10k-sales-records-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_10k_sales_records_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-doubleqouted-streaming.json'), 'r', encoding='utf-8') as f: + generic_csv_doublequoted_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/csv-doubleqouted-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_csv_doublequoted_streaming_json = json.loads(f.read()) def test_csv_s_nodata(self): """ diff --git a/tests/test_date.py b/tests/test_date.py index fc318217..b28dadad 100644 --- a/tests/test_date.py +++ b/tests/test_date.py @@ -15,38 +15,38 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date.out'), 'r', encoding='utf-8') as f: - self.generic_date = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date.out'), 'r', encoding='utf-8') as f: + generic_date = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date-before-midnight.out'), 'r', encoding='utf-8') as f: - self.generic_date_before_midnight = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date-before-midnight.out'), 'r', encoding='utf-8') as f: + generic_date_before_midnight = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date-after-midnight.out'), 'r', encoding='utf-8') as f: - self.generic_date_after_midnight = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date-after-midnight.out'), 'r', encoding='utf-8') as f: + generic_date_after_midnight = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/date.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_04_date = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/date.out'), 'r', encoding='utf-8') as f: + ubuntu_20_04_date = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/date2.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_04_date2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/date2.out'), 'r', encoding='utf-8') as f: + ubuntu_20_04_date2 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date.json'), 'r', encoding='utf-8') as f: - self.generic_date_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date.json'), 'r', encoding='utf-8') as f: + generic_date_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date-before-midnight.json'), 'r', encoding='utf-8') as f: - self.generic_date_before_midnight_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date-before-midnight.json'), 'r', encoding='utf-8') as f: + generic_date_before_midnight_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date-after-midnight.json'), 'r', encoding='utf-8') as f: - self.generic_date_after_midnight_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/date-after-midnight.json'), 'r', encoding='utf-8') as f: + generic_date_after_midnight_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/date.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_04_date_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/date.json'), 'r', encoding='utf-8') as f: + ubuntu_20_04_date_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/date2.json'), 'r', encoding='utf-8') as f: + ubuntu_20_04_date2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/date2.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_04_date2_json = json.loads(f.read()) def test_date_nodata(self): """ diff --git a/tests/test_df.py b/tests/test_df.py index 2595dc71..3fab2c41 100644 --- a/tests/test_df.py +++ b/tests/test_df.py @@ -8,62 +8,62 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/df.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_df = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/df.out'), 'r', encoding='utf-8') as f: + centos_7_7_df = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/df.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_df = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/df.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_df = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/df.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_df = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/df.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_df = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/df.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_df = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/df.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_df = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/df-h.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_df_h = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/df-h.out'), 'r', encoding='utf-8') as f: + centos_7_7_df_h = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/df-h.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_df_h = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/df-h.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_df_h = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/df-h.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_df_h = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/df-h.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_df_h = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/df-h.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_df_h = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/df-h.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_df_h = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/df-long-filesystem.out'), 'r', encoding='utf-8') as f: - self.generic_df_long_filesystem = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/df-long-filesystem.out'), 'r', encoding='utf-8') as f: + generic_df_long_filesystem = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/df.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_df_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/df.json'), 'r', encoding='utf-8') as f: + centos_7_7_df_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/df.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_df_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/df.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_df_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/df.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_df_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/df.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_df_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/df.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_df_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/df.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_df_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/df-h.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_df_h_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/df-h.json'), 'r', encoding='utf-8') as f: + centos_7_7_df_h_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/df-h.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_df_h_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/df-h.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_df_h_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/df-h.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_df_h_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/df-h.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_df_h_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/df-h.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_df_h_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/df-h.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_df_h_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/df-long-filesystem.json'), 'r', encoding='utf-8') as f: + generic_df_long_filesystem_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/df-long-filesystem.json'), 'r', encoding='utf-8') as f: - self.generic_df_long_filesystem_json = json.loads(f.read()) def test_df_nodata(self): """ diff --git a/tests/test_dig.py b/tests/test_dig.py index 8de41ea7..b7b6eb9d 100644 --- a/tests/test_dig.py +++ b/tests/test_dig.py @@ -15,146 +15,146 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_dig = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig.out'), 'r', encoding='utf-8') as f: + centos_7_7_dig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dig = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-x.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_dig_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-x.out'), 'r', encoding='utf-8') as f: + centos_7_7_dig_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-x.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dig_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-x.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dig_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-aaaa.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_dig_aaaa = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-aaaa.out'), 'r', encoding='utf-8') as f: + centos_7_7_dig_aaaa = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-aaaa.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dig_aaaa = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-aaaa.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dig_aaaa = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-axfr.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_dig_axfr = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-axfr.out'), 'r', encoding='utf-8') as f: + centos_7_7_dig_axfr = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-axfr.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dig_axfr = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-axfr.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dig_axfr = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_dig = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_dig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-x.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_dig_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-x.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_dig_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-aaaa.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_dig_aaaa = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-aaaa.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_dig_aaaa = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-x.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-x.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-aaaa.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_aaaa = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-aaaa.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_aaaa = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-axfr.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_axfr = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-axfr.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_axfr = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-noall-answer.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_noall_answer = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-noall-answer.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_noall_answer = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-answer-spaces.out'), 'r', encoding='utf-8') as f: - self.generic_dig_answer_spaces = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-answer-spaces.out'), 'r', encoding='utf-8') as f: + generic_dig_answer_spaces = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional.out'), 'r', encoding='utf-8') as f: - self.generic_dig_additional = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional.out'), 'r', encoding='utf-8') as f: + generic_dig_additional = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional2.out'), 'r', encoding='utf-8') as f: - self.generic_dig_additional2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional2.out'), 'r', encoding='utf-8') as f: + generic_dig_additional2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional3.out'), 'r', encoding='utf-8') as f: - self.generic_dig_additional3 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional3.out'), 'r', encoding='utf-8') as f: + generic_dig_additional3 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns.out'), 'r', encoding='utf-8') as f: - self.generic_dig_edns = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns.out'), 'r', encoding='utf-8') as f: + generic_dig_edns = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns2.out'), 'r', encoding='utf-8') as f: - self.generic_dig_edns2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns2.out'), 'r', encoding='utf-8') as f: + generic_dig_edns2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns3.out'), 'r', encoding='utf-8') as f: - self.generic_dig_edns3 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns3.out'), 'r', encoding='utf-8') as f: + generic_dig_edns3 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_dig_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig.json'), 'r', encoding='utf-8') as f: + centos_7_7_dig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dig_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-x.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_dig_x_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-x.json'), 'r', encoding='utf-8') as f: + centos_7_7_dig_x_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-x.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dig_x_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-x.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dig_x_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-aaaa.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_dig_aaaa_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-aaaa.json'), 'r', encoding='utf-8') as f: + centos_7_7_dig_aaaa_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-aaaa.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dig_aaaa_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-aaaa.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dig_aaaa_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-axfr.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_dig_axfr_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-axfr.json'), 'r', encoding='utf-8') as f: + centos_7_7_dig_axfr_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-axfr.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dig_axfr_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-axfr.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dig_axfr_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_dig_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_dig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-x.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_dig_x_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-x.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_dig_x_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-aaaa.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_dig_aaaa_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-aaaa.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_dig_aaaa_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-x.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_x_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-x.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_x_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-aaaa.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_aaaa_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-aaaa.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_aaaa_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-axfr.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_axfr_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-axfr.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_axfr_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-noall-answer.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_dig_noall_answer_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-noall-answer.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_dig_noall_answer_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-answer-spaces.json'), 'r', encoding='utf-8') as f: - self.generic_dig_answer_spaces_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-answer-spaces.json'), 'r', encoding='utf-8') as f: + generic_dig_answer_spaces_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional.json'), 'r', encoding='utf-8') as f: - self.generic_dig_additional_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional.json'), 'r', encoding='utf-8') as f: + generic_dig_additional_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional2.json'), 'r', encoding='utf-8') as f: - self.generic_dig_additional2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional2.json'), 'r', encoding='utf-8') as f: + generic_dig_additional2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional3.json'), 'r', encoding='utf-8') as f: - self.generic_dig_additional3_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-additional3.json'), 'r', encoding='utf-8') as f: + generic_dig_additional3_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns.json'), 'r', encoding='utf-8') as f: - self.generic_dig_edns_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns.json'), 'r', encoding='utf-8') as f: + generic_dig_edns_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns2.json'), 'r', encoding='utf-8') as f: - self.generic_dig_edns2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns2.json'), 'r', encoding='utf-8') as f: + generic_dig_edns2_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns3.json'), 'r', encoding='utf-8') as f: + generic_dig_edns3_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/dig-edns3.json'), 'r', encoding='utf-8') as f: - self.generic_dig_edns3_json = json.loads(f.read()) def test_dig_nodata(self): """ diff --git a/tests/test_dir.py b/tests/test_dir.py index 6fbcb62c..036fa83c 100644 --- a/tests/test_dir.py +++ b/tests/test_dir.py @@ -15,58 +15,58 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir.out'), - 'r', encoding='utf-8') as f: - self.windows_10_dir = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir.out'), + 'r', encoding='utf-8') as f: + windows_10_dir = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir.json'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir.json'), + 'r', encoding='utf-8') as f: + windows_10_dir_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-ODTC.out'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_ODTC = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-ODTC.out'), + 'r', encoding='utf-8') as f: + windows_10_dir_ODTC = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-ODTC.json'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_ODTC_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-ODTC.json'), + 'r', encoding='utf-8') as f: + windows_10_dir_ODTC_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-C.out'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_C = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-C.out'), + 'r', encoding='utf-8') as f: + windows_10_dir_C = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-mix.out'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_mix = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-mix.out'), + 'r', encoding='utf-8') as f: + windows_10_dir_mix = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-mix.json'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_mix_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-mix.json'), + 'r', encoding='utf-8') as f: + windows_10_dir_mix_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-files.out'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_files = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-files.out'), + 'r', encoding='utf-8') as f: + windows_10_dir_files = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-files.json'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_files_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-files.json'), + 'r', encoding='utf-8') as f: + windows_10_dir_files_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-dirs.out'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_dirs = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-dirs.out'), + 'r', encoding='utf-8') as f: + windows_10_dir_dirs = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-dirs.json'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_dirs_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-dirs.json'), + 'r', encoding='utf-8') as f: + windows_10_dir_dirs_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-S.out'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_S = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-S.out'), + 'r', encoding='utf-8') as f: + windows_10_dir_S = f.read() + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-S.json'), + 'r', encoding='utf-8') as f: + windows_10_dir_S_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-S.json'), - 'r', encoding='utf-8') as f: - self.windows_10_dir_S_json = json.loads(f.read()) def test_dir_error(self): self.assertEqual(jc.parsers.dir.parse("Access is denied.", quiet=True), []) diff --git a/tests/test_dmidecode.py b/tests/test_dmidecode.py index 3d5476e6..f6ee031e 100644 --- a/tests/test_dmidecode.py +++ b/tests/test_dmidecode.py @@ -8,26 +8,26 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dmidecode.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_dmidecode = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dmidecode.out'), 'r', encoding='utf-8') as f: + centos_7_7_dmidecode = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dmidecode.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dmidecode = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dmidecode.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dmidecode = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/dmidecode.out'), 'r', encoding='utf-8') as f: - self.fedora32_dmidecode = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/dmidecode.out'), 'r', encoding='utf-8') as f: + fedora32_dmidecode = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dmidecode.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_dmidecode_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dmidecode.json'), 'r', encoding='utf-8') as f: + centos_7_7_dmidecode_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dmidecode.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dmidecode_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dmidecode.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dmidecode_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/dmidecode.json'), 'r', encoding='utf-8') as f: + fedora32_dmidecode_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/dmidecode.json'), 'r', encoding='utf-8') as f: - self.fedora32_dmidecode_json = json.loads(f.read()) def test_dmidecode_nodata(self): """ diff --git a/tests/test_dpkg_l.py b/tests/test_dpkg_l.py index 80275866..fd2481b7 100644 --- a/tests/test_dpkg_l.py +++ b/tests/test_dpkg_l.py @@ -8,26 +8,26 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dpkg_l = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dpkg_l = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l-columns500.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dpkg_l_columns500 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l-columns500.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dpkg_l_columns500 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l-codes.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dpkg_l_codes = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l-codes.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dpkg_l_codes = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dpkg_l_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dpkg_l_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l-columns500.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dpkg_l_columns500_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l-columns500.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dpkg_l_columns500_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l-codes.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_dpkg_l_codes_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dpkg-l-codes.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_dpkg_l_codes_json = json.loads(f.read()) def test_dpkg_l_nodata(self): """ diff --git a/tests/test_du.py b/tests/test_du.py index b10b21e0..84954c06 100644 --- a/tests/test_du.py +++ b/tests/test_du.py @@ -8,32 +8,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/du.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_du = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/du.out'), 'r', encoding='utf-8') as f: + centos_7_7_du = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/du.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_du = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/du.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_du = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/du.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_du = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/du.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_du = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/du.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_du = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/du.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_du = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/du.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_du_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/du.json'), 'r', encoding='utf-8') as f: + centos_7_7_du_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/du.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_du_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/du.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_du_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/du.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_du_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/du.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_du_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/du.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_du_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/du.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_du_json = json.loads(f.read()) def test_du_nodata(self): """ diff --git a/tests/test_env.py b/tests/test_env.py index 558ee6e3..a0144dca 100644 --- a/tests/test_env.py +++ b/tests/test_env.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/env.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_env = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/env.out'), 'r', encoding='utf-8') as f: + centos_7_7_env = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/env.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_env = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/env.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_env = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/env.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_env_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/env.json'), 'r', encoding='utf-8') as f: + centos_7_7_env_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/env.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_env_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/env.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_env_json = json.loads(f.read()) def test_env_nodata(self): """ diff --git a/tests/test_file.py b/tests/test_file.py index e0e76e9f..4cae74ef 100644 --- a/tests/test_file.py +++ b/tests/test_file.py @@ -8,38 +8,38 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/file.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_file = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/file.out'), 'r', encoding='utf-8') as f: + centos_7_7_file = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/file.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_file = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/file.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_file = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_file = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_file = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file2.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_file2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file2.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_file2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file3.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_file3 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file3.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_file3 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/file.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_file_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/file.json'), 'r', encoding='utf-8') as f: + centos_7_7_file_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/file.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_file_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/file.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_file_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_file_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_file_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file2.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_file2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file2.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_file2_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file3.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_file3_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file3.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_file3_json = json.loads(f.read()) def test_file_nodata(self): """ diff --git a/tests/test_finger.py b/tests/test_finger.py index 6230c961..bd5b0e7e 100644 --- a/tests/test_finger.py +++ b/tests/test_finger.py @@ -8,26 +8,25 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/finger.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_finger = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/finger.out'), 'r', encoding='utf-8') as f: + centos_7_7_finger = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/finger.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_finger = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/finger.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_finger = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/finger.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_finger = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/finger.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_finger = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/finger.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_finger_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/finger.json'), 'r', encoding='utf-8') as f: + centos_7_7_finger_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/finger.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_finger_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/finger.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_finger_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/finger.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_finger_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/finger.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_finger_json = json.loads(f.read()) def test_finger_nodata(self): diff --git a/tests/test_free.py b/tests/test_free.py index 40a031e4..bfc069e8 100644 --- a/tests/test_free.py +++ b/tests/test_free.py @@ -8,32 +8,43 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_free = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free.out'), 'r', encoding='utf-8') as f: + centos_7_7_free = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_free = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_free = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free-h.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_free_h = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free-h.out'), 'r', encoding='utf-8') as f: + centos_7_7_free_h = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-h.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_free_h = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-h.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_free_h = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_free_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free-w.out'), 'r', encoding='utf-8') as f: + centos_7_7_free_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_free_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-w.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_free_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free-h.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_free_h_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free.json'), 'r', encoding='utf-8') as f: + centos_7_7_free_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-h.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_free_h_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_free_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free-h.json'), 'r', encoding='utf-8') as f: + centos_7_7_free_h_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-h.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_free_h_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free-w.json'), 'r', encoding='utf-8') as f: + centos_7_7_free_w_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-w.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_free_w_json = json.loads(f.read()) def test_free_nodata(self): """ @@ -65,6 +76,18 @@ class MyTests(unittest.TestCase): """ self.assertEqual(jc.parsers.free.parse(self.ubuntu_18_4_free_h, quiet=True), self.ubuntu_18_4_free_h_json) + def test_free_w_centos_7_7(self): + """ + Test 'free -w' on Centos 7.7 + """ + self.assertEqual(jc.parsers.free.parse(self.centos_7_7_free_w, quiet=True), self.centos_7_7_free_w_json) + + def test_free_w_ubuntu_18_4(self): + """ + Test 'free -w' on Ubuntu 18.4 + """ + self.assertEqual(jc.parsers.free.parse(self.ubuntu_18_4_free_w, quiet=True), self.ubuntu_18_4_free_w_json) + if __name__ == '__main__': unittest.main() diff --git a/tests/test_fstab.py b/tests/test_fstab.py index 1e04ee2f..252385cf 100644 --- a/tests/test_fstab.py +++ b/tests/test_fstab.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/fstab.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_fstab = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/fstab.out'), 'r', encoding='utf-8') as f: + centos_7_7_fstab = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/fstab.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_fstab = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/fstab.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_fstab = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/fstab.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_fstab_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/fstab.json'), 'r', encoding='utf-8') as f: + centos_7_7_fstab_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/fstab.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_fstab_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/fstab.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_fstab_json = json.loads(f.read()) def test_fstab_nodata(self): """ diff --git a/tests/test_git_log.py b/tests/test_git_log.py index 26f38bc0..41f34a51 100644 --- a/tests/test_git_log.py +++ b/tests/test_git_log.py @@ -8,116 +8,115 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log.out'), 'r', encoding='utf-8') as f: - self.git_log = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log.out'), 'r', encoding='utf-8') as f: + git_log = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short.out'), 'r', encoding='utf-8') as f: - self.git_log_short = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short.out'), 'r', encoding='utf-8') as f: + git_log_short = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-stat.out'), 'r', encoding='utf-8') as f: - self.git_log_short_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-stat.out'), 'r', encoding='utf-8') as f: + git_log_short_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-shortstat.out'), 'r', encoding='utf-8') as f: - self.git_log_short_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-shortstat.out'), 'r', encoding='utf-8') as f: + git_log_short_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium.out'), 'r', encoding='utf-8') as f: - self.git_log_medium = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium.out'), 'r', encoding='utf-8') as f: + git_log_medium = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-stat.out'), 'r', encoding='utf-8') as f: - self.git_log_medium_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-stat.out'), 'r', encoding='utf-8') as f: + git_log_medium_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-shortstat.out'), 'r', encoding='utf-8') as f: - self.git_log_medium_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-shortstat.out'), 'r', encoding='utf-8') as f: + git_log_medium_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full.out'), 'r', encoding='utf-8') as f: - self.git_log_full = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full.out'), 'r', encoding='utf-8') as f: + git_log_full = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-stat.out'), 'r', encoding='utf-8') as f: - self.git_log_full_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-stat.out'), 'r', encoding='utf-8') as f: + git_log_full_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-shortstat.out'), 'r', encoding='utf-8') as f: - self.git_log_full_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-shortstat.out'), 'r', encoding='utf-8') as f: + git_log_full_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller.out'), 'r', encoding='utf-8') as f: - self.git_log_fuller = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller.out'), 'r', encoding='utf-8') as f: + git_log_fuller = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-stat.out'), 'r', encoding='utf-8') as f: - self.git_log_fuller_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-stat.out'), 'r', encoding='utf-8') as f: + git_log_fuller_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-shortstat.out'), 'r', encoding='utf-8') as f: - self.git_log_fuller_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-shortstat.out'), 'r', encoding='utf-8') as f: + git_log_fuller_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline.out'), 'r', encoding='utf-8') as f: - self.git_log_oneline = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline.out'), 'r', encoding='utf-8') as f: + git_log_oneline = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-stat.out'), 'r', encoding='utf-8') as f: - self.git_log_oneline_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-stat.out'), 'r', encoding='utf-8') as f: + git_log_oneline_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-shortstat.out'), 'r', encoding='utf-8') as f: - self.git_log_oneline_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-shortstat.out'), 'r', encoding='utf-8') as f: + git_log_oneline_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-hash-in-message-fix.out'), 'r', encoding='utf-8') as f: - self.git_log_fuller_hash_in_message_fix = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-hash-in-message-fix.out'), 'r', encoding='utf-8') as f: + git_log_fuller_hash_in_message_fix = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-is-hash-regex-fix.out'), 'r', encoding='utf-8') as f: - self.git_log_fuller_is_hash_regex_fix = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-is-hash-regex-fix.out'), 'r', encoding='utf-8') as f: + git_log_fuller_is_hash_regex_fix = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log.json'), 'r', encoding='utf-8') as f: - self.git_log_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log.json'), 'r', encoding='utf-8') as f: + git_log_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short.json'), 'r', encoding='utf-8') as f: - self.git_log_short_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short.json'), 'r', encoding='utf-8') as f: + git_log_short_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-stat.json'), 'r', encoding='utf-8') as f: - self.git_log_short_stat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-stat.json'), 'r', encoding='utf-8') as f: + git_log_short_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-shortstat.json'), 'r', encoding='utf-8') as f: - self.git_log_short_shortstat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-shortstat.json'), 'r', encoding='utf-8') as f: + git_log_short_shortstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium.json'), 'r', encoding='utf-8') as f: - self.git_log_medium_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium.json'), 'r', encoding='utf-8') as f: + git_log_medium_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-stat.json'), 'r', encoding='utf-8') as f: - self.git_log_medium_stat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-stat.json'), 'r', encoding='utf-8') as f: + git_log_medium_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-shortstat.json'), 'r', encoding='utf-8') as f: - self.git_log_medium_shortstat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-shortstat.json'), 'r', encoding='utf-8') as f: + git_log_medium_shortstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full.json'), 'r', encoding='utf-8') as f: - self.git_log_full_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full.json'), 'r', encoding='utf-8') as f: + git_log_full_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-stat.json'), 'r', encoding='utf-8') as f: - self.git_log_full_stat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-stat.json'), 'r', encoding='utf-8') as f: + git_log_full_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-shortstat.json'), 'r', encoding='utf-8') as f: - self.git_log_full_shortstat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-shortstat.json'), 'r', encoding='utf-8') as f: + git_log_full_shortstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller.json'), 'r', encoding='utf-8') as f: - self.git_log_fuller_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller.json'), 'r', encoding='utf-8') as f: + git_log_fuller_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-stat.json'), 'r', encoding='utf-8') as f: - self.git_log_fuller_stat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-stat.json'), 'r', encoding='utf-8') as f: + git_log_fuller_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-shortstat.json'), 'r', encoding='utf-8') as f: - self.git_log_fuller_shortstat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-shortstat.json'), 'r', encoding='utf-8') as f: + git_log_fuller_shortstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline.json'), 'r', encoding='utf-8') as f: - self.git_log_oneline_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline.json'), 'r', encoding='utf-8') as f: + git_log_oneline_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-stat.json'), 'r', encoding='utf-8') as f: - self.git_log_oneline_stat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-stat.json'), 'r', encoding='utf-8') as f: + git_log_oneline_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-shortstat.json'), 'r', encoding='utf-8') as f: - self.git_log_oneline_shortstat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-shortstat.json'), 'r', encoding='utf-8') as f: + git_log_oneline_shortstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-hash-in-message-fix.json'), 'r', encoding='utf-8') as f: - self.git_log_fuller_hash_in_message_fix_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-hash-in-message-fix.json'), 'r', encoding='utf-8') as f: + git_log_fuller_hash_in_message_fix_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-is-hash-regex-fix.json'), 'r', encoding='utf-8') as f: - self.git_log_fuller_is_hash_regex_fix_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-is-hash-regex-fix.json'), 'r', encoding='utf-8') as f: + git_log_fuller_is_hash_regex_fix_json = json.loads(f.read()) def test_git_log_nodata(self): diff --git a/tests/test_git_log_s.py b/tests/test_git_log_s.py index ae42584c..8626f372 100644 --- a/tests/test_git_log_s.py +++ b/tests/test_git_log_s.py @@ -12,119 +12,119 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log.out'), 'r', encoding='utf-8') as f: - self.generic_git_log = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log.out'), 'r', encoding='utf-8') as f: + generic_git_log = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_short = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short.out'), 'r', encoding='utf-8') as f: + generic_git_log_short = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-stat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_short_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-stat.out'), 'r', encoding='utf-8') as f: + generic_git_log_short_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-shortstat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_short_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-shortstat.out'), 'r', encoding='utf-8') as f: + generic_git_log_short_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_medium = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium.out'), 'r', encoding='utf-8') as f: + generic_git_log_medium = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-stat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_medium_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-stat.out'), 'r', encoding='utf-8') as f: + generic_git_log_medium_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-shortstat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_medium_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-shortstat.out'), 'r', encoding='utf-8') as f: + generic_git_log_medium_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_full = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full.out'), 'r', encoding='utf-8') as f: + generic_git_log_full = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-stat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_full_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-stat.out'), 'r', encoding='utf-8') as f: + generic_git_log_full_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-shortstat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_full_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-shortstat.out'), 'r', encoding='utf-8') as f: + generic_git_log_full_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller.out'), 'r', encoding='utf-8') as f: + generic_git_log_fuller = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-stat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-stat.out'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-shortstat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-shortstat.out'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_oneline = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline.out'), 'r', encoding='utf-8') as f: + generic_git_log_oneline = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-stat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_oneline_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-stat.out'), 'r', encoding='utf-8') as f: + generic_git_log_oneline_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-shortstat.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_oneline_shortstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-shortstat.out'), 'r', encoding='utf-8') as f: + generic_git_log_oneline_shortstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-hash-in-message-fix.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_hash_in_message_fix = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-hash-in-message-fix.out'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_hash_in_message_fix = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-is-hash-regex-fix.out'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_is_hash_regex_fix = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-is-hash-regex-fix.out'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_is_hash_regex_fix = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_short_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_short_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-stat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_short_stat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-stat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_short_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-shortstat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_short_shortstat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-short-shortstat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_short_shortstat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_medium_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_medium_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-stat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_medium_stat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-stat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_medium_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-shortstat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_medium_shortstat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-medium-shortstat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_medium_shortstat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_full_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_full_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-stat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_full_stat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-stat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_full_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-shortstat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_full_shortstat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-full-shortstat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_full_shortstat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-stat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_stat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-stat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-shortstat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_shortstat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-fuller-shortstat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_shortstat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_oneline_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_oneline_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-stat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_oneline_stat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-stat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_oneline_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-shortstat-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_oneline_shortstat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-oneline-shortstat-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_oneline_shortstat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-streaming-ignore-exceptions.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_streaming_ignore_exceptions_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-streaming-ignore-exceptions.json'), 'r', encoding='utf-8') as f: + generic_git_log_streaming_ignore_exceptions_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-hash-in-message-fix-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_hash_in_message_fix_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-hash-in-message-fix-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_hash_in_message_fix_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-is-hash-regex-fix-streaming.json'), 'r', encoding='utf-8') as f: + generic_git_log_fuller_is_hash_regex_fix_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/git-log-is-hash-regex-fix-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_git_log_fuller_is_hash_regex_fix_streaming_json = json.loads(f.read()) def test_git_log_s_nodata(self): """ diff --git a/tests/test_gpg.py b/tests/test_gpg.py index 50e9e6be..acd9653a 100644 --- a/tests/test_gpg.py +++ b/tests/test_gpg.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/gpg.out'), 'r', encoding='utf-8') as f: - self.gpg = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/gpg.out'), 'r', encoding='utf-8') as f: + gpg = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/gpg.json'), 'r', encoding='utf-8') as f: - self.gpg_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/gpg.json'), 'r', encoding='utf-8') as f: + gpg_json = json.loads(f.read()) def test_gpg_nodata(self): diff --git a/tests/test_group.py b/tests/test_group.py index cf192e4f..09fdbb25 100644 --- a/tests/test_group.py +++ b/tests/test_group.py @@ -8,26 +8,26 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/group.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_group = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/group.out'), 'r', encoding='utf-8') as f: + centos_7_7_group = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/group.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_group = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/group.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_group = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/group.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_group = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/group.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_group = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/group.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_group_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/group.json'), 'r', encoding='utf-8') as f: + centos_7_7_group_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/group.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_group_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/group.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_group_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/group.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_group_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/group.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_group_json = json.loads(f.read()) def test_group_nodata(self): """ diff --git a/tests/test_gshadow.py b/tests/test_gshadow.py index 2a3eb7e5..3312ba47 100644 --- a/tests/test_gshadow.py +++ b/tests/test_gshadow.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/gshadow.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_gshadow = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/gshadow.out'), 'r', encoding='utf-8') as f: + centos_7_7_gshadow = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/gshadow.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_gshadow = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/gshadow.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_gshadow = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/gshadow.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_gshadow_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/gshadow.json'), 'r', encoding='utf-8') as f: + centos_7_7_gshadow_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/gshadow.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_gshadow_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/gshadow.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_gshadow_json = json.loads(f.read()) def test_gshadow_nodata(self): """ diff --git a/tests/test_hash.py b/tests/test_hash.py index f370fc15..e9d502a2 100644 --- a/tests/test_hash.py +++ b/tests/test_hash.py @@ -8,14 +8,14 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hash.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_hash = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hash.out'), 'r', encoding='utf-8') as f: + centos_7_7_hash = f.read() + + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hash.json'), 'r', encoding='utf-8') as f: + centos_7_7_hash_json = json.loads(f.read()) - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hash.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_hash_json = json.loads(f.read()) def test_hash_nodata(self): """ diff --git a/tests/test_hashsum.py b/tests/test_hashsum.py index c58cbfba..882cb1d5 100644 --- a/tests/test_hashsum.py +++ b/tests/test_hashsum.py @@ -8,38 +8,38 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/md5sum.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_md5sum = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/md5sum.out'), 'r', encoding='utf-8') as f: + centos_7_7_md5sum = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sha256sum.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sha256sum = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sha256sum.out'), 'r', encoding='utf-8') as f: + centos_7_7_sha256sum = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sha384sum.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sha384sum = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sha384sum.out'), 'r', encoding='utf-8') as f: + centos_7_7_sha384sum = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/md5.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_md5 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/md5.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_md5 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/shasum.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_shasum = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/shasum.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_shasum = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/md5sum.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_md5sum_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/md5sum.json'), 'r', encoding='utf-8') as f: + centos_7_7_md5sum_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sha256sum.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sha256sum_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sha256sum.json'), 'r', encoding='utf-8') as f: + centos_7_7_sha256sum_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sha384sum.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sha384sum_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sha384sum.json'), 'r', encoding='utf-8') as f: + centos_7_7_sha384sum_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/md5.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_md5_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/md5.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_md5_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/shasum.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_shasum_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/shasum.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_shasum_json = json.loads(f.read()) def test_hashsum_nodata(self): """ diff --git a/tests/test_hciconfig.py b/tests/test_hciconfig.py index 61662956..503b134d 100644 --- a/tests/test_hciconfig.py +++ b/tests/test_hciconfig.py @@ -8,32 +8,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hciconfig.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_hciconfig = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hciconfig.out'), 'r', encoding='utf-8') as f: + centos_7_7_hciconfig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hciconfig-a.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_hciconfig_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hciconfig-a.out'), 'r', encoding='utf-8') as f: + centos_7_7_hciconfig_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/hciconfig.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_4_hciconfig = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/hciconfig.out'), 'r', encoding='utf-8') as f: + ubuntu_20_4_hciconfig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/hciconfig-a.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_4_hciconfig_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/hciconfig-a.out'), 'r', encoding='utf-8') as f: + ubuntu_20_4_hciconfig_a = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hciconfig.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_hciconfig_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hciconfig.json'), 'r', encoding='utf-8') as f: + centos_7_7_hciconfig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hciconfig-a.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_hciconfig_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hciconfig-a.json'), 'r', encoding='utf-8') as f: + centos_7_7_hciconfig_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/hciconfig.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_4_hciconfig_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/hciconfig.json'), 'r', encoding='utf-8') as f: + ubuntu_20_4_hciconfig_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/hciconfig-a.json'), 'r', encoding='utf-8') as f: + ubuntu_20_4_hciconfig_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/hciconfig-a.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_4_hciconfig_a_json = json.loads(f.read()) def test_hciconfig_nodata(self): """ diff --git a/tests/test_history.py b/tests/test_history.py index b7cdaa8c..a28157b1 100644 --- a/tests/test_history.py +++ b/tests/test_history.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/history.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_history = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/history.out'), 'r', encoding='utf-8') as f: + centos_7_7_history = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/history.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_history = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/history.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_history = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/history.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_history_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/history.json'), 'r', encoding='utf-8') as f: + centos_7_7_history_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/history.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_history_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/history.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_history_json = json.loads(f.read()) def test_history_nodata(self): """ diff --git a/tests/test_hosts.py b/tests/test_hosts.py index 2a5205bb..4f60c29d 100644 --- a/tests/test_hosts.py +++ b/tests/test_hosts.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hosts.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_hosts = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hosts.out'), 'r', encoding='utf-8') as f: + centos_7_7_hosts = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/hosts.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_hosts = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/hosts.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_hosts = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hosts.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_hosts_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/hosts.json'), 'r', encoding='utf-8') as f: + centos_7_7_hosts_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/hosts.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_hosts_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/hosts.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_hosts_json = json.loads(f.read()) def test_hosts_nodata(self): """ diff --git a/tests/test_id.py b/tests/test_id.py index b3752dfe..ae08b37e 100644 --- a/tests/test_id.py +++ b/tests/test_id.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/id.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_id = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/id.out'), 'r', encoding='utf-8') as f: + centos_7_7_id = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/id.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_id = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/id.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_id = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/id.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_id_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/id.json'), 'r', encoding='utf-8') as f: + centos_7_7_id_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/id.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_id_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/id.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_id_json = json.loads(f.read()) def test_id_nodata(self): """ @@ -43,6 +43,30 @@ class MyTests(unittest.TestCase): {'uid': {'id': 1000, 'name': 'user'}, 'gid': {'id': 1000, 'name': None}, 'groups': [{'id': 1000, 'name': None}, {'id': 10, 'name': 'wheel'}]} ) + def test_id_space(self): + """ + Test 'id' with with space in name + """ + self.assertEqual( + jc.parsers.id.parse('uid=1000(user 1) gid=1000 groups=1000,10(wheel)', quiet=True), + {'uid': {'id': 1000, 'name': 'user 1'}, 'gid': {'id': 1000, 'name': None}, 'groups': [{'id': 1000, 'name': None}, {'id': 10, 'name': 'wheel'}]} + ) + + self.assertEqual( + jc.parsers.id.parse('uid=1000(user) gid=1000(group 1) groups=1000,10(wheel)', quiet=True), + {'uid': {'id': 1000, 'name': 'user'}, 'gid': {'id': 1000, 'name': 'group 1'}, 'groups': [{'id': 1000, 'name': None}, {'id': 10, 'name': 'wheel'}]} + ) + + self.assertEqual( + jc.parsers.id.parse('uid=1000(user) gid=1000 groups=1000,10(wheel 1)', quiet=True), + {'uid': {'id': 1000, 'name': 'user'}, 'gid': {'id': 1000, 'name': None}, 'groups': [{'id': 1000, 'name': None}, {'id': 10, 'name': 'wheel 1'}]} + ) + + self.assertEqual( + jc.parsers.id.parse('uid=1000(user 1) gid=1000(group 1) groups=1000,10(wheel 1)', quiet=True), + {'uid': {'id': 1000, 'name': 'user 1'}, 'gid': {'id': 1000, 'name': 'group 1'}, 'groups': [{'id': 1000, 'name': None}, {'id': 10, 'name': 'wheel 1'}]} + ) + def test_id_centos_7_7(self): """ Test 'id' on Centos 7.7 diff --git a/tests/test_ifconfig.py b/tests/test_ifconfig.py index 8038d29d..19863d02 100644 --- a/tests/test_ifconfig.py +++ b/tests/test_ifconfig.py @@ -8,44 +8,43 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ifconfig.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ifconfig = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ifconfig.out'), 'r', encoding='utf-8') as f: + centos_7_7_ifconfig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ifconfig.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ifconfig = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ifconfig.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ifconfig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ifconfig.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ifconfig = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ifconfig.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ifconfig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ifconfig2.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ifconfig2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ifconfig2.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ifconfig2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ifconfig.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ifconfig = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ifconfig.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ifconfig = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ifconfig2.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ifconfig2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ifconfig2.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ifconfig2 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ifconfig.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ifconfig_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ifconfig.json'), 'r', encoding='utf-8') as f: + centos_7_7_ifconfig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ifconfig.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ifconfig_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ifconfig.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ifconfig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ifconfig.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ifconfig_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ifconfig.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_ifconfig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ifconfig2.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ifconfig2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ifconfig2.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_ifconfig2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ifconfig.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ifconfig_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ifconfig.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ifconfig_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ifconfig2.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ifconfig2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ifconfig2.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ifconfig2_json = json.loads(f.read()) def test_ifconfig_nodata(self): """ diff --git a/tests/test_ini.py b/tests/test_ini.py index bd815d77..1c655939 100644 --- a/tests/test_ini.py +++ b/tests/test_ini.py @@ -8,32 +8,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-test.ini'), 'r', encoding='utf-8') as f: - self.generic_ini_test = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-test.ini'), 'r', encoding='utf-8') as f: + generic_ini_test = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-iptelserver.ini'), 'r', encoding='utf-8') as f: - self.generic_ini_iptelserver = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-iptelserver.ini'), 'r', encoding='utf-8') as f: + generic_ini_iptelserver = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-double-quote.ini'), 'r', encoding='utf-8') as f: - self.generic_ini_double_quote = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-double-quote.ini'), 'r', encoding='utf-8') as f: + generic_ini_double_quote = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-single-quote.ini'), 'r', encoding='utf-8') as f: - self.generic_ini_single_quote = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-single-quote.ini'), 'r', encoding='utf-8') as f: + generic_ini_single_quote = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-test.json'), 'r', encoding='utf-8') as f: - self.generic_ini_test_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-test.json'), 'r', encoding='utf-8') as f: + generic_ini_test_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-iptelserver.json'), 'r', encoding='utf-8') as f: - self.generic_ini_iptelserver_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-iptelserver.json'), 'r', encoding='utf-8') as f: + generic_ini_iptelserver_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-double-quote.json'), 'r', encoding='utf-8') as f: - self.generic_ini_double_quote_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-double-quote.json'), 'r', encoding='utf-8') as f: + generic_ini_double_quote_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-single-quote.json'), 'r', encoding='utf-8') as f: + generic_ini_single_quote_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ini-single-quote.json'), 'r', encoding='utf-8') as f: - self.generic_ini_single_quote_json = json.loads(f.read()) def test_ini_nodata(self): """ diff --git a/tests/test_iostat.py b/tests/test_iostat.py index 1288f998..ca660d6e 100644 --- a/tests/test_iostat.py +++ b/tests/test_iostat.py @@ -8,92 +8,92 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-m.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_m = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-m.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_m = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-x.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-x.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-mx.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_mx = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-mx.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_mx = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-1.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-1.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-m.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_m = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-m.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_m = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-x.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-x.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-mx.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_mx = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-mx.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_mx = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-1.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-1.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-m.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_m = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-m.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_m = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-x.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-x.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-mx.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_mx = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-mx.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_mx = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-m.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_m_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-m.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_m_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-x.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_x_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-x.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_x_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-mx.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_mx_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-mx.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_mx_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-1.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_1_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-1.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_1_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-m.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_m_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-m.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_m_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-x.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_x_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-x.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_x_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-mx.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_mx_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-mx.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_mx_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-1.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_1_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-1.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_1_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-m.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_m_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-m.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_m_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-x.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_x_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-x.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_x_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-mx.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_mx_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-mx.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_mx_json = json.loads(f.read()) def test_iostat_nodata(self): """ diff --git a/tests/test_iostat_s.py b/tests/test_iostat_s.py index a29c78a5..8ffc3da0 100644 --- a/tests/test_iostat_s.py +++ b/tests/test_iostat_s.py @@ -12,93 +12,93 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-m.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_m = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-m.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_m = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-x.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-x.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-mx.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_mx = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-mx.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_mx = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-1.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-1.out'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-m.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_m = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-m.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_m = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-x.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-x.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-mx.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_mx = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-mx.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_mx = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-1.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-1.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-m.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_m = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-m.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_m = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-x.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_x = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-x.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_x = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-mx.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_mx = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-mx.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_mx = f.read() - # output + # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-m-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_m_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-m-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_m_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-x-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_x_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-x-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_x_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-mx-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_mx_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-mx-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_mx_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-1-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iostat_1_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iostat-1-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_iostat_1_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-m-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_m_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-m-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_m_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-x-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_x_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-x-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_x_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-mx-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_mx_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-mx-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_mx_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-1-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iostat_1_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iostat-1-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iostat_1_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-m-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_m_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-m-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_m_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-x-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_x_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-x-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_x_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-mx-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_iostat_mx_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/iostat-mx-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_iostat_mx_streaming_json = json.loads(f.read()) def test_iostat_empty_dir(self): """ diff --git a/tests/test_iptables.py b/tests/test_iptables.py index 148a5d73..70e98747 100644 --- a/tests/test_iptables.py +++ b/tests/test_iptables.py @@ -8,80 +8,80 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_filter = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter.out'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_filter = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_filter = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_filter = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter-line-numbers.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_filter_line_numbers = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter-line-numbers.out'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_filter_line_numbers = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter-line-numbers.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_filter_line_numbers = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter-line-numbers.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_filter_line_numbers = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter-nv.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_filter_nv = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter-nv.out'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_filter_nv = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter-nv.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_filter_nv = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter-nv.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_filter_nv = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-mangle.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_mangle = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-mangle.out'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_mangle = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-mangle.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_mangle = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-mangle.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_mangle = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-nat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_nat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-nat.out'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_nat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-nat.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_nat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-nat.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_nat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-raw.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_raw = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-raw.out'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_raw = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-raw.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_raw = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-raw.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_raw = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_filter_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter.json'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_filter_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_filter_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_filter_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter-line-numbers.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_filter_line_numbers_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter-line-numbers.json'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_filter_line_numbers_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter-line-numbers.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_filter_line_numbers_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter-line-numbers.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_filter_line_numbers_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter-nv.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_filter_nv_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-filter-nv.json'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_filter_nv_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter-nv.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_filter_nv_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-filter-nv.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_filter_nv_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-mangle.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_mangle_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-mangle.json'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_mangle_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-mangle.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_mangle_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-mangle.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_mangle_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-nat.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_nat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-nat.json'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_nat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-nat.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_nat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-nat.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_nat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-raw.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iptables_raw_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iptables-raw.json'), 'r', encoding='utf-8') as f: + centos_7_7_iptables_raw_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-raw.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_iptables_raw_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/iptables-raw.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_iptables_raw_json = json.loads(f.read()) def test_iptables_nodata(self): """ diff --git a/tests/test_iw_scan.py b/tests/test_iw_scan.py index d34747ba..fb4db26c 100644 --- a/tests/test_iw_scan.py +++ b/tests/test_iw_scan.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iw-scan0.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iw_scan0 = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iw-scan0.out'), 'r', encoding='utf-8') as f: + centos_7_7_iw_scan0 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iw-scan1.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_iw_scan1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iw-scan1.out'), 'r', encoding='utf-8') as f: + centos_7_7_iw_scan1 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iw-scan0.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iw_scan0_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iw-scan0.json'), 'r', encoding='utf-8') as f: + centos_7_7_iw_scan0_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iw-scan1.json'), 'r', encoding='utf-8') as f: + centos_7_7_iw_scan1_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/iw-scan1.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_iw_scan1_json = json.loads(f.read()) def test_iw_scan_nodata(self): """ diff --git a/tests/test_jar_manifest.py b/tests/test_jar_manifest.py index 568b1c87..fc797046 100644 --- a/tests/test_jar_manifest.py +++ b/tests/test_jar_manifest.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/MANIFEST.MF.out'), 'r', encoding='utf-8') as f: - self.rhel_8_manifest_mf = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/MANIFEST.MF.out'), 'r', encoding='utf-8') as f: + rhel_8_manifest_mf = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/MANIFEST.MF.MULTI.out'), 'r', encoding='utf-8') as f: - self.rhel_8_manifest_mf_multi = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/MANIFEST.MF.MULTI.out'), 'r', encoding='utf-8') as f: + rhel_8_manifest_mf_multi = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/MANIFEST.MF.json'), 'r', encoding='utf-8') as f: - self.rhel_8_manifest_mf_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/MANIFEST.MF.json'), 'r', encoding='utf-8') as f: + rhel_8_manifest_mf_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/MANIFEST.MF.MULTI.json'), 'r', encoding='utf-8') as f: + rhel_8_manifest_mf_multi_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/MANIFEST.MF.MULTI.json'), 'r', encoding='utf-8') as f: - self.rhel_8_manifest_mf_multi_json = json.loads(f.read()) def test_jar_manifest_nodata(self): """ diff --git a/tests/test_jc_lib.py b/tests/test_jc_lib.py index a33a5ae9..609f1c3c 100644 --- a/tests/test_jc_lib.py +++ b/tests/test_jc_lib.py @@ -53,6 +53,11 @@ class MyTests(unittest.TestCase): def test_lib_all_parser_info_length(self): self.assertGreaterEqual(len(jc.lib.all_parser_info()), 80) + def test_lib_all_parser_hidden_length(self): + reg_length = len(jc.lib.all_parser_info()) + hidden_length = len(jc.lib.all_parser_info(show_hidden=True)) + self.assertGreater(hidden_length, reg_length) + def test_lib_plugin_parser_mod_list_is_list(self): self.assertIsInstance(jc.lib.plugin_parser_mod_list(), list) diff --git a/tests/test_jobs.py b/tests/test_jobs.py index c359b8d3..e5ebaf55 100644 --- a/tests/test_jobs.py +++ b/tests/test_jobs.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/jobs.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_jobs = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/jobs.out'), 'r', encoding='utf-8') as f: + centos_7_7_jobs = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/jobs.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_jobs = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/jobs.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_jobs = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/jobs.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_jobs_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/jobs.json'), 'r', encoding='utf-8') as f: + centos_7_7_jobs_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/jobs.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_jobs_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/jobs.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_jobs_json = json.loads(f.read()) def test_jobs_nodata(self): """ diff --git a/tests/test_kv.py b/tests/test_kv.py index 6815cca8..ebf3a4d6 100644 --- a/tests/test_kv.py +++ b/tests/test_kv.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/keyvalue.txt'), 'r', encoding='utf-8') as f: - self.generic_ini_keyvalue = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/keyvalue.txt'), 'r', encoding='utf-8') as f: + generic_ini_keyvalue = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/keyvalue-ifcfg.txt'), 'r', encoding='utf-8') as f: - self.generic_ini_keyvalue_ifcfg = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/keyvalue-ifcfg.txt'), 'r', encoding='utf-8') as f: + generic_ini_keyvalue_ifcfg = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/keyvalue.json'), 'r', encoding='utf-8') as f: - self.generic_ini_keyvalue_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/keyvalue.json'), 'r', encoding='utf-8') as f: + generic_ini_keyvalue_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/keyvalue-ifcfg.json'), 'r', encoding='utf-8') as f: + generic_ini_keyvalue_ifcfg_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/keyvalue-ifcfg.json'), 'r', encoding='utf-8') as f: - self.generic_ini_keyvalue_ifcfg_json = json.loads(f.read()) def test_kv_nodata(self): """ diff --git a/tests/test_last.py b/tests/test_last.py index 30b0d536..89880bd1 100644 --- a/tests/test_last.py +++ b/tests/test_last.py @@ -15,80 +15,80 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_last = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last.out'), 'r', encoding='utf-8') as f: + centos_7_7_last = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/last.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_last = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/last.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_last = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/last.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_last = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/last.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_last = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lastb.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lastb = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lastb.out'), 'r', encoding='utf-8') as f: + centos_7_7_lastb = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lastb.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lastb = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lastb.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lastb = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-w.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_last_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-w.out'), 'r', encoding='utf-8') as f: + centos_7_7_last_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/last-w.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_last_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/last-w.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_last_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/last.out'), 'r', encoding='utf-8') as f: - self.fedora32_last = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/last.out'), 'r', encoding='utf-8') as f: + fedora32_last = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/last.out'), 'r', encoding='utf-8') as f: - self.freebsd12_last = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/last.out'), 'r', encoding='utf-8') as f: + freebsd12_last = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/last-F.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_4_last_F = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/last-F.out'), 'r', encoding='utf-8') as f: + ubuntu_20_4_last_F = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-crash.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_last_crash = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-crash.out'), 'r', encoding='utf-8') as f: + centos_7_7_last_crash = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-wF.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_last_wF = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-wF.out'), 'r', encoding='utf-8') as f: + centos_7_7_last_wF = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_last_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last.json'), 'r', encoding='utf-8') as f: + centos_7_7_last_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/last.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_last_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/last.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_last_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/last.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_last_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/last.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_last_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lastb.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lastb_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lastb.json'), 'r', encoding='utf-8') as f: + centos_7_7_lastb_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lastb.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lastb_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lastb.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lastb_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-w.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_last_w_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-w.json'), 'r', encoding='utf-8') as f: + centos_7_7_last_w_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/last-w.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_last_w_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/last-w.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_last_w_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/last.json'), 'r', encoding='utf-8') as f: - self.fedora32_last_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/last.json'), 'r', encoding='utf-8') as f: + fedora32_last_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/last.json'), 'r', encoding='utf-8') as f: - self.freebsd12_last_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/last.json'), 'r', encoding='utf-8') as f: + freebsd12_last_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/last-F.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_4_last_F_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.04/last-F.json'), 'r', encoding='utf-8') as f: + ubuntu_20_4_last_F_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-crash.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_last_crash_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-crash.json'), 'r', encoding='utf-8') as f: + centos_7_7_last_crash_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-wF.json'), 'r', encoding='utf-8') as f: + centos_7_7_last_wF_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/last-wF.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_last_wF_json = json.loads(f.read()) def test_last_nodata(self): """ diff --git a/tests/test_ls.py b/tests/test_ls.py index 13372bd5..1735c64b 100644 --- a/tests/test_ls.py +++ b/tests/test_ls.py @@ -15,218 +15,218 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ls = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ls = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-al.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_al = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-al.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_al = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-al.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_al = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-al.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_al = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-al.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ls_al = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-al.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ls_al = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-al.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_al = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-al.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_al = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alh.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_alh = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alh.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_alh = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alh.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_alh = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alh.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_alh = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-alh.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ls_alh = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-alh.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ls_alh = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alh.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_alh = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alh.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_alh = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-R.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_R = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-R.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_R = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-R.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_R = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-R.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_R = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-R.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_R = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-R.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_R = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alR.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_alR = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alR.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_alR = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alR.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_alR = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alR.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_alR = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alR.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_alR = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alR.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_alR = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-glob.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_glob = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-glob.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_glob = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-glob.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_glob = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-glob.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_glob = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-glob.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_glob = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-glob.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_glob = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-R-newlines.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_R_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-R-newlines.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_R_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-R-newlines.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_R_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-R-newlines.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_R_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-R-newlines.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_R_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-R-newlines.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_R_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-l-newlines.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_l_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-l-newlines.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_l_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-newlines.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_l_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-newlines.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_l_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-l-newlines.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_l_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-l-newlines.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_l_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-lR-newlines.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_lR_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-lR-newlines.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_lR_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-lR-newlines.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_lR_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-lR-newlines.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_lR_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-newlines.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_lR_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-newlines.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_lR_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-newlines.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-newlines.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-newlines.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-newlines.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-newlines.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_newlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-newlines.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_newlines = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-empty-folder.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_lR_empty_folder = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-empty-folder.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_lR_empty_folder = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-iso.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_l_iso = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-iso.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_l_iso = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ls_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_ls_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-al.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_al_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-al.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_al_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-al.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_al_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-al.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_al_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-al.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ls_al_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-al.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_ls_al_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-al.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_al_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-al.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_al_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alh.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_alh_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alh.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_alh_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alh.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_alh_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alh.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_alh_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-alh.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ls_alh_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-alh.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_ls_alh_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alh.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_alh_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alh.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_alh_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-R.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_R_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-R.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_R_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-R.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_R_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-R.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_R_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-R.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_R_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-R.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_R_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alR.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_alR_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alR.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_alR_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alR.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_alR_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alR.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_alR_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alR.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_alR_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alR.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_alR_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-glob.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_glob_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-glob.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_glob_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-glob.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_glob_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-glob.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_glob_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-glob.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_glob_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-glob.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_glob_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-R-newlines.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_R_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-R-newlines.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_R_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-R-newlines.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_R_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-R-newlines.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_R_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-R-newlines.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_R_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-R-newlines.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_R_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-l-newlines.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_l_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-l-newlines.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_l_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-newlines.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_l_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-newlines.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_l_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-l-newlines.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_l_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-l-newlines.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_l_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-lR-newlines.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_lR_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-lR-newlines.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_lR_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-lR-newlines.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_lR_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-lR-newlines.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_lR_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-newlines.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_lR_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-newlines.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_lR_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-newlines.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-newlines.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-newlines.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-newlines.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-newlines.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_newlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-newlines.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_newlines_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-empty-folder.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_lR_empty_folder_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-empty-folder.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_lR_empty_folder_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-iso.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_l_iso_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-iso.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_l_iso_json = json.loads(f.read()) def test_ls_empty_dir(self): """ diff --git a/tests/test_ls_s.py b/tests/test_ls_s.py index a4fcac78..385fa25a 100644 --- a/tests/test_ls_s.py +++ b/tests/test_ls_s.py @@ -20,84 +20,84 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-al.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_al = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-al.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_al = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-al.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_al = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-al.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_al = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-al.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ls_al = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-al.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ls_al = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-al.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_al = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-al.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_al = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alh.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_alh = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alh.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_alh = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alh.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_alh = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alh.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_alh = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-alh.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ls_alh = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ls-alh.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ls_alh = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alh.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_alh = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alh.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_alh = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alR.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_alR = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alR.out'), 'r', encoding='utf-8') as f: + centos_7_7_ls_alR = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alR.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_alR = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alR.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_alR = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alR.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_alR = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alR.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_alR = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-empty-folder.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_lR_empty_folder = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-empty-folder.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_lR_empty_folder = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-iso.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_l_iso = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-iso.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_l_iso = f.read() - # output + # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-al-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_al_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-al-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_al_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-al-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_al_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-al-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_al_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-al-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_al_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-al-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_al_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alh-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_alh_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alh-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_alh_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alh-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_alh_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alh-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_alh_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alh-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_alh_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alh-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_alh_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alR-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ls_alR_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ls-alR-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ls_alR_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alR-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_alR_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-alR-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_alR_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alR-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_alR_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-alR-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_alR_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-empty-folder-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ls_lR_empty_folder_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ls-lR-empty-folder-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ls_lR_empty_folder_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-iso-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ls_l_iso_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ls-l-iso-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ls_l_iso_streaming_json = json.loads(f.read()) def test_ls_s_empty_dir(self): """ diff --git a/tests/test_lsblk.py b/tests/test_lsblk.py index 606ce638..ca549971 100644 --- a/tests/test_lsblk.py +++ b/tests/test_lsblk.py @@ -8,32 +8,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsblk.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsblk = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsblk.out'), 'r', encoding='utf-8') as f: + centos_7_7_lsblk = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsblk.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsblk = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsblk.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsblk = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsblk-allcols.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsblk_allcols = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsblk-allcols.out'), 'r', encoding='utf-8') as f: + centos_7_7_lsblk_allcols = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsblk-allcols.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsblk_allcols = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsblk-allcols.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsblk_allcols = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsblk.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsblk_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsblk.json'), 'r', encoding='utf-8') as f: + centos_7_7_lsblk_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsblk.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsblk_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsblk.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsblk_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsblk-allcols.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsblk_allcols_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsblk-allcols.json'), 'r', encoding='utf-8') as f: + centos_7_7_lsblk_allcols_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsblk-allcols.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsblk_allcols_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsblk-allcols.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsblk_allcols_json = json.loads(f.read()) def test_lsblk_nodata(self): """ diff --git a/tests/test_lsmod.py b/tests/test_lsmod.py index 5cd9b768..97316d09 100644 --- a/tests/test_lsmod.py +++ b/tests/test_lsmod.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsmod.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsmod = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsmod.out'), 'r', encoding='utf-8') as f: + centos_7_7_lsmod = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsmod.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsmod = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsmod.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsmod = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsmod.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsmod_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsmod.json'), 'r', encoding='utf-8') as f: + centos_7_7_lsmod_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsmod.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsmod_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsmod.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsmod_json = json.loads(f.read()) def test_lsmod_nodata(self): """ diff --git a/tests/test_lsof.py b/tests/test_lsof.py index 94311a80..1a375686 100644 --- a/tests/test_lsof.py +++ b/tests/test_lsof.py @@ -8,32 +8,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsof.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsof = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsof.out'), 'r', encoding='utf-8') as f: + centos_7_7_lsof = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsof.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsof = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsof.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsof = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsof-sudo.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsof_sudo = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsof-sudo.out'), 'r', encoding='utf-8') as f: + centos_7_7_lsof_sudo = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsof-sudo.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsof_sudo = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsof-sudo.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsof_sudo = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsof.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsof_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsof.json'), 'r', encoding='utf-8') as f: + centos_7_7_lsof_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsof.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsof_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsof.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsof_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsof-sudo.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsof_sudo_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsof-sudo.json'), 'r', encoding='utf-8') as f: + centos_7_7_lsof_sudo_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsof-sudo.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_lsof_sudo_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/lsof-sudo.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_lsof_sudo_json = json.loads(f.read()) def test_lsof_nodata(self): """ diff --git a/tests/test_lsusb.py b/tests/test_lsusb.py index 1999763b..e7693ca3 100644 --- a/tests/test_lsusb.py +++ b/tests/test_lsusb.py @@ -9,53 +9,53 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsusb = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb.out'), 'r', encoding='utf-8') as f: + centos_7_7_lsusb = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb-v.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsusb_v = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb-v.out'), 'r', encoding='utf-8') as f: + centos_7_7_lsusb_v = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb-v-single.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsusb_v_single = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb-v-single.out'), 'r', encoding='utf-8') as f: + centos_7_7_lsusb_v_single = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-test-attributes.out'), 'r', encoding='utf-8') as f: - self.generic_lsusb_test_attributes = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-test-attributes.out'), 'r', encoding='utf-8') as f: + generic_lsusb_test_attributes = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-test-attributes2.out'), 'r', encoding='utf-8') as f: - self.generic_lsusb_test_attributes2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-test-attributes2.out'), 'r', encoding='utf-8') as f: + generic_lsusb_test_attributes2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-t.out'), 'r', encoding='utf-8') as f: - self.generic_lsusb_t = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-t.out'), 'r', encoding='utf-8') as f: + generic_lsusb_t = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-device-qualifier.out'), 'r', encoding='utf-8') as f: - self.generic_lsusb_device_qualifier = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-device-qualifier.out'), 'r', encoding='utf-8') as f: + generic_lsusb_device_qualifier = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-binary-object-store.out'), 'r', encoding='utf-8') as f: - self.generic_lsusb_binary_object_store = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-binary-object-store.out'), 'r', encoding='utf-8') as f: + generic_lsusb_binary_object_store = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsusb_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb.json'), 'r', encoding='utf-8') as f: + centos_7_7_lsusb_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb-v.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsusb_v_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb-v.json'), 'r', encoding='utf-8') as f: + centos_7_7_lsusb_v_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb-v-single.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_lsusb_v_single_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/lsusb-v-single.json'), 'r', encoding='utf-8') as f: + centos_7_7_lsusb_v_single_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-test-attributes.json'), 'r', encoding='utf-8') as f: - self.generic_lsusb_test_attributes_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-test-attributes.json'), 'r', encoding='utf-8') as f: + generic_lsusb_test_attributes_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-test-attributes2.json'), 'r', encoding='utf-8') as f: - self.generic_lsusb_test_attributes2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-test-attributes2.json'), 'r', encoding='utf-8') as f: + generic_lsusb_test_attributes2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-device-qualifier.json'), 'r', encoding='utf-8') as f: - self.generic_lsusb_devicez_qualifier_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-device-qualifier.json'), 'r', encoding='utf-8') as f: + generic_lsusb_devicez_qualifier_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-binary-object-store.json'), 'r', encoding='utf-8') as f: + generic_lsusb_binary_object_store_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/lsusb-binary-object-store.json'), 'r', encoding='utf-8') as f: - self.generic_lsusb_binary_object_store_json = json.loads(f.read()) def test_lsusb_nodata(self): """ diff --git a/tests/test_m3u.py b/tests/test_m3u.py index 59982388..77cc4d0b 100644 --- a/tests/test_m3u.py +++ b/tests/test_m3u.py @@ -8,20 +8,19 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/m3u-example.m3u'), 'r', encoding='utf-8') as f: - self.m3u_example = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/m3u-example.m3u'), 'r', encoding='utf-8') as f: + m3u_example = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/m3u-dirty.m3u'), 'r', encoding='utf-8') as f: - self.m3u_dirty = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/m3u-dirty.m3u'), 'r', encoding='utf-8') as f: + m3u_dirty = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/m3u-example.json'), 'r', encoding='utf-8') as f: - self.m3u_example_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/m3u-example.json'), 'r', encoding='utf-8') as f: + m3u_example_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/m3u-dirty.json'), 'r', encoding='utf-8') as f: - self.m3u_dirty_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/m3u-dirty.json'), 'r', encoding='utf-8') as f: + m3u_dirty_json = json.loads(f.read()) def test_m3u_nodata(self): diff --git a/tests/test_mdadm.py b/tests/test_mdadm.py index d095fc89..f0d048bc 100644 --- a/tests/test_mdadm.py +++ b/tests/test_mdadm.py @@ -8,248 +8,247 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid0-offline.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid0_offline = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid0-offline.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid0_offline = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid0-ok.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid0_ok = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid0-ok.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid0_ok = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-0-90-ok.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_0_90_ok = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-0-90-ok.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_0_90_ok = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-checking.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_checking = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-checking.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_checking = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-failfast.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_failfast = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-failfast.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_failfast = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-faulty1.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_faulty1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-faulty1.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_faulty1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-faulty2.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_faulty2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-faulty2.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_faulty2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-moreflags.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_moreflags = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-moreflags.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_moreflags = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-ok.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_ok = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-ok.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_ok = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-replacing.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_replacing = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-replacing.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_replacing = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-resync.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_resync = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-resync.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_resync = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-spare.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_spare = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-spare.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_spare = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-syncing.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_syncing = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-syncing.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_syncing = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine.out'), 'r', encoding='utf-8') as f: + mdadm_examine = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-detail.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_detail = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-detail.out'), 'r', encoding='utf-8') as f: + mdadm_query_detail = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid0-ok.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid0_ok = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid0-ok.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid0_ok = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-failed-and-flags.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_failed_and_flags = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-failed-and-flags.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_failed_and_flags = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty-and-removed.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_faulty_and_removed = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty-and-removed.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_faulty_and_removed = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty-with-spare.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_faulty_with_spare = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty-with-spare.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_faulty_with_spare = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_faulty = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_faulty = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-0-9.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_ok_0_9 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-0-9.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_ok_0_9 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-failfast.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_ok_failfast = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-failfast.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_ok_failfast = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-spare.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_ok_spare = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-spare.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_ok_spare = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_ok = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_ok = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-rebuild-failfast.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_rebuild_failfast = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-rebuild-failfast.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_rebuild_failfast = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-spare-writem-rebuild.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_spare_writem_rebuild = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-spare-writem-rebuild.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_spare_writem_rebuild = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-syncing.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_syncing = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-syncing.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_syncing = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container1.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_container1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container1.out'), 'r', encoding='utf-8') as f: + mdadm_examine_container1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container2-dev1.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_container2_dev1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container2-dev1.out'), 'r', encoding='utf-8') as f: + mdadm_examine_container2_dev1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container2-dev2.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_container2_dev2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container2-dev2.out'), 'r', encoding='utf-8') as f: + mdadm_examine_container2_dev2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-homehost.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid5_homehost = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-homehost.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid5_homehost = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-meta09.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid5_meta09 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-meta09.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid5_meta09 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-ok.out'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid5_ok = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-ok.out'), 'r', encoding='utf-8') as f: + mdadm_examine_raid5_ok = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container1-member.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_container1_member = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container1-member.out'), 'r', encoding='utf-8') as f: + mdadm_query_container1_member = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container1-root.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_container1_root = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container1-root.out'), 'r', encoding='utf-8') as f: + mdadm_query_container1_root = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container2-member.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_container2_member = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container2-member.out'), 'r', encoding='utf-8') as f: + mdadm_query_container2_member = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container2-root.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_container2_root = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container2-root.out'), 'r', encoding='utf-8') as f: + mdadm_query_container2_root = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-homehost.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid5_homehost = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-homehost.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid5_homehost = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-meta09.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid5_meta09 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-meta09.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid5_meta09 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-ok.out'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid5_ok = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-ok.out'), 'r', encoding='utf-8') as f: + mdadm_query_raid5_ok = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid0-offline.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid0_offline_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid0-offline.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid0_offline_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid0-ok.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid0_ok_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid0-ok.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid0_ok_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-0-90-ok.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_0_90_ok_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-0-90-ok.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_0_90_ok_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-checking.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_checking_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-checking.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_checking_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-failfast.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_failfast_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-failfast.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_failfast_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-faulty1.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_faulty1_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-faulty1.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_faulty1_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-faulty2.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_faulty2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-faulty2.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_faulty2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-moreflags.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_moreflags_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-moreflags.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_moreflags_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-ok.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_ok_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-ok.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_ok_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-replacing.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_replacing_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-replacing.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_replacing_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-resync.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_resync_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-resync.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_resync_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-spare.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_spare_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-spare.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_spare_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-syncing.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid1_syncing_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid1-syncing.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid1_syncing_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine.json'), 'r', encoding='utf-8') as f: + mdadm_examine_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-detail.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_detial_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-detail.json'), 'r', encoding='utf-8') as f: + mdadm_query_detial_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid0-ok.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid0_ok_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid0-ok.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid0_ok_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-failed-and-flags.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_failed_and_flags_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-failed-and-flags.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_failed_and_flags_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty-and-removed.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_faulty_and_removed_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty-and-removed.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_faulty_and_removed_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty-with-spare.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_faulty_with_spare_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty-with-spare.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_faulty_with_spare_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_faulty_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-faulty.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_faulty_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-0-9.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_ok_0_9_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-0-9.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_ok_0_9_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-failfast.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_ok_failfast_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-failfast.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_ok_failfast_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-spare.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_ok_spare_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok-spare.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_ok_spare_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_ok_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-ok.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_ok_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-rebuild-failfast.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_rebuild_failfast_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-rebuild-failfast.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_rebuild_failfast_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-spare-writem-rebuild.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_spare_writem_rebuild_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-spare-writem-rebuild.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_spare_writem_rebuild_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-syncing.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid1_syncing_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid1-syncing.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid1_syncing_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container1.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_container1_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container1.json'), 'r', encoding='utf-8') as f: + mdadm_examine_container1_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container2-dev1.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_container2_dev1_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container2-dev1.json'), 'r', encoding='utf-8') as f: + mdadm_examine_container2_dev1_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container2-dev2.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_container2_dev2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-container2-dev2.json'), 'r', encoding='utf-8') as f: + mdadm_examine_container2_dev2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-homehost.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid5_homehost_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-homehost.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid5_homehost_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-meta09.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid5_meta09_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-meta09.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid5_meta09_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-ok.json'), 'r', encoding='utf-8') as f: - self.mdadm_examine_raid5_ok_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-examine-raid5-ok.json'), 'r', encoding='utf-8') as f: + mdadm_examine_raid5_ok_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container1-member.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_container1_member_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container1-member.json'), 'r', encoding='utf-8') as f: + mdadm_query_container1_member_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container1-root.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_container1_root_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container1-root.json'), 'r', encoding='utf-8') as f: + mdadm_query_container1_root_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container2-member.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_container2_member_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container2-member.json'), 'r', encoding='utf-8') as f: + mdadm_query_container2_member_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container2-root.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_container2_root_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-container2-root.json'), 'r', encoding='utf-8') as f: + mdadm_query_container2_root_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-homehost.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid5_homehost_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-homehost.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid5_homehost_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-meta09.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid5_meta09_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-meta09.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid5_meta09_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-ok.json'), 'r', encoding='utf-8') as f: - self.mdadm_query_raid5_ok_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/mdadm-query-raid5-ok.json'), 'r', encoding='utf-8') as f: + mdadm_query_raid5_ok_json = json.loads(f.read()) def test_mdadm_nodata(self): diff --git a/tests/test_mount.py b/tests/test_mount.py index 6e9dad64..430da3c2 100644 --- a/tests/test_mount.py +++ b/tests/test_mount.py @@ -8,32 +8,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mount.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_mount = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mount.out'), 'r', encoding='utf-8') as f: + centos_7_7_mount = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mount.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_mount = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mount.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_mount = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/mount.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_mount = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/mount.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_mount = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/mount2.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_mount2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/mount2.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_mount2 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mount.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_mount_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mount.json'), 'r', encoding='utf-8') as f: + centos_7_7_mount_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mount.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_mount_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mount.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_mount_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/mount.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_mount_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/mount.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_mount_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/mount2.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_mount2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/mount2.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_mount2_json = json.loads(f.read()) def test_mount_nodata(self): """ diff --git a/tests/test_mpstat.py b/tests/test_mpstat.py index 389562e9..b2e0551c 100644 --- a/tests/test_mpstat.py +++ b/tests/test_mpstat.py @@ -8,32 +8,31 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat.out'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_A = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A.out'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_A = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_A_2_5 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5.out'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_A_2_5 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mpstat-A.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_mpstat_A = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mpstat-A.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_mpstat_A = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat.json'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_A_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A.json'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_A_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_A_2_5_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5.json'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_A_2_5_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mpstat-A.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_mpstat_A_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mpstat-A.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_mpstat_A_json = json.loads(f.read()) def test_mpstat_nodata(self): diff --git a/tests/test_mpstat_s.py b/tests/test_mpstat_s.py index 15ea69ec..fde59e02 100644 --- a/tests/test_mpstat_s.py +++ b/tests/test_mpstat_s.py @@ -11,32 +11,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat.out'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_A = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A.out'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_A = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_A_2_5 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5.out'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_A_2_5 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mpstat-A.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_mpstat_A = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mpstat-A.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_mpstat_A = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_A_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_A_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_mpstat_A_2_5_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_mpstat_A_2_5_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mpstat-A-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_mpstat_A_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/mpstat-A-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_mpstat_A_streaming_json = json.loads(f.read()) def test_mpstat_s_nodata(self): """ diff --git a/tests/test_netstat.py b/tests/test_netstat.py index 5e1a6af6..209cfb85 100644 --- a/tests/test_netstat.py +++ b/tests/test_netstat.py @@ -8,230 +8,230 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # - # input - # + # + # input + # - # netstat - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat = f.read() + # netstat + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-l.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_l = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-l.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_l = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-l.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_l = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-l.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_l = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-sudo-lnp.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_sudo_lnp = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-sudo-lnp.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_sudo_lnp = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-sudo-lnp.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_sudo_lnp = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-sudo-lnp.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_sudo_lnp = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-sudo-aeep.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_sudo_aeep = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-sudo-aeep.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_sudo_aeep = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-sudo-aeep.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_sudo_aeep = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-sudo-aeep.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_sudo_aeep = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/netstat.out'), 'r', encoding='utf-8') as f: - self.fedora32_netstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/netstat.out'), 'r', encoding='utf-8') as f: + fedora32_netstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat.out'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat.out'), 'r', encoding='utf-8') as f: + osx_14_6_netstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-An.out'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_An = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-An.out'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_An = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-Abn.out'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_Abn = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-Abn.out'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_Abn = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-Aa.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_Aa = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-Aa.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_Aa = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-an.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_an = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-an.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_an = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-AanP.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_AanP = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-AanP.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_AanP = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-AaT.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_AaT = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-AaT.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_AaT = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-Aax.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_Aax = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-Aax.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_Aax = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-aT.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_aT = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-aT.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_aT = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/netstat-old.out'), 'r', encoding='utf-8') as f: - self.generic_netstat_old = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/netstat-old.out'), 'r', encoding='utf-8') as f: + generic_netstat_old = f.read() - # netstat -r - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-r.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_r = f.read() + # netstat -r + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-r.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_r = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-rne.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_rne = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-rne.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_rne = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-rnee.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_rnee = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-rnee.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_rnee = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-r.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_r = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-r.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_r = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-rne.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_rne = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-rne.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_rne = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-rnee.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_rnee = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-rnee.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_rnee = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-r.out'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_r = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-r.out'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_r = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-rnl.out'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_rnl = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-rnl.out'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_rnl = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-r.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_r = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-r.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_r = f.read() - # netstat -i - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-i.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_i = f.read() + # netstat -i + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-i.out'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-i.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_i = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-i.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-i.out'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_i = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-i.out'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-i.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_i = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-i.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-ib.out'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_ib = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-ib.out'), 'r', encoding='utf-8') as f: + freebsd12_netstat_ib = f.read() - # - # output - # + # + # output + # - # netstat - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_json = json.loads(f.read()) + # netstat + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-l.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_l_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-l.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_l_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-l.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_l_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-l.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_l_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-p.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-p.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-p.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-p.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-sudo-lnp.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_sudo_lnp_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-sudo-lnp.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_sudo_lnp_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-sudo-lnp.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_sudo_lnp_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-sudo-lnp.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_sudo_lnp_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-sudo-aeep.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_sudo_aeep_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-sudo-aeep.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_sudo_aeep_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-sudo-aeep.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_sudo_aeep_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-sudo-aeep.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_sudo_aeep_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/netstat.json'), 'r', encoding='utf-8') as f: - self.fedora32_netstat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/netstat.json'), 'r', encoding='utf-8') as f: + fedora32_netstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat.json'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat.json'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-An.json'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_An_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-An.json'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_An_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-Abn.json'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_Abn_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-Abn.json'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_Abn_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-Aa.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_Aa_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-Aa.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_Aa_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-AanP.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_AanP_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-AanP.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_AanP_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-AaT.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_AaT_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-AaT.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_AaT_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-Aax.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_Aax_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-Aax.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_Aax_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-aT.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_aT_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-aT.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_aT_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-an.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_an_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-an.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_an_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/netstat-old.json'), 'r', encoding='utf-8') as f: - self.generic_netstat_old_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/netstat-old.json'), 'r', encoding='utf-8') as f: + generic_netstat_old_json = json.loads(f.read()) - # netsat -r - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-r.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_r_json = json.loads(f.read()) + # netsat -r + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-r.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_r_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-rne.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_rne_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-rne.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_rne_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-rnee.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_rnee_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-rnee.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_rnee_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-r.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_r_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-r.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_r_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-rne.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_rne_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-rne.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_rne_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-rnee.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_rnee_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-rnee.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_rnee_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-r.json'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_r_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-r.json'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_r_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-rnl.json'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_rnl_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-rnl.json'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_rnl_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-r.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_r_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-r.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_r_json = json.loads(f.read()) - # netstat -i - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-i.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_netstat_i_json = json.loads(f.read()) + # netstat -i + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/netstat-i.json'), 'r', encoding='utf-8') as f: + centos_7_7_netstat_i_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-i.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_netstat_i_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/netstat-i.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_netstat_i_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-i.json'), 'r', encoding='utf-8') as f: - self.osx_14_6_netstat_i_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/netstat-i.json'), 'r', encoding='utf-8') as f: + osx_14_6_netstat_i_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-i.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_i_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-i.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_i_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-ib.json'), 'r', encoding='utf-8') as f: + freebsd12_netstat_ib_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/netstat-ib.json'), 'r', encoding='utf-8') as f: - self.freebsd12_netstat_ib_json = json.loads(f.read()) def test_netstat_nodata(self): """ diff --git a/tests/test_nmcli.py b/tests/test_nmcli.py index 9091564f..7f0eb4ab 100644 --- a/tests/test_nmcli.py +++ b/tests/test_nmcli.py @@ -9,90 +9,89 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection-all.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_connection_all = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection-all.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_connection_all = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection-show-ens33.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_connection_show_ens33 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection-show-ens33.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_connection_show_ens33 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_connection = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_connection = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-all.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_all = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-all.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_all = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show-ens33.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_show_ens33 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show-ens33.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_show_ens33 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show-lo.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_show_lo = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show-lo.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_show_lo = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_show = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_show = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-general-all.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_general_all = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-general-all.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_general_all = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-general-permissions.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_general_permissions = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-general-permissions.out'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_general_permissions = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-connection-show-ens33.out'), 'r', encoding='utf-8') as f: - self.fedora32_nmcli_connection_show_ens33 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-connection-show-ens33.out'), 'r', encoding='utf-8') as f: + fedora32_nmcli_connection_show_ens33 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-device-show-ens33.out'), 'r', encoding='utf-8') as f: - self.fedora32_nmcli_device_show_ens33 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-device-show-ens33.out'), 'r', encoding='utf-8') as f: + fedora32_nmcli_device_show_ens33 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-device-show.out'), 'r', encoding='utf-8') as f: - self.fedora32_nmcli_device_show = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-device-show.out'), 'r', encoding='utf-8') as f: + fedora32_nmcli_device_show = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection-all.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_connection_all_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection-all.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_connection_all_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection-show-ens33.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_connection_show_ens33_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection-show-ens33.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_connection_show_ens33_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_connection_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-connection.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_connection_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-all.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_all_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-all.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_all_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show-ens33.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_show_ens33_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show-ens33.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_show_ens33_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show-lo.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_show_lo_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show-lo.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_show_lo_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_show_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device-show.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_show_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_device_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-device.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_device_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-general-all.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_general_all_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-general-all.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_general_all_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-general-permissions.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_nmcli_general_permissions_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/nmcli-general-permissions.json'), 'r', encoding='utf-8') as f: + centos_7_7_nmcli_general_permissions_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-connection-show-ens33.json'), 'r', encoding='utf-8') as f: - self.fedora32_nmcli_connection_show_ens33_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-connection-show-ens33.json'), 'r', encoding='utf-8') as f: + fedora32_nmcli_connection_show_ens33_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-device-show-ens33.json'), 'r', encoding='utf-8') as f: - self.fedora32_nmcli_device_show_ens33_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-device-show-ens33.json'), 'r', encoding='utf-8') as f: + fedora32_nmcli_device_show_ens33_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-device-show.json'), 'r', encoding='utf-8') as f: - self.fedora32_nmcli_device_show_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/nmcli-device-show.json'), 'r', encoding='utf-8') as f: + fedora32_nmcli_device_show_json = json.loads(f.read()) diff --git a/tests/test_ntpq.py b/tests/test_ntpq.py index 23e40a9c..695721e2 100644 --- a/tests/test_ntpq.py +++ b/tests/test_ntpq.py @@ -8,44 +8,44 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ntpq-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ntpq_p = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ntpq-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ntpq_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ntpq_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ntpq_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ntpq-pn.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ntpq_pn = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ntpq-pn.out'), 'r', encoding='utf-8') as f: + centos_7_7_ntpq_pn = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-pn.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ntpq_pn = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-pn.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ntpq_pn = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-p2.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ntpq_p2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-p2.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ntpq_p2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ntpq-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ntpq_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ntpq-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ntpq_p = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ntpq-p.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ntpq_p_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ntpq-p.json'), 'r', encoding='utf-8') as f: + centos_7_7_ntpq_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-p.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ntpq_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-p.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ntpq_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ntpq-pn.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ntpq_pn_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ntpq-pn.json'), 'r', encoding='utf-8') as f: + centos_7_7_ntpq_pn_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-pn.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ntpq_pn_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-pn.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ntpq_pn_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-p2.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ntpq_p2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ntpq-p2.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ntpq_p2_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ntpq-p.json'), 'r', encoding='utf-8') as f: + freebsd12_ntpq_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ntpq-p.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ntpq_p_json = json.loads(f.read()) def test_ntpq_p_nodata(self): """ diff --git a/tests/test_passwd.py b/tests/test_passwd.py index 51cea4f9..08d01859 100644 --- a/tests/test_passwd.py +++ b/tests/test_passwd.py @@ -8,26 +8,26 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/passwd.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_passwd = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/passwd.out'), 'r', encoding='utf-8') as f: + centos_7_7_passwd = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/passwd.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_passwd = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/passwd.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_passwd = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/passwd.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_passwd = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/passwd.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_passwd = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/passwd.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_passwd_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/passwd.json'), 'r', encoding='utf-8') as f: + centos_7_7_passwd_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/passwd.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_passwd_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/passwd.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_passwd_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/passwd.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_passwd_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/passwd.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_passwd_json = json.loads(f.read()) def test_passwd_nodata(self): """ diff --git a/tests/test_pidstat.py b/tests/test_pidstat.py index 01c2e60e..7544d0f3 100644 --- a/tests/test_pidstat.py +++ b/tests/test_pidstat.py @@ -9,29 +9,28 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat.out'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hl.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hl = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hl.out'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hl = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hdlrsuw = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw.out'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hdlrsuw = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hdlrsuw_2_5 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.out'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hdlrsuw_2_5 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hl.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hl_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hl.json'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hl_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hdlrsuw_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw.json'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hdlrsuw_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hdlrsuw_2_5_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.json'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hdlrsuw_2_5_json = json.loads(f.read()) def test_pidstat_nodata(self): diff --git a/tests/test_pidstat_s.py b/tests/test_pidstat_s.py index 9c4282d0..fce3156d 100644 --- a/tests/test_pidstat_s.py +++ b/tests/test_pidstat_s.py @@ -11,29 +11,29 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat.out'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hl.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hl = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hl.out'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hl = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hdlrsuw = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw.out'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hdlrsuw = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hdlrsuw_2_5 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.out'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hdlrsuw_2_5 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hl-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hl_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hl-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hl_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hdlrsuw_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hdlrsuw_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_pidstat_hdlrsuw_2_5_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_pidstat_hdlrsuw_2_5_streaming_json = json.loads(f.read()) def test_pidstat_s_nodata(self): """ diff --git a/tests/test_ping.py b/tests/test_ping.py index 71558cae..0e10d317 100644 --- a/tests/test_ping.py +++ b/tests/test_ping.py @@ -8,408 +8,407 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input + # input - # centos - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O = f.read() + # centos + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_D = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_D = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_D_p_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p-unparsable.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_p_unparsable = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p-unparsable.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_p_unparsable = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_D_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_D_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_hostname_O_D_p_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-dup.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_dup = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-dup.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_dup = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-dup.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_dup = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-dup.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_dup = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-unparsedlines.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_unparsedlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-unparsedlines.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_unparsedlines = f.read() - # ubuntu - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_ip_O = f.read() + # ubuntu + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_ip_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_ip_O_D = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_ip_O_D = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_D_p_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_ip_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_ip_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_ip_O_D_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_ip_O_D_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_hostname_O_D_p_s = f.read() - # fedora - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_ip_O = f.read() + # fedora + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O.out'), 'r', encoding='utf-8') as f: + fedora32_ping_ip_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_ip_O_D = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: + fedora32_ping_ip_O_D = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O.out'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_D_p_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_ip_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: + fedora32_ping6_ip_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_ip_O_D_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: + fedora32_ping6_ip_O_D_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: + fedora32_ping6_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + fedora32_ping6_hostname_O_D_p_s = f.read() - # freebsd - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_p = f.read() + # freebsd + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-s.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-s.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-s.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-s.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-s.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-s.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-s.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-s.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip = f.read() - # osx - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_p = f.read() + # osx + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unreachable.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_unreachable = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unreachable.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_unreachable = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unknown-errors.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_unknown_errors = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unknown-errors.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_unknown_errors = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-unparsable.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_unparsable = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-unparsable.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_unparsable = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-dup.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_dup = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-dup.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_dup = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-dup.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_dup = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-dup.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_dup = f.read() - # raspberry pi - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O.out'), 'r', encoding='utf-8') as f: - self.pi_ping_ip_O = f.read() + # raspberry pi + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O.out'), 'r', encoding='utf-8') as f: + pi_ping_ip_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: - self.pi_ping_ip_O_D = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: + pi_ping_ip_O_D = f.read() - # alpine-linux - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/alpine-linux-3.13/ping-ip.out'), 'r', encoding='utf-8') as f: - self.alpine_linux_3_13_ping_ip = f.read() + # alpine-linux + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/alpine-linux-3.13/ping-ip.out'), 'r', encoding='utf-8') as f: + alpine_linux_3_13_ping_ip = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/alpine-linux-3.13/ping-hostname.out'), 'r', encoding='utf-8') as f: - self.alpine_linux_3_13_ping_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/alpine-linux-3.13/ping-hostname.out'), 'r', encoding='utf-8') as f: + alpine_linux_3_13_ping_hostname = f.read() - # output + # output - # centos - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_json = json.loads(f.read()) + # centos + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-D.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_D_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-D.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_D_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-p.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-p.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_D_p_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_D_p_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p-unparsable.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_p_unparsable_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p-unparsable.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_p_unparsable_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-D-p.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_D_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-D-p.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_D_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-p.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_hostname_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-p.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_hostname_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_hostname_O_D_p_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_hostname_O_D_p_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-dup.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_dup_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-dup.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_dup_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-dup.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_dup_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-dup.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_dup_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-unparsedlines.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_unparsedlines_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-unparsedlines.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_unparsedlines_json = json.loads(f.read()) - # ubunutu - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_ip_O_json = json.loads(f.read()) + # ubunutu + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_ip_O_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-D.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_ip_O_D_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-D.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_ip_O_D_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-p.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-p.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_D_p_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_D_p_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-p.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_ip_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-p.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_ip_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_ip_O_D_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_ip_O_D_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_hostname_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_hostname_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_hostname_O_D_p_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_hostname_O_D_p_s_json = json.loads(f.read()) - # fedora - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_ip_O_json = json.loads(f.read()) + # fedora + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O.json'), 'r', encoding='utf-8') as f: + fedora32_ping_ip_O_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-D.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_ip_O_D_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-D.json'), 'r', encoding='utf-8') as f: + fedora32_ping_ip_O_D_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O.json'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-p.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-p.json'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_D_p_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_D_p_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-p.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_ip_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-p.json'), 'r', encoding='utf-8') as f: + fedora32_ping6_ip_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-D-p.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_ip_O_D_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-D-p.json'), 'r', encoding='utf-8') as f: + fedora32_ping6_ip_O_D_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-p.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_hostname_O_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-p.json'), 'r', encoding='utf-8') as f: + fedora32_ping6_hostname_O_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_hostname_O_D_p_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-D-p-s.json'), 'r', encoding='utf-8') as f: + fedora32_ping6_hostname_O_D_p_s_json = json.loads(f.read()) - # freebsd - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-p.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_p_json = json.loads(f.read()) + # freebsd + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-p.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-s.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-s.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-p.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-p.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-s.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-s.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-p.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-p.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-s.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-s.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-p.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-p.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-s.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-s.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_json = json.loads(f.read()) - # osx: - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-p.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_p_json = json.loads(f.read()) + # osx: + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-p.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-s.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-s.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-p.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-p.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-s.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-s.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unreachable.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_unreachable_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unreachable.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_unreachable_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unknown-errors.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_unknown_errors_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unknown-errors.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_unknown_errors_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-p.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-p.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-s.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-s.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-p.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-p.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-s.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_s_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-s.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_s_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-unparsable.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_unparsable_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-unparsable.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_unparsable_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-dup.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_dup_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-dup.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_dup_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-dup.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_dup_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-dup.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_dup_json = json.loads(f.read()) - # raspberry pi - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O.json'), 'r', encoding='utf-8') as f: - self.pi_ping_ip_O_json = json.loads(f.read()) + # raspberry pi + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O.json'), 'r', encoding='utf-8') as f: + pi_ping_ip_O_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-D.json'), 'r', encoding='utf-8') as f: - self.pi_ping_ip_O_D_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-D.json'), 'r', encoding='utf-8') as f: + pi_ping_ip_O_D_json = json.loads(f.read()) - # alpine-linux - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/alpine-linux-3.13/ping-ip.json'), 'r', encoding='utf-8') as f: - self.alpine_linux_3_13_ping_ip_json = json.loads(f.read()) + # alpine-linux + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/alpine-linux-3.13/ping-ip.json'), 'r', encoding='utf-8') as f: + alpine_linux_3_13_ping_ip_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/alpine-linux-3.13/ping-hostname.json'), 'r', encoding='utf-8') as f: - self.alpine_linux_3_13_ping_hostname_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/alpine-linux-3.13/ping-hostname.json'), 'r', encoding='utf-8') as f: + alpine_linux_3_13_ping_hostname_json = json.loads(f.read()) def test_ping_nodata(self): diff --git a/tests/test_ping_s.py b/tests/test_ping_s.py index c1eaa63b..55377fea 100644 --- a/tests/test_ping_s.py +++ b/tests/test_ping_s.py @@ -13,385 +13,385 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input + # input - # centos - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O = f.read() + # centos + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_D = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_D = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_D_p_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p-unparsable.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_p_unparsable = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p-unparsable.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_p_unparsable = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_D_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_D_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_hostname_O_D_p_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-dup.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_dup = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-dup.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_dup = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-dup.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_dup = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-dup.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_dup = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-unparsedlines.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_unparsedlines = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-unparsedlines.out'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_unparsedlines = f.read() - # ubuntu - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_ip_O = f.read() + # ubuntu + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_ip_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_ip_O_D = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_ip_O_D = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_D_p_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_ip_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_ip_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_ip_O_D_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_ip_O_D_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_hostname_O_D_p_s = f.read() - # fedora - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_ip_O = f.read() + # fedora + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O.out'), 'r', encoding='utf-8') as f: + fedora32_ping_ip_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_ip_O_D = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: + fedora32_ping_ip_O_D = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O.out'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-p.out'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_D_p_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_ip_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-p.out'), 'r', encoding='utf-8') as f: + fedora32_ping6_ip_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_ip_O_D_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-D-p.out'), 'r', encoding='utf-8') as f: + fedora32_ping6_ip_O_D_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_hostname_O_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-p.out'), 'r', encoding='utf-8') as f: + fedora32_ping6_hostname_O_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_hostname_O_D_p_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-D-p-s.out'), 'r', encoding='utf-8') as f: + fedora32_ping6_hostname_O_D_p_s = f.read() - # freebsd - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_p = f.read() + # freebsd + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-s.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-s.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-s.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-s.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip.out'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-s.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-s.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-p.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-p.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-s.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-s.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip.out'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip.out'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip = f.read() - # osx - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_p = f.read() + # osx + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unreachable.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_unreachable = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unreachable.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_unreachable = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unknown-errors.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_unknown_errors = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unknown-errors.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_unknown_errors = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-s.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_s = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-s.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_s = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-unparsable.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_unparsable = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-unparsable.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_unparsable = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-dup.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_dup = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-dup.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_dup = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-dup.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_dup = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-dup.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_dup = f.read() - # raspberry pi - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O.out'), 'r', encoding='utf-8') as f: - self.pi_ping_ip_O = f.read() + # raspberry pi + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O.out'), 'r', encoding='utf-8') as f: + pi_ping_ip_O = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: - self.pi_ping_ip_O_D = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-D.out'), 'r', encoding='utf-8') as f: + pi_ping_ip_O_D = f.read() - # output + # output - # centos - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_streaming_json = json.loads(f.read()) + # centos + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-streaming-ignore-exceptions.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_streaming_ignore_exceptions_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-streaming-ignore-exceptions.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_streaming_ignore_exceptions_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-D-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_O_D_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-O-D-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_O_D_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_hostname_O_D_p_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_hostname_O_D_p_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-p-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-D-p-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_O_D_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-O-D-p-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_O_D_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_hostname_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_hostname_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_hostname_O_D_p_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_hostname_O_D_p_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-dup-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping_ip_dup_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping-ip-dup-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping_ip_dup_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-dup-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ping6_ip_dup_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ping6-ip-dup-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_ping6_ip_dup_streaming_json = json.loads(f.read()) - # ubunutu - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_ip_O_streaming_json = json.loads(f.read()) + # ubunutu + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_ip_O_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-D-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_ip_O_D_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-ip-O-D-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_ip_O_D_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping_hostname_O_D_p_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping_hostname_O_D_p_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_ip_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-p-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_ip_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_ip_O_D_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_ip_O_D_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_hostname_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_hostname_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ping6_hostname_O_D_p_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ping6_hostname_O_D_p_s_streaming_json = json.loads(f.read()) - # fedora - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_ip_O_streaming_json = json.loads(f.read()) + # fedora + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping_ip_O_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-D-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_ip_O_D_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-ip-O-D-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping_ip_O_D_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping_hostname_O_D_p_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping_hostname_O_D_p_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_ip_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-p-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping6_ip_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-D-p-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_ip_O_D_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-ip-O-D-p-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping6_ip_O_D_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_hostname_O_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-p-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping6_hostname_O_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: - self.fedora32_ping6_hostname_O_D_p_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/fedora32/ping6-hostname-O-D-p-s-streaming.json'), 'r', encoding='utf-8') as f: + fedora32_ping6_hostname_O_D_p_s_streaming_json = json.loads(f.read()) - # freebsd - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-p-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_p_streaming_json = json.loads(f.read()) + # freebsd + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-p-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-s-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-s-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_hostname_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-hostname-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_hostname_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-p-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-p-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-s-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-s-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping_ip_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping-ip-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping_ip_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-p-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-p-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-s-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-s-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_hostname_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-hostname-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_hostname_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-p-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-p-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-s-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-s-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_ping6_ip_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/ping6-ip-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_ping6_ip_streaming_json = json.loads(f.read()) - # osx: - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-p-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_p_streaming_json = json.loads(f.read()) + # osx: + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-p-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-s-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-s-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_hostname_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-hostname-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_hostname_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-p-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-p-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-s-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-s-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unreachable-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_unreachable_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-unreachable-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_unreachable_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-p-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-p-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-s-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-s-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_hostname_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-hostname-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_hostname_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-p-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_p_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-p-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_p_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-s-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_s_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-s-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_s_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-dup-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping_ip_dup_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping-ip-dup-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping_ip_dup_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-dup-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ping6_ip_dup_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ping6-ip-dup-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ping6_ip_dup_streaming_json = json.loads(f.read()) - # raspberry pi - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-streaming.json'), 'r', encoding='utf-8') as f: - self.pi_ping_ip_O_streaming_json = json.loads(f.read()) + # raspberry pi + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-streaming.json'), 'r', encoding='utf-8') as f: + pi_ping_ip_O_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-D-streaming.json'), 'r', encoding='utf-8') as f: + pi_ping_ip_O_D_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/pi/ping-ip-O-D-streaming.json'), 'r', encoding='utf-8') as f: - self.pi_ping_ip_O_D_streaming_json = json.loads(f.read()) def test_ping_s_nodata(self): """ diff --git a/tests/test_pip_list.py b/tests/test_pip_list.py index f38ba9d3..43633683 100644 --- a/tests/test_pip_list.py +++ b/tests/test_pip_list.py @@ -8,38 +8,38 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pip-list.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pip_list = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pip-list.out'), 'r', encoding='utf-8') as f: + centos_7_7_pip_list = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-list.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_pip_list = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-list.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_pip_list = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-list-legacy.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_pip_list_legacy = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-list-legacy.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_pip_list_legacy = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/pip-list.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_pip_list = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/pip-list.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_pip_list = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/pip-list.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_pip_list = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/pip-list.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_pip_list = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pip-list.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_pip_list_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pip-list.json'), 'r', encoding='utf-8') as f: + centos_7_7_pip_list_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-list.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_pip_list_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-list.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_pip_list_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-list-legacy.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_pip_list_legacy_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-list-legacy.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_pip_list_legacy_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/pip-list.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_pip_list_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/pip-list.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_pip_list_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/pip-list.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_pip_list_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/pip-list.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_pip_list_json = json.loads(f.read()) def test_pip_list_nodata(self): """ diff --git a/tests/test_pip_show.py b/tests/test_pip_show.py index 1923980b..9e69976e 100644 --- a/tests/test_pip_show.py +++ b/tests/test_pip_show.py @@ -8,38 +8,38 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pip-show.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_pip_show = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pip-show.out'), 'r', encoding='utf-8') as f: + centos_7_7_pip_show = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-show.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_pip_show = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-show.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_pip_show = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/pip-show.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_pip_show = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/pip-show.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_pip_show = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/pip-show.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_pip_show = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/pip-show.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_pip_show = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/pip-show-multiline-license.out'), 'r', encoding='utf-8') as f: - self.generic_pip_show_multiline_license = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/pip-show-multiline-license.out'), 'r', encoding='utf-8') as f: + generic_pip_show_multiline_license = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pip-show.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_pip_show_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/pip-show.json'), 'r', encoding='utf-8') as f: + centos_7_7_pip_show_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-show.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_pip_show_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/pip-show.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_pip_show_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/pip-show.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_pip_show_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/pip-show.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_pip_show_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/pip-show.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_pip_show_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/pip-show.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_pip_show_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/pip-show-multiline-license.json'), 'r', encoding='utf-8') as f: + generic_pip_show_multiline_license_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/pip-show-multiline-license.json'), 'r', encoding='utf-8') as f: - self.generic_pip_show_multiline_license_json = json.loads(f.read()) def test_pip_show_nodata(self): """ diff --git a/tests/test_plist.py b/tests/test_plist.py index 432be1d0..ce38856e 100644 --- a/tests/test_plist.py +++ b/tests/test_plist.py @@ -8,32 +8,31 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-garageband-info.plist'), 'rb') as f: - self.generic_garageband = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-garageband-info.plist'), 'rb') as f: + generic_garageband = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-safari-info.plist'), 'r', encoding='utf-8') as f: - self.generic_safari = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-safari-info.plist'), 'r', encoding='utf-8') as f: + generic_safari = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-alltypes.plist'), 'r', encoding='utf-8') as f: - self.generic_alltypes = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-alltypes.plist'), 'r', encoding='utf-8') as f: + generic_alltypes = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-alltypes-bin.plist'), 'rb') as f: - self.generic_alltypes_bin = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-alltypes-bin.plist'), 'rb') as f: + generic_alltypes_bin = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-garageband-info.json'), 'r', encoding='utf-8') as f: - self.generic_garageband_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-garageband-info.json'), 'r', encoding='utf-8') as f: + generic_garageband_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-safari-info.json'), 'r', encoding='utf-8') as f: - self.generic_safari_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-safari-info.json'), 'r', encoding='utf-8') as f: + generic_safari_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-alltypes.json'), 'r', encoding='utf-8') as f: - self.generic_alltypes_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-alltypes.json'), 'r', encoding='utf-8') as f: + generic_alltypes_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-alltypes-bin.json'), 'r', encoding='utf-8') as f: - self.generic_alltypes_bin_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/plist-alltypes-bin.json'), 'r', encoding='utf-8') as f: + generic_alltypes_bin_json = json.loads(f.read()) def test_plist_nodata(self): diff --git a/tests/test_postconf.py b/tests/test_postconf.py index c02dad57..8ad71e24 100644 --- a/tests/test_postconf.py +++ b/tests/test_postconf.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/postconf-M.out'), 'r', encoding='utf-8') as f: - self.generic_postconf_m = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/postconf-M.out'), 'r', encoding='utf-8') as f: + generic_postconf_m = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/postconf-M.json'), 'r', encoding='utf-8') as f: - self.generic_postconf_m_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/postconf-M.json'), 'r', encoding='utf-8') as f: + generic_postconf_m_json = json.loads(f.read()) def test_postconf_nodata(self): diff --git a/tests/test_proc.py b/tests/test_proc.py new file mode 100644 index 00000000..b96e289b --- /dev/null +++ b/tests/test_proc.py @@ -0,0 +1,237 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc +from jc.exceptions import ParseError + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + """ + These tests replicate the individual /proc file module tests, but the purpose + is different. These tests ensure the file signature matching engine in the + /proc parser module sends the user input to the correct parser. + + Signature match regex can be order dependent, so these tests make sure we + don't break anything when adding/removing/re-ordering the signature regexes. + """ + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_buddyinfo': ( + 'fixtures/linux-proc/buddyinfo', + 'fixtures/linux-proc/buddyinfo.json'), + 'proc_consoles': ( + 'fixtures/linux-proc/consoles', + 'fixtures/linux-proc/consoles.json'), + 'proc_consoles2': ( + 'fixtures/linux-proc/consoles2', + 'fixtures/linux-proc/consoles2.json'), + 'proc_cpuinfo': ( + 'fixtures/linux-proc/cpuinfo', + 'fixtures/linux-proc/cpuinfo.json'), + 'proc_cpuinfo2': ( + 'fixtures/linux-proc/cpuinfo2', + 'fixtures/linux-proc/cpuinfo2.json'), + 'proc_crypto': ( + 'fixtures/linux-proc/crypto', + 'fixtures/linux-proc/crypto.json'), + 'proc_devices': ( + 'fixtures/linux-proc/devices', + 'fixtures/linux-proc/devices.json'), + 'proc_diskstats': ( + 'fixtures/linux-proc/diskstats', + 'fixtures/linux-proc/diskstats.json'), + 'proc_filesystems': ( + 'fixtures/linux-proc/filesystems', + 'fixtures/linux-proc/filesystems.json'), + 'proc_interrupts': ( + 'fixtures/linux-proc/interrupts', + 'fixtures/linux-proc/interrupts.json'), + 'proc_iomem': ( + 'fixtures/linux-proc/iomem', + 'fixtures/linux-proc/iomem.json'), + 'proc_ioports': ( + 'fixtures/linux-proc/ioports', + 'fixtures/linux-proc/ioports.json'), + 'proc_loadavg': ( + 'fixtures/linux-proc/loadavg', + 'fixtures/linux-proc/loadavg.json'), + 'proc_locks': ( + 'fixtures/linux-proc/locks', + 'fixtures/linux-proc/locks.json'), + 'proc_meminfo': ( + 'fixtures/linux-proc/meminfo', + 'fixtures/linux-proc/meminfo.json'), + 'proc_modules': ( + 'fixtures/linux-proc/modules', + 'fixtures/linux-proc/modules.json'), + 'proc_mtrr': ( + 'fixtures/linux-proc/mtrr', + 'fixtures/linux-proc/mtrr.json'), + 'proc_pagetypeinfo': ( + 'fixtures/linux-proc/pagetypeinfo', + 'fixtures/linux-proc/pagetypeinfo.json'), + 'proc_partitions': ( + 'fixtures/linux-proc/partitions', + 'fixtures/linux-proc/partitions.json'), + 'proc_slabinfo': ( + 'fixtures/linux-proc/slabinfo', + 'fixtures/linux-proc/slabinfo.json'), + 'proc_softirqs': ( + 'fixtures/linux-proc/softirqs', + 'fixtures/linux-proc/softirqs.json'), + 'proc_stat': ( + 'fixtures/linux-proc/stat', + 'fixtures/linux-proc/stat.json'), + 'proc_stat2': ( + 'fixtures/linux-proc/stat2', + 'fixtures/linux-proc/stat2.json'), + 'proc_swaps': ( + 'fixtures/linux-proc/swaps', + 'fixtures/linux-proc/swaps.json'), + 'proc_uptime': ( + 'fixtures/linux-proc/uptime', + 'fixtures/linux-proc/uptime.json'), + 'proc_version': ( + 'fixtures/linux-proc/version', + 'fixtures/linux-proc/version.json'), + 'proc_version2': ( + 'fixtures/linux-proc/version2', + 'fixtures/linux-proc/version2.json'), + 'proc_version3': ( + 'fixtures/linux-proc/version3', + 'fixtures/linux-proc/version3.json'), + 'proc_vmallocinfo': ( + 'fixtures/linux-proc/vmallocinfo', + 'fixtures/linux-proc/vmallocinfo.json'), + 'proc_vmstat': ( + 'fixtures/linux-proc/vmstat', + 'fixtures/linux-proc/vmstat.json'), + 'proc_zoneinfo': ( + 'fixtures/linux-proc/zoneinfo', + 'fixtures/linux-proc/zoneinfo.json'), + 'proc_zoneinfo2': ( + 'fixtures/linux-proc/zoneinfo2', + 'fixtures/linux-proc/zoneinfo2.json'), + + 'proc_driver_rtc': ( + 'fixtures/linux-proc/driver_rtc', + 'fixtures/linux-proc/driver_rtc.json'), + + 'proc_net_arp': ( + 'fixtures/linux-proc/net_arp', + 'fixtures/linux-proc/net_arp.json'), + 'proc_net_dev_mcast': ( + 'fixtures/linux-proc/net_dev_mcast', + 'fixtures/linux-proc/net_dev_mcast.json'), + 'proc_net_dev': ( + 'fixtures/linux-proc/net_dev', + 'fixtures/linux-proc/net_dev.json'), + 'proc_net_if_inet6': ( + 'fixtures/linux-proc/net_if_inet6', + 'fixtures/linux-proc/net_if_inet6.json'), + 'proc_net_igmp': ( + 'fixtures/linux-proc/net_igmp', + 'fixtures/linux-proc/net_igmp.json'), + 'proc_net_igmp_more': ( + 'fixtures/linux-proc/net_igmp_more', + 'fixtures/linux-proc/net_igmp_more.json'), + 'proc_net_igmp6': ( + 'fixtures/linux-proc/net_igmp6', + 'fixtures/linux-proc/net_igmp6.json'), + 'proc_net_ipv6_route': ( + 'fixtures/linux-proc/net_ipv6_route', + 'fixtures/linux-proc/net_ipv6_route.json'), + 'proc_net_netlink': ( + 'fixtures/linux-proc/net_netlink', + 'fixtures/linux-proc/net_netlink.json'), + 'proc_net_netstat': ( + 'fixtures/linux-proc/net_netstat', + 'fixtures/linux-proc/net_netstat.json'), + 'proc_net_packet': ( + 'fixtures/linux-proc/net_packet', + 'fixtures/linux-proc/net_packet.json'), + 'proc_net_protocols': ( + 'fixtures/linux-proc/net_protocols', + 'fixtures/linux-proc/net_protocols.json'), + 'proc_net_route': ( + 'fixtures/linux-proc/net_route', + 'fixtures/linux-proc/net_route.json'), + 'proc_net_unix': ( + 'fixtures/linux-proc/net_unix', + 'fixtures/linux-proc/net_unix.json'), + + 'proc_pid_fdinfo': ( + 'fixtures/linux-proc/pid_fdinfo', + 'fixtures/linux-proc/pid_fdinfo.json'), + 'proc_pid_fdinfo_dma': ( + 'fixtures/linux-proc/pid_fdinfo_dma', + 'fixtures/linux-proc/pid_fdinfo_dma.json'), + 'proc_pid_fdinfo_epoll': ( + 'fixtures/linux-proc/pid_fdinfo_epoll', + 'fixtures/linux-proc/pid_fdinfo_epoll.json'), + 'proc_pid_fdinfo_fanotify': ( + 'fixtures/linux-proc/pid_fdinfo_fanotify', + 'fixtures/linux-proc/pid_fdinfo_fanotify.json'), + 'proc_pid_fdinfo_inotify': ( + 'fixtures/linux-proc/pid_fdinfo_inotify', + 'fixtures/linux-proc/pid_fdinfo_inotify.json'), + 'proc_pid_fdinfo_timerfd': ( + 'fixtures/linux-proc/pid_fdinfo_timerfd', + 'fixtures/linux-proc/pid_fdinfo_timerfd.json'), + 'proc_pid_io': ( + 'fixtures/linux-proc/pid_io', + 'fixtures/linux-proc/pid_io.json'), + 'proc_pid_maps': ( + 'fixtures/linux-proc/pid_maps', + 'fixtures/linux-proc/pid_maps.json'), + 'proc_pid_mountinfo': ( + 'fixtures/linux-proc/pid_mountinfo', + 'fixtures/linux-proc/pid_mountinfo.json'), + 'proc_pid_numa_maps': ( + 'fixtures/linux-proc/pid_numa_maps', + 'fixtures/linux-proc/pid_numa_maps.json'), + 'proc_pid_smaps': ( + 'fixtures/linux-proc/pid_smaps', + 'fixtures/linux-proc/pid_smaps.json'), + 'proc_pid_stat': ( + 'fixtures/linux-proc/pid_stat', + 'fixtures/linux-proc/pid_stat.json'), + 'proc_pid_statm': ( + 'fixtures/linux-proc/pid_statm', + 'fixtures/linux-proc/pid_statm.json'), + 'proc_pid_status': ( + 'fixtures/linux-proc/pid_status', + 'fixtures/linux-proc/pid_status.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_foo_nodata(self): + """ + Test 'foo' with no data + """ + self.assertRaises(ParseError, jc.parsers.proc.parse, '') + + def test_proc_file_signature_detection(self): + """ + Test proc parser file signature detection + """ + for in_, expected in zip(self.f_in.keys(), self.f_json.keys()): + self.assertEqual(jc.parsers.proc.parse(self.f_in[in_], quiet=True), + self.f_json[expected]) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_buddyinfo.py b/tests/test_proc_buddyinfo.py new file mode 100644 index 00000000..6d74572b --- /dev/null +++ b/tests/test_proc_buddyinfo.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_buddyinfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_buddyinfo': ( + 'fixtures/linux-proc/buddyinfo', + 'fixtures/linux-proc/buddyinfo.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_buddyinfo_nodata(self): + """ + Test 'proc_buddyinfo' with no data + """ + self.assertEqual(jc.parsers.proc_buddyinfo.parse('', quiet=True), []) + + def test_proc_buddyinfo(self): + """ + Test '/proc/buddyinfo' + """ + self.assertEqual(jc.parsers.proc_buddyinfo.parse(self.f_in['proc_buddyinfo'], quiet=True), + self.f_json['proc_buddyinfo']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_consoles.py b/tests/test_proc_consoles.py new file mode 100644 index 00000000..928884b0 --- /dev/null +++ b/tests/test_proc_consoles.py @@ -0,0 +1,54 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_consoles + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_consoles': ( + 'fixtures/linux-proc/consoles', + 'fixtures/linux-proc/consoles.json'), + 'proc_consoles2': ( + 'fixtures/linux-proc/consoles2', + 'fixtures/linux-proc/consoles2.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_consoles_nodata(self): + """ + Test 'proc_consoles' with no data + """ + self.assertEqual(jc.parsers.proc_consoles.parse('', quiet=True), []) + + def test_proc_consoles(self): + """ + Test '/proc/consoles' + """ + self.assertEqual(jc.parsers.proc_consoles.parse(self.f_in['proc_consoles'], quiet=True), + self.f_json['proc_consoles']) + + def test_proc_consoles2(self): + """ + Test '/proc/consoles2' + """ + self.assertEqual(jc.parsers.proc_consoles.parse(self.f_in['proc_consoles2'], quiet=True), + self.f_json['proc_consoles2']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_cpuinfo.py b/tests/test_proc_cpuinfo.py new file mode 100644 index 00000000..e95a8be2 --- /dev/null +++ b/tests/test_proc_cpuinfo.py @@ -0,0 +1,54 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_cpuinfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_cpuinfo': ( + 'fixtures/linux-proc/cpuinfo', + 'fixtures/linux-proc/cpuinfo.json'), + 'proc_cpuinfo2': ( + 'fixtures/linux-proc/cpuinfo2', + 'fixtures/linux-proc/cpuinfo2.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_cpuinfo_nodata(self): + """ + Test 'proc_cpuinfo' with no data + """ + self.assertEqual(jc.parsers.proc_cpuinfo.parse('', quiet=True), []) + + def test_proc_cpuinfo(self): + """ + Test '/proc/buddyinfo' + """ + self.assertEqual(jc.parsers.proc_cpuinfo.parse(self.f_in['proc_cpuinfo'], quiet=True), + self.f_json['proc_cpuinfo']) + + def test_proc_cpuinfo2(self): + """ + Test '/proc/buddyinfo2' + """ + self.assertEqual(jc.parsers.proc_cpuinfo.parse(self.f_in['proc_cpuinfo2'], quiet=True), + self.f_json['proc_cpuinfo2']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_crypto.py b/tests/test_proc_crypto.py new file mode 100644 index 00000000..0cc01a02 --- /dev/null +++ b/tests/test_proc_crypto.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_crypto + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_crypto': ( + 'fixtures/linux-proc/crypto', + 'fixtures/linux-proc/crypto.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_crypto_nodata(self): + """ + Test 'proc_crypto' with no data + """ + self.assertEqual(jc.parsers.proc_crypto.parse('', quiet=True), []) + + def test_proc_crypto(self): + """ + Test '/proc/crypto' + """ + self.assertEqual(jc.parsers.proc_crypto.parse(self.f_in['proc_crypto'], quiet=True), + self.f_json['proc_crypto']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_devices.py b/tests/test_proc_devices.py new file mode 100644 index 00000000..6874a4c7 --- /dev/null +++ b/tests/test_proc_devices.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_devices + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_devices': ( + 'fixtures/linux-proc/devices', + 'fixtures/linux-proc/devices.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_devices_nodata(self): + """ + Test 'proc_devices' with no data + """ + self.assertEqual(jc.parsers.proc_devices.parse('', quiet=True), {}) + + def test_proc_devices(self): + """ + Test '/proc/devices' + """ + self.assertEqual(jc.parsers.proc_devices.parse(self.f_in['proc_devices'], quiet=True), + self.f_json['proc_devices']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_diskstats.py b/tests/test_proc_diskstats.py new file mode 100644 index 00000000..fcbb693e --- /dev/null +++ b/tests/test_proc_diskstats.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_diskstats + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_diskstats': ( + 'fixtures/linux-proc/diskstats', + 'fixtures/linux-proc/diskstats.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_diskstats_nodata(self): + """ + Test 'proc_diskstats' with no data + """ + self.assertEqual(jc.parsers.proc_diskstats.parse('', quiet=True), []) + + def test_proc_diskstats(self): + """ + Test '/proc/diskstats' + """ + self.assertEqual(jc.parsers.proc_diskstats.parse(self.f_in['proc_diskstats'], quiet=True), + self.f_json['proc_diskstats']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_driver_rtc.py b/tests/test_proc_driver_rtc.py new file mode 100644 index 00000000..46a54d78 --- /dev/null +++ b/tests/test_proc_driver_rtc.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_driver_rtc + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_driver_rtc': ( + 'fixtures/linux-proc/driver_rtc', + 'fixtures/linux-proc/driver_rtc.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_driver_rtc_nodata(self): + """ + Test 'proc_driver_rtc' with no data + """ + self.assertEqual(jc.parsers.proc_driver_rtc.parse('', quiet=True), {}) + + def test_proc_driver_rtc(self): + """ + Test '/proc/driver_rtc' + """ + self.assertEqual(jc.parsers.proc_driver_rtc.parse(self.f_in['proc_driver_rtc'], quiet=True), + self.f_json['proc_driver_rtc']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_filesystems.py b/tests/test_proc_filesystems.py new file mode 100644 index 00000000..8c333d95 --- /dev/null +++ b/tests/test_proc_filesystems.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_filesystems + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_filesystems': ( + 'fixtures/linux-proc/filesystems', + 'fixtures/linux-proc/filesystems.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_filesystems_nodata(self): + """ + Test 'proc_filesystems' with no data + """ + self.assertEqual(jc.parsers.proc_filesystems.parse('', quiet=True), []) + + def test_proc_filesystems(self): + """ + Test '/proc/buddyinfo' + """ + self.assertEqual(jc.parsers.proc_filesystems.parse(self.f_in['proc_filesystems'], quiet=True), + self.f_json['proc_filesystems']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_interrupts.py b/tests/test_proc_interrupts.py new file mode 100644 index 00000000..f553f028 --- /dev/null +++ b/tests/test_proc_interrupts.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_interrupts + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_interrupts': ( + 'fixtures/linux-proc/interrupts', + 'fixtures/linux-proc/interrupts.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_interrupts_nodata(self): + """ + Test 'proc_interrupts' with no data + """ + self.assertEqual(jc.parsers.proc_interrupts.parse('', quiet=True), []) + + def test_proc_interrupts(self): + """ + Test '/proc/interrupts' + """ + self.assertEqual(jc.parsers.proc_interrupts.parse(self.f_in['proc_interrupts'], quiet=True), + self.f_json['proc_interrupts']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_iomem.py b/tests/test_proc_iomem.py new file mode 100644 index 00000000..bf60040b --- /dev/null +++ b/tests/test_proc_iomem.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_iomem + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_iomem': ( + 'fixtures/linux-proc/iomem', + 'fixtures/linux-proc/iomem.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_iomem_nodata(self): + """ + Test 'proc_iomem' with no data + """ + self.assertEqual(jc.parsers.proc_iomem.parse('', quiet=True), []) + + def test_proc_iomem(self): + """ + Test '/proc/iomem' + """ + self.assertEqual(jc.parsers.proc_iomem.parse(self.f_in['proc_iomem'], quiet=True), + self.f_json['proc_iomem']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_ioports.py b/tests/test_proc_ioports.py new file mode 100644 index 00000000..b29a85ec --- /dev/null +++ b/tests/test_proc_ioports.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_ioports + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_ioports': ( + 'fixtures/linux-proc/ioports', + 'fixtures/linux-proc/ioports.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_ioports_nodata(self): + """ + Test 'proc_ioports' with no data + """ + self.assertEqual(jc.parsers.proc_ioports.parse('', quiet=True), []) + + def test_proc_ioports(self): + """ + Test '/proc/ioports' + """ + self.assertEqual(jc.parsers.proc_ioports.parse(self.f_in['proc_ioports'], quiet=True), + self.f_json['proc_ioports']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_loadavg.py b/tests/test_proc_loadavg.py new file mode 100644 index 00000000..d09c2e39 --- /dev/null +++ b/tests/test_proc_loadavg.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_loadavg + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_loadavg': ( + 'fixtures/linux-proc/loadavg', + 'fixtures/linux-proc/loadavg.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_loadavg_nodata(self): + """ + Test 'proc_loadavg' with no data + """ + self.assertEqual(jc.parsers.proc_loadavg.parse('', quiet=True), {}) + + def test_proc_loadavg(self): + """ + Test '/proc/loadavg' + """ + self.assertEqual(jc.parsers.proc_loadavg.parse(self.f_in['proc_loadavg'], quiet=True), + self.f_json['proc_loadavg']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_locks.py b/tests/test_proc_locks.py new file mode 100644 index 00000000..54971daf --- /dev/null +++ b/tests/test_proc_locks.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_locks + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_locks': ( + 'fixtures/linux-proc/locks', + 'fixtures/linux-proc/locks.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_locks_nodata(self): + """ + Test 'proc_locks' with no data + """ + self.assertEqual(jc.parsers.proc_locks.parse('', quiet=True), []) + + def test_proc_locks(self): + """ + Test '/proc/locks' + """ + self.assertEqual(jc.parsers.proc_locks.parse(self.f_in['proc_locks'], quiet=True), + self.f_json['proc_locks']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_meminfo.py b/tests/test_proc_meminfo.py new file mode 100644 index 00000000..07d05834 --- /dev/null +++ b/tests/test_proc_meminfo.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_meminfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_meminfo': ( + 'fixtures/linux-proc/meminfo', + 'fixtures/linux-proc/meminfo.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_meminfo_nodata(self): + """ + Test 'proc_meminfo' with no data + """ + self.assertEqual(jc.parsers.proc_meminfo.parse('', quiet=True), {}) + + def test_proc_meminfo(self): + """ + Test '/proc/meminfo' + """ + self.assertEqual(jc.parsers.proc_meminfo.parse(self.f_in['proc_meminfo'], quiet=True), + self.f_json['proc_meminfo']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_modules.py b/tests/test_proc_modules.py new file mode 100644 index 00000000..a4f131b1 --- /dev/null +++ b/tests/test_proc_modules.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_modules + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_modules': ( + 'fixtures/linux-proc/modules', + 'fixtures/linux-proc/modules.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_modules_nodata(self): + """ + Test 'proc_modules' with no data + """ + self.assertEqual(jc.parsers.proc_modules.parse('', quiet=True), []) + + def test_proc_modules(self): + """ + Test '/proc/modules' + """ + self.assertEqual(jc.parsers.proc_modules.parse(self.f_in['proc_modules'], quiet=True), + self.f_json['proc_modules']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_mtrr.py b/tests/test_proc_mtrr.py new file mode 100644 index 00000000..2b3ee09e --- /dev/null +++ b/tests/test_proc_mtrr.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_mtrr + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_mtrr': ( + 'fixtures/linux-proc/mtrr', + 'fixtures/linux-proc/mtrr.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_mtrr_nodata(self): + """ + Test 'proc_mtrr' with no data + """ + self.assertEqual(jc.parsers.proc_mtrr.parse('', quiet=True), []) + + def test_proc_mtrr(self): + """ + Test '/proc/mtrr' + """ + self.assertEqual(jc.parsers.proc_mtrr.parse(self.f_in['proc_mtrr'], quiet=True), + self.f_json['proc_mtrr']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_arp.py b/tests/test_proc_net_arp.py new file mode 100644 index 00000000..3d1acbf0 --- /dev/null +++ b/tests/test_proc_net_arp.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_arp + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_arp': ( + 'fixtures/linux-proc/net_arp', + 'fixtures/linux-proc/net_arp.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_arp_nodata(self): + """ + Test 'proc_net_arp' with no data + """ + self.assertEqual(jc.parsers.proc_net_arp.parse('', quiet=True), []) + + def test_proc_net_arp(self): + """ + Test '/proc/net/arp' + """ + self.assertEqual(jc.parsers.proc_net_arp.parse(self.f_in['proc_net_arp'], quiet=True), + self.f_json['proc_net_arp']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_dev.py b/tests/test_proc_net_dev.py new file mode 100644 index 00000000..cb4196ef --- /dev/null +++ b/tests/test_proc_net_dev.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_dev + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_dev': ( + 'fixtures/linux-proc/net_dev', + 'fixtures/linux-proc/net_dev.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_dev_nodata(self): + """ + Test 'proc_net_dev' with no data + """ + self.assertEqual(jc.parsers.proc_net_dev.parse('', quiet=True), []) + + def test_proc_net_dev(self): + """ + Test '/proc/net/dev' + """ + self.assertEqual(jc.parsers.proc_net_dev.parse(self.f_in['proc_net_dev'], quiet=True), + self.f_json['proc_net_dev']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_dev_mcast.py b/tests/test_proc_net_dev_mcast.py new file mode 100644 index 00000000..039374b0 --- /dev/null +++ b/tests/test_proc_net_dev_mcast.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_dev_mcast + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_dev_mcast': ( + 'fixtures/linux-proc/net_dev_mcast', + 'fixtures/linux-proc/net_dev_mcast.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_dev_mcast_nodata(self): + """ + Test 'proc_net_dev_mcast' with no data + """ + self.assertEqual(jc.parsers.proc_net_dev_mcast.parse('', quiet=True), []) + + def test_proc_net_dev_mcast(self): + """ + Test '/proc/net/dev_mcast' + """ + self.assertEqual(jc.parsers.proc_net_dev_mcast.parse(self.f_in['proc_net_dev_mcast'], quiet=True), + self.f_json['proc_net_dev_mcast']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_if_inet6.py b/tests/test_proc_net_if_inet6.py new file mode 100644 index 00000000..32e04fc9 --- /dev/null +++ b/tests/test_proc_net_if_inet6.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_if_inet6 + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_if_inet6': ( + 'fixtures/linux-proc/net_if_inet6', + 'fixtures/linux-proc/net_if_inet6.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_if_inet6_nodata(self): + """ + Test 'proc_net_if_inet6' with no data + """ + self.assertEqual(jc.parsers.proc_net_if_inet6.parse('', quiet=True), []) + + def test_proc_net_if_inet6(self): + """ + Test '/proc/net/if_inet6' + """ + self.assertEqual(jc.parsers.proc_net_if_inet6.parse(self.f_in['proc_net_if_inet6'], quiet=True), + self.f_json['proc_net_if_inet6']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_igmp.py b/tests/test_proc_net_igmp.py new file mode 100644 index 00000000..bcff2514 --- /dev/null +++ b/tests/test_proc_net_igmp.py @@ -0,0 +1,54 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_igmp + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_igmp': ( + 'fixtures/linux-proc/net_igmp', + 'fixtures/linux-proc/net_igmp.json'), + 'proc_net_igmp_more': ( + 'fixtures/linux-proc/net_igmp_more', + 'fixtures/linux-proc/net_igmp_more.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_igmp_nodata(self): + """ + Test 'proc_net_igmp' with no data + """ + self.assertEqual(jc.parsers.proc_net_igmp.parse('', quiet=True), []) + + def test_proc_net_igmp(self): + """ + Test '/proc/net/igmp' + """ + self.assertEqual(jc.parsers.proc_net_igmp.parse(self.f_in['proc_net_igmp'], quiet=True), + self.f_json['proc_net_igmp']) + + def test_proc_net_igmp_more(self): + """ + Test '/proc/net/igmp' additional file + """ + self.assertEqual(jc.parsers.proc_net_igmp.parse(self.f_in['proc_net_igmp_more'], quiet=True), + self.f_json['proc_net_igmp_more']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_igmp6.py b/tests/test_proc_net_igmp6.py new file mode 100644 index 00000000..364e15ed --- /dev/null +++ b/tests/test_proc_net_igmp6.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_igmp6 + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_igmp6': ( + 'fixtures/linux-proc/net_igmp6', + 'fixtures/linux-proc/net_igmp6.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_igmp6_nodata(self): + """ + Test 'proc_net_igmp6' with no data + """ + self.assertEqual(jc.parsers.proc_net_igmp6.parse('', quiet=True), []) + + def test_proc_net_igmp6(self): + """ + Test '/proc/net/igmp6' + """ + self.assertEqual(jc.parsers.proc_net_igmp6.parse(self.f_in['proc_net_igmp6'], quiet=True), + self.f_json['proc_net_igmp6']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_ipv6_route.py b/tests/test_proc_net_ipv6_route.py new file mode 100644 index 00000000..c696fb02 --- /dev/null +++ b/tests/test_proc_net_ipv6_route.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_ipv6_route + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_ipv6_route': ( + 'fixtures/linux-proc/net_ipv6_route', + 'fixtures/linux-proc/net_ipv6_route.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_ipv6_route_nodata(self): + """ + Test 'proc_net_ipv6_route' with no data + """ + self.assertEqual(jc.parsers.proc_net_ipv6_route.parse('', quiet=True), []) + + def test_proc_net_ipv6_route(self): + """ + Test '/proc/net/ipv6_route' + """ + self.assertEqual(jc.parsers.proc_net_ipv6_route.parse(self.f_in['proc_net_ipv6_route'], quiet=True), + self.f_json['proc_net_ipv6_route']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_netlink.py b/tests/test_proc_net_netlink.py new file mode 100644 index 00000000..8dd76746 --- /dev/null +++ b/tests/test_proc_net_netlink.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_netlink + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_netlink': ( + 'fixtures/linux-proc/net_netlink', + 'fixtures/linux-proc/net_netlink.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_netlink_nodata(self): + """ + Test 'proc_net_netlink' with no data + """ + self.assertEqual(jc.parsers.proc_net_netlink.parse('', quiet=True), []) + + def test_proc_net_netlink(self): + """ + Test '/proc/net/netlink' + """ + self.assertEqual(jc.parsers.proc_net_netlink.parse(self.f_in['proc_net_netlink'], quiet=True), + self.f_json['proc_net_netlink']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_netstat.py b/tests/test_proc_net_netstat.py new file mode 100644 index 00000000..10e5e9fa --- /dev/null +++ b/tests/test_proc_net_netstat.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_netstat + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_netstat': ( + 'fixtures/linux-proc/net_netstat', + 'fixtures/linux-proc/net_netstat.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_netstat_nodata(self): + """ + Test 'proc_net_netstat' with no data + """ + self.assertEqual(jc.parsers.proc_net_netstat.parse('', quiet=True), []) + + def test_proc_net_netstat(self): + """ + Test '/proc/net/netstat' + """ + self.assertEqual(jc.parsers.proc_net_netstat.parse(self.f_in['proc_net_netstat'], quiet=True), + self.f_json['proc_net_netstat']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_packet.py b/tests/test_proc_net_packet.py new file mode 100644 index 00000000..9e08041d --- /dev/null +++ b/tests/test_proc_net_packet.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_packet + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_packet': ( + 'fixtures/linux-proc/net_packet', + 'fixtures/linux-proc/net_packet.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_packet_nodata(self): + """ + Test 'proc_net_packet' with no data + """ + self.assertEqual(jc.parsers.proc_net_packet.parse('', quiet=True), {}) + + def test_proc_net_packet(self): + """ + Test '/proc/net/packet' + """ + self.assertEqual(jc.parsers.proc_net_packet.parse(self.f_in['proc_net_packet'], quiet=True), + self.f_json['proc_net_packet']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_protocols.py b/tests/test_proc_net_protocols.py new file mode 100644 index 00000000..2f676b85 --- /dev/null +++ b/tests/test_proc_net_protocols.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_protocols + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_protocols': ( + 'fixtures/linux-proc/net_protocols', + 'fixtures/linux-proc/net_protocols.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_protocols_nodata(self): + """ + Test 'proc_net_protocols' with no data + """ + self.assertEqual(jc.parsers.proc_net_protocols.parse('', quiet=True), []) + + def test_proc_net_protocols(self): + """ + Test '/proc/net/protocols' + """ + self.assertEqual(jc.parsers.proc_net_protocols.parse(self.f_in['proc_net_protocols'], quiet=True), + self.f_json['proc_net_protocols']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_route.py b/tests/test_proc_net_route.py new file mode 100644 index 00000000..177d5847 --- /dev/null +++ b/tests/test_proc_net_route.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_route + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_route': ( + 'fixtures/linux-proc/net_route', + 'fixtures/linux-proc/net_route.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_route_nodata(self): + """ + Test 'proc_net_route' with no data + """ + self.assertEqual(jc.parsers.proc_net_route.parse('', quiet=True), []) + + def test_proc_net_route(self): + """ + Test '/proc/net/route' + """ + self.assertEqual(jc.parsers.proc_net_route.parse(self.f_in['proc_net_route'], quiet=True), + self.f_json['proc_net_route']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_net_unix.py b/tests/test_proc_net_unix.py new file mode 100644 index 00000000..a5d2ed91 --- /dev/null +++ b/tests/test_proc_net_unix.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_net_unix + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_net_unix': ( + 'fixtures/linux-proc/net_unix', + 'fixtures/linux-proc/net_unix.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_net_unix_nodata(self): + """ + Test 'proc_net_unix' with no data + """ + self.assertEqual(jc.parsers.proc_net_unix.parse('', quiet=True), []) + + def test_proc_net_unix(self): + """ + Test '/proc/net/unix' + """ + self.assertEqual(jc.parsers.proc_net_unix.parse(self.f_in['proc_net_unix'], quiet=True), + self.f_json['proc_net_unix']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pagetypeinfo.py b/tests/test_proc_pagetypeinfo.py new file mode 100644 index 00000000..e13a7ac7 --- /dev/null +++ b/tests/test_proc_pagetypeinfo.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pagetypeinfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pagetypeinfo': ( + 'fixtures/linux-proc/pagetypeinfo', + 'fixtures/linux-proc/pagetypeinfo.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pagetypeinfo_nodata(self): + """ + Test 'proc_pagetypeinfo' with no data + """ + self.assertEqual(jc.parsers.proc_pagetypeinfo.parse('', quiet=True), {}) + + def test_proc_pagetypeinfo(self): + """ + Test '/proc/pagetypeinfo' + """ + self.assertEqual(jc.parsers.proc_pagetypeinfo.parse(self.f_in['proc_pagetypeinfo'], quiet=True), + self.f_json['proc_pagetypeinfo']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_partitions.py b/tests/test_proc_partitions.py new file mode 100644 index 00000000..3d561660 --- /dev/null +++ b/tests/test_proc_partitions.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_partitions + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_partitions': ( + 'fixtures/linux-proc/partitions', + 'fixtures/linux-proc/partitions.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_partitions_nodata(self): + """ + Test 'proc_partitions' with no data + """ + self.assertEqual(jc.parsers.proc_partitions.parse('', quiet=True), []) + + def test_proc_partitions(self): + """ + Test '/proc/partitions' + """ + self.assertEqual(jc.parsers.proc_partitions.parse(self.f_in['proc_partitions'], quiet=True), + self.f_json['proc_partitions']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_fdinfo.py b/tests/test_proc_pid_fdinfo.py new file mode 100644 index 00000000..ded342b2 --- /dev/null +++ b/tests/test_proc_pid_fdinfo.py @@ -0,0 +1,94 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_fdinfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_fdinfo': ( + 'fixtures/linux-proc/pid_fdinfo', + 'fixtures/linux-proc/pid_fdinfo.json'), + 'proc_pid_fdinfo_dma': ( + 'fixtures/linux-proc/pid_fdinfo_dma', + 'fixtures/linux-proc/pid_fdinfo_dma.json'), + 'proc_pid_fdinfo_epoll': ( + 'fixtures/linux-proc/pid_fdinfo_epoll', + 'fixtures/linux-proc/pid_fdinfo_epoll.json'), + 'proc_pid_fdinfo_fanotify': ( + 'fixtures/linux-proc/pid_fdinfo_fanotify', + 'fixtures/linux-proc/pid_fdinfo_fanotify.json'), + 'proc_pid_fdinfo_inotify': ( + 'fixtures/linux-proc/pid_fdinfo_inotify', + 'fixtures/linux-proc/pid_fdinfo_inotify.json'), + 'proc_pid_fdinfo_timerfd': ( + 'fixtures/linux-proc/pid_fdinfo_timerfd', + 'fixtures/linux-proc/pid_fdinfo_timerfd.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_fdinfo_nodata(self): + """ + Test 'proc_pid_fdinfo' with no data + """ + self.assertEqual(jc.parsers.proc_pid_fdinfo.parse('', quiet=True), {}) + + def test_proc_pid_fdinfo(self): + """ + Test '/proc//fdinfo/' + """ + self.assertEqual(jc.parsers.proc_pid_fdinfo.parse(self.f_in['proc_pid_fdinfo'], quiet=True), + self.f_json['proc_pid_fdinfo']) + + def test_proc_pid_fdinfo_dma(self): + """ + Test '/proc//fdinfo/' dma file + """ + self.assertEqual(jc.parsers.proc_pid_fdinfo.parse(self.f_in['proc_pid_fdinfo_dma'], quiet=True), + self.f_json['proc_pid_fdinfo_dma']) + + def test_proc_pid_fdinfo_epoll(self): + """ + Test '/proc//fdinfo/' epoll file + """ + self.assertEqual(jc.parsers.proc_pid_fdinfo.parse(self.f_in['proc_pid_fdinfo_epoll'], quiet=True), + self.f_json['proc_pid_fdinfo_epoll']) + + def test_proc_pid_fdinfo_fanotify(self): + """ + Test '/proc//fdinfo/' fanotify file + """ + self.assertEqual(jc.parsers.proc_pid_fdinfo.parse(self.f_in['proc_pid_fdinfo_fanotify'], quiet=True), + self.f_json['proc_pid_fdinfo_fanotify']) + + def test_proc_pid_fdinfo_inotify(self): + """ + Test '/proc//fdinfo/' inotify file + """ + self.assertEqual(jc.parsers.proc_pid_fdinfo.parse(self.f_in['proc_pid_fdinfo_inotify'], quiet=True), + self.f_json['proc_pid_fdinfo_inotify']) + + def test_proc_pid_fdinfo_timerfd(self): + """ + Test '/proc//fdinfo/' timerfd file + """ + self.assertEqual(jc.parsers.proc_pid_fdinfo.parse(self.f_in['proc_pid_fdinfo_timerfd'], quiet=True), + self.f_json['proc_pid_fdinfo_timerfd']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_io.py b/tests/test_proc_pid_io.py new file mode 100644 index 00000000..e7752687 --- /dev/null +++ b/tests/test_proc_pid_io.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_io + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_io': ( + 'fixtures/linux-proc/pid_io', + 'fixtures/linux-proc/pid_io.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_io_nodata(self): + """ + Test 'proc_pid_io' with no data + """ + self.assertEqual(jc.parsers.proc_pid_io.parse('', quiet=True), {}) + + def test_proc_pid_io(self): + """ + Test '/proc//io' + """ + self.assertEqual(jc.parsers.proc_pid_io.parse(self.f_in['proc_pid_io'], quiet=True), + self.f_json['proc_pid_io']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_maps.py b/tests/test_proc_pid_maps.py new file mode 100644 index 00000000..295254aa --- /dev/null +++ b/tests/test_proc_pid_maps.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_maps + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_maps': ( + 'fixtures/linux-proc/pid_maps', + 'fixtures/linux-proc/pid_maps.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_maps_nodata(self): + """ + Test 'proc_pid_maps' with no data + """ + self.assertEqual(jc.parsers.proc_pid_maps.parse('', quiet=True), []) + + def test_proc_pid_maps(self): + """ + Test '/proc//maps' + """ + self.assertEqual(jc.parsers.proc_pid_maps.parse(self.f_in['proc_pid_maps'], quiet=True), + self.f_json['proc_pid_maps']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_mountinfo.py b/tests/test_proc_pid_mountinfo.py new file mode 100644 index 00000000..4a58f4ef --- /dev/null +++ b/tests/test_proc_pid_mountinfo.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_mountinfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_mountinfo': ( + 'fixtures/linux-proc/pid_mountinfo', + 'fixtures/linux-proc/pid_mountinfo.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_mountinfo_nodata(self): + """ + Test 'proc_pid_mountinfo' with no data + """ + self.assertEqual(jc.parsers.proc_pid_mountinfo.parse('', quiet=True), []) + + def test_proc_pid_mountinfo(self): + """ + Test '/proc//mountinfo' + """ + self.assertEqual(jc.parsers.proc_pid_mountinfo.parse(self.f_in['proc_pid_mountinfo'], quiet=True), + self.f_json['proc_pid_mountinfo']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_numa_maps.py b/tests/test_proc_pid_numa_maps.py new file mode 100644 index 00000000..d73d19a1 --- /dev/null +++ b/tests/test_proc_pid_numa_maps.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_numa_maps + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_numa_maps': ( + 'fixtures/linux-proc/pid_numa_maps', + 'fixtures/linux-proc/pid_numa_maps.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_numa_maps_nodata(self): + """ + Test 'proc_pid_numa_maps' with no data + """ + self.assertEqual(jc.parsers.proc_pid_numa_maps.parse('', quiet=True), []) + + def test_proc_pid_numa_maps(self): + """ + Test '/proc//numa_maps' + """ + self.assertEqual(jc.parsers.proc_pid_numa_maps.parse(self.f_in['proc_pid_numa_maps'], quiet=True), + self.f_json['proc_pid_numa_maps']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_smaps.py b/tests/test_proc_pid_smaps.py new file mode 100644 index 00000000..b579c801 --- /dev/null +++ b/tests/test_proc_pid_smaps.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_smaps + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_smaps': ( + 'fixtures/linux-proc/pid_smaps', + 'fixtures/linux-proc/pid_smaps.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_smaps_nodata(self): + """ + Test 'proc_pid_smaps' with no data + """ + self.assertEqual(jc.parsers.proc_pid_smaps.parse('', quiet=True), []) + + def test_proc_pid_smaps(self): + """ + Test '/proc//smaps' + """ + self.assertEqual(jc.parsers.proc_pid_smaps.parse(self.f_in['proc_pid_smaps'], quiet=True), + self.f_json['proc_pid_smaps']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_stat.py b/tests/test_proc_pid_stat.py new file mode 100644 index 00000000..876ce032 --- /dev/null +++ b/tests/test_proc_pid_stat.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_stat + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_stat': ( + 'fixtures/linux-proc/pid_stat', + 'fixtures/linux-proc/pid_stat.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_stat_nodata(self): + """ + Test 'proc_pid_stat' with no data + """ + self.assertEqual(jc.parsers.proc_pid_stat.parse('', quiet=True), {}) + + def test_proc_pid_stat(self): + """ + Test '/proc//stat' + """ + self.assertEqual(jc.parsers.proc_pid_stat.parse(self.f_in['proc_pid_stat'], quiet=True), + self.f_json['proc_pid_stat']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_statm.py b/tests/test_proc_pid_statm.py new file mode 100644 index 00000000..4b22219d --- /dev/null +++ b/tests/test_proc_pid_statm.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_statm + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_statm': ( + 'fixtures/linux-proc/pid_statm', + 'fixtures/linux-proc/pid_statm.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_statm_nodata(self): + """ + Test 'proc_pid_statm' with no data + """ + self.assertEqual(jc.parsers.proc_pid_statm.parse('', quiet=True), {}) + + def test_proc_pid_statm(self): + """ + Test '/proc//statm' + """ + self.assertEqual(jc.parsers.proc_pid_statm.parse(self.f_in['proc_pid_statm'], quiet=True), + self.f_json['proc_pid_statm']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_pid_status.py b/tests/test_proc_pid_status.py new file mode 100644 index 00000000..2d2fb1c7 --- /dev/null +++ b/tests/test_proc_pid_status.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_pid_status + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_pid_status': ( + 'fixtures/linux-proc/pid_status', + 'fixtures/linux-proc/pid_status.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_pid_status_nodata(self): + """ + Test 'proc_pid_status' with no data + """ + self.assertEqual(jc.parsers.proc_pid_status.parse('', quiet=True), {}) + + def test_proc_pid_status(self): + """ + Test '/proc//status' + """ + self.assertEqual(jc.parsers.proc_pid_status.parse(self.f_in['proc_pid_status'], quiet=True), + self.f_json['proc_pid_status']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_slabinfo.py b/tests/test_proc_slabinfo.py new file mode 100644 index 00000000..709190fa --- /dev/null +++ b/tests/test_proc_slabinfo.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_slabinfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_slabinfo': ( + 'fixtures/linux-proc/slabinfo', + 'fixtures/linux-proc/slabinfo.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_slabinfo_nodata(self): + """ + Test 'proc_slabinfo' with no data + """ + self.assertEqual(jc.parsers.proc_slabinfo.parse('', quiet=True), []) + + def test_proc_slabinfo(self): + """ + Test '/proc/slabinfo' + """ + self.assertEqual(jc.parsers.proc_slabinfo.parse(self.f_in['proc_slabinfo'], quiet=True), + self.f_json['proc_slabinfo']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_softirqs.py b/tests/test_proc_softirqs.py new file mode 100644 index 00000000..13d4ce9c --- /dev/null +++ b/tests/test_proc_softirqs.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_softirqs + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_softirqs': ( + 'fixtures/linux-proc/softirqs', + 'fixtures/linux-proc/softirqs.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_softirqs_nodata(self): + """ + Test 'proc_softirqs' with no data + """ + self.assertEqual(jc.parsers.proc_softirqs.parse('', quiet=True), []) + + def test_proc_softirqs(self): + """ + Test '/proc/softirqs' + """ + self.assertEqual(jc.parsers.proc_softirqs.parse(self.f_in['proc_softirqs'], quiet=True), + self.f_json['proc_softirqs']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_stat.py b/tests/test_proc_stat.py new file mode 100644 index 00000000..826410d8 --- /dev/null +++ b/tests/test_proc_stat.py @@ -0,0 +1,54 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_stat + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_stat': ( + 'fixtures/linux-proc/stat', + 'fixtures/linux-proc/stat.json'), + 'proc_stat2': ( + 'fixtures/linux-proc/stat2', + 'fixtures/linux-proc/stat2.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_stat_nodata(self): + """ + Test 'proc_stat' with no data + """ + self.assertEqual(jc.parsers.proc_stat.parse('', quiet=True), {}) + + def test_proc_stat(self): + """ + Test '/proc/stat' + """ + self.assertEqual(jc.parsers.proc_stat.parse(self.f_in['proc_stat'], quiet=True), + self.f_json['proc_stat']) + + def test_proc_stat2(self): + """ + Test '/proc/stat' #2 + """ + self.assertEqual(jc.parsers.proc_stat.parse(self.f_in['proc_stat2'], quiet=True), + self.f_json['proc_stat2']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_swaps.py b/tests/test_proc_swaps.py new file mode 100644 index 00000000..bc6156b7 --- /dev/null +++ b/tests/test_proc_swaps.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_swaps + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_swaps': ( + 'fixtures/linux-proc/swaps', + 'fixtures/linux-proc/swaps.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_swaps_nodata(self): + """ + Test 'proc_swaps' with no data + """ + self.assertEqual(jc.parsers.proc_swaps.parse('', quiet=True), []) + + def test_proc_swaps(self): + """ + Test '/proc/swaps' + """ + self.assertEqual(jc.parsers.proc_swaps.parse(self.f_in['proc_swaps'], quiet=True), + self.f_json['proc_swaps']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_uptime.py b/tests/test_proc_uptime.py new file mode 100644 index 00000000..63537053 --- /dev/null +++ b/tests/test_proc_uptime.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_uptime + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_uptime': ( + 'fixtures/linux-proc/uptime', + 'fixtures/linux-proc/uptime.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_uptime_nodata(self): + """ + Test 'proc_uptime' with no data + """ + self.assertEqual(jc.parsers.proc_uptime.parse('', quiet=True), {}) + + def test_proc_uptime(self): + """ + Test '/proc/uptime' + """ + self.assertEqual(jc.parsers.proc_uptime.parse(self.f_in['proc_uptime'], quiet=True), + self.f_json['proc_uptime']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_version.py b/tests/test_proc_version.py new file mode 100644 index 00000000..ed9b4737 --- /dev/null +++ b/tests/test_proc_version.py @@ -0,0 +1,64 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_version + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_version': ( + 'fixtures/linux-proc/version', + 'fixtures/linux-proc/version.json'), + 'proc_version2': ( + 'fixtures/linux-proc/version2', + 'fixtures/linux-proc/version2.json'), + 'proc_version3': ( + 'fixtures/linux-proc/version3', + 'fixtures/linux-proc/version3.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_version_nodata(self): + """ + Test 'proc_version' with no data + """ + self.assertEqual(jc.parsers.proc_version.parse('', quiet=True), {}) + + def test_proc_version(self): + """ + Test '/proc/version' + """ + self.assertEqual(jc.parsers.proc_version.parse(self.f_in['proc_version'], quiet=True), + self.f_json['proc_version']) + + def test_proc_version2(self): + """ + Test '/proc/version' #2 + """ + self.assertEqual(jc.parsers.proc_version.parse(self.f_in['proc_version2'], quiet=True), + self.f_json['proc_version2']) + + def test_proc_version3(self): + """ + Test '/proc/version' #3 + """ + self.assertEqual(jc.parsers.proc_version.parse(self.f_in['proc_version3'], quiet=True), + self.f_json['proc_version3']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_vmallocinfo.py b/tests/test_proc_vmallocinfo.py new file mode 100644 index 00000000..7fbe0456 --- /dev/null +++ b/tests/test_proc_vmallocinfo.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_vmallocinfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_vmallocinfo': ( + 'fixtures/linux-proc/vmallocinfo', + 'fixtures/linux-proc/vmallocinfo.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_vmallocinfo_nodata(self): + """ + Test 'proc_vmallocinfo' with no data + """ + self.assertEqual(jc.parsers.proc_vmallocinfo.parse('', quiet=True), []) + + def test_proc_vmallocinfo(self): + """ + Test '/proc/vmallocinfo' + """ + self.assertEqual(jc.parsers.proc_vmallocinfo.parse(self.f_in['proc_vmallocinfo'], quiet=True), + self.f_json['proc_vmallocinfo']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_vmstat.py b/tests/test_proc_vmstat.py new file mode 100644 index 00000000..9af3efda --- /dev/null +++ b/tests/test_proc_vmstat.py @@ -0,0 +1,44 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_vmstat + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_vmstat': ( + 'fixtures/linux-proc/vmstat', + 'fixtures/linux-proc/vmstat.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_vmstat_nodata(self): + """ + Test 'proc_vmstat' with no data + """ + self.assertEqual(jc.parsers.proc_vmstat.parse('', quiet=True), {}) + + def test_proc_vmstat(self): + """ + Test '/proc/vmstat' + """ + self.assertEqual(jc.parsers.proc_vmstat.parse(self.f_in['proc_vmstat'], quiet=True), + self.f_json['proc_vmstat']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_proc_zoneinfo.py b/tests/test_proc_zoneinfo.py new file mode 100644 index 00000000..55d9a6fd --- /dev/null +++ b/tests/test_proc_zoneinfo.py @@ -0,0 +1,54 @@ +import os +import unittest +import json +from typing import Dict +import jc.parsers.proc_zoneinfo + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + f_in: Dict = {} + f_json: Dict = {} + + @classmethod + def setUpClass(cls): + fixtures = { + 'proc_zoneinfo': ( + 'fixtures/linux-proc/zoneinfo', + 'fixtures/linux-proc/zoneinfo.json'), + 'proc_zoneinfo2': ( + 'fixtures/linux-proc/zoneinfo2', + 'fixtures/linux-proc/zoneinfo2.json') + } + + for file, filepaths in fixtures.items(): + with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \ + open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b: + cls.f_in[file] = a.read() + cls.f_json[file] = json.loads(b.read()) + + + def test_proc_zoneinfo_nodata(self): + """ + Test 'proc_zoneinfo' with no data + """ + self.assertEqual(jc.parsers.proc_zoneinfo.parse('', quiet=True), []) + + def test_proc_zoneinfo(self): + """ + Test '/proc/zoneinfo' + """ + self.assertEqual(jc.parsers.proc_zoneinfo.parse(self.f_in['proc_zoneinfo'], quiet=True), + self.f_json['proc_zoneinfo']) + + def test_proc_zoneinfo2(self): + """ + Test '/proc/zoneinfo' #2 + """ + self.assertEqual(jc.parsers.proc_zoneinfo.parse(self.f_in['proc_zoneinfo2'], quiet=True), + self.f_json['proc_zoneinfo2']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_ps.py b/tests/test_ps.py index d573a4ae..1deb6a3b 100644 --- a/tests/test_ps.py +++ b/tests/test_ps.py @@ -8,56 +8,56 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ps-ef.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ps_ef = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ps-ef.out'), 'r', encoding='utf-8') as f: + centos_7_7_ps_ef = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ps-ef.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ps_ef = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ps-ef.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ps_ef = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ps-ef.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ps_ef = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ps-ef.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ps_ef = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ps-ef.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ps_ef = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ps-ef.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ps_ef = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ps-axu.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ps_axu = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ps-axu.out'), 'r', encoding='utf-8') as f: + centos_7_7_ps_axu = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ps-axu.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ps_axu = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ps-axu.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ps_axu = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ps-axu.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ps_axu = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ps-axu.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_ps_axu = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ps-axu.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ps_axu = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ps-axu.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_ps_axu = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ps-ef.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ps_ef_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ps-ef.json'), 'r', encoding='utf-8') as f: + centos_7_7_ps_ef_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ps-ef.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ps_ef_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ps-ef.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ps_ef_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ps-ef.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ps_ef_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ps-ef.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_ps_ef_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ps-ef.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ps_ef_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ps-ef.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ps_ef_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ps-axu.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ps_axu_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ps-axu.json'), 'r', encoding='utf-8') as f: + centos_7_7_ps_axu_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ps-axu.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ps_axu_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ps-axu.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ps_axu_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ps-axu.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_ps_axu_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/ps-axu.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_ps_axu_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ps-axu.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_ps_axu_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/ps-axu.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_ps_axu_json = json.loads(f.read()) def test_ps_nodata(self): """ diff --git a/tests/test_route.py b/tests/test_route.py index 19b319df..5a7c1933 100644 --- a/tests/test_route.py +++ b/tests/test_route.py @@ -8,50 +8,50 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_route = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route.out'), 'r', encoding='utf-8') as f: + centos_7_7_route = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/route.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_route = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/route.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_route = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-vn.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_route_vn = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-vn.out'), 'r', encoding='utf-8') as f: + centos_7_7_route_vn = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/route-vn.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_route_vn = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/route-vn.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_route_vn = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/nixos/route-ee.out'), 'r', encoding='utf-8') as f: - self.nixos_route_ee = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/nixos/route-ee.out'), 'r', encoding='utf-8') as f: + nixos_route_ee = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-6.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_route_6 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-6.out'), 'r', encoding='utf-8') as f: + centos_7_7_route_6 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-6-n.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_route_6_n = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-6-n.out'), 'r', encoding='utf-8') as f: + centos_7_7_route_6_n = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_route_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route.json'), 'r', encoding='utf-8') as f: + centos_7_7_route_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/route.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_route_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/route.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_route_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-vn.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_route_vn_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-vn.json'), 'r', encoding='utf-8') as f: + centos_7_7_route_vn_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/route-vn.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_route_vn_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/route-vn.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_route_vn_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/nixos/route-ee.json'), 'r', encoding='utf-8') as f: - self.nixos_route_ee_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/nixos/route-ee.json'), 'r', encoding='utf-8') as f: + nixos_route_ee_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-6.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_route_6_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-6.json'), 'r', encoding='utf-8') as f: + centos_7_7_route_6_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-6-n.json'), 'r', encoding='utf-8') as f: + centos_7_7_route_6_n_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/route-6-n.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_route_6_n_json = json.loads(f.read()) def test_route_nodata(self): """ diff --git a/tests/test_rpm_qai.py b/tests/test_rpm_qai.py index fa4a4463..384d6fcf 100644 --- a/tests/test_rpm_qai.py +++ b/tests/test_rpm_qai.py @@ -15,20 +15,20 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rpm-qai.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rpm_qai = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rpm-qai.out'), 'r', encoding='utf-8') as f: + centos_7_7_rpm_qai = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rpm-qi-package.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rpm_qi_package = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rpm-qi-package.out'), 'r', encoding='utf-8') as f: + centos_7_7_rpm_qi_package = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rpm-qai.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rpm_qai_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rpm-qai.json'), 'r', encoding='utf-8') as f: + centos_7_7_rpm_qai_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rpm-qi-package.json'), 'r', encoding='utf-8') as f: + centos_7_7_rpm_qi_package_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rpm-qi-package.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rpm_qi_package_json = json.loads(f.read()) def test_rpm_qi_nodata(self): """ diff --git a/tests/test_rsync.py b/tests/test_rsync.py index 62e8de21..0ef0187b 100644 --- a/tests/test_rsync.py +++ b/tests/test_rsync.py @@ -8,80 +8,80 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i.out'), 'r', encoding='utf-8') as f: - self.generic_rsync_i = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i.out'), 'r', encoding='utf-8') as f: + generic_rsync_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_ivvv = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_ivvv = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_ivvv = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_ivvv = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_ivvv_nochange = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_ivvv_nochange = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_ivvv_nochange = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_ivvv_nochange = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_logfile = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_logfile = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_v_logfile = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_v_logfile = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vv_logfile = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vv_logfile = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vvv_logfile = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vvv_logfile = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vvv_logfile_nochange = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vvv_logfile_nochange = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_i_vvv_logfile_nochange = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_i_vvv_logfile_nochange = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i.json'), 'r', encoding='utf-8') as f: - self.generic_rsync_i_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i.json'), 'r', encoding='utf-8') as f: + generic_rsync_i_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_ivvv_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_ivvv_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_ivvv_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_ivvv_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_ivvv_nochange_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_ivvv_nochange_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_ivvv_nochange_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_ivvv_nochange_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_logfile_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_logfile_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_v_logfile_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_v_logfile_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vv_logfile_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vv_logfile_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vvv_logfile_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vvv_logfile_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vvv_logfile_nochange_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vvv_logfile_nochange_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_i_vvv_logfile_nochange_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_i_vvv_logfile_nochange_json = json.loads(f.read()) def test_rsync_nodata(self): """ diff --git a/tests/test_rsync_s.py b/tests/test_rsync_s.py index c6193a7a..99617172 100644 --- a/tests/test_rsync_s.py +++ b/tests/test_rsync_s.py @@ -19,80 +19,80 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i.out'), 'r', encoding='utf-8') as f: - self.generic_rsync_i = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i.out'), 'r', encoding='utf-8') as f: + generic_rsync_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_ivvv = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_ivvv = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_ivvv = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_ivvv = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_ivvv_nochange = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_ivvv_nochange = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_ivvv_nochange = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_ivvv_nochange = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_logfile = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_logfile = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_v_logfile = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_v_logfile = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vv_logfile = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vv_logfile = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vvv_logfile = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vvv_logfile = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vvv_logfile_nochange = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vvv_logfile_nochange = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_i_vvv_logfile_nochange = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_i_vvv_logfile_nochange = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i-streaming.json'), 'r', encoding='utf-8') as f: - self.generic_rsync_i_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i-streaming.json'), 'r', encoding='utf-8') as f: + generic_rsync_i_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_ivvv_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_ivvv_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_ivvv_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_ivvv_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_ivvv_nochange_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_ivvv_nochange_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_ivvv_nochange_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_ivvv_nochange_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_logfile_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_logfile_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_v_logfile_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_v_logfile_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vv_logfile_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vv_logfile_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vvv_logfile_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vvv_logfile_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_rsync_i_vvv_logfile_nochange_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_rsync_i_vvv_logfile_nochange_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_rsync_i_vvv_logfile_nochange_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_rsync_i_vvv_logfile_nochange_streaming_json = json.loads(f.read()) def test_rsync_s_nodata(self): """ diff --git a/tests/test_sfdisk.py b/tests/test_sfdisk.py index ce5a79f4..5d7f1fb2 100644 --- a/tests/test_sfdisk.py +++ b/tests/test_sfdisk.py @@ -8,93 +8,92 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-l.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_l = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-l.out'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_l = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-l-multi.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_l_multi = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-l-multi.out'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_l_multi = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-d.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_d = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-d.out'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_d = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-d-multi.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_d_multi = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-d-multi.out'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_d_multi = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luB.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_luB = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luB.out'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_luB = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luM.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_luM = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luM.out'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_luM = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luS.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_luS = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luS.out'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_luS = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/sfdisk-l.out'), 'r', encoding='utf-8') as f: - self.centos_8_sfdisk_l = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/sfdisk-l.out'), 'r', encoding='utf-8') as f: + centos_8_sfdisk_l = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/sfdisk-F.out'), 'r', encoding='utf-8') as f: - self.centos_8_sfdisk_F = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/sfdisk-F.out'), 'r', encoding='utf-8') as f: + centos_8_sfdisk_F = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l.out'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_l = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l.out'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_l = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l2.out'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_l2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l2.out'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_l2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l3.out'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_l3 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l3.out'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_l3 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-F.out'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_F = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-F.out'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_F = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-F2.out'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_F2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-F2.out'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_F2 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-l.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_l_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-l.json'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_l_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-l-multi.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_l_multi_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-l-multi.json'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_l_multi_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-d.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_d_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-d.json'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_d_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-d-multi.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_d_multi_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-d-multi.json'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_d_multi_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luB.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_luB_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luB.json'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_luB_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luM.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_luM_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luM.json'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_luM_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luS.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sfdisk_luS_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sfdisk-luS.json'), 'r', encoding='utf-8') as f: + centos_7_7_sfdisk_luS_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/sfdisk-l.json'), 'r', encoding='utf-8') as f: - self.centos_8_sfdisk_l_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/sfdisk-l.json'), 'r', encoding='utf-8') as f: + centos_8_sfdisk_l_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/sfdisk-F.json'), 'r', encoding='utf-8') as f: - self.centos_8_sfdisk_F_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-8/sfdisk-F.json'), 'r', encoding='utf-8') as f: + centos_8_sfdisk_F_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l.json'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_l_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l.json'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_l_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l2.json'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_l2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l2.json'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_l2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l3.json'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_l3_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-l3.json'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_l3_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-F.json'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_F_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-F.json'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_F_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-F2.json'), 'r', encoding='utf-8') as f: - self.debian_10_sfdisk_F2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/sfdisk-F2.json'), 'r', encoding='utf-8') as f: + debian_10_sfdisk_F2_json = json.loads(f.read()) def test_sfdisk_nodata(self): diff --git a/tests/test_shadow.py b/tests/test_shadow.py index d00742d7..1c12e386 100644 --- a/tests/test_shadow.py +++ b/tests/test_shadow.py @@ -8,20 +8,19 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/shadow.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_shadow = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/shadow.out'), 'r', encoding='utf-8') as f: + centos_7_7_shadow = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/shadow.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_shadow = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/shadow.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_shadow = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/shadow.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_shadow_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/shadow.json'), 'r', encoding='utf-8') as f: + centos_7_7_shadow_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/shadow.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_shadow_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/shadow.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_shadow_json = json.loads(f.read()) def test_shadow_nodata(self): """ diff --git a/tests/test_ss.py b/tests/test_ss.py index 4f0c5449..fc370c4e 100644 --- a/tests/test_ss.py +++ b/tests/test_ss.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ss-sudo-a.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_ss_sudo_a = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ss-sudo-a.out'), 'r', encoding='utf-8') as f: + centos_7_7_ss_sudo_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ss-sudo-a.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ss_sudo_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ss-sudo-a.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ss_sudo_a = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ss-sudo-a.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_ss_sudo_a_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/ss-sudo-a.json'), 'r', encoding='utf-8') as f: + centos_7_7_ss_sudo_a_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ss-sudo-a.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_ss_sudo_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ss-sudo-a.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_ss_sudo_a_json = json.loads(f.read()) def test_ss_nodata(self): """ diff --git a/tests/test_stat.py b/tests/test_stat.py index 3f8ad60c..0e748f68 100644 --- a/tests/test_stat.py +++ b/tests/test_stat.py @@ -15,38 +15,38 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/stat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_stat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/stat.out'), 'r', encoding='utf-8') as f: + centos_7_7_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/stat.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/stat.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-filename-with-spaces.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_stat_filename_with_spaces = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-filename-with-spaces.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_stat_filename_with_spaces = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/stat.out'), 'r', encoding='utf-8') as f: - self.freebsd12_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/stat.out'), 'r', encoding='utf-8') as f: + freebsd12_stat = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/stat.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_stat_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/stat.json'), 'r', encoding='utf-8') as f: + centos_7_7_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/stat.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_stat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/stat.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_stat_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-filename-with-spaces.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_stat_filename_with_spaces_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-filename-with-spaces.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_stat_filename_with_spaces_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/stat.json'), 'r', encoding='utf-8') as f: + freebsd12_stat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/stat.json'), 'r', encoding='utf-8') as f: - self.freebsd12_stat_json = json.loads(f.read()) def test_stat_nodata(self): """ diff --git a/tests/test_stat_s.py b/tests/test_stat_s.py index 0329be61..c2ecbe7c 100644 --- a/tests/test_stat_s.py +++ b/tests/test_stat_s.py @@ -20,38 +20,38 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/stat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_stat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/stat.out'), 'r', encoding='utf-8') as f: + centos_7_7_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/stat.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/stat.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_stat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-filename-with-spaces.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_stat_filename_with_spaces = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-filename-with-spaces.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_stat_filename_with_spaces = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/stat.out'), 'r', encoding='utf-8') as f: - self.freebsd12_stat = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/stat.out'), 'r', encoding='utf-8') as f: + freebsd12_stat = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/stat-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_stat_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/stat-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/stat-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_stat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/stat-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_stat_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-filename-with-spaces-streaming.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_stat_filename_with_spaces_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/stat-filename-with-spaces-streaming.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_stat_filename_with_spaces_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/stat-streaming.json'), 'r', encoding='utf-8') as f: + freebsd12_stat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/stat-streaming.json'), 'r', encoding='utf-8') as f: - self.freebsd12_stat_streaming_json = json.loads(f.read()) def test_stat_s_nodata(self): """ diff --git a/tests/test_sysctl.py b/tests/test_sysctl.py index c21495e9..504a8ab4 100644 --- a/tests/test_sysctl.py +++ b/tests/test_sysctl.py @@ -8,32 +8,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sysctl-a.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_sysctl = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sysctl-a.out'), 'r', encoding='utf-8') as f: + centos_7_7_sysctl = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/sysctl-a.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_sysctl = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/sysctl-a.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_sysctl = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/sysctl-a.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_sysctl = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/sysctl-a.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_sysctl = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/sysctl-a.out'), 'r', encoding='utf-8') as f: - self.freebsd12_sysctl = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/sysctl-a.out'), 'r', encoding='utf-8') as f: + freebsd12_sysctl = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sysctl-a.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_sysctl_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/sysctl-a.json'), 'r', encoding='utf-8') as f: + centos_7_7_sysctl_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/sysctl-a.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_sysctl_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/sysctl-a.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_sysctl_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/sysctl-a.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_sysctl_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/sysctl-a.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_sysctl_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/sysctl-a.json'), 'r', encoding='utf-8') as f: + freebsd12_sysctl_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/sysctl-a.json'), 'r', encoding='utf-8') as f: - self.freebsd12_sysctl_json = json.loads(f.read()) def test_sysctl_nodata(self): """ diff --git a/tests/test_syslog.py b/tests/test_syslog.py index 2a05e4a4..e7e00ea0 100644 --- a/tests/test_syslog.py +++ b/tests/test_syslog.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-5424.out'), 'r', encoding='utf-8') as f: - self.syslog = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-5424.out'), 'r', encoding='utf-8') as f: + syslog = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-5424.json'), 'r', encoding='utf-8') as f: - self.syslog_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-5424.json'), 'r', encoding='utf-8') as f: + syslog_json = json.loads(f.read()) def test_syslog_nodata(self): diff --git a/tests/test_syslog_bsd.py b/tests/test_syslog_bsd.py index ff0516c9..f1a3e389 100644 --- a/tests/test_syslog_bsd.py +++ b/tests/test_syslog_bsd.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-3164.out'), 'r', encoding='utf-8') as f: - self.syslog = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-3164.out'), 'r', encoding='utf-8') as f: + syslog = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-3164.json'), 'r', encoding='utf-8') as f: - self.syslog_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-3164.json'), 'r', encoding='utf-8') as f: + syslog_json = json.loads(f.read()) def test_syslog_bsd_nodata(self): diff --git a/tests/test_syslog_bsd_s.py b/tests/test_syslog_bsd_s.py index 82c24b0c..bcaa28d0 100644 --- a/tests/test_syslog_bsd_s.py +++ b/tests/test_syslog_bsd_s.py @@ -11,14 +11,14 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-3164.out'), 'r', encoding='utf-8') as f: - self.syslog_bsd = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-3164.out'), 'r', encoding='utf-8') as f: + syslog_bsd = f.read() + + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-3164-streaming.json'), 'r', encoding='utf-8') as f: + syslog_bsd_streaming_json = json.loads(f.read()) - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-3164-streaming.json'), 'r', encoding='utf-8') as f: - self.syslog_bsd_streaming_json = json.loads(f.read()) def test_syslog_bsd_s_nodata(self): """ diff --git a/tests/test_syslog_s.py b/tests/test_syslog_s.py index 97c5adff..e725aaca 100644 --- a/tests/test_syslog_s.py +++ b/tests/test_syslog_s.py @@ -11,14 +11,14 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-5424.out'), 'r', encoding='utf-8') as f: - self.syslog = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-5424.out'), 'r', encoding='utf-8') as f: + syslog = f.read() + + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-5424-streaming.json'), 'r', encoding='utf-8') as f: + syslog_streaming_json = json.loads(f.read()) - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/syslog-5424-streaming.json'), 'r', encoding='utf-8') as f: - self.syslog_streaming_json = json.loads(f.read()) def test_syslog_s_nodata(self): """ diff --git a/tests/test_systemctl.py b/tests/test_systemctl.py index 70516c4f..4cb36fd0 100644 --- a/tests/test_systemctl.py +++ b/tests/test_systemctl.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_systemctl = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl.out'), 'r', encoding='utf-8') as f: + centos_7_7_systemctl = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_systemctl = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_systemctl = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_systemctl_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl.json'), 'r', encoding='utf-8') as f: + centos_7_7_systemctl_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_systemctl_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_systemctl_json = json.loads(f.read()) def test_systemctl_nodata(self): """ diff --git a/tests/test_systemctl_lj.py b/tests/test_systemctl_lj.py index 4c82f6cc..3c1502b6 100644 --- a/tests/test_systemctl_lj.py +++ b/tests/test_systemctl_lj.py @@ -8,14 +8,14 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-lj.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_systemctl_lj = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-lj.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_systemctl_lj = f.read() + + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-lj.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_systemctl_lj_json = json.loads(f.read()) - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-lj.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_systemctl_lj_json = json.loads(f.read()) def test_systemctl_lj_nodata(self): """ diff --git a/tests/test_systemctl_ls.py b/tests/test_systemctl_ls.py index 1f0c2bf6..4af6dced 100644 --- a/tests/test_systemctl_ls.py +++ b/tests/test_systemctl_ls.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl-ls.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_systemctl_ls = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl-ls.out'), 'r', encoding='utf-8') as f: + centos_7_7_systemctl_ls = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-ls.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_systemctl_ls = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-ls.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_systemctl_ls = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl-ls.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_systemctl_ls_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl-ls.json'), 'r', encoding='utf-8') as f: + centos_7_7_systemctl_ls_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-ls.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_systemctl_ls_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-ls.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_systemctl_ls_json = json.loads(f.read()) def test_systemctl_ls_nodata(self): """ diff --git a/tests/test_systemctl_luf.py b/tests/test_systemctl_luf.py index b773fdcc..7c7ebf42 100644 --- a/tests/test_systemctl_luf.py +++ b/tests/test_systemctl_luf.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl-luf.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_systemctl_luf = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl-luf.out'), 'r', encoding='utf-8') as f: + centos_7_7_systemctl_luf = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-luf.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_systemctl_luf = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-luf.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_systemctl_luf = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl-luf.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_systemctl_luf_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/systemctl-luf.json'), 'r', encoding='utf-8') as f: + centos_7_7_systemctl_luf_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-luf.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_systemctl_luf_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/systemctl-luf.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_systemctl_luf_json = json.loads(f.read()) def test_systemctl_luf_nodata(self): """ diff --git a/tests/test_time.py b/tests/test_time.py index 14451244..eaa08b0b 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -8,56 +8,56 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_time = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_time = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time2.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_time2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time2.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_time2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time-p.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_time_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time-p.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_time_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time-verbose.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_time_verbose = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time-verbose.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_time_verbose = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_time = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_time = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-l.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_time_l = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-l.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_time_l = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-p.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_time_p = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-p.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_time_p = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-lp.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_time_lp = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-lp.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_time_lp = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_time_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_time_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time2.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_time2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time2.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_time2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time-p.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_time_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time-p.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_time_p_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time-verbose.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_time_verbose_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/time-verbose.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_time_verbose_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_time_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_time_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-l.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_time_l_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-l.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_time_l_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-p.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_time_p_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-p.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_time_p_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-lp.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_time_lp_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/time-lp.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_time_lp_json = json.loads(f.read()) def test_time_nodata(self): """ diff --git a/tests/test_timedatectl.py b/tests/test_timedatectl.py index 1653b6ef..fe4b1204 100644 --- a/tests/test_timedatectl.py +++ b/tests/test_timedatectl.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/timedatectl.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_timedatectl = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/timedatectl.out'), 'r', encoding='utf-8') as f: + centos_7_7_timedatectl = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/timedatectl.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_timedatectl = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/timedatectl.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_timedatectl = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/timedatectl.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_timedatectl_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/timedatectl.json'), 'r', encoding='utf-8') as f: + centos_7_7_timedatectl_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/timedatectl.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_timedatectl_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/timedatectl.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_timedatectl_json = json.loads(f.read()) def test_timedatectl_nodata(self): """ diff --git a/tests/test_top.py b/tests/test_top.py index 74a1389a..1f4a4d05 100644 --- a/tests/test_top.py +++ b/tests/test_top.py @@ -8,38 +8,37 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n3.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n3 = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n3.out'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n3 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n1_gib = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib.out'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n1_gib = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-allfields-w.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n1_gib_allfields_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-allfields-w.out'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n1_gib_allfields_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-n1.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_top_b_n1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-n1.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_top_b_n1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-allfields.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_top_b_allfields = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-allfields.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_top_b_allfields = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n3.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n3_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n3.json'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n3_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n1_gib_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib.json'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n1_gib_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-allfields-w.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n1_gib_allfields_w_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-allfields-w.json'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n1_gib_allfields_w_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-n1.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_top_b_n1_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-n1.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_top_b_n1_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-allfields.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_top_b_allfields_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-allfields.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_top_b_allfields_json = json.loads(f.read()) def test_top_nodata(self): diff --git a/tests/test_top_s.py b/tests/test_top_s.py index 98566551..ebf478fb 100644 --- a/tests/test_top_s.py +++ b/tests/test_top_s.py @@ -12,38 +12,38 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n3.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n3 = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n3.out'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n3 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n1_gib = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib.out'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n1_gib = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-allfields-w.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n1_gib_allfields_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-allfields-w.out'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n1_gib_allfields_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-n1.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_top_b_n1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-n1.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_top_b_n1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-allfields.out'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_top_b_allfields = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-allfields.out'), 'r', encoding='utf-8') as f: + ubuntu_20_10_top_b_allfields = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n3-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n3_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n3-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n3_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n1_gib_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n1_gib_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-allfields-w-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_top_b_n1_gib_allfields_w_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/top-b-n1-gib-allfields-w-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_top_b_n1_gib_allfields_w_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-n1-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_top_b_n1_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-n1-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_top_b_n1_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-allfields-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_20_10_top_b_allfields_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-20.10/top-b-allfields-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_20_10_top_b_allfields_streaming_json = json.loads(f.read()) def test_top_s_nodata(self): """ diff --git a/tests/test_tracepath.py b/tests/test_tracepath.py index d5ccbb5b..736db95f 100644 --- a/tests/test_tracepath.py +++ b/tests/test_tracepath.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/tracepath.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_tracepath = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/tracepath.out'), 'r', encoding='utf-8') as f: + centos_7_7_tracepath = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/tracepath6.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_tracepath6 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/tracepath6.out'), 'r', encoding='utf-8') as f: + centos_7_7_tracepath6 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/tracepath.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_tracepath_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/tracepath.json'), 'r', encoding='utf-8') as f: + centos_7_7_tracepath_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/tracepath6.json'), 'r', encoding='utf-8') as f: + centos_7_7_tracepath6_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/tracepath6.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_tracepath6_json = json.loads(f.read()) def test_tracepath_nodata(self): """ diff --git a/tests/test_traceroute.py b/tests/test_traceroute.py index 5c68fc48..7a113f41 100644 --- a/tests/test_traceroute.py +++ b/tests/test_traceroute.py @@ -8,135 +8,134 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/traceroute.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_traceroute = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/traceroute.out'), 'r', encoding='utf-8') as f: + centos_7_7_traceroute = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-no-header.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_noheader = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-no-header.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_noheader = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-asn.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_asn = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-asn.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_asn = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-mult-addresses.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_mult_addresses = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-mult-addresses.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_mult_addresses = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-q.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_q = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-q.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_q = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute6-mult-addresses.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute6_mult_addresses = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute6-mult-addresses.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute6_mult_addresses = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute6.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute6 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute6.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute6 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/traceroute.out'), 'r', encoding='utf-8') as f: - self.freebsd12_traceroute = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/traceroute.out'), 'r', encoding='utf-8') as f: + freebsd12_traceroute = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/traceroute6.out'), 'r', encoding='utf-8') as f: - self.freebsd12_traceroute6 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/traceroute6.out'), 'r', encoding='utf-8') as f: + freebsd12_traceroute6 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute1.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute1 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute1.out'), 'r', encoding='utf-8') as f: + generic_traceroute1 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute2.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute2.out'), 'r', encoding='utf-8') as f: + generic_traceroute2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute3.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute3 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute3.out'), 'r', encoding='utf-8') as f: + generic_traceroute3 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute4.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute4 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute4.out'), 'r', encoding='utf-8') as f: + generic_traceroute4 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute5.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute5 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute5.out'), 'r', encoding='utf-8') as f: + generic_traceroute5 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute6.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute6 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute6.out'), 'r', encoding='utf-8') as f: + generic_traceroute6 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute7.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute7 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute7.out'), 'r', encoding='utf-8') as f: + generic_traceroute7 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute8.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute8 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute8.out'), 'r', encoding='utf-8') as f: + generic_traceroute8 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-ipv4.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute_n_ipv4 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-ipv4.out'), 'r', encoding='utf-8') as f: + generic_traceroute_n_ipv4 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-q1-ipv4.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute_n_q1_ipv4 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-q1-ipv4.out'), 'r', encoding='utf-8') as f: + generic_traceroute_n_q1_ipv4 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-ipv6.out'), 'r', encoding='utf-8') as f: - self.generic_traceroute_n_ipv6 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-ipv6.out'), 'r', encoding='utf-8') as f: + generic_traceroute_n_ipv6 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-no-header.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_no_header_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-no-header.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_no_header_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/traceroute.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_traceroute_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/traceroute.json'), 'r', encoding='utf-8') as f: + centos_7_7_traceroute_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-asn.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_asn_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-asn.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_asn_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-mult-addresses.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_mult_addresses_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-mult-addresses.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_mult_addresses_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-q.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_q_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-q.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_q_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute6-mult-addresses.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute6_mult_addresses_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute6-mult-addresses.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute6_mult_addresses_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute6.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_traceroute6_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute6.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_traceroute6_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/traceroute.json'), 'r', encoding='utf-8') as f: - self.freebsd12_traceroute_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/traceroute.json'), 'r', encoding='utf-8') as f: + freebsd12_traceroute_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/traceroute6.json'), 'r', encoding='utf-8') as f: - self.freebsd12_traceroute6_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/traceroute6.json'), 'r', encoding='utf-8') as f: + freebsd12_traceroute6_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute1.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute1_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute1.json'), 'r', encoding='utf-8') as f: + generic_traceroute1_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute2.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute2.json'), 'r', encoding='utf-8') as f: + generic_traceroute2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute3.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute3_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute3.json'), 'r', encoding='utf-8') as f: + generic_traceroute3_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute4.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute4_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute4.json'), 'r', encoding='utf-8') as f: + generic_traceroute4_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute5.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute5_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute5.json'), 'r', encoding='utf-8') as f: + generic_traceroute5_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute6.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute6_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute6.json'), 'r', encoding='utf-8') as f: + generic_traceroute6_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute7.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute7_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute7.json'), 'r', encoding='utf-8') as f: + generic_traceroute7_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute8.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute8_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute8.json'), 'r', encoding='utf-8') as f: + generic_traceroute8_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-ipv4.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute_n_ipv4_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-ipv4.json'), 'r', encoding='utf-8') as f: + generic_traceroute_n_ipv4_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-q1-ipv4.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute_n_q1_ipv4_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-q1-ipv4.json'), 'r', encoding='utf-8') as f: + generic_traceroute_n_q1_ipv4_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-ipv6.json'), 'r', encoding='utf-8') as f: - self.generic_traceroute_n_ipv6_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/traceroute-n-ipv6.json'), 'r', encoding='utf-8') as f: + generic_traceroute_n_ipv6_json = json.loads(f.read()) def test_traceroute_nodata(self): diff --git a/tests/test_ufw.py b/tests/test_ufw.py index 28fdcc69..77eb6967 100644 --- a/tests/test_ufw.py +++ b/tests/test_ufw.py @@ -8,44 +8,44 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-verbose.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_ufw_verbose = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-verbose.out'), 'r', encoding='utf-8') as f: + ubuntu_18_04_ufw_verbose = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-numbered.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_ufw_numbered = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-numbered.out'), 'r', encoding='utf-8') as f: + ubuntu_18_04_ufw_numbered = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw.out'), 'r', encoding='utf-8') as f: - self.generic_ufw = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw.out'), 'r', encoding='utf-8') as f: + generic_ufw = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-numbered.out'), 'r', encoding='utf-8') as f: - self.generic_ufw_numbered = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-numbered.out'), 'r', encoding='utf-8') as f: + generic_ufw_numbered = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-numbered2.out'), 'r', encoding='utf-8') as f: - self.generic_ufw_numbered2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-numbered2.out'), 'r', encoding='utf-8') as f: + generic_ufw_numbered2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-inactive.out'), 'r', encoding='utf-8') as f: - self.generic_ufw_inactive = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-inactive.out'), 'r', encoding='utf-8') as f: + generic_ufw_inactive = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-verbose.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_ufw_verbose_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-verbose.json'), 'r', encoding='utf-8') as f: + ubuntu_18_04_ufw_verbose_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-numbered.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_ufw_numbered_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-numbered.json'), 'r', encoding='utf-8') as f: + ubuntu_18_04_ufw_numbered_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw.json'), 'r', encoding='utf-8') as f: - self.generic_ufw_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw.json'), 'r', encoding='utf-8') as f: + generic_ufw_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-numbered.json'), 'r', encoding='utf-8') as f: - self.generic_ufw_numbered_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-numbered.json'), 'r', encoding='utf-8') as f: + generic_ufw_numbered_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-numbered2.json'), 'r', encoding='utf-8') as f: - self.generic_ufw_numbered2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-numbered2.json'), 'r', encoding='utf-8') as f: + generic_ufw_numbered2_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-inactive.json'), 'r', encoding='utf-8') as f: + generic_ufw_inactive_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-inactive.json'), 'r', encoding='utf-8') as f: - self.generic_ufw_inactive_json = json.loads(f.read()) def test_ufw_nodata(self): """ diff --git a/tests/test_ufw_appinfo.py b/tests/test_ufw_appinfo.py index 0e408042..caf6eea3 100644 --- a/tests/test_ufw_appinfo.py +++ b/tests/test_ufw_appinfo.py @@ -8,38 +8,38 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-appinfo-all.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_ufw_appinfo_all = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-appinfo-all.out'), 'r', encoding='utf-8') as f: + ubuntu_18_04_ufw_appinfo_all = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test.out'), 'r', encoding='utf-8') as f: - self.generic_ufw_appinfo_test = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test.out'), 'r', encoding='utf-8') as f: + generic_ufw_appinfo_test = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test2.out'), 'r', encoding='utf-8') as f: - self.generic_ufw_appinfo_test2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test2.out'), 'r', encoding='utf-8') as f: + generic_ufw_appinfo_test2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test3.out'), 'r', encoding='utf-8') as f: - self.generic_ufw_appinfo_test3 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test3.out'), 'r', encoding='utf-8') as f: + generic_ufw_appinfo_test3 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-msn.out'), 'r', encoding='utf-8') as f: - self.generic_ufw_appinfo_msn = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-msn.out'), 'r', encoding='utf-8') as f: + generic_ufw_appinfo_msn = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-appinfo-all.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_ufw_appinfo_all_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/ufw-appinfo-all.json'), 'r', encoding='utf-8') as f: + ubuntu_18_04_ufw_appinfo_all_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test.json'), 'r', encoding='utf-8') as f: - self.generic_ufw_appinfo_test_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test.json'), 'r', encoding='utf-8') as f: + generic_ufw_appinfo_test_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test2.json'), 'r', encoding='utf-8') as f: - self.generic_ufw_appinfo_test2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test2.json'), 'r', encoding='utf-8') as f: + generic_ufw_appinfo_test2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test3.json'), 'r', encoding='utf-8') as f: - self.generic_ufw_appinfo_test3_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-test3.json'), 'r', encoding='utf-8') as f: + generic_ufw_appinfo_test3_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-msn.json'), 'r', encoding='utf-8') as f: + generic_ufw_appinfo_msn_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/ufw-appinfo-msn.json'), 'r', encoding='utf-8') as f: - self.generic_ufw_appinfo_msn_json = json.loads(f.read()) def test_ufw_appinfo_nodata(self): """ diff --git a/tests/test_uname.py b/tests/test_uname.py index 03e33c2b..07c1a321 100644 --- a/tests/test_uname.py +++ b/tests/test_uname.py @@ -9,68 +9,68 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uname-a.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_uname_a = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uname-a.out'), 'r', encoding='utf-8') as f: + centos_7_7_uname_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uname.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_uname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uname.out'), 'r', encoding='utf-8') as f: + centos_7_7_uname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/uname-a.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_uname_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/uname-a.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_uname_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/uname-a.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_uname_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/uname-a.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_uname_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uname-a.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_uname_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uname-a.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_uname_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uname.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_uname = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uname.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_uname = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/uname-a.out'), 'r', encoding='utf-8') as f: - self.freebsd12_uname_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/uname-a.out'), 'r', encoding='utf-8') as f: + freebsd12_uname_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/uname-a2.out'), 'r', encoding='utf-8') as f: - self.freebsd12_uname_a2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/uname-a2.out'), 'r', encoding='utf-8') as f: + freebsd12_uname_a2 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/uname-a.out'), 'r', encoding='utf-8') as f: - self.generic_uname_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/uname-a.out'), 'r', encoding='utf-8') as f: + generic_uname_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/uname-a-different-proc.out'), 'r', encoding='utf-8') as f: - self.generic_uname_a_different_proc = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/uname-a-different-proc.out'), 'r', encoding='utf-8') as f: + generic_uname_a_different_proc = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/uname-a.out'), 'r', encoding='utf-8') as f: - self.debian_10_uname_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/uname-a.out'), 'r', encoding='utf-8') as f: + debian_10_uname_a = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uname-a.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_uname_a_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uname-a.json'), 'r', encoding='utf-8') as f: + centos_7_7_uname_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/uname-a.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_uname_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/uname-a.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_uname_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/uname-a.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_uname_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/uname-a.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_uname_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uname-a.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_uname_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uname-a.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_uname_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/uname-a.json'), 'r', encoding='utf-8') as f: - self.freebsd12_uname_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/uname-a.json'), 'r', encoding='utf-8') as f: + freebsd12_uname_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/uname-a2.json'), 'r', encoding='utf-8') as f: - self.freebsd12_uname_a2_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/freebsd12/uname-a2.json'), 'r', encoding='utf-8') as f: + freebsd12_uname_a2_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/uname-a.json'), 'r', encoding='utf-8') as f: - self.generic_uname_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/uname-a.json'), 'r', encoding='utf-8') as f: + generic_uname_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/uname-a-different-proc.json'), 'r', encoding='utf-8') as f: - self.generic_uname_a_different_proc_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/uname-a-different-proc.json'), 'r', encoding='utf-8') as f: + generic_uname_a_different_proc_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/uname-a.json'), 'r', encoding='utf-8') as f: + debian_10_uname_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/debian10/uname-a.json'), 'r', encoding='utf-8') as f: - self.debian_10_uname_a_json = json.loads(f.read()) def test_uname_nodata(self): """ diff --git a/tests/test_update_alt_gs.py b/tests/test_update_alt_gs.py index fdda7f45..34929d13 100644 --- a/tests/test_update_alt_gs.py +++ b/tests/test_update_alt_gs.py @@ -8,14 +8,13 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-get-selections.out'), 'r', encoding='utf-8') as f: - self.update_alternatives_get_selections = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-get-selections.out'), 'r', encoding='utf-8') as f: + update_alternatives_get_selections = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-get-selections.json'), 'r', encoding='utf-8') as f: - self.update_alternatives_get_selections_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-get-selections.json'), 'r', encoding='utf-8') as f: + update_alternatives_get_selections_json = json.loads(f.read()) def test_update_alt_gs_nodata(self): diff --git a/tests/test_update_alt_q.py b/tests/test_update_alt_q.py index 7957f675..43484529 100644 --- a/tests/test_update_alt_q.py +++ b/tests/test_update_alt_q.py @@ -8,21 +8,19 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-query.out'), 'r', encoding='utf-8') as f: - self.update_alternatives_query = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-query.out'), 'r', encoding='utf-8') as f: + update_alternatives_query = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-query2.out'), 'r', encoding='utf-8') as f: - self.update_alternatives_query2 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-query2.out'), 'r', encoding='utf-8') as f: + update_alternatives_query2 = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-query.json'), 'r', encoding='utf-8') as f: - self.update_alternatives_query_json = json.loads(f.read()) - - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-query2.json'), 'r', encoding='utf-8') as f: - self.update_alternatives_query2_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-query.json'), 'r', encoding='utf-8') as f: + update_alternatives_query_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/update-alternatives-query2.json'), 'r', encoding='utf-8') as f: + update_alternatives_query2_json = json.loads(f.read()) def test_update_alt_q_nodata(self): diff --git a/tests/test_upower.py b/tests/test_upower.py index a4f1b295..1281375c 100644 --- a/tests/test_upower.py +++ b/tests/test_upower.py @@ -15,44 +15,44 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-i.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_upower_i = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-i.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_upower_i = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-d.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_upower_d = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-d.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_upower_d = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-d-clocale.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_upower_d_clocale = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-d-clocale.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_upower_d_clocale = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-utc.out'), 'r', encoding='utf-8') as f: - self.generic_upower_i_utc = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-utc.out'), 'r', encoding='utf-8') as f: + generic_upower_i_utc = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-non-utc.out'), 'r', encoding='utf-8') as f: - self.generic_upower_i_non_utc = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-non-utc.out'), 'r', encoding='utf-8') as f: + generic_upower_i_non_utc = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-c-locale.out'), 'r', encoding='utf-8') as f: - self.generic_upower_i_c_locale = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-c-locale.out'), 'r', encoding='utf-8') as f: + generic_upower_i_c_locale = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-i.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_upower_i_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-i.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_upower_i_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-d.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_upower_d_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-d.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_upower_d_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-d-clocale.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_upower_d_clocale_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/upower-d-clocale.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_upower_d_clocale_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-utc.json'), 'r', encoding='utf-8') as f: - self.generic_upower_i_utc_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-utc.json'), 'r', encoding='utf-8') as f: + generic_upower_i_utc_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-non-utc.json'), 'r', encoding='utf-8') as f: - self.generic_upower_i_non_utc_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-non-utc.json'), 'r', encoding='utf-8') as f: + generic_upower_i_non_utc_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-c-locale.json'), 'r', encoding='utf-8') as f: + generic_upower_i_c_locale_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/upower-i-c-locale.json'), 'r', encoding='utf-8') as f: - self.generic_upower_i_c_locale_json = json.loads(f.read()) def test_upower_nodata(self): """ diff --git a/tests/test_uptime.py b/tests/test_uptime.py index 06a56c7e..cf8a75fd 100644 --- a/tests/test_uptime.py +++ b/tests/test_uptime.py @@ -8,32 +8,32 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uptime.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_uptime = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uptime.out'), 'r', encoding='utf-8') as f: + centos_7_7_uptime = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/uptime.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_uptime = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/uptime.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_uptime = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/uptime.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_uptime = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/uptime.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_uptime = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uptime.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_uptime = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uptime.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_uptime = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uptime.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_uptime_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/uptime.json'), 'r', encoding='utf-8') as f: + centos_7_7_uptime_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/uptime.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_uptime_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/uptime.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_uptime_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/uptime.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_uptime_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/uptime.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_uptime_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uptime.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_uptime_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/uptime.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_uptime_json = json.loads(f.read()) def test_uptime_nodata(self): """ diff --git a/tests/test_vmstat.py b/tests/test_vmstat.py index 93f8446e..689adb10 100644 --- a/tests/test_vmstat.py +++ b/tests/test_vmstat.py @@ -15,56 +15,56 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-a.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-a.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-at-5-10.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_at_5_10 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-at-5-10.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_at_5_10 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-awt.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_awt = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-awt.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_awt = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-d.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_d = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-d.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_d = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-dt.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_dt = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-dt.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_dt = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-w.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-w.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/vmstat-1-long.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_vmstat_1_long = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/vmstat-1-long.out'), 'r', encoding='utf-8') as f: + ubuntu_18_04_vmstat_1_long = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-a.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-a.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-at-5-10.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_at_5_10_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-at-5-10.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_at_5_10_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-awt.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_awt_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-awt.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_awt_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-d.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_d_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-d.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_d_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-dt.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_dt_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-dt.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_dt_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-w.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_w_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-w.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_w_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/vmstat-1-long.json'), 'r', encoding='utf-8') as f: + ubuntu_18_04_vmstat_1_long_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/vmstat-1-long.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_vmstat_1_long_json = json.loads(f.read()) def test_vmstat_nodata(self): """ diff --git a/tests/test_vmstat_s.py b/tests/test_vmstat_s.py index ec64bd31..01ed7a56 100644 --- a/tests/test_vmstat_s.py +++ b/tests/test_vmstat_s.py @@ -20,56 +20,56 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-a.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-a.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-w.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-w.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-at-5-10.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_at_5_10 = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-at-5-10.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_at_5_10 = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-awt.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_awt = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-awt.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_awt = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-d.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_d = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-d.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_d = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-dt.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_dt = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-dt.out'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_dt = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/vmstat-1-long.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_vmstat_1_long = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/vmstat-1-long.out'), 'r', encoding='utf-8') as f: + ubuntu_18_04_vmstat_1_long = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_streaming_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-a-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_a_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-a-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_a_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-w-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_w_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-w-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_w_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-at-5-10-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_at_5_10_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-at-5-10-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_at_5_10_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-awt-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_awt_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-awt-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_awt_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-d-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_d_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-d-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_d_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-dt-streaming.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_vmstat_dt_streaming_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/vmstat-dt-streaming.json'), 'r', encoding='utf-8') as f: + centos_7_7_vmstat_dt_streaming_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/vmstat-1-long-streaming.json'), 'r', encoding='utf-8') as f: + ubuntu_18_04_vmstat_1_long_streaming_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/vmstat-1-long-streaming.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_04_vmstat_1_long_streaming_json = json.loads(f.read()) def test_vmstat_s_nodata(self): """ diff --git a/tests/test_w.py b/tests/test_w.py index f360b4f9..327bfa95 100644 --- a/tests/test_w.py +++ b/tests/test_w.py @@ -8,38 +8,38 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/w.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_w = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/w.out'), 'r', encoding='utf-8') as f: + centos_7_7_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/w.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/w.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/w.out'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/w.out'), 'r', encoding='utf-8') as f: + osx_10_11_6_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/w.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/w.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_w = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/nixos/w.out'), 'r', encoding='utf-8') as f: - self.nixos_w = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/nixos/w.out'), 'r', encoding='utf-8') as f: + nixos_w = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/w.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_w_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/w.json'), 'r', encoding='utf-8') as f: + centos_7_7_w_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/w.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_w_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/w.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_w_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/w.json'), 'r', encoding='utf-8') as f: - self.osx_10_11_6_w_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/w.json'), 'r', encoding='utf-8') as f: + osx_10_11_6_w_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/w.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_w_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/w.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_w_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/nixos/w.json'), 'r', encoding='utf-8') as f: + nixos_w_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/nixos/w.json'), 'r', encoding='utf-8') as f: - self.nixos_w_json = json.loads(f.read()) def test_w_nodata(self): """ diff --git a/tests/test_wc.py b/tests/test_wc.py index be21d612..516da8fc 100644 --- a/tests/test_wc.py +++ b/tests/test_wc.py @@ -8,26 +8,26 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/wc.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_wc = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/wc.out'), 'r', encoding='utf-8') as f: + centos_7_7_wc = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/wc.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_wc = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/wc.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_wc = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/wc-stdin.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_wc_stdin = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/wc-stdin.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_wc_stdin = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/wc.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_wc_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/wc.json'), 'r', encoding='utf-8') as f: + centos_7_7_wc_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/wc.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_wc_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/wc.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_wc_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/wc-stdin.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_wc_stdin_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/wc-stdin.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_wc_stdin_json = json.loads(f.read()) def test_wc_nodata(self): """ diff --git a/tests/test_who.py b/tests/test_who.py index 74357c5e..9678932d 100644 --- a/tests/test_who.py +++ b/tests/test_who.py @@ -15,44 +15,44 @@ if not sys.platform.startswith('win32'): class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/who.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_who = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/who.out'), 'r', encoding='utf-8') as f: + centos_7_7_who = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/who.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_who = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/who.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_who = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/who.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_who = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/who.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_who = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/who-a.out'), 'r', encoding='utf-8') as f: - self.centos_7_7_who_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/who-a.out'), 'r', encoding='utf-8') as f: + centos_7_7_who_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/who-a.out'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_who_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/who-a.out'), 'r', encoding='utf-8') as f: + ubuntu_18_4_who_a = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/who-a.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_who_a = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/who-a.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_who_a = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/who.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_who_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/who.json'), 'r', encoding='utf-8') as f: + centos_7_7_who_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/who.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_who_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/who.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_who_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/who.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_who_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/who.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_who_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/who-a.json'), 'r', encoding='utf-8') as f: - self.centos_7_7_who_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/who-a.json'), 'r', encoding='utf-8') as f: + centos_7_7_who_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/who-a.json'), 'r', encoding='utf-8') as f: - self.ubuntu_18_4_who_a_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/who-a.json'), 'r', encoding='utf-8') as f: + ubuntu_18_4_who_a_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/who-a.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_who_a_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/who-a.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_who_a_json = json.loads(f.read()) def test_who_nodata(self): """ diff --git a/tests/test_x509_cert.py b/tests/test_x509_cert.py index a9ffdc4d..4286e9de 100644 --- a/tests/test_x509_cert.py +++ b/tests/test_x509_cert.py @@ -8,32 +8,31 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-ca-cert.der'), 'rb') as f: - self.x509_ca_cert = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-ca-cert.der'), 'rb') as f: + x509_ca_cert = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-cert-and-key.pem'), 'r', encoding='utf-8') as f: - self.x509_cert_and_key_pem = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-cert-and-key.pem'), 'r', encoding='utf-8') as f: + x509_cert_and_key_pem = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-letsencrypt.pem'), 'r', encoding='utf-8') as f: - self.x509_letsencrypt = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-letsencrypt.pem'), 'r', encoding='utf-8') as f: + x509_letsencrypt = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-multi-cert.pem'), 'r', encoding='utf-8') as f: - self.x509_multi_cert = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-multi-cert.pem'), 'r', encoding='utf-8') as f: + x509_multi_cert = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-ca-cert.json'), 'r', encoding='utf-8') as f: - self.x509_ca_cert_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-ca-cert.json'), 'r', encoding='utf-8') as f: + x509_ca_cert_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-cert-and-key.json'), 'r', encoding='utf-8') as f: - self.x509_cert_and_key_pem_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-cert-and-key.json'), 'r', encoding='utf-8') as f: + x509_cert_and_key_pem_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-letsencrypt.json'), 'r', encoding='utf-8') as f: - self.x509_letsencrypt_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-letsencrypt.json'), 'r', encoding='utf-8') as f: + x509_letsencrypt_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-multi-cert.json'), 'r', encoding='utf-8') as f: - self.x509_multi_cert_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/x509-multi-cert.json'), 'r', encoding='utf-8') as f: + x509_multi_cert_json = json.loads(f.read()) def test_x509_cert_nodata(self): diff --git a/tests/test_xml.py b/tests/test_xml.py index a4b65c51..cf4eda9f 100644 --- a/tests/test_xml.py +++ b/tests/test_xml.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/xml-cd_catalog.xml'), 'r', encoding='utf-8') as f: - self.generic_xml_cd_catalog = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/xml-cd_catalog.xml'), 'r', encoding='utf-8') as f: + generic_xml_cd_catalog = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/xml-foodmenu.xml'), 'r', encoding='utf-8') as f: - self.generic_xml_foodmenu = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/xml-foodmenu.xml'), 'r', encoding='utf-8') as f: + generic_xml_foodmenu = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/xml-cd_catalog.json'), 'r', encoding='utf-8') as f: - self.generic_xml_cd_catalog_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/xml-cd_catalog.json'), 'r', encoding='utf-8') as f: + generic_xml_cd_catalog_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/xml-foodmenu.json'), 'r', encoding='utf-8') as f: + generic_xml_foodmenu_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/xml-foodmenu.json'), 'r', encoding='utf-8') as f: - self.generic_xml_foodmenu_json = json.loads(f.read()) def test_xml_nodata(self): """ diff --git a/tests/test_yaml.py b/tests/test_yaml.py index c6f07f80..92079cba 100644 --- a/tests/test_yaml.py +++ b/tests/test_yaml.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/yaml-istio-sc.yaml'), 'r', encoding='utf-8') as f: - self.generic_yaml_istio_sc = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/yaml-istio-sc.yaml'), 'r', encoding='utf-8') as f: + generic_yaml_istio_sc = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/yaml-istio-sidecar.yaml'), 'r', encoding='utf-8') as f: - self.generic_yaml_istio_sidecar = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/yaml-istio-sidecar.yaml'), 'r', encoding='utf-8') as f: + generic_yaml_istio_sidecar = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/yaml-istio-sc.json'), 'r', encoding='utf-8') as f: - self.generic_yaml_istio_sc_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/yaml-istio-sc.json'), 'r', encoding='utf-8') as f: + generic_yaml_istio_sc_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/yaml-istio-sidecar.json'), 'r', encoding='utf-8') as f: + generic_yaml_istio_sidecar_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/yaml-istio-sidecar.json'), 'r', encoding='utf-8') as f: - self.generic_yaml_istio_sidecar_json = json.loads(f.read()) def test_yaml_nodata(self): """ diff --git a/tests/test_zipinfo.py b/tests/test_zipinfo.py index 31d2aec4..2e0e9d56 100644 --- a/tests/test_zipinfo.py +++ b/tests/test_zipinfo.py @@ -8,20 +8,20 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) class MyTests(unittest.TestCase): - def setUp(self): - # input - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/zipinfo.out'), 'r', encoding='utf-8') as f: - self.rhel_8_zipinfo = f.read() + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/zipinfo.out'), 'r', encoding='utf-8') as f: + rhel_8_zipinfo = f.read() - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/zipinfo-multi.out'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_zipinfo_multi = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/zipinfo-multi.out'), 'r', encoding='utf-8') as f: + osx_10_14_6_zipinfo_multi = f.read() - # output - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/zipinfo.json'), 'r', encoding='utf-8') as f: - self.rhel_8_zipinfo_json = json.loads(f.read()) + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/rhel-8/zipinfo.json'), 'r', encoding='utf-8') as f: + rhel_8_zipinfo_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/zipinfo-multi.json'), 'r', encoding='utf-8') as f: + osx_10_14_6_zipinfo_multi_json = json.loads(f.read()) - with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/zipinfo-multi.json'), 'r', encoding='utf-8') as f: - self.osx_10_14_6_zipinfo_multi_json = json.loads(f.read()) def test_zipinfo_nodata(self): """