97 lines
2.5 KiB
Bash
Executable File
97 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
#
|
|
#
|
|
# xctest - shell script to test xclip
|
|
# Copyright (C) 2001 Kim Saunders
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
delay=1 # seconds to wait before running xclip -o
|
|
|
|
# test to make sure ./xclip exists
|
|
if [ ! -f xclip ];
|
|
then
|
|
echo "Error: xclip doesn't exist in the current directory."
|
|
exit
|
|
fi
|
|
|
|
checker=""
|
|
|
|
for param in $@;
|
|
do
|
|
case $param in
|
|
--valgrind) checker="valgrind --num-callers=8";;
|
|
esac
|
|
done
|
|
|
|
# test xclip on different amounts of data to bring out any errors
|
|
for lines in 2 16 128 1024 8192
|
|
do
|
|
# temp file names (in and out)
|
|
tempi=`mktemp` || exit 1
|
|
tempo=`mktemp` || exit 1
|
|
|
|
linec=0 # current line of file in while loop
|
|
|
|
# append lines two at a time to input temp file
|
|
while [ $linec -lt `expr $lines / 2` ]
|
|
do
|
|
echo -n -e "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890\n" >> $tempi
|
|
echo -n -e "abcdefghijklmnopqrstuvwzyz!@#$%^&*()\n" >> $tempi
|
|
linec=$(($linec+1))
|
|
done
|
|
|
|
# test piping the file to xclip, using all selections
|
|
echo Piping a $lines line file to xclip
|
|
for sel in primary secondary clipboard buffer
|
|
do
|
|
echo " Using the $sel selection"
|
|
cat $tempi | $checker ./xclip -sel $sel -i
|
|
sleep $delay
|
|
$checker ./xclip -sel $sel -o > $tempo
|
|
diff $tempi $tempo
|
|
done
|
|
echo
|
|
|
|
# test xclip reading the file
|
|
echo Reading a $lines line file with xclip
|
|
for sel in primary secondary clipboard buffer
|
|
do
|
|
echo " Using the $sel selection"
|
|
$checker ./xclip -sel $sel -i $tempi
|
|
sleep $delay
|
|
$checker ./xclip -sel $sel -o > $tempo
|
|
diff $tempi $tempo
|
|
done
|
|
echo
|
|
|
|
# test xclip filtering a file
|
|
echo Filtering a $lines line file through xclip
|
|
for sel in primary secondary clipboard buffer
|
|
do
|
|
echo " Using the $sel selection"
|
|
$checker ./xclip -sel $sel -f < $tempi > $tempo
|
|
sleep $delay
|
|
diff $tempi $tempo
|
|
done
|
|
echo
|
|
|
|
# quietly remove temp files
|
|
rm $tempi $tempo 2> /dev/null
|
|
done
|
|
|
|
# Kill any remain xclip processes
|
|
killall xclip
|