parallel/testsuite/tests-to-run/parallel-local-sql01.sh
2017-01-06 22:53:21 +01:00

127 lines
3.3 KiB
Bash

#!/bin/bash
# GNU SQL tests
# The tests must be able to run in parallel
export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db
export PG=pg://`whoami`:`whoami`@lo/`whoami`
export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami`
export DEBUG=false
#p_showsqlresult() {
# SERVERURL=$1
# TABLE=$2
# sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;"
#}
#
#p_wrapper() {
# INNER=$1
# SERVERURL=$(eval echo $2)
# TABLE=TBL$RANDOM
# DBURL=$SERVERURL/$TABLE
# T1=$(tempfile)
# T2=$(tempfile)
# eval "$INNER"
# echo Exit=$?
# wait
# echo Exit=$?
# $DEBUG && sort -u $T1 $T2;
# rm $T1 $T2
# p_showsqlresult $SERVERURL $TABLE
# $DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null 2>/dev/null
#}
#
#p_template() {
# (sleep 2;
# parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1) &
# parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
#}
#
#par_sqlandworker() {
# p_template
#}
#
#par_sqlandworker_lo() {
# p_template -S lo
#}
#
#par_sqlandworker_results() {
# p_template --results /tmp/out--sql
#}
#
#par_sqlandworker_linebuffer() {
# p_template --linebuffer
#}
#
#par_sqlandworker_tag() {
# p_template --tag
#}
#
#par_sqlandworker_linebuffer_tag() {
# p_template --linebuffer --tag
#}
#
#par_sqlandworker_compress_linebuffer_tag() {
# p_template --compress --linebuffer --tag
#}
#
#par_sqlandworker_unbuffer() {
# p_template -u
#}
#
#par_sqlandworker_total_jobs() {
# p_template echo {#} of '{=1 $_=total_jobs(); =};'
#}
#
#par_append() {
# parallel --sqlmaster $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
# parallel --sqlmaster +$DBURL sleep .3\;echo ::: {11..15} ::: {A..E} >>$T2;
# parallel --sqlworker $DBURL sleep .3\;echo >$T1
#}
#
#par_shuf() {
# MD5=$(echo $SERVERURL | md5sum | perl -pe 's/(...).*/$1/')
# T=/tmp/parallel-bug49791-$MD5
# [ -e $T ] && rm -rf $T
# export PARALLEL="--shuf --result $T"
# parallel --sqlandworker $DBURL sleep .3\;echo \
# ::: {1..5} ::: {a..e} >$T2;
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
# unset PARALLEL
# wait;
# # Did it compute correctly?
# cat $T/1/*/*/*/stdout
# # Did it shuffle
# SHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
# export PARALLEL="--result $T"
# parallel --sqlandworker $DBURL sleep .3\;echo \
# ::: {1..5} ::: {a..e} >$T2;
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
# unset PARALLEL
# wait;
# NOSHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
# DIFFSIZE=$(diff <(echo "$SHUF") <(echo "$NOSHUF") | wc -c)
# if [ $DIFFSIZE -gt 2500 ]; then
# echo OK: Diff bigger than 2500 char
# fi
# [ -e $T ] && rm -rf $T
# touch $T1
#}
#
par_empty() {
true;
}
export -f $(compgen -A function | egrep 'p_|par_')
# Tested that -j0 in parallel is fastest (up to 15 jobs)
compgen -A function | grep par_ | sort |
stdout parallel -vj5 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
:::: - ::: \$MYSQL \$PG \$SQLITE