CS3502/assignment3/test

38 lines
847 B
Bash
Executable file

#!/usr/bin/env bash
echo "Building executables..."
cd "${FLAKE:-$(dirname $0)}"
if command -v nix; then
producer="$(nix build --no-link --print-out-paths .#a3-producer)/bin/producer"
consumer="$(nix build --no-link --print-out-paths .#a3-consumer)/bin/consumer"
else
mkdir build
gcc src/producer.c -o build/producer -pthread -lrt
gcc src/consumer.c -o build/consumer -pthread -lrt
producer="./build/producer"
consumer="./build/consumer"
fi
echo -e "\nTEST - Basic Functionality"
"${producer}" 1 5 &
"${consumer}" 1 5 &
wait
echo -e "\nTEST - Multiple Producers"
"${producer}" 1 10 &
"${producer}" 2 10 &
"${producer}" 3 10 &
"${consumer}" 1 30 &
wait
echo -e "\nTEST - Multiple Consumers"
"${producer}" 1 20 &
"${consumer}" 1 10 &
"${consumer}" 2 10 &
wait
# Cleanup
ipcrm -M 0x1234
rm /dev/shm/sem*
rm -rf build