Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.0
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
augeas /
lenses /
dist /
tests /
Delete
Unzip
Name
Size
Permission
Date
Action
test_access.aug
3.44
KB
-rwxrwxrwx
2017-08-18 07:56
test_activemq_conf.aug
758
B
-rwxrwxrwx
2017-08-18 07:56
test_activemq_xml.aug
1.63
KB
-rwxrwxrwx
2017-08-18 07:56
test_afs_cellalias.aug
1.31
KB
-rwxrwxrwx
2017-08-18 07:56
test_aliases.aug
2.99
KB
-rwxrwxrwx
2017-08-18 07:56
test_anacron.aug
1.21
KB
-rwxrwxrwx
2017-08-18 07:56
test_approx.aug
1.44
KB
-rwxrwxrwx
2017-08-18 07:56
test_apt_update_manager.aug
1.12
KB
-rwxrwxrwx
2017-08-18 07:56
test_aptcacherngsecurity.aug
1.17
KB
-rwxrwxrwx
2017-08-18 07:56
test_aptconf.aug
5.26
KB
-rwxrwxrwx
2017-08-18 07:56
test_aptpreferences.aug
1.86
KB
-rwxrwxrwx
2017-08-18 07:56
test_aptsources.aug
3.42
KB
-rwxrwxrwx
2017-08-18 07:56
test_authorized_keys.aug
4.47
KB
-rwxrwxrwx
2017-08-18 07:56
test_automaster.aug
1.53
KB
-rwxrwxrwx
2017-08-18 07:56
test_automounter.aug
5.2
KB
-rwxrwxrwx
2017-08-18 07:56
test_avahi.aug
545
B
-rwxrwxrwx
2017-08-18 07:56
test_backuppchosts.aug
623
B
-rwxrwxrwx
2017-08-18 07:56
test_bbhosts.aug
3.68
KB
-rwxrwxrwx
2017-08-18 07:56
test_bootconf.aug
980
B
-rwxrwxrwx
2017-08-18 07:56
test_build.aug
8.12
KB
-rwxrwxrwx
2017-08-18 07:56
test_cachefilesd.aug
579
B
-rwxrwxrwx
2017-08-18 07:56
test_carbon.aug
2.54
KB
-rwxrwxrwx
2017-08-18 07:56
test_cgconfig.aug
5.3
KB
-rwxrwxrwx
2017-08-18 07:56
test_cgrules.aug
903
B
-rwxrwxrwx
2017-08-18 07:56
test_channels.aug
4.72
KB
-rwxrwxrwx
2017-08-18 07:56
test_chrony.aug
5.49
KB
-rwxrwxrwx
2017-08-18 07:56
test_clamav.aug
8.48
KB
-rwxrwxrwx
2017-08-18 07:56
test_cobblermodules.aug
620
B
-rwxrwxrwx
2017-08-18 07:56
test_cobblersettings.aug
1.34
KB
-rwxrwxrwx
2017-08-18 07:56
test_collectd.aug
1.3
KB
-rwxrwxrwx
2017-08-18 07:56
test_cpanel.aug
1.62
KB
-rwxrwxrwx
2017-08-18 07:56
test_cron.aug
1.96
KB
-rwxrwxrwx
2017-08-18 07:56
test_cron_user.aug
779
B
-rwxrwxrwx
2017-08-18 07:56
test_crypttab.aug
1.28
KB
-rwxrwxrwx
2017-08-18 07:56
test_csv.aug
1.56
KB
-rwxrwxrwx
2017-08-18 07:56
test_cups.aug
13.93
KB
-rwxrwxrwx
2017-08-18 07:56
test_cyrus_imapd.aug
1.33
KB
-rwxrwxrwx
2017-08-18 07:56
test_darkice.aug
575
B
-rwxrwxrwx
2017-08-18 07:56
test_debctrl.aug
13.94
KB
-rwxrwxrwx
2017-08-18 07:56
test_desktop.aug
1.23
KB
-rwxrwxrwx
2017-08-18 07:56
test_device_map.aug
797
B
-rwxrwxrwx
2017-08-18 07:56
test_dhclient.aug
4.75
KB
-rwxrwxrwx
2017-08-18 07:56
test_dhcpd.aug
15.07
KB
-rwxrwxrwx
2017-08-18 07:56
test_dns_zone.aug
10.33
KB
-rwxrwxrwx
2017-08-18 07:56
test_dnsmasq.aug
1.19
KB
-rwxrwxrwx
2017-08-18 07:56
test_dovecot.aug
22.15
KB
-rwxrwxrwx
2017-08-18 07:56
test_dpkg.aug
322
B
-rwxrwxrwx
2017-08-18 07:56
test_dput.aug
3.37
KB
-rwxrwxrwx
2017-08-18 07:56
test_erlang.aug
2.58
KB
-rwxrwxrwx
2017-08-18 07:56
test_ethers.aug
1.4
KB
-rwxrwxrwx
2017-08-18 07:56
test_exports.aug
1.49
KB
-rwxrwxrwx
2017-08-18 07:56
test_fai_diskconfig.aug
15.04
KB
-rwxrwxrwx
2017-08-18 07:56
test_fonts.aug
19.45
KB
-rwxrwxrwx
2017-08-18 07:56
test_fstab.aug
4.32
KB
-rwxrwxrwx
2017-08-18 07:56
test_fuse.aug
590
B
-rwxrwxrwx
2017-08-18 07:56
test_gdm.aug
620
B
-rwxrwxrwx
2017-08-18 07:56
test_group.aug
1.09
KB
-rwxrwxrwx
2017-08-18 07:56
test_grub.aug
9.41
KB
-rwxrwxrwx
2017-08-18 07:56
test_gshadow.aug
359
B
-rwxrwxrwx
2017-08-18 07:56
test_gtkbookmarks.aug
820
B
-rwxrwxrwx
2017-08-18 07:56
test_host_conf.aug
834
B
-rwxrwxrwx
2017-08-18 07:56
test_hostname.aug
103
B
-rwxrwxrwx
2017-08-18 07:56
test_hosts.aug
1.78
KB
-rwxrwxrwx
2017-08-18 07:56
test_hosts_access.aug
6.12
KB
-rwxrwxrwx
2017-08-18 07:56
test_htpasswd.aug
468
B
-rwxrwxrwx
2017-08-18 07:56
test_httpd.aug
14.08
KB
-rwxrwxrwx
2017-08-18 07:56
test_inetd.aug
4.51
KB
-rwxrwxrwx
2017-08-18 07:56
test_inifile.aug
11.64
KB
-rwxrwxrwx
2017-08-18 07:56
test_inittab.aug
1.82
KB
-rwxrwxrwx
2017-08-18 07:56
test_inputrc.aug
5.13
KB
-rwxrwxrwx
2017-08-18 07:56
test_interfaces.aug
3.65
KB
-rwxrwxrwx
2017-08-18 07:56
test_iproute2.aug
945
B
-rwxrwxrwx
2017-08-18 07:56
test_iptables.aug
7.39
KB
-rwxrwxrwx
2017-08-18 07:56
test_iscsid.aug
2.45
KB
-rwxrwxrwx
2017-08-18 07:56
test_jaas.aug
5.35
KB
-rwxrwxrwx
2017-08-18 07:56
test_jettyrealm.aug
982
B
-rwxrwxrwx
2017-08-18 07:56
test_jmxaccess.aug
637
B
-rwxrwxrwx
2017-08-18 07:56
test_jmxpassword.aug
653
B
-rwxrwxrwx
2017-08-18 07:56
test_json.aug
16.85
KB
-rwxrwxrwx
2017-08-18 07:56
test_kdump.aug
2.84
KB
-rwxrwxrwx
2017-08-18 07:56
test_keepalived.aug
14.33
KB
-rwxrwxrwx
2017-08-18 07:56
test_known_hosts.aug
1.79
KB
-rwxrwxrwx
2017-08-18 07:56
test_koji.aug
1.65
KB
-rwxrwxrwx
2017-08-18 07:56
test_krb5.aug
28.56
KB
-rwxrwxrwx
2017-08-18 07:56
test_ldap.aug
398
B
-rwxrwxrwx
2017-08-18 07:56
test_ldif.aug
3.88
KB
-rwxrwxrwx
2017-08-18 07:56
test_ldso.aug
486
B
-rwxrwxrwx
2017-08-18 07:56
test_lightdm.aug
3.98
KB
-rwxrwxrwx
2017-08-18 07:56
test_limits.aug
924
B
-rwxrwxrwx
2017-08-18 07:56
test_login_defs.aug
528
B
-rwxrwxrwx
2017-08-18 07:56
test_logrotate.aug
7.81
KB
-rwxrwxrwx
2017-08-18 07:56
test_logwatch.aug
322
B
-rwxrwxrwx
2017-08-18 07:56
test_lokkit.aug
2.1
KB
-rwxrwxrwx
2017-08-18 07:56
test_lvm.aug
4.56
KB
-rwxrwxrwx
2017-08-18 07:56
test_mailscanner.aug
32.15
KB
-rwxrwxrwx
2017-08-18 07:56
test_mailscanner_rules.aug
2.6
KB
-rwxrwxrwx
2017-08-18 07:56
test_masterpasswd.aug
3.21
KB
-rwxrwxrwx
2017-08-18 07:56
test_mcollective.aug
1.2
KB
-rwxrwxrwx
2017-08-18 07:56
test_mdadm_conf.aug
2.52
KB
-rwxrwxrwx
2017-08-18 07:56
test_memcached.aug
1.15
KB
-rwxrwxrwx
2017-08-18 07:56
test_mke2fs.aug
2.13
KB
-rwxrwxrwx
2017-08-18 07:56
test_modprobe.aug
4.07
KB
-rwxrwxrwx
2017-08-18 07:56
test_modules.aug
229
B
-rwxrwxrwx
2017-08-18 07:56
test_modules_conf.aug
3.23
KB
-rwxrwxrwx
2017-08-18 07:56
test_mongodbserver.aug
775
B
-rwxrwxrwx
2017-08-18 07:56
test_monit.aug
1.03
KB
-rwxrwxrwx
2017-08-18 07:56
test_multipath.aug
5.21
KB
-rwxrwxrwx
2017-08-18 07:56
test_mysql.aug
8.75
KB
-rwxrwxrwx
2017-08-18 07:56
test_nagioscfg.aug
2.95
KB
-rwxrwxrwx
2017-08-18 07:56
test_nagiosobjects.aug
1.69
KB
-rwxrwxrwx
2017-08-18 07:56
test_netmasks.aug
640
B
-rwxrwxrwx
2017-08-18 07:56
test_networkmanager.aug
1.27
KB
-rwxrwxrwx
2017-08-18 07:56
test_networks.aug
1.16
KB
-rwxrwxrwx
2017-08-18 07:56
test_nginx.aug
7.04
KB
-rwxrwxrwx
2017-08-18 07:56
test_nrpe.aug
2.13
KB
-rwxrwxrwx
2017-08-18 07:56
test_nsswitch.aug
1.4
KB
-rwxrwxrwx
2017-08-18 07:56
test_ntp.aug
5
KB
-rwxrwxrwx
2017-08-18 07:56
test_ntpd.aug
1.87
KB
-rwxrwxrwx
2017-08-18 07:56
test_odbc.aug
1.62
KB
-rwxrwxrwx
2017-08-18 07:56
test_opendkim.aug
5.66
KB
-rwxrwxrwx
2017-08-18 07:56
test_openshift_config.aug
3.64
KB
-rwxrwxrwx
2017-08-18 07:56
test_openshift_http.aug
2.16
KB
-rwxrwxrwx
2017-08-18 07:56
test_openshift_quickstarts.aug
12.42
KB
-rwxrwxrwx
2017-08-18 07:56
test_openvpn.aug
28.09
KB
-rwxrwxrwx
2017-08-18 07:56
test_pagekite.aug
2.75
KB
-rwxrwxrwx
2017-08-18 07:56
test_pam.aug
1.54
KB
-rwxrwxrwx
2017-08-18 07:56
test_pamconf.aug
1010
B
-rwxrwxrwx
2017-08-18 07:56
test_passwd.aug
2.44
KB
-rwxrwxrwx
2017-08-18 07:56
test_pbuilder.aug
531
B
-rwxrwxrwx
2017-08-18 07:56
test_pg_hba.aug
6.1
KB
-rwxrwxrwx
2017-08-18 07:56
test_pgbouncer.aug
1.97
KB
-rwxrwxrwx
2017-08-18 07:56
test_php.aug
1.4
KB
-rwxrwxrwx
2017-08-18 07:56
test_phpvars.aug
1.63
KB
-rwxrwxrwx
2017-08-18 07:56
test_postfix_access.aug
1.52
KB
-rwxrwxrwx
2017-08-18 07:56
test_postfix_main.aug
1.03
KB
-rwxrwxrwx
2017-08-18 07:56
test_postfix_master.aug
3.77
KB
-rwxrwxrwx
2017-08-18 07:56
test_postfix_passwordmap.aug
1.31
KB
-rwxrwxrwx
2017-08-18 07:56
test_postfix_sasl_smtpd.aug
530
B
-rwxrwxrwx
2017-08-18 07:56
test_postfix_transport.aug
1.58
KB
-rwxrwxrwx
2017-08-18 07:56
test_postfix_virtual.aug
1.23
KB
-rwxrwxrwx
2017-08-18 07:56
test_postgresql.aug
8.07
KB
-rwxrwxrwx
2017-08-18 07:56
test_properties.aug
3.36
KB
-rwxrwxrwx
2017-08-18 07:56
test_protocols.aug
1.3
KB
-rwxrwxrwx
2017-08-18 07:56
test_puppet.aug
547
B
-rwxrwxrwx
2017-08-18 07:56
test_puppet_auth.aug
1.1
KB
-rwxrwxrwx
2017-08-18 07:56
test_puppetfile.aug
1.73
KB
-rwxrwxrwx
2017-08-18 07:56
test_puppetfileserver.aug
949
B
-rwxrwxrwx
2017-08-18 07:56
test_pylonspaste.aug
1.73
KB
-rwxrwxrwx
2017-08-18 07:56
test_pythonpaste.aug
1.23
KB
-rwxrwxrwx
2017-08-18 07:56
test_qpid.aug
1.3
KB
-rwxrwxrwx
2017-08-18 07:56
test_quote.aug
8.66
KB
-rwxrwxrwx
2017-08-18 07:56
test_rabbitmq.aug
3.66
KB
-rwxrwxrwx
2017-08-18 07:56
test_radicale.aug
1.04
KB
-rwxrwxrwx
2017-08-18 07:56
test_redis.aug
5.81
KB
-rwxrwxrwx
2017-08-18 07:56
test_reprepro_uploaders.aug
4.68
KB
-rwxrwxrwx
2017-08-18 07:56
test_resolv.aug
1.42
KB
-rwxrwxrwx
2017-08-18 07:56
test_rhsm.aug
4.46
KB
-rwxrwxrwx
2017-08-18 07:56
test_rmt.aug
826
B
-rwxrwxrwx
2017-08-18 07:56
test_rsyncd.aug
1.27
KB
-rwxrwxrwx
2017-08-18 07:56
test_rsyslog.aug
4.91
KB
-rwxrwxrwx
2017-08-18 07:56
test_rx.aug
3.33
KB
-rwxrwxrwx
2017-08-18 07:56
test_samba.aug
3.52
KB
-rwxrwxrwx
2017-08-18 07:56
test_schroot.aug
2.25
KB
-rwxrwxrwx
2017-08-18 07:56
test_securetty.aug
636
B
-rwxrwxrwx
2017-08-18 07:56
test_services.aug
2.87
KB
-rwxrwxrwx
2017-08-18 07:56
test_shadow.aug
2.01
KB
-rwxrwxrwx
2017-08-18 07:56
test_shells.aug
348
B
-rwxrwxrwx
2017-08-18 07:56
test_shellvars.aug
18.33
KB
-rwxrwxrwx
2017-08-18 07:56
test_shellvars_list.aug
4.18
KB
-rwxrwxrwx
2017-08-18 07:56
test_simplelines.aug
724
B
-rwxrwxrwx
2017-08-18 07:56
test_simplevars.aug
994
B
-rwxrwxrwx
2017-08-18 07:56
test_sip_conf.aug
3.61
KB
-rwxrwxrwx
2017-08-18 07:56
test_slapd.aug
3.03
KB
-rwxrwxrwx
2017-08-18 07:56
test_smbusers.aug
664
B
-rwxrwxrwx
2017-08-18 07:56
test_solaris_system.aug
2.48
KB
-rwxrwxrwx
2017-08-18 07:56
test_soma.aug
424
B
-rwxrwxrwx
2017-08-18 07:56
test_spacevars.aug
431
B
-rwxrwxrwx
2017-08-18 07:56
test_splunk.aug
2.96
KB
-rwxrwxrwx
2017-08-18 07:56
test_squid.aug
5.09
KB
-rwxrwxrwx
2017-08-18 07:56
test_ssh.aug
2.53
KB
-rwxrwxrwx
2017-08-18 07:56
test_sshd.aug
3.91
KB
-rwxrwxrwx
2017-08-18 07:56
test_sssd.aug
896
B
-rwxrwxrwx
2017-08-18 07:56
test_star.aug
1.56
KB
-rwxrwxrwx
2017-08-18 07:56
test_stunnel.aug
791
B
-rwxrwxrwx
2017-08-18 07:56
test_subversion.aug
3.06
KB
-rwxrwxrwx
2017-08-18 07:56
test_sudoers.aug
9.9
KB
-rwxrwxrwx
2017-08-18 07:56
test_sysconfig.aug
4.1
KB
-rwxrwxrwx
2017-08-18 07:56
test_sysconfig_route.aug
522
B
-rwxrwxrwx
2017-08-18 07:56
test_sysctl.aug
1.34
KB
-rwxrwxrwx
2017-08-18 07:56
test_syslog.aug
10.84
KB
-rwxrwxrwx
2017-08-18 07:56
test_systemd.aug
7.95
KB
-rwxrwxrwx
2017-08-18 07:56
test_thttpd.aug
1.17
KB
-rwxrwxrwx
2017-08-18 07:56
test_tmpfiles.aug
9.94
KB
-rwxrwxrwx
2017-08-18 07:56
test_trapperkeeper.aug
4.15
KB
-rwxrwxrwx
2017-08-18 07:56
test_tuned.aug
259
B
-rwxrwxrwx
2017-08-18 07:56
test_up2date.aug
6.23
KB
-rwxrwxrwx
2017-08-18 07:56
test_updatedb.aug
855
B
-rwxrwxrwx
2017-08-18 07:56
test_util.aug
428
B
-rwxrwxrwx
2017-08-18 07:56
test_vfstab.aug
2.79
KB
-rwxrwxrwx
2017-08-18 07:56
test_vmware_config.aug
1.7
KB
-rwxrwxrwx
2017-08-18 07:56
test_vsftpd.aug
2.49
KB
-rwxrwxrwx
2017-08-18 07:56
test_webmin.aug
195
B
-rwxrwxrwx
2017-08-18 07:56
test_wine.aug
5.58
KB
-rwxrwxrwx
2017-08-18 07:56
test_xendconfsxp.aug
7.74
KB
-rwxrwxrwx
2017-08-18 07:56
test_xinetd.aug
2.78
KB
-rwxrwxrwx
2017-08-18 07:56
test_xml.aug
20.04
KB
-rwxrwxrwx
2017-08-18 07:56
test_xorg.aug
2.41
KB
-rwxrwxrwx
2017-08-18 07:56
test_xymon.aug
3.98
KB
-rwxrwxrwx
2017-08-18 07:56
test_xymon_alerting.aug
7.44
KB
-rwxrwxrwx
2017-08-18 07:56
test_yaml.aug
1.14
KB
-rwxrwxrwx
2017-08-18 07:56
test_yum.aug
7.28
KB
-rwxrwxrwx
2017-08-18 07:56
Save
Rename
(* 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" }