38 lines
847 B
Bash
Executable file
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
|