__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
(*
Module: Test_Build
Provides unit tests and examples for the <Build> lens.
*)
module Test_Build =
(************************************************************************
* Group: GENERIC CONSTRUCTIONS
************************************************************************)
(* View: brackets
Test brackets *)
let brackets = [ Build.brackets Sep.lbracket Sep.rbracket (key Rx.word) ]
(* Test: brackets *)
test brackets get "(foo)" = { "foo" }
(************************************************************************
* Group: LIST CONSTRUCTIONS
************************************************************************)
(* View: list *)
let list = Build.list [ key Rx.word ] Sep.space
(* Test: list *)
test list get "foo bar baz" = { "foo" } { "bar" } { "baz" }
(* Test: list *)
test list get "foo" = *
(* View: opt_list *)
let opt_list = Build.opt_list [ key Rx.word ] Sep.space
(* Test: opt_list *)
test opt_list get "foo bar baz" = { "foo" } { "bar" } { "baz" }
(************************************************************************
* Group: LABEL OPERATIONS
************************************************************************)
(* View: xchg *)
let xchg = [ Build.xchg Rx.space " " "space" ]
(* Test: xchg *)
test xchg get " \t " = { "space" }
(* View: xchgs *)
let xchgs = [ Build.xchgs " " "space" ]
(* Test: xchgs *)
test xchgs get " " = { "space" }
(************************************************************************
* Group: SUBNODE CONSTRUCTIONS
************************************************************************)
(* View: key_value_line *)
let key_value_line = Build.key_value_line Rx.word Sep.equal (store Rx.word)
(* Test: key_value_line *)
test key_value_line get "foo=bar\n" = { "foo" = "bar" }
(* View: key_value_line_comment *)
let key_value_line_comment = Build.key_value_line_comment Rx.word
Sep.equal (store Rx.word) Util.comment
(* Test: key_value_line_comment *)
test key_value_line_comment get "foo=bar # comment\n" =
{ "foo" = "bar" { "#comment" = "comment" } }
(* View: key_value *)
let key_value = Build.key_value Rx.word Sep.equal (store Rx.word)
(* Test: key_value *)
test key_value get "foo=bar" = { "foo" = "bar" }
(* View: key_ws_value *)
let key_ws_value = Build.key_ws_value Rx.word
(* Test: key_ws_value *)
test key_ws_value get "foo bar\n" = { "foo" = "bar" }
(* View: flag *)
let flag = Build.flag Rx.word
(* Test: flag *)
test flag get "foo" = { "foo" }
(* View: flag_line *)
let flag_line = Build.flag_line Rx.word
(* Test: flag_line *)
test flag_line get "foo\n" = { "foo" }
(************************************************************************
* Group: BLOCK CONSTRUCTIONS
************************************************************************)
(* View: block_entry
The block entry used for testing *)
let block_entry = Build.key_value "test" Sep.equal (store Rx.word)
(* View: block
The block used for testing *)
let block = Build.block block_entry
(* Test: block
Simple test for <block> *)
test block get " {test=1}" =
{ "test" = "1" }
(* Test: block
Simple test for <block> with newlines *)
test block get " {\n test=1\n}" =
{ "test" = "1" }
(* Test: block
Simple test for <block> two indented entries *)
test block get " {\n test=1 \n test=2 \n}" =
{ "test" = "1" }
{ "test" = "2" }
(* Test: block
Test <block> with a comment *)
test block get " { # This is a comment\n}" =
{ "#comment" = "This is a comment" }
(* Test: block
Test <block> with comments and newlines *)
test block get " { # This is a comment\n# Another comment\n}" =
{ "#comment" = "This is a comment" }
{ "#comment" = "Another comment" }
(* Test: block
Test defaults for blocks *)
test block put " { test=1 }" after
set "/#comment" "a comment";
rm "/test";
set "/test" "2" =
" { # a comment\ntest=2 }"
(* View: named_block
The named block used for testing *)
let named_block = Build.named_block "foo" block_entry
(* Test: named_block
Simple test for <named_block> *)
test named_block get "foo {test=1}\n" =
{ "foo" { "test" = "1" } }
(* View: logrotate_block
A minimalistic logrotate block *)
let logrotate_block =
let entry = [ key Rx.word ]
in let filename = [ label "file" . store /\/[^,#= \n\t{}]+/ ]
in let filename_sep = del /[ \t\n]+/ " "
in let filenames = Build.opt_list filename filename_sep
in [ label "rule" . filenames . Build.block entry ]
(* Test: logrotate_block *)
test logrotate_block get "/var/log/wtmp\n/var/log/wtmp2\n{
missingok
monthly
}" =
{ "rule"
{ "file" = "/var/log/wtmp" }
{ "file" = "/var/log/wtmp2" }
{ "missingok" }
{ "monthly" }
}
(************************************************************************
* Group: COMBINATORICS
************************************************************************)
(* View: combine_two
A minimalistic combination lens *)
let combine_two =
let entry (k:string) = [ key k ]
in Build.combine_two (entry "a") (entry "b")
(* Test: combine_two
Should parse ab *)
test combine_two get "ab" = { "a" } { "b" }
(* Test: combine_two
Should parse ba *)
test combine_two get "ba" = { "b" } { "a" }
(* Test: combine_two
Should not parse a *)
test combine_two get "a" = *
(* Test: combine_two
Should not parse b *)
test combine_two get "b" = *
(* Test: combine_two
Should not parse aa *)
test combine_two get "aa" = *
(* Test: combine_two
Should not parse bb *)
test combine_two get "bb" = *
(* View: combine_two_opt
A minimalistic optional combination lens *)
let combine_two_opt =
let entry (k:string) = [ key k ]
in Build.combine_two_opt (entry "a") (entry "b")
(* Test: combine_two_opt
Should parse ab *)
test combine_two_opt get "ab" = { "a" } { "b" }
(* Test: combine_two_opt
Should parse ba *)
test combine_two_opt get "ba" = { "b" } { "a" }
(* Test: combine_two_opt
Should parse a *)
test combine_two_opt get "a" = { "a" }
(* Test: combine_two_opt
Should parse b *)
test combine_two_opt get "b" = { "b" }
(* Test: combine_two_opt
Should not parse aa *)
test combine_two_opt get "aa" = *
(* Test: combine_two_opt
Should not parse bb *)
test combine_two_opt get "bb" = *
(* View: combine_three
A minimalistic optional combination lens *)
let combine_three =
let entry (k:string) = [ key k ]
in Build.combine_three (entry "a") (entry "b") (entry "c")
(* Test: combine_three
Should not parse ab *)
test combine_three get "ab" = *
(* Test: combine_three
Should not parse ba *)
test combine_three get "ba" = *
(* Test: combine_three
Should not parse a *)
test combine_three get "a" = *
(* Test: combine_three
Should not parse b *)
test combine_three get "b" = *
(* Test: combine_three
Should not parse aa *)
test combine_three get "aa" = *
(* Test: combine_three
Should not parse bbc *)
test combine_three get "bbc" = *
(* Test: combine_three
Should parse abc *)
test combine_three get "abc" = { "a" } { "b" } { "c" }
(* Test: combine_three
Should parse cab *)
test combine_three get "cab" = { "c" } { "a" } { "b" }
(* View: combine_three_opt
A minimalistic optional combination lens *)
let combine_three_opt =
let entry (k:string) = [ key k ]
in Build.combine_three_opt (entry "a") (entry "b") (entry "c")
(* Test: combine_three_opt
Should parse ab *)
test combine_three_opt get "ab" = { "a" } { "b" }
(* Test: combine_three_opt
Should parse ba *)
test combine_three_opt get "ba" = { "b" } { "a" }
(* Test: combine_three_opt
Should parse a *)
test combine_three_opt get "a" = { "a" }
(* Test: combine_three_opt
Should parse b *)
test combine_three_opt get "b" = { "b" }
(* Test: combine_three_opt
Should not parse aa *)
test combine_three_opt get "aa" = *
(* Test: combine_three_opt
Should not parse bbc *)
test combine_three_opt get "bbc" = *
(* Test: combine_three_opt
Should parse abc *)
test combine_three_opt get "abc" = { "a" } { "b" } { "c" }
(* Test: combine_three_opt
Should parse cab *)
test combine_three_opt get "cab" = { "c" } { "a" } { "b" }
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| test_access.aug | File | 3.44 KB | 0644 |
|
| test_activemq_conf.aug | File | 758 B | 0644 |
|
| test_activemq_xml.aug | File | 1.63 KB | 0644 |
|
| test_afs_cellalias.aug | File | 1.31 KB | 0644 |
|
| test_aliases.aug | File | 2.99 KB | 0644 |
|
| test_anaconda.aug | File | 2.07 KB | 0644 |
|
| test_anacron.aug | File | 1.21 KB | 0644 |
|
| test_approx.aug | File | 1.44 KB | 0644 |
|
| test_apt_update_manager.aug | File | 1.12 KB | 0644 |
|
| test_aptcacherngsecurity.aug | File | 1.17 KB | 0644 |
|
| test_aptconf.aug | File | 5.26 KB | 0644 |
|
| test_aptpreferences.aug | File | 1.86 KB | 0644 |
|
| test_aptsources.aug | File | 3.42 KB | 0644 |
|
| test_authinfo2.aug | File | 991 B | 0644 |
|
| test_authorized_keys.aug | File | 4.47 KB | 0644 |
|
| test_authselectpam.aug | File | 1.34 KB | 0644 |
|
| test_automaster.aug | File | 1.53 KB | 0644 |
|
| test_automounter.aug | File | 5.2 KB | 0644 |
|
| test_avahi.aug | File | 545 B | 0644 |
|
| test_backuppchosts.aug | File | 623 B | 0644 |
|
| test_bbhosts.aug | File | 3.68 KB | 0644 |
|
| test_bootconf.aug | File | 980 B | 0644 |
|
| test_build.aug | File | 8.12 KB | 0644 |
|
| test_cachefilesd.aug | File | 579 B | 0644 |
|
| test_carbon.aug | File | 2.54 KB | 0644 |
|
| test_ceph.aug | File | 4.86 KB | 0644 |
|
| test_cgconfig.aug | File | 5.93 KB | 0644 |
|
| test_cgrules.aug | File | 903 B | 0644 |
|
| test_channels.aug | File | 4.72 KB | 0644 |
|
| test_chrony.aug | File | 7.51 KB | 0644 |
|
| test_clamav.aug | File | 8.48 KB | 0644 |
|
| test_cmdline.aug | File | 1.01 KB | 0644 |
|
| test_cobblermodules.aug | File | 620 B | 0644 |
|
| test_cobblersettings.aug | File | 1.34 KB | 0644 |
|
| test_cockpit.aug | File | 2.07 KB | 0644 |
|
| test_collectd.aug | File | 1.3 KB | 0644 |
|
| test_cpanel.aug | File | 1.62 KB | 0644 |
|
| test_cron.aug | File | 1.96 KB | 0644 |
|
| test_cron_user.aug | File | 779 B | 0644 |
|
| test_crypttab.aug | File | 1.78 KB | 0644 |
|
| test_csv.aug | File | 1.56 KB | 0644 |
|
| test_cups.aug | File | 13.93 KB | 0644 |
|
| test_cyrus_imapd.aug | File | 1.33 KB | 0644 |
|
| test_darkice.aug | File | 575 B | 0644 |
|
| test_debctrl.aug | File | 13.94 KB | 0644 |
|
| test_desktop.aug | File | 1.23 KB | 0644 |
|
| test_devfsrules.aug | File | 2.17 KB | 0644 |
|
| test_device_map.aug | File | 797 B | 0644 |
|
| test_dhclient.aug | File | 4.69 KB | 0644 |
|
| test_dhcpd.aug | File | 15.07 KB | 0644 |
|
| test_dns_zone.aug | File | 10.33 KB | 0644 |
|
| test_dnsmasq.aug | File | 1.19 KB | 0644 |
|
| test_dovecot.aug | File | 22.3 KB | 0644 |
|
| test_dpkg.aug | File | 322 B | 0644 |
|
| test_dput.aug | File | 3.37 KB | 0644 |
|
| test_erlang.aug | File | 2.58 KB | 0644 |
|
| test_ethers.aug | File | 1.4 KB | 0644 |
|
| test_exports.aug | File | 1.69 KB | 0644 |
|
| test_fai_diskconfig.aug | File | 15.04 KB | 0644 |
|
| test_fail2ban.aug | File | 413 B | 0644 |
|
| test_fonts.aug | File | 19.45 KB | 0644 |
|
| test_fstab.aug | File | 4.45 KB | 0644 |
|
| test_fuse.aug | File | 590 B | 0644 |
|
| test_gdm.aug | File | 620 B | 0644 |
|
| test_getcap.aug | File | 3.77 KB | 0644 |
|
| test_group.aug | File | 1.09 KB | 0644 |
|
| test_grub.aug | File | 10.67 KB | 0644 |
|
| test_grubenv.aug | File | 2.44 KB | 0644 |
|
| test_gshadow.aug | File | 359 B | 0644 |
|
| test_gtkbookmarks.aug | File | 820 B | 0644 |
|
| test_host_conf.aug | File | 834 B | 0644 |
|
| test_hostname.aug | File | 103 B | 0644 |
|
| test_hosts.aug | File | 1.78 KB | 0644 |
|
| test_hosts_access.aug | File | 6.12 KB | 0644 |
|
| test_htpasswd.aug | File | 468 B | 0644 |
|
| test_httpd.aug | File | 16.32 KB | 0644 |
|
| test_inetd.aug | File | 4.51 KB | 0644 |
|
| test_inifile.aug | File | 11.64 KB | 0644 |
|
| test_inittab.aug | File | 1.82 KB | 0644 |
|
| test_inputrc.aug | File | 5.13 KB | 0644 |
|
| test_interfaces.aug | File | 3.65 KB | 0644 |
|
| test_iproute2.aug | File | 945 B | 0644 |
|
| test_iptables.aug | File | 7.39 KB | 0644 |
|
| test_iscsid.aug | File | 2.45 KB | 0644 |
|
| test_jaas.aug | File | 5.35 KB | 0644 |
|
| test_jettyrealm.aug | File | 982 B | 0644 |
|
| test_jmxaccess.aug | File | 637 B | 0644 |
|
| test_jmxpassword.aug | File | 653 B | 0644 |
|
| test_json.aug | File | 17.26 KB | 0644 |
|
| test_kdump.aug | File | 2.91 KB | 0644 |
|
| test_keepalived.aug | File | 14.56 KB | 0644 |
|
| test_known_hosts.aug | File | 1.79 KB | 0644 |
|
| test_koji.aug | File | 1.65 KB | 0644 |
|
| test_krb5.aug | File | 29.96 KB | 0644 |
|
| test_ldap.aug | File | 398 B | 0644 |
|
| test_ldif.aug | File | 3.88 KB | 0644 |
|
| test_ldso.aug | File | 486 B | 0644 |
|
| test_lightdm.aug | File | 3.98 KB | 0644 |
|
| test_limits.aug | File | 1.04 KB | 0644 |
|
| test_login_defs.aug | File | 528 B | 0644 |
|
| test_logrotate.aug | File | 7.95 KB | 0644 |
|
| test_logwatch.aug | File | 322 B | 0644 |
|
| test_lokkit.aug | File | 2.1 KB | 0644 |
|
| test_lvm.aug | File | 4.56 KB | 0644 |
|
| test_mailscanner.aug | File | 32.15 KB | 0644 |
|
| test_mailscanner_rules.aug | File | 2.6 KB | 0644 |
|
| test_masterpasswd.aug | File | 3.21 KB | 0644 |
|
| test_mcollective.aug | File | 1.2 KB | 0644 |
|
| test_mdadm_conf.aug | File | 2.52 KB | 0644 |
|
| test_memcached.aug | File | 1.15 KB | 0644 |
|
| test_mke2fs.aug | File | 3.08 KB | 0644 |
|
| test_modprobe.aug | File | 4.07 KB | 0644 |
|
| test_modules.aug | File | 229 B | 0644 |
|
| test_modules_conf.aug | File | 3.23 KB | 0644 |
|
| test_mongodbserver.aug | File | 775 B | 0644 |
|
| test_monit.aug | File | 1.03 KB | 0644 |
|
| test_multipath.aug | File | 6.5 KB | 0644 |
|
| test_mysql.aug | File | 8.75 KB | 0644 |
|
| test_nagioscfg.aug | File | 2.95 KB | 0644 |
|
| test_nagiosobjects.aug | File | 1.69 KB | 0644 |
|
| test_netmasks.aug | File | 640 B | 0644 |
|
| test_networkmanager.aug | File | 1.93 KB | 0644 |
|
| test_networks.aug | File | 1.16 KB | 0644 |
|
| test_nginx.aug | File | 7.64 KB | 0644 |
|
| test_nrpe.aug | File | 2.13 KB | 0644 |
|
| test_nslcd.aug | File | 12.84 KB | 0644 |
|
| test_nsswitch.aug | File | 1.54 KB | 0644 |
|
| test_ntp.aug | File | 5.09 KB | 0644 |
|
| test_ntpd.aug | File | 1.87 KB | 0644 |
|
| test_odbc.aug | File | 1.62 KB | 0644 |
|
| test_opendkim.aug | File | 7.57 KB | 0644 |
|
| test_openshift_config.aug | File | 3.64 KB | 0644 |
|
| test_openshift_http.aug | File | 2.16 KB | 0644 |
|
| test_openshift_quickstarts.aug | File | 12.42 KB | 0644 |
|
| test_openvpn.aug | File | 28.09 KB | 0644 |
|
| test_oz.aug | File | 611 B | 0644 |
|
| test_pagekite.aug | File | 2.75 KB | 0644 |
|
| test_pam.aug | File | 2.13 KB | 0644 |
|
| test_pamconf.aug | File | 1010 B | 0644 |
|
| test_passwd.aug | File | 2.44 KB | 0644 |
|
| test_pbuilder.aug | File | 531 B | 0644 |
|
| test_pg_hba.aug | File | 6.97 KB | 0644 |
|
| test_pgbouncer.aug | File | 1.97 KB | 0644 |
|
| test_php.aug | File | 1.4 KB | 0644 |
|
| test_phpvars.aug | File | 1.63 KB | 0644 |
|
| test_postfix_access.aug | File | 1.52 KB | 0644 |
|
| test_postfix_main.aug | File | 1.03 KB | 0644 |
|
| test_postfix_master.aug | File | 4.1 KB | 0644 |
|
| test_postfix_passwordmap.aug | File | 1.31 KB | 0644 |
|
| test_postfix_sasl_smtpd.aug | File | 530 B | 0644 |
|
| test_postfix_transport.aug | File | 1.71 KB | 0644 |
|
| test_postfix_virtual.aug | File | 1.23 KB | 0644 |
|
| test_postgresql.aug | File | 8.18 KB | 0644 |
|
| test_properties.aug | File | 3.62 KB | 0644 |
|
| test_protocols.aug | File | 1.3 KB | 0644 |
|
| test_puppet.aug | File | 547 B | 0644 |
|
| test_puppet_auth.aug | File | 1.1 KB | 0644 |
|
| test_puppetfile.aug | File | 4.45 KB | 0644 |
|
| test_puppetfileserver.aug | File | 949 B | 0644 |
|
| test_pylonspaste.aug | File | 1.73 KB | 0644 |
|
| test_pythonpaste.aug | File | 1.23 KB | 0644 |
|
| test_qpid.aug | File | 1.3 KB | 0644 |
|
| test_quote.aug | File | 8.66 KB | 0644 |
|
| test_rabbitmq.aug | File | 3.66 KB | 0644 |
|
| test_radicale.aug | File | 1.04 KB | 0644 |
|
| test_rancid.aug | File | 706 B | 0644 |
|
| test_redis.aug | File | 8.74 KB | 0644 |
|
| test_reprepro_uploaders.aug | File | 4.68 KB | 0644 |
|
| test_resolv.aug | File | 1.91 KB | 0644 |
|
| test_rhsm.aug | File | 4.46 KB | 0644 |
|
| test_rmt.aug | File | 826 B | 0644 |
|
| test_rsyncd.aug | File | 1.27 KB | 0644 |
|
| test_rsyslog.aug | File | 7.06 KB | 0644 |
|
| test_rtadvd.aug | File | 859 B | 0644 |
|
| test_rx.aug | File | 4.12 KB | 0644 |
|
| test_samba.aug | File | 3.52 KB | 0644 |
|
| test_schroot.aug | File | 2.25 KB | 0644 |
|
| test_securetty.aug | File | 636 B | 0644 |
|
| test_semanage.aug | File | 1.72 KB | 0644 |
|
| test_services.aug | File | 2.87 KB | 0644 |
|
| test_shadow.aug | File | 2.01 KB | 0644 |
|
| test_shells.aug | File | 348 B | 0644 |
|
| test_shellvars.aug | File | 19.15 KB | 0644 |
|
| test_shellvars_list.aug | File | 4.18 KB | 0644 |
|
| test_simplelines.aug | File | 724 B | 0644 |
|
| test_simplevars.aug | File | 994 B | 0644 |
|
| test_sip_conf.aug | File | 3.61 KB | 0644 |
|
| test_slapd.aug | File | 3.03 KB | 0644 |
|
| test_smbusers.aug | File | 664 B | 0644 |
|
| test_solaris_system.aug | File | 2.48 KB | 0644 |
|
| test_soma.aug | File | 424 B | 0644 |
|
| test_sos.aug | File | 1.16 KB | 0644 |
|
| test_spacevars.aug | File | 431 B | 0644 |
|
| test_splunk.aug | File | 2.96 KB | 0644 |
|
| test_squid.aug | File | 5.09 KB | 0644 |
|
| test_ssh.aug | File | 3.32 KB | 0644 |
|
| test_sshd.aug | File | 6.42 KB | 0644 |
|
| test_sssd.aug | File | 896 B | 0644 |
|
| test_star.aug | File | 1.56 KB | 0644 |
|
| test_strongswan.aug | File | 2.57 KB | 0644 |
|
| test_stunnel.aug | File | 791 B | 0644 |
|
| test_subversion.aug | File | 3.06 KB | 0644 |
|
| test_sudoers.aug | File | 10.72 KB | 0644 |
|
| test_sysconfig.aug | File | 4.1 KB | 0644 |
|
| test_sysconfig_route.aug | File | 522 B | 0644 |
|
| test_sysctl.aug | File | 2.47 KB | 0644 |
|
| test_syslog.aug | File | 11.05 KB | 0644 |
|
| test_systemd.aug | File | 8.71 KB | 0644 |
|
| test_termcap.aug | File | 16.69 KB | 0644 |
|
| test_thttpd.aug | File | 1.17 KB | 0644 |
|
| test_tinc.aug | File | 725 B | 0644 |
|
| test_tmpfiles.aug | File | 12.09 KB | 0644 |
|
| test_toml.aug | File | 8.9 KB | 0644 |
|
| test_trapperkeeper.aug | File | 4.15 KB | 0644 |
|
| test_tuned.aug | File | 259 B | 0644 |
|
| test_up2date.aug | File | 6.23 KB | 0644 |
|
| test_updatedb.aug | File | 855 B | 0644 |
|
| test_util.aug | File | 428 B | 0644 |
|
| test_vfstab.aug | File | 2.79 KB | 0644 |
|
| test_vmware_config.aug | File | 1.7 KB | 0644 |
|
| test_vsftpd.aug | File | 2.49 KB | 0644 |
|
| test_webmin.aug | File | 195 B | 0644 |
|
| test_wine.aug | File | 5.58 KB | 0644 |
|
| test_xendconfsxp.aug | File | 7.74 KB | 0644 |
|
| test_xinetd.aug | File | 2.78 KB | 0644 |
|
| test_xml.aug | File | 20.04 KB | 0644 |
|
| test_xorg.aug | File | 2.51 KB | 0644 |
|
| test_xymon.aug | File | 4.29 KB | 0644 |
|
| test_xymon_alerting.aug | File | 7.44 KB | 0644 |
|
| test_yaml.aug | File | 1.34 KB | 0644 |
|
| test_yum.aug | File | 8.31 KB | 0644 |
|