404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.21.186.117: ~ $
(*
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" }

Filemanager

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_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_authorized_keys.aug File 4.47 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 5.49 KB 0644
test_clamav.aug File 8.48 KB 0644
test_cobblermodules.aug File 620 B 0644
test_cobblersettings.aug File 1.34 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.28 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_device_map.aug File 797 B 0644
test_dhclient.aug File 4.75 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.15 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_fonts.aug File 19.45 KB 0644
test_fstab.aug File 4.32 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 9.4 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 15.71 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 16.85 KB 0644
test_kdump.aug File 2.84 KB 0644
test_keepalived.aug File 14.33 KB 0644
test_known_hosts.aug File 1.79 KB 0644
test_koji.aug File 1.65 KB 0644
test_krb5.aug File 28.56 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 924 B 0644
test_login_defs.aug File 528 B 0644
test_logrotate.aug File 7.81 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 2.13 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 5.21 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.27 KB 0644
test_networks.aug File 1.16 KB 0644
test_nginx.aug File 7.04 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 5.66 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 1.54 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.1 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 3.77 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.58 KB 0644
test_postfix_virtual.aug File 1.23 KB 0644
test_postgresql.aug File 8.07 KB 0644
test_properties.aug File 3.51 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 1.73 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 5.81 KB 0644
test_reprepro_uploaders.aug File 4.68 KB 0644
test_resolv.aug File 1.46 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 5.44 KB 0644
test_rtadvd.aug File 859 B 0644
test_rx.aug File 3.33 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_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 18.33 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_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 2.92 KB 0644
test_sshd.aug File 5.04 KB 0644
test_sssd.aug File 896 B 0644
test_star.aug File 1.56 KB 0644
test_stunnel.aug File 791 B 0644
test_subversion.aug File 3.06 KB 0644
test_sudoers.aug File 9.9 KB 0644
test_sysconfig.aug File 4.1 KB 0644
test_sysconfig_route.aug File 522 B 0644
test_sysctl.aug File 1.34 KB 0644
test_syslog.aug File 10.96 KB 0644
test_systemd.aug File 7.95 KB 0644
test_termcap.aug File 16.69 KB 0644
test_thttpd.aug File 1.17 KB 0644
test_tmpfiles.aug File 9.94 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.41 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 7.28 KB 0644