-rwxr-xr-x 1373 djbsort-20180729/verif/verifymany
#!/bin/sh -e
version=`cat ../version`
tmp=../link-build/verify-$version
rm -rf $tmp
mkdir -p $tmp
for n in `seq 0 512`
do
for lib in ../link-install/lib-*
do
c=`cat $lib/compiler`
echo "verifying n=$n lib=$lib compiler=$c" >&2
echo '
#include <stdio.h>
#include "int32_sort.h"
int32_t symbolic['$n'];
int main()
{
long long i;
int32_sort(symbolic,'$n');
for (i = 0;i < '$n';++i) printf("%d\\n",symbolic[i]);
return 0;
}
' > $tmp/symbolic.c
time $c \
-L $lib -Wl,-rpath=$lib \
-I $lib/include \
-o $tmp/symbolic $tmp/symbolic.c \
-l djbsort
time ./unroll symbolic $n $tmp/symbolic > $tmp/unroll
time ./tryinput $n < $tmp/unroll > $tmp/input
time python3 $tmp/input
time ./minmax $n < $tmp/unroll > $tmp/minmax
time ./tryinput $n < $tmp/minmax > $tmp/input
time python3 $tmp/input
time ./decompose $n int32_sort_symbolic < $tmp/minmax
echo '
#include <stdio.h>
#include "int32_sort.h"
int main()
{
printf("verified '$n' %s %s %s %s\\n",int32_sort_implementation,int32_sort_version,int32_sort_compiler,__VERSION__);
return 0;
}
' > $tmp/verified.c
time $c \
-L $lib -Wl,-rpath=$lib \
-I $lib/include \
-o $tmp/verified $tmp/verified.c \
-l djbsort
( tput bold >&2 || :; /bin/echo '')
$tmp/verified
( tput sgr0 >&2 || :; /bin/echo '')
done
done