From b44e91df2616e030404fc95eee06818a0b595ad6 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Sat, 22 Oct 2016 13:51:42 +0200 Subject: [PATCH] testsuite: Changes due to changed environment and code. --- doc/release_new_version | 26 ++++------------ src/niceload | 2 +- src/parallel_tutorial.pod | 6 ++-- src/sql | 2 +- testsuite/tests-to-run/parallel-local-ssh3.sh | 4 +++ testsuite/wanted-results/parallel-install | 2 +- testsuite/wanted-results/parallel-local-0.3s | 14 ++++----- testsuite/wanted-results/parallel-local-100s | 4 +-- testsuite/wanted-results/parallel-local-10s | 2 +- testsuite/wanted-results/parallel-local-mem | 3 +- testsuite/wanted-results/parallel-local-ssh1 | 8 ++--- testsuite/wanted-results/parallel-local-ssh3 | 6 ++++ testsuite/wanted-results/parallel-local150 | 2 -- testsuite/wanted-results/parallel-local4 | 12 ++++---- testsuite/wanted-results/parallel-tutorial | 30 +++++++++---------- testsuite/wanted-results/sql03 | 2 +- 16 files changed, 61 insertions(+), 64 deletions(-) diff --git a/doc/release_new_version b/doc/release_new_version index b57ecdc1..965d650f 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -4,7 +4,7 @@ Check that documentation is updated (compare to web): -Fixet for 20160922 +Fixet for 20161022 git diff last-release-commit Unmodified beta since last version => production Unmodified alpha since last version => beta @@ -219,9 +219,9 @@ cc:Tim Cuthbertson , Ryoichiro Suzuki , Jesse Alama -Subject: GNU Parallel 20160922 ('Christiania') released <<[stable]>> +Subject: GNU Parallel 20161022 ('Matthew') released <<[stable]>> -GNU Parallel 20160922 ('Christiania') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ +GNU Parallel 20161022 ('Matthew') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ <> @@ -263,25 +263,11 @@ for Big Data Applications https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumb * <> -* parcat - cat files or fifos in parallel +* GNU Parallel was cited in: Efficiently parallelized modeling of tightly focused, large bandwidth laser pulses https://arxiv.org/pdf/1609.08146v1.pdf -* GNU Parallel was cited in: Velocity: A Netflow Based Optimized Geo-IP Lookup Tool https://mospace.umsystem.edu/xmlui/bitstream/handle/10355/50842/Thesis_2016_Pakhare.pdf?sequence=1&isAllowed=y +* How to crunch lots of geodata in parallel http://blog.faraday.io/how-to-crunch-lots-of-geodata-in-parallel/ -* GNU Parallel was cited in: Viral deep sequencing needs an adaptive approach: IRMA, the iterative refinement meta-assembler http://www.ncbi.nlm.nih.gov/pmc/articles/PMC5011931/ - -* GNU Parallel is used in Gene Set Omic Analysis: https://bitbucket.org/srp33/gsoa - -* Using GNU Parallel and ImageMagick for Conversions https://blog.fractalcomic.com/tutorials/using-gnu-parallel-and-imagemagick-for-conversions/ - -* Training in GNU Parallel http://www.cism.ucl.ac.be/Services/Formations/parcomp.pdf - -* Chown Ceph OSD data directory using GNU Parallel http://blog.widodh.nl/2016/08/chown-ceph-osd-data-directory-using-gnu-parallel/ - -* FastGBS uses GNU Parallel https://bitbucket.org/jerlar73/fastgbs - -* dDocent: A guide to ddRAD sequencing https://ddocent.wordpress.com/ddocent-pipeline-user-guide/ - -* SOFTWARE GNU Parallel http://msi-riss.readthedocs.io/en/latest/software/gnu-parallel.html +* GNU parallel is my new toaster http://amedee.me/gnu-parallel-is-my-new-toaster/index.html * Bug fixes and man page updates. diff --git a/src/niceload b/src/niceload index 092337c0..8a92d9da 100755 --- a/src/niceload +++ b/src/niceload @@ -24,7 +24,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20160922; +$Global::version = 20160924; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel_tutorial.pod b/src/parallel_tutorial.pod index f574629c..f3a537ae 100644 --- a/src/parallel_tutorial.pod +++ b/src/parallel_tutorial.pod @@ -559,7 +559,9 @@ If the strings B<{=> and B<=}> cause problems they can be replaced with B<--pare parallel --parens ,,,, echo ',, s:\.[^.]+$::;s:\.[^.]+$::; ,,' ::: foo.tar.gz -Output: Same as above. +Output: + + foo To define a shorthand replacement string use B<--rpl>: @@ -635,7 +637,7 @@ Output: foo bar -If shorthand defined using B<--rpl> starts with B<{> it can be used as +If a shorthand defined using B<--rpl> starts with B<{> it can be used as a positional replacement string, too: parallel --rpl '{..} s:\.[^.]+$::;s:\.[^.]+$::;' echo '{2..} {1}' ::: bar ::: foo.tar.gz diff --git a/src/sql b/src/sql index 084b2427..d2ea7730 100755 --- a/src/sql +++ b/src/sql @@ -566,7 +566,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20160922; + $Global::version = 20160924; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/tests-to-run/parallel-local-ssh3.sh b/testsuite/tests-to-run/parallel-local-ssh3.sh index c0ab72c5..743bd0fa 100644 --- a/testsuite/tests-to-run/parallel-local-ssh3.sh +++ b/testsuite/tests-to-run/parallel-local-ssh3.sh @@ -83,6 +83,10 @@ echo '### exported function to csh but with PARALLEL_SHELL=bash' stdout parallel --env doit -S csh@lo doit ::: not_OK; PARALLEL_SHELL=bash parallel --env doit -S csh@lo doit ::: OK +echo '### bug #49404: "Max jobs to run" does not equal the number of jobs specified when using GNU Parallel on remote server?' + echo should give 12 running jobs + stdout parallel -S 16/lo --progress true ::: {1..12} | grep /.12 + EOF diff --git a/testsuite/wanted-results/parallel-install b/testsuite/wanted-results/parallel-install index df3475fd..feb36e0b 100644 --- a/testsuite/wanted-results/parallel-install +++ b/testsuite/wanted-results/parallel-install @@ -13,7 +13,7 @@ test -n "" \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec /bin/bash /home/tange/privat/parallel/install-sh -c -m a+r {} {} \; \ + ! -type d ! -perm -444 -exec /bin/bash /mnt/4tb/home/tange/privat/parallel/install-sh -c -m a+r {} {} \; \ || chmod -R a+r "parallel-00000000" tardir=parallel-00000000 && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >parallel-00000000.tar.gz make[0]: Leaving directory '/mnt/4tb/home/tange/privat/parallel' diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index 06b4df02..c8837030 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -297,23 +297,23 @@ bug #45993: --wd ... should also work when run locally parallel: Error: Cannot change into non-executable dir /bi: No such file or directory parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK /bin -/home/tange/privat/parallel/testsuite +/mnt/4tb/home/tange/privat/parallel/testsuite OK parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK / -/home/tange/privat/parallel/testsuite +/mnt/4tb/home/tange/privat/parallel/testsuite OK parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK /tmp -/home/tange/privat/parallel/testsuite +/mnt/4tb/home/tange/privat/parallel/testsuite OK parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK | perl -pe 's/\d+/0/g' -/home/tange/.parallel/tmp/aspire-0-0 -/home/tange/privat/parallel/testsuite +/mnt/0tb/home/tange/.parallel/tmp/aspire-0-0 +/mnt/0tb/home/tange/privat/parallel/testsuite OK parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK -/home/tange/privat/parallel/testsuite -/home/tange/privat/parallel/testsuite +/mnt/4tb/home/tange/privat/parallel/testsuite +/mnt/4tb/home/tange/privat/parallel/testsuite OK echo '**' ** diff --git a/testsuite/wanted-results/parallel-local-100s b/testsuite/wanted-results/parallel-local-100s index 1c4271c8..f400de76 100644 --- a/testsuite/wanted-results/parallel-local-100s +++ b/testsuite/wanted-results/parallel-local-100s @@ -3,8 +3,8 @@ par_mem_leak ### test for mem leak par_mem_leak no mem leak detected par_outside_file_handle_limit 2>&1 par_outside_file_handle_limit ### Test Force outside the file handle limit, 2009-02-17 Gave fork error -par_outside_file_handle_limit parallel: Warning: Only enough file handles to run 252 jobs in parallel. -par_outside_file_handle_limit parallel: Warning: Running 'parallel -j0 -N 252 --pipe parallel -j0' or +par_outside_file_handle_limit parallel: Warning: Only enough file handles to run 251 jobs in parallel. +par_outside_file_handle_limit parallel: Warning: Running 'parallel -j0 -N 251 --pipe parallel -j0' or par_outside_file_handle_limit parallel: Warning: raising ulimit -n or /etc/security/limits.conf may help. par_outside_file_handle_limit Start par_outside_file_handle_limit end diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index f29e7a45..ed26cfa2 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -1,7 +1,7 @@ echo '### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922' ### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922 seq 1000000 > /tmp/num1000000; stdout parallel --pipepart --progress -a /tmp/num1000000 --block 10k -j0 true |grep 1:local -1:local / 8 / 252 +1:local / 8 / 251 echo '**' ** testhalt() { echo '### testhalt --halt '$1; (yes 0 | head -n 10; seq 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; (seq 10; yes 0 | head -n 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; }; export -f testhalt; parallel -kj0 testhalt ::: now,fail=0 now,fail=1 now,fail=2 now,fail=30% now,fail=70% soon,fail=0 soon,fail=1 soon,fail=2 soon,fail=30% soon,fail=70% now,success=0 now,success=1 now,success=2 now,success=30% now,success=70% soon,success=0 soon,success=1 soon,success=2 soon,success=30% now,success=70% diff --git a/testsuite/wanted-results/parallel-local-mem b/testsuite/wanted-results/parallel-local-mem index 1fddd7a0..2996c6ec 100644 --- a/testsuite/wanted-results/parallel-local-mem +++ b/testsuite/wanted-results/parallel-local-mem @@ -55,7 +55,7 @@ echo '**' make[1]: Entering directory '/mnt/4tb/home/tange/privat/parallel/testsuite' # Make sure we can reach the virtual machines #sudo ifconfig wlp13s0:0 192.168.1.72 || sudo ifconfig wlan0:0 192.168.1.72 -sudo ifconfig enp14s0 192.168.1.72 || sudo ifconfig eth0:0 192.168.1.72 +sudo ifconfig enp14s0:0 192.168.1.72 || sudo ifconfig eth0:0 192.168.1.72 # If they are already running: Don't fail VBoxManage startvm CentOS3-root:centos3 || VBoxManage controlvm CentOS3-root:centos3 resume || true Waiting for VM "CentOS3-root:centos3" to power on... @@ -63,4 +63,5 @@ VM "CentOS3-root:centos3" has been successfully started. VBoxManage startvm RedHat9-root:redhat9 || VBoxManage controlvm RedHat9-root:redhat9 resume || true Waiting for VM "RedHat9-root:redhat9" to power on... VM "RedHat9-root:redhat9" has been successfully started. +parallel 'ping {} | read' ::: redhat9.tange.dk centos3.tange.dk make[1]: Leaving directory '/mnt/4tb/home/tange/privat/parallel/testsuite' diff --git a/testsuite/wanted-results/parallel-local-ssh1 b/testsuite/wanted-results/parallel-local-ssh1 index 5dbd568a..45dc70ea 100644 --- a/testsuite/wanted-results/parallel-local-ssh1 +++ b/testsuite/wanted-results/parallel-local-ssh1 @@ -20,22 +20,22 @@ echo '### bug #41805: Idea: propagate --env for parallel --number-of-cores' ** test_zsh FOO=test_zsh parallel --env FOO,HOME -S zsh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME' FOO=test_zsh -HOME=/home/tange +HOME=/mnt/4tb/home/tange echo '** test_zsh_filter' ** test_zsh_filter FOO=test_zsh_filter parallel --filter-hosts --env FOO,HOME -S zsh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME' FOO=test_zsh_filter -HOME=/home/tange +HOME=/mnt/4tb/home/tange echo '** test_csh' ** test_csh FOO=test_csh parallel --env FOO,HOME -S csh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME' FOO=test_csh -HOME=/home/tange +HOME=/mnt/4tb/home/tange echo '** test_csh_filter' ** test_csh_filter FOO=test_csh_filter parallel --filter-hosts --env FOO,HOME -S csh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME' FOO=test_csh_filter -HOME=/home/tange +HOME=/mnt/4tb/home/tange echo '** bug #41805 done' ** bug #41805 done echo '### Deal with long command lines on remote servers' diff --git a/testsuite/wanted-results/parallel-local-ssh3 b/testsuite/wanted-results/parallel-local-ssh3 index e5075a70..7b73b7c0 100644 --- a/testsuite/wanted-results/parallel-local-ssh3 +++ b/testsuite/wanted-results/parallel-local-ssh3 @@ -122,6 +122,12 @@ echo '### exported function to csh but with PARALLEL_SHELL=bash' doit() { echo "$1"; }; export -f doit; stdout parallel --env doit -S csh@lo doit ::: not_OK; PARALLEL_SHELL=bash parallel --env doit -S csh@lo doit ::: OK CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset doit OK +echo '### bug #49404: "Max jobs to run" does not equal the number of jobs specified when using GNU Parallel on remote server?' +### bug #49404: "Max jobs to run" does not equal the number of jobs specified when using GNU Parallel on remote server? + echo should give 12 running jobs +should give 12 running jobs + stdout parallel -S 16/lo --progress true ::: {1..12} | grep /.12 +1:lo / 16 / 12 bug #47695: How to set $PATH on remote? * Documentation: https://help.ubuntu.com diff --git a/testsuite/wanted-results/parallel-local150 b/testsuite/wanted-results/parallel-local150 index 6e4a7343..2f964fb4 100644 --- a/testsuite/wanted-results/parallel-local150 +++ b/testsuite/wanted-results/parallel-local150 @@ -187,12 +187,10 @@ echo '### Test stdin goes to first command only' ### Test stdin goes to first command only echo via cat |parallel --arg-sep .--- -kv .--- 'cat' 'echo b' cat -via cat echo b b echo via cat |parallel -kv ::: 'cat' 'echo b' cat -via cat echo b b echo '### Bug made 4 5 go before 1 2 3' diff --git a/testsuite/wanted-results/parallel-local4 b/testsuite/wanted-results/parallel-local4 index b3879800..832fa363 100644 --- a/testsuite/wanted-results/parallel-local4 +++ b/testsuite/wanted-results/parallel-local4 @@ -1,13 +1,13 @@ bug #46120: Suspend should suspend (at least local) children -1024 SHA256:SXgag2Z2L91JsrT5WjNBcARD1EpyCCj4JctVJ6Zpzm0 /home/tange/.ssh/id_dsa (DSA) -8192 SHA256:lYn04AefJq/5r0e4FftceviJ7JVnq9NGKY3CW9XMpO8 /home/tange/.ssh/id_rsa (RSA) -4096 SHA256:jUQ9ysfprs7UOckttjjVb+j3qikUmKWDEWC+eEJkbDQ /home/tange/.ssh/id_rsa_openindiana (RSA) +1024 SHA256:SXgag2Z2L91JsrT5WjNBcARD1EpyCCj4JctVJ6Zpzm0 /mnt/4tb/home/tange/.ssh/id_dsa (DSA) +8192 SHA256:lYn04AefJq/5r0e4FftceviJ7JVnq9NGKY3CW9XMpO8 /mnt/4tb/home/tange/.ssh/id_rsa (RSA) +4096 SHA256:jUQ9ysfprs7UOckttjjVb+j3qikUmKWDEWC+eEJkbDQ /mnt/4tb/home/tange/.ssh/id_rsa_openindiana (RSA) stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 burnP6 ::: 1 | grep -q CPUTIME=1 Zero=OK 0 -1024 SHA256:SXgag2Z2L91JsrT5WjNBcARD1EpyCCj4JctVJ6Zpzm0 /home/tange/.ssh/id_dsa (DSA) -8192 SHA256:lYn04AefJq/5r0e4FftceviJ7JVnq9NGKY3CW9XMpO8 /home/tange/.ssh/id_rsa (RSA) -4096 SHA256:jUQ9ysfprs7UOckttjjVb+j3qikUmKWDEWC+eEJkbDQ /home/tange/.ssh/id_rsa_openindiana (RSA) +1024 SHA256:SXgag2Z2L91JsrT5WjNBcARD1EpyCCj4JctVJ6Zpzm0 /mnt/4tb/home/tange/.ssh/id_dsa (DSA) +8192 SHA256:lYn04AefJq/5r0e4FftceviJ7JVnq9NGKY3CW9XMpO8 /mnt/4tb/home/tange/.ssh/id_rsa (RSA) +4096 SHA256:jUQ9ysfprs7UOckttjjVb+j3qikUmKWDEWC+eEJkbDQ /mnt/4tb/home/tange/.ssh/id_rsa_openindiana (RSA) echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 burnP6 | grep -q CPUTIME=1 Zero=OK 0 diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index f24f2c7c..39e0e6f4 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -161,7 +161,7 @@ num8 num_%header tsv-file.tsv foo -/home/tange/privat/parallel/testsuite/tmp +/mnt/4tb/home/tange/privat/parallel/testsuite/tmp my_func() { echo in my_func $1 } @@ -760,34 +760,34 @@ Unknown option: ::: Unknown option: green env_parallel only works if it is a function. Do the below and restart your shell. -bash: Put this in /home/tange/.bashrc: . /usr/local/bin/env_parallel.bash - E.g. by doing: echo '. /usr/local/bin/env_parallel.bash' >> /home/tange/.bashrc +bash: Put this in /mnt/4tb/home/tange/.bashrc: . /usr/local/bin/env_parallel.bash + E.g. by doing: echo '. /usr/local/bin/env_parallel.bash' >> /mnt/4tb/home/tange/.bashrc Supports: aliases, functions, variables, arrays -zsh: Put this in /home/tange/.zshrc: . /usr/local/bin/env_parallel.zsh - E.g. by doing: echo '. /usr/local/bin/env_parallel.zsh' >> /home/tange/.zshenv +zsh: Put this in /mnt/4tb/home/tange/.zshrc: . /usr/local/bin/env_parallel.zsh + E.g. by doing: echo '. /usr/local/bin/env_parallel.zsh' >> /mnt/4tb/home/tange/.zshenv Supports: functions, variables, arrays -fish: Put this in /home/tange/.config/fish/config.fish: +fish: Put this in /mnt/4tb/home/tange/.config/fish/config.fish: . (which env_parallel.fish) E.g. by doing: - echo '. (which env_parallel.fish)' >> /home/tange/.config/fish/config.fish + echo '. (which env_parallel.fish)' >> /mnt/4tb/home/tange/.config/fish/config.fish Supports: aliases, functions, variables, arrays -ksh: Put this in /home/tange/.kshrc: source /usr/local/bin/env_parallel.ksh - E.g. by doing: echo 'source /usr/local/bin/env_parallel.ksh' >> /home/tange/.kshrc +ksh: Put this in /mnt/4tb/home/tange/.kshrc: source /usr/local/bin/env_parallel.ksh + E.g. by doing: echo 'source /usr/local/bin/env_parallel.ksh' >> /mnt/4tb/home/tange/.kshrc Supports: aliases, functions, variables, arrays -pdksh: Put this in /home/tange/.profile: source /usr/local/bin/env_parallel.pdksh - E.g. by doing: echo '. /usr/local/bin/env_parallel.pdksh' >> /home/tange/.profile +pdksh: Put this in /mnt/4tb/home/tange/.profile: source /usr/local/bin/env_parallel.pdksh + E.g. by doing: echo '. /usr/local/bin/env_parallel.pdksh' >> /mnt/4tb/home/tange/.profile Supports: aliases, functions, variables, arrays -csh: Put this in /home/tange/.cshrc: source /usr/local/bin/env_parallel.csh - E.g. by doing: echo 'source /usr/local/bin/env_parallel.csh' >> /home/tange/.cshrc +csh: Put this in /mnt/4tb/home/tange/.cshrc: source /usr/local/bin/env_parallel.csh + E.g. by doing: echo 'source /usr/local/bin/env_parallel.csh' >> /mnt/4tb/home/tange/.cshrc Supports: aliases, variables, arrays with no special chars -tcsh: Put this in /home/tange/.tcshrc: source /usr/local/bin/env_parallel.tcsh - E.g. by doing: echo 'source /usr/local/bin/env_parallel.tcsh' >> /home/tange/.tcshrc +tcsh: Put this in /mnt/4tb/home/tange/.tcshrc: source /usr/local/bin/env_parallel.tcsh + E.g. by doing: echo 'source /usr/local/bin/env_parallel.tcsh' >> /mnt/4tb/home/tange/.tcshrc Supports: aliases, variables, arrays with no special chars To install in all shells run: diff --git a/testsuite/wanted-results/sql03 b/testsuite/wanted-results/sql03 index 5b65dd24..d581d080 100644 --- a/testsuite/wanted-results/sql03 +++ b/testsuite/wanted-results/sql03 @@ -56,7 +56,7 @@ Error: sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] ### Test dburl : Error: -: is not defined in /home/tange/.sql/aliases /home/tange/.dburl.aliases /etc/sql/aliases /usr/local/bin/dburl.aliases /usr/local/bin/dburl.aliases.dist +: is not defined in /mnt/4tb/home/tange/.sql/aliases /mnt/4tb/home/tange/.dburl.aliases /etc/sql/aliases /usr/local/bin/dburl.aliases /usr/local/bin/dburl.aliases.dist sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] ### Test oracle with multiple arguments on the command line