OXIESEC PANEL
- Current Dir:
/
/
snap
/
certbot
/
4737
/
usr
/
share
/
augeas
/
lenses
/
dist
/
tests
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/12/2025 06:19:49 PM
rwxr-xr-x
📄
test_access.aug
3.44 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_activemq_conf.aug
758 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_activemq_xml.aug
1.63 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_afs_cellalias.aug
1.31 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_aliases.aug
2.99 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_anaconda.aug
2.07 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_anacron.aug
1.21 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_approx.aug
1.44 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_apt_update_manager.aug
1.12 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_aptcacherngsecurity.aug
1.17 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_aptconf.aug
5.26 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_aptpreferences.aug
1.86 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_aptsources.aug
3.42 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_authinfo2.aug
991 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_authorized_keys.aug
4.47 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_authselectpam.aug
1.34 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_automaster.aug
1.53 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_automounter.aug
5.2 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_avahi.aug
545 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_backuppchosts.aug
623 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_bbhosts.aug
3.68 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_bootconf.aug
980 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_build.aug
8.12 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cachefilesd.aug
579 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_carbon.aug
2.54 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_ceph.aug
4.86 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cgconfig.aug
5.93 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cgrules.aug
903 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_channels.aug
4.72 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_chrony.aug
7.51 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_clamav.aug
8.48 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cmdline.aug
1.01 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cobblermodules.aug
620 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cobblersettings.aug
1.34 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cockpit.aug
2.07 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_collectd.aug
1.3 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cpanel.aug
1.62 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cron.aug
1.96 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cron_user.aug
779 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_crypttab.aug
1.78 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_csv.aug
1.56 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cups.aug
13.93 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_cyrus_imapd.aug
1.33 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_darkice.aug
575 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_debctrl.aug
13.94 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_desktop.aug
1.23 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_devfsrules.aug
2.17 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_device_map.aug
797 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_dhclient.aug
4.69 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_dhcpd.aug
15.07 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_dns_zone.aug
10.33 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_dnsmasq.aug
1.19 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_dovecot.aug
22.3 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_dpkg.aug
322 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_dput.aug
3.37 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_erlang.aug
2.58 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_ethers.aug
1.4 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_exports.aug
1.69 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_fai_diskconfig.aug
15.04 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_fail2ban.aug
413 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_fonts.aug
19.45 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_fstab.aug
4.45 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_fuse.aug
590 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_gdm.aug
620 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_getcap.aug
3.77 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_group.aug
1.09 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_grub.aug
10.67 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_grubenv.aug
2.44 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_gshadow.aug
359 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_gtkbookmarks.aug
820 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_host_conf.aug
834 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_hostname.aug
103 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_hosts.aug
1.78 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_hosts_access.aug
6.12 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_htpasswd.aug
468 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_httpd.aug
16.32 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_inetd.aug
4.51 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_inifile.aug
11.64 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_inittab.aug
1.82 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_inputrc.aug
5.13 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_interfaces.aug
3.65 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_iproute2.aug
945 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_iptables.aug
7.39 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_iscsid.aug
2.45 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_jaas.aug
5.35 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_jettyrealm.aug
982 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_jmxaccess.aug
637 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_jmxpassword.aug
653 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_json.aug
17.26 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_kdump.aug
2.91 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_keepalived.aug
14.56 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_known_hosts.aug
1.79 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_koji.aug
1.65 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_krb5.aug
29.96 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_ldap.aug
398 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_ldif.aug
3.88 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_ldso.aug
486 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_lightdm.aug
3.98 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_limits.aug
1.04 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_login_defs.aug
528 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_logrotate.aug
7.95 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_logwatch.aug
322 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_lokkit.aug
2.1 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_lvm.aug
4.56 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_mailscanner.aug
32.15 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_mailscanner_rules.aug
2.6 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_masterpasswd.aug
3.21 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_mcollective.aug
1.2 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_mdadm_conf.aug
2.52 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_memcached.aug
1.15 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_mke2fs.aug
3.08 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_modprobe.aug
4.07 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_modules.aug
229 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_modules_conf.aug
3.23 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_mongodbserver.aug
775 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_monit.aug
1.03 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_multipath.aug
6.5 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_mysql.aug
8.75 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_nagioscfg.aug
2.95 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_nagiosobjects.aug
1.69 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_netmasks.aug
640 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_networkmanager.aug
1.93 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_networks.aug
1.16 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_nginx.aug
7.64 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_nrpe.aug
2.13 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_nslcd.aug
12.84 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_nsswitch.aug
1.54 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_ntp.aug
5.09 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_ntpd.aug
1.87 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_odbc.aug
1.62 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_opendkim.aug
7.57 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_openshift_config.aug
3.64 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_openshift_http.aug
2.16 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_openshift_quickstarts.aug
12.42 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_openvpn.aug
28.09 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_oz.aug
611 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_pagekite.aug
2.75 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_pam.aug
2.13 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_pamconf.aug
1010 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_passwd.aug
2.44 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_pbuilder.aug
531 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_pg_hba.aug
6.97 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_pgbouncer.aug
1.97 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_php.aug
1.4 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_phpvars.aug
1.63 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_postfix_access.aug
1.52 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_postfix_main.aug
1.03 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_postfix_master.aug
4.1 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_postfix_passwordmap.aug
1.31 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_postfix_sasl_smtpd.aug
530 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_postfix_transport.aug
1.71 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_postfix_virtual.aug
1.23 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_postgresql.aug
8.18 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_properties.aug
3.62 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_protocols.aug
1.3 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_puppet.aug
547 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_puppet_auth.aug
1.1 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_puppetfile.aug
4.45 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_puppetfileserver.aug
949 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_pylonspaste.aug
1.73 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_pythonpaste.aug
1.23 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_qpid.aug
1.3 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_quote.aug
8.66 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_rabbitmq.aug
3.66 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_radicale.aug
1.04 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_rancid.aug
706 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_redis.aug
8.74 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_reprepro_uploaders.aug
4.68 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_resolv.aug
1.91 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_rhsm.aug
4.46 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_rmt.aug
826 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_rsyncd.aug
1.27 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_rsyslog.aug
7.06 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_rtadvd.aug
859 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_rx.aug
4.12 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_samba.aug
3.52 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_schroot.aug
2.25 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_securetty.aug
636 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_semanage.aug
1.72 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_services.aug
2.87 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_shadow.aug
2.01 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_shells.aug
348 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_shellvars.aug
19.15 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_shellvars_list.aug
4.18 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_simplelines.aug
724 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_simplevars.aug
994 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_sip_conf.aug
3.61 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_slapd.aug
3.03 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_smbusers.aug
664 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_solaris_system.aug
2.48 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_soma.aug
424 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_sos.aug
1.16 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_spacevars.aug
431 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_splunk.aug
2.96 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_squid.aug
5.09 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_ssh.aug
3.32 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_sshd.aug
6.42 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_sssd.aug
896 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_star.aug
1.56 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_strongswan.aug
2.57 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_stunnel.aug
791 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_subversion.aug
3.06 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_sudoers.aug
10.72 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_sysconfig.aug
4.1 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_sysconfig_route.aug
522 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_sysctl.aug
2.47 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_syslog.aug
11.05 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_systemd.aug
8.71 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_termcap.aug
16.69 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_thttpd.aug
1.17 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_tinc.aug
725 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_tmpfiles.aug
12.09 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_toml.aug
8.9 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_trapperkeeper.aug
4.15 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_tuned.aug
259 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_up2date.aug
6.23 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_updatedb.aug
855 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_util.aug
428 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_vfstab.aug
2.79 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_vmware_config.aug
1.7 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_vsftpd.aug
2.49 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_webmin.aug
195 bytes
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_wine.aug
5.58 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_xendconfsxp.aug
7.74 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_xinetd.aug
2.78 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_xml.aug
20.04 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_xorg.aug
2.51 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_xymon.aug
4.29 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_xymon_alerting.aug
7.44 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_yaml.aug
1.34 KB
03/31/2024 05:41:49 PM
rw-r--r--
📄
test_yum.aug
8.31 KB
03/31/2024 05:41:49 PM
rw-r--r--
Editing: test_shellvars.aug
Close
(* Test for shell lens *) module Test_shellvars = let lns = Shellvars.lns let eth_static = "# Intel Corporation PRO/100 VE Network Connection DEVICE=eth0 BOOTPROTO=static BROADCAST=172.31.0.255 HWADDR=ab:cd:ef:12:34:56 export IPADDR=172.31.0.31 # this is our IP #DHCP_HOSTNAME=host.example.com NETMASK=255.255.255.0 NETWORK=172.31.0.0 unset ONBOOT # We do not want this var " let empty_val = "EMPTY=\nDEVICE=eth0\n" let key_brack = "SOME_KEY[1]=\nDEVICE=eth0\n" test lns get eth_static = { "#comment" = "Intel Corporation PRO/100 VE Network Connection" } { "DEVICE" = "eth0" } { "BOOTPROTO" = "static" } { "BROADCAST" = "172.31.0.255" } { "HWADDR" = "ab:cd:ef:12:34:56" } { "IPADDR" = "172.31.0.31" { "export" } { "#comment" = "this is our IP" } } { "#comment" = "DHCP_HOSTNAME=host.example.com" } { "NETMASK" = "255.255.255.0" } { "NETWORK" = "172.31.0.0" } { "@unset" { "1" = "ONBOOT" } { "#comment" = "We do not want this var" } } test lns put eth_static after set "BOOTPROTO" "dhcp" ; rm "IPADDR" ; rm "BROADCAST" ; rm "NETMASK" ; rm "NETWORK" = "# Intel Corporation PRO/100 VE Network Connection DEVICE=eth0 BOOTPROTO=dhcp HWADDR=ab:cd:ef:12:34:56 #DHCP_HOSTNAME=host.example.com unset ONBOOT # We do not want this var " test lns get empty_val = { "EMPTY" = "" } { "DEVICE" = "eth0" } test lns get key_brack = { "SOME_KEY[1]" = "" } { "DEVICE" = "eth0" } test lns get "smartd_opts=\"-q never\"\n" = { "smartd_opts" = "\"-q never\"" } test lns get "var=val \n" = { "var" = "val" } test lns get ". /etc/java/java.conf\n" = { ".source" = "/etc/java/java.conf" } (* Quoted strings and other oddities *) test lns get "var=\"foo 'bar'\"\n" = { "var" = "\"foo 'bar'\"" } test lns get "var='Some \"funny\" value'\n" = { "var" = "'Some \"funny\" value'" } test lns get "var=\"\\\"\"\n" = { "var" = "\"\\\"\"" } test lns get "var=\\\"\n" = { "var" = "\\\"" } test lns get "var=ab#c\n" = { "var" = "ab#c" } test lns get "var=ab #c\n" = { "var" = "ab" { "#comment" = "c" } } test lns get "var=ab; #c\n" = { "var" = "ab" } { "#comment" = "c" } test lns put "var=ab; #c\n" after set "/#comment" "d" = "var=ab; #d\n" test lns get "var=ab;\n" = { "var" = "ab" } test lns get "var='ab#c'\n" = { "var" = "'ab#c'" } test lns get "var=\"ab#c\"\n" = { "var" = "\"ab#c\"" } test lns get "ESSID='Joe'\"'\"'s net'\n" = { "ESSID" = "'Joe'\"'\"'s net'" } test lns get "var=`ab#c`\n" = { "var" = "`ab#c`" } test lns get "var=`grep nameserver /etc/resolv.conf | head -1`\n" = { "var" = "`grep nameserver /etc/resolv.conf | head -1`" } test lns put "var=ab #c\n" after rm "/var/#comment" = "var=ab\n" test lns put "var=ab\n" after set "/var/#comment" "this is a var" = "var=ab # this is a var\n" (* Handling of arrays *) test lns get "var=(val1 \"val\\\"2\\\"\" val3)\n" = { "var" { "1" = "val1" } { "2" = "\"val\\\"2\\\"\"" } { "3" = "val3" } } test lns get "var=()\n" = { "var" = "()" } test lns put "var=()\n" after set "var" "value" = "var=value\n" test lns put "var=(v1 v2)\n" after rm "var/*" ; set "var" "value" = "var=value\n" test lns put "var=(v1 v2)\n" after set "var/3" "v3" = "var=(v1 v2 v3)\n" test lns get "var=(v1 v2 \n \t v3)\n" = { "var" { "1" = "v1" } { "2" = "v2" } { "3" = "v3" } } (* Allow spaces after/before opening/closing parens for array *) test lns get "config_eth1=( \"10.128.0.48/24\" )\n" = { "config_eth1" { "1" = "\"10.128.0.48/24\"" } } (* Bug 109: allow a bare export *) test lns get "export FOO\n" = { "@export" { "1" = "FOO" } } (* Bug 73: allow ulimit builtin *) test lns get "ulimit -c unlimited\n" = { "@builtin" = "ulimit" { "args" = "-c unlimited" } } (* Allow shift builtin *) test Shellvars.lns get "shift\nshift 2\n" = { "@builtin" = "shift" } { "@builtin" = "shift" { "args" = "2" } } (* Allow exit builtin *) test Shellvars.lns get "exit\nexit 2\n" = { "@builtin" = "exit" } { "@builtin" = "exit" { "args" = "2" } } (* Allow wrapping builtin arguments to multiple lines *) test Shellvars.lns get "ulimit -c \\\nunlimited\nulimit \\\n -x 123\n" = { "@builtin" = "ulimit" { "args" = "-c \\\nunlimited" } } { "@builtin" = "ulimit" { "args" = "-x 123" } } (* Test semicolons *) test lns get "VAR1=\"this;is;a;test\"\nVAR2=this;\n" = { "VAR1" = "\"this;is;a;test\"" } { "VAR2" = "this" } (* Bug 230: parse conditions *) test lns get "if [ -f /etc/default/keyboard ]; then\n. /etc/default/keyboard\nfi\n" = { "@if" = "[ -f /etc/default/keyboard ]" { ".source" = "/etc/default/keyboard" } } (* Recursive condition *) test lns get "if [ -f /tmp/file1 ]; then if [ -f /tmp/file2 ] then . /tmp/file2 elif [ -f /tmp/file3 ]; then . /tmp/file3; else; . /tmp/file4 fi else . /tmp/file3 fi\n" = { "@if" = "[ -f /tmp/file1 ]" { "@if" = "[ -f /tmp/file2 ]" { ".source" = "/tmp/file2" } { "@elif" = "[ -f /tmp/file3 ]" { ".source" = "/tmp/file3" } } { "@else" { ".source" = "/tmp/file4" } } } { "@else" { ".source" = "/tmp/file3" } } } (* Multiple elif *) test Shellvars.lns get "if [ -f /tmp/file1 ]; then . /tmp/file1 elif [ -f /tmp/file2 ]; then . /tmp/file2 elif [ -f /tmp/file3 ]; then . /tmp/file3 fi\n" = { "@if" = "[ -f /tmp/file1 ]" { ".source" = "/tmp/file1" } { "@elif" = "[ -f /tmp/file2 ]" { ".source" = "/tmp/file2" } } { "@elif" = "[ -f /tmp/file3 ]" { ".source" = "/tmp/file3" } } } (* Comment or eol *) test lns get "VAR=value # eol-comment\n" = { "VAR" = "value" { "#comment" = "eol-comment" } } (* One-liners *) test lns get "if [ -f /tmp/file1 ]; then . /tmp/file1; else . /tmp/file2; fi\n" = { "@if" = "[ -f /tmp/file1 ]" { ".source" = "/tmp/file1" } { "@else" { ".source" = "/tmp/file2" } } } (* Loops *) test lns get "for f in /tmp/file*; do while [ 1 ]; do . $f; done done\n" = { "@for" = "f in /tmp/file*" { "@while" = "[ 1 ]" { ".source" = "$f" } } } (* Case *) test lns get "case $f in /tmp/file1) . /tmp/file1 ;; /tmp/file2) . /tmp/file2 ;; *) unset f ;; esac\n" = { "@case" = "$f" { "@case_entry" { "@pattern" = "/tmp/file1" } { ".source" = "/tmp/file1" } } { "@case_entry" { "@pattern" = "/tmp/file2" } { ".source" = "/tmp/file2" } } { "@case_entry" { "@pattern" = "*" } { "@unset" { "1" = "f" } } } } (* Select *) test lns get "select i in a b c; do . /tmp/file$i done\n" = { "@select" = "i in a b c" { ".source" = "/tmp/file$i" } } (* Return *) test lns get "return\nreturn 2\n" = { "@return" } { "@return" = "2" } (* Functions *) test Shellvars.lns get "foo() { . /tmp/bar }\n" = { "@function" = "foo" { ".source" = "/tmp/bar" } } test Shellvars.lns get "function foo () { . /tmp/bar }\n" = { "@function" = "foo" { ".source" = "/tmp/bar" } } test Shellvars.lns get "foo() ( . /tmp/bar )\n" = { "@function" = "foo" { ".source" = "/tmp/bar" } } (* Dollar assignment *) test Shellvars.lns get "FOO=$(bar arg)\n" = { "FOO" = "$(bar arg)" } (* Empty lines before esac *) test Shellvars.lns get "case $f in a) B=C ;; esac\n" = { "@case" = "$f" { "@case_entry" { "@pattern" = "a" } { "B" = "C" } } } (* Empty lines before a case_entry *) test Shellvars.lns get "case $f in a) B=C ;; b) A=D ;; esac\n" = { "@case" = "$f" { "@case_entry" { "@pattern" = "a" } { "B" = "C" } } { "@case_entry" { "@pattern" = "b" } { "A" = "D" } } } (* Comments anywhere *) test Shellvars.lns get "case ${INTERFACE} in # comment before eth0) # comment in OPTIONS=() ;; # comment before 2 *) # comment in 2 unset f ;; # comment after esac\n" = { "@case" = "${INTERFACE}" { "#comment" = "comment before" } { "@case_entry" { "@pattern" = "eth0" } { "#comment" = "comment in" } { "OPTIONS" = "()" } } { "#comment" = "comment before 2" } { "@case_entry" { "@pattern" = "*" } { "#comment" = "comment in 2" } { "@unset" { "1" = "f" } } } { "#comment" = "comment after" } } (* Empty case *) test Shellvars.lns get "case $a in *) ;; esac\n" = { "@case" = "$a" { "@case_entry" { "@pattern" = "*" } } } (* case variables can be surrounded by double quotes *) test Shellvars.lns get "case \"${options}\" in *debug*) shift ;; esac\n" = { "@case" = "\"${options}\"" { "@case_entry" { "@pattern" = "*debug*" } { "@builtin" = "shift" } } } (* Double quoted values can have newlines *) test Shellvars.lns get "FOO=\"123\n456\"\n" = { "FOO" = "\"123\n456\"" } (* Single quoted values can have newlines *) test Shellvars.lns get "FOO='123\n456'\n" = { "FOO" = "'123\n456'" } (* bquoted values can have semi-colons *) test Shellvars.lns get "FOO=`bar=date;$bar`\n" = { "FOO" = "`bar=date;$bar`" } (* dollar-assigned values can have semi-colons *) test Shellvars.lns get "FOO=$(bar=date;$bar)\n" = { "FOO" = "$(bar=date;$bar)" } (* dollar-assigned value in bquot *) test Shellvars.lns get "FOO=`echo $(date)`\n" = { "FOO" = "`echo $(date)`" } (* bquot value in dollar-assigned value *) test Shellvars.lns get "FOO=$(echo `date`)\n" = { "FOO" = "$(echo `date`)" } (* dbquot *) test Shellvars.lns get "FOO=``bar``\n" = { "FOO" = "``bar``" } (* Partial quoting is allowed *) test Shellvars.lns get "FOO=\"$bar\"/'baz'/$(quux)$((1 + 2))\n" = { "FOO" = "\"$bar\"/'baz'/$(quux)$((1 + 2))" } (* unset can be used on wildcard variables *) test Shellvars.lns get "unset ${!LC_*}\n" = { "@unset" { "1" = "${!LC_*}" } } (* Empty comment before entries *) test Shellvars.lns get "# \nfoo=bar\n" = { "foo" = "bar" } (* Empty comment after entries *) test Shellvars.lns get "foo=bar\n# \n\n" = { "foo" = "bar" } (* Whitespace between lines *) test Shellvars.lns get "DEVICE=eth0\n\nBOOTPROTO=static\n" = { "DEVICE" = "eth0" } { "BOOTPROTO" = "static" } (* Whitespace after line *) test Shellvars.lns get "DEVICE=eth0\n\n" = { "DEVICE" = "eth0" } (* Fails adding variable assignment between comment and blank line *) let ins_after_comment = "# foo " test lns put ins_after_comment after insa "foo" "#comment" ; set "foo" "yes" = "# foo\n\nfoo=yes\n" (* Make sure to support empty comments *) test lns get "# foo # # foo=bar #\n" = { "#comment" = "foo" } { "foo" = "bar" } (* Single quotes in arrays, ticket #357 *) test lns get "DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' 'scp::/usr/bin/scp -C %u %o')\n" = { "DLAGENTS" { "1" = "'ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'" } { "2" = "'scp::/usr/bin/scp -C %u %o'" } } (* Accept continued lines in quoted values *) test lns get "BLAH=\" \ test \ test2\"\n" = { "BLAH" = "\" \\\ntest \\\ntest2\"" } (* Export of multiple variables, RHBZ#1033795 *) test lns get "export TestVar1 TestVar2\n" = { "@export" { "1" = "TestVar1" } { "2" = "TestVar2" } } (* Support ;; on same line as a case statement entry, RHBZ#1033799 *) test lns get "case $ARG in 0) TestVar=\"test0\" ;; 1) TestVar=\"test1\" ;; esac\n" = { "@case" = "$ARG" { "@case_entry" { "@pattern" = "0" } { "TestVar" = "\"test0\"" } } { "@case_entry" { "@pattern" = "1" } { "TestVar" = "\"test1\"" } } } (* case: support ;; on the same line with multiple commands *) test lns get "case $ARG in 0) Foo=0; Bar=1;; 1) Foo=2 Bar=3; Baz=4;; esac\n" = { "@case" = "$ARG" { "@case_entry" { "@pattern" = "0" } { "Foo" = "0" } { "Bar" = "1" } } { "@case_entry" { "@pattern" = "1" } { "Foo" = "2" } { "Bar" = "3" } { "Baz" = "4" } } } (* Test: Shellvars.lns Support `##` bashism in conditions (GH issue #118) *) test Shellvars.lns get "if [ \"${APACHE_CONFDIR##/etc/apache2-}\" != \"${APACHE_CONFDIR}\" ] ; then SUFFIX=\"-${APACHE_CONFDIR##/etc/apache2-}\" else SUFFIX= fi\n" = { "@if" = "[ \"${APACHE_CONFDIR##/etc/apache2-}\" != \"${APACHE_CONFDIR}\" ]" { "SUFFIX" = "\"-${APACHE_CONFDIR##/etc/apache2-}\"" } { "@else" { "SUFFIX" = "" } } } (* Support $(( .. )) arithmetic expansion in variable assignment, RHBZ#1100550 *) test lns get "export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))\n" = { "MALLOC_PERTURB_" = "$(($RANDOM % 255 + 1))" { "export" } } (* * Github issue 202 *) let starts_with_blank = "\n \nVAR=value\n" test lns get starts_with_blank = { "VAR" = "value" } (* It is now possible to insert at the beginning of a file * that starts with blank lines *) test lns put starts_with_blank after insb "#comment" "/*[1]"; set "/#comment[1]" "a comment" = " # a comment\nVAR=value\n" (* Modifications of the file lose the blank lines though *) test lns put starts_with_blank after set "/VAR2" "abc" = "VAR=value\nVAR2=abc\n" test lns put starts_with_blank after rm "/VAR"; set "/VAR2" "abc" = "VAR2=abc\n" test lns put starts_with_blank after rm "/VAR" = "" (* Support associative arrays *) test lns get "var[alpha_beta,gamma]=something\n" = { "var[alpha_beta,gamma]" = "something" } (* GH #188: support more conditions *) test Shellvars.lns get "[ -f $FILENAME ]\n" = { "@condition" = "-f $FILENAME" { "type" = "[" } } test Shellvars.lns get "[[ -f $FILENAME ]]\n" = { "@condition" = "-f $FILENAME" { "type" = "[[" } } (* Allow wrapping loop condition to multiple lines *) test Shellvars.lns get "for x in foo \\\nbar\\\nbaz; do y=$x; done\n" = { "@for" = "x in foo \\\nbar\\\nbaz" { "y" = "$x" } } (* Allow quotes in loop conditions *) test Shellvars.lns get "for x in \"$@\"; do y=$x; done\n" = { "@for" = "x in \"$@\"" { "y" = "$x" } } (* case: support quotes and spaces in pattern lists *) test lns get "case $ARG in \"foo bar\") Foo=0 ;; baz | quux) Foo=1 ;; esac\n" = { "@case" = "$ARG" { "@case_entry" { "@pattern" = "\"foo bar\"" } { "Foo" = "0" } } { "@case_entry" { "@pattern" = "baz" } { "@pattern" = "quux" } { "Foo" = "1" } } } (* eval *) test lns get "eval `dircolors`\n" = { "@eval" = "`dircolors`" } (* alias *) test lns get "alias ls='ls $LS_OPTIONS'\n" = { "@alias" = "ls" { "value" = "'ls $LS_OPTIONS'" } } test lns get "alias ls-options='ls $LS_OPTIONS'\n" = { "@alias" = "ls-options" { "value" = "'ls $LS_OPTIONS'" } } (* Allow && and || constructs after condition *) test Shellvars.lns get "[ -f $FILENAME ] && do this || or that\n" = { "@condition" = "-f $FILENAME" { "type" = "[" } { "@and" = "do this" } { "@or" = "or that" } } (* Test: Shellvars.lns Parse (almost) any command *) test Shellvars.lns get "echo foobar 'and this is baz' /usr/local/bin/myscript-with-dash_and_underscore.sh with args echo foo \ bar\n" = { "@command" = "echo" { "@arg" = "foobar 'and this is baz'" } } { "@command" = "/usr/local/bin/myscript-with-dash_and_underscore.sh" { "@arg" = "with args" } } { "@command" = "echo" { "@arg" = "foo \\\nbar" } } (* Test: Shellvars.lns Support pipes in commands *) test Shellvars.lns get "echo \"$STRING\" | grep foo\n" = { "@command" = "echo" { "@arg" = "\"$STRING\"" } { "@pipe" { "@command" = "grep" { "@arg" = "foo" } } } } (* Test: Shellvars.lns Support && and || after command GH #215 *) test Shellvars.lns get "grep -q \"Debian\" /etc/issue && echo moo\n" = { "@command" = "grep" { "@arg" = "-q \"Debian\" /etc/issue" } { "@and" { "@command" = "echo" { "@arg" = "moo" } } } } test Shellvars.lns get "grep -q \"Debian\" /etc/issue || echo baa\n" = { "@command" = "grep" { "@arg" = "-q \"Debian\" /etc/issue" } { "@or" { "@command" = "echo" { "@arg" = "baa" } } } } test Shellvars.lns get "grep -q \"Debian\" /etc/issue && DEBIAN=1\n" = { "@command" = "grep" { "@arg" = "-q \"Debian\" /etc/issue" } { "@and" { "DEBIAN" = "1" } } } test Shellvars.lns get "cat /etc/issue | grep -q \"Debian\" && echo moo || echo baa\n" = { "@command" = "cat" { "@arg" = "/etc/issue" } { "@pipe" { "@command" = "grep" { "@arg" = "-q \"Debian\"" } { "@and" { "@command" = "echo" { "@arg" = "moo" } { "@or" { "@command" = "echo" { "@arg" = "baa" } } } } } } } } (* Command-specific environment variables *) test Shellvars.lns get "abc=def \\\n ghi=\"jkl mno\" command arg1 arg2\n" = { "@command" = "command" { "abc" = "def" } { "ghi" = "\"jkl mno\"" } { "@arg" = "arg1 arg2" } } (* Wrapped command sequences *) test Shellvars.lns get "foo && \\\nbar baz \\\n|| qux \\\n quux\\\ncorge grault\n" = { "@command" = "foo" { "@and" { "@command" = "bar" { "@arg" = "baz" } { "@or" { "@command" = "qux" { "@arg" = "quux\\\ncorge grault" } } } } } } (* Comment after function definition (Issue #339) *) test Shellvars.lns get "SetDir() # hello { echo }\n" = { "@function" = "SetDir" { "#comment" = "hello" } { "@command" = "echo" } } (* Function with new lines *) test Shellvars.lns get "MyFunc() { echo }\n" = { "@function" = "MyFunc" { "@command" = "echo" } } (* Pipe and newline without cl (Issue #339) *) test Shellvars.lns get "echo | tr\n" = { "@command" = "echo" { "@pipe" { "@command" = "tr" } } } (* Subshell (Issue #339) *) test Shellvars.lns get "{ echo }\n" = { "@subshell" { "@command" = "echo" } } (* One-liner function *) test Shellvars.lns get "MyFunc() { echo; }\n" = { "@function" = "MyFunc" { "@command" = "echo" } } (* Support and/or in if conditions *) test Shellvars.lns get "if [ -f /tmp/file1 ] && [ -f /tmp/file2 ] || [ -f /tmp/file3 ]; then echo foo fi " = { "@if" = "[ -f /tmp/file1 ]" { "@and" = "[ -f /tmp/file2 ]" } { "@or" = "[ -f /tmp/file3 ]" } { "@command" = "echo" { "@arg" = "foo" } } } (* Support variable as command *) test Shellvars.lns get "$FOO bar\n" = { "@command" = "$FOO" { "@arg" = "bar" } } (********************************************************* * Group: Unsupported syntax * * * * The following tests are known to be failing currently * *********************************************************) (* Any piping (Issue #343) *) test Shellvars.lns get "FOO=bar && BAR=foo echo foo || { echo bar; } echo FOO | myfunc() { echo bar; }\n" = * (* Stream redirections (Issue #626 *) test Shellvars.lns get "echo foo 2>&1 >/dev/null\n" = * (* Local Variables: *) (* mode: caml *) (* End: *)