Added performance tests and creation permission flags
This commit is contained in:
		
							
								
								
									
										6
									
								
								test/stress.bash
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								test/stress.bash
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
count=$1
 | 
			
		||||
for i in $(seq $count); do
 | 
			
		||||
  $2 ./protected/haystack/
 | 
			
		||||
done
 | 
			
		||||
@@ -10,7 +10,7 @@ chmod 777 ./protected/perm777 ./protected/perm000
 | 
			
		||||
echo "Free code, free world." >./protected/motto
 | 
			
		||||
 | 
			
		||||
mkdir protected/haystack
 | 
			
		||||
for i in {1..10}; do
 | 
			
		||||
for i in {1..100}; do
 | 
			
		||||
  touch "./protected/haystack/hay$i"
 | 
			
		||||
done
 | 
			
		||||
touch ./protected/haystack/needle
 | 
			
		||||
@@ -22,7 +22,7 @@ make -C ./opener || (
 | 
			
		||||
  echo "Could not make the opener program."
 | 
			
		||||
  exit 1
 | 
			
		||||
)
 | 
			
		||||
for i in {1..10}; do
 | 
			
		||||
for i in {1..12}; do
 | 
			
		||||
  cp ./opener/opener "./openers/opener$i"
 | 
			
		||||
  ln --symbolic "$(realpath "./openers/opener$i")" "./openers/symlinked_opener$i"
 | 
			
		||||
done
 | 
			
		||||
@@ -43,6 +43,12 @@ if [[ $1 == "--setuid" ]]; then
 | 
			
		||||
  echo "Valgrind will not be used due to setuid compatibility issues."
 | 
			
		||||
  ../build/icfs -o default_permissions ./protected ./.pt.db &
 | 
			
		||||
  sleep 1
 | 
			
		||||
elif [[ $1 == "--performance" ]]; then
 | 
			
		||||
  echo "Database protection will not be tested due to the lack of setuid capabilites."
 | 
			
		||||
  echo "To test it, run this script with '--setuid'."
 | 
			
		||||
  echo "valgrind won't be used to make performance measurements more accurate."
 | 
			
		||||
  ../build/icfs -o default_permissions ./protected ./.pt.db &
 | 
			
		||||
  sleep 5
 | 
			
		||||
else
 | 
			
		||||
  echo "Database protection will not be tested due to the lack of setuid capabilites."
 | 
			
		||||
  echo "To test it, run this script with '--setuid'."
 | 
			
		||||
@@ -205,9 +211,36 @@ else
 | 
			
		||||
  echo "[ICFS-TEST]: permanent permissions database access was not tested due to the lack of seuid bit setting capabilites. To test this, run the script with '--setuid' flag"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
RUNS_NUM=500
 | 
			
		||||
 | 
			
		||||
if [[ $1 == '--performance' ]]; then
 | 
			
		||||
 | 
			
		||||
  #warmup
 | 
			
		||||
  icfs_dialogue --set-fake-response yes
 | 
			
		||||
  parallel -j8 ::: "./stress.bash $RUNS_NUM openers/opener10"
 | 
			
		||||
 | 
			
		||||
  icfs_dialogue --set-fake-response yes
 | 
			
		||||
  echo "[ICFS-TEST]: temp permissions"
 | 
			
		||||
  time parallel -j8 ::: "./stress.bash $RUNS_NUM openers/opener7"
 | 
			
		||||
 | 
			
		||||
  icfs_dialogue --set-fake-response yes_perm
 | 
			
		||||
  echo "[ICFS-TEST]: perm permissions"
 | 
			
		||||
  time parallel -j8 ::: "./stress.bash $RUNS_NUM openers/opener8"
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# unmount
 | 
			
		||||
 | 
			
		||||
sleep 0.5
 | 
			
		||||
#lsof +f -- $(realpath ./protected)
 | 
			
		||||
umount "$(realpath ./protected)"
 | 
			
		||||
sleep 2
 | 
			
		||||
sleep 3
 | 
			
		||||
 | 
			
		||||
if [[ $1 == '--performance' ]]; then
 | 
			
		||||
 | 
			
		||||
  #warmup
 | 
			
		||||
  parallel -j8 ::: "./stress.bash $RUNS_NUM openers/opener9"
 | 
			
		||||
 | 
			
		||||
  echo "[ICFS-TEST]: bare filesystem"
 | 
			
		||||
  time parallel -j8 ::: "./stress.bash $RUNS_NUM openers/opener9"
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user