feat: assignment 3

This commit is contained in:
Kiana Sheibani 2025-11-01 22:14:35 -04:00
parent 06fbd2d6ad
commit 3cc3f6332d
Signed by: toki
GPG key ID: 6CB106C25E86A9F7
7 changed files with 281 additions and 0 deletions

38
assignment3/test Executable file
View file

@ -0,0 +1,38 @@
#!/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