46 lines
1.1 KiB
Bash
Executable file
46 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
echo "Building executables..."
|
|
|
|
cd "${FLAKE:-$(dirname $0)}"
|
|
if command -v nix &>/dev/null; then
|
|
producer="$(nix build --no-link --print-out-paths .#a2-p3-producer)/bin/producer"
|
|
consumer="$(nix build --no-link --print-out-paths .#a2-p3-consumer)/bin/consumer"
|
|
else
|
|
gcc producer.c -o producer
|
|
gcc consumer.c -o consumer
|
|
producer="./producer"
|
|
consumer="./consumer"
|
|
fi
|
|
|
|
seq 1 10000000 >large.txt
|
|
|
|
echo -e "\nTEST - Interrupt"
|
|
"$producer" -b 1024 -f large.txt | "$consumer" &
|
|
kill -INT "$(pidof consumer)"
|
|
if ! wait "$(jobs -rp)"; then
|
|
echo "SUCCESS"
|
|
fi
|
|
|
|
echo -e "\nTEST - Stats (Buffer size 1024)"
|
|
"$producer" -b 1024 -f large.txt | "$consumer" &
|
|
kill -USR1 "$(pidof consumer)"
|
|
if wait "$(jobs -rp)"; then
|
|
echo "SUCCESS"
|
|
fi
|
|
|
|
echo -e "\nTEST - Stats (Buffer size 4096)"
|
|
"$producer" -b 4096 -f large.txt | "$consumer" &
|
|
kill -USR1 "$(pidof consumer)"
|
|
if wait "$(jobs -rp)"; then
|
|
echo "SUCCESS"
|
|
fi
|
|
|
|
echo -e "\nTEST - Stats (Buffer size 16384)"
|
|
"$producer" -b 16384 -f large.txt | "$consumer" &
|
|
kill -USR1 "$(pidof consumer)"
|
|
if wait "$(jobs -rp)"; then
|
|
echo "SUCCESS"
|
|
fi
|
|
|
|
rm large.txt
|